ForHosting KIT · Science

Temperature at depth calculator

Get a first estimate of how hot the ground is below you: 15 °C at the surface with a gradient of 25 °C per km gives 65 °C at 2000 m. You supply the gradient, so no average is baked in. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Surface temperature
15
Geothermal gradient
25
Depth
2,000
You get
Result
65 °C
Temperature unit
Celsius
Gradient unit
Celsius per km
Depth unit
Meters

A geothermal temperature-at-depth calculator answers a first-order question in heat-flow science: if the ground surface sits at a known temperature and heat rises through the crust at a constant geothermal gradient, how hot is the rock at a chosen depth? This tool evaluates the linear conduction model T(z) = T_surface + G · z. You supply the surface (or borehole-collar) temperature, a constant geothermal gradient, and a non-negative target depth. Optional unit fields convert Celsius, Fahrenheit or Kelvin, meters, kilometers or feet, and the usual gradient units into a common working frame of degrees Celsius per meter before the product is formed.

What the linear geothermal-gradient model computes

In the upper crust, heat is carried mainly by conduction. The continental average of G is often quoted near twenty-five to thirty degrees Celsius per kilometer; sedimentary basins, volcanic provinces and cratons can sit well above or below that band, which is why this calculator never bakes in a default gradient. You bring the three numbers you actually have.

The implementation converts the submitted temperature to Celsius, the gradient to Celsius per meter, and the depth to meters, then forms the product and converts the result back into the requested temperature unit. Zero depth is allowed and simply returns the surface temperature. A zero gradient is also allowed and describes an isothermal column.

Surface temperatures at or below absolute zero, after conversion, are rejected by name.

Borehole planning, classroom checks, and searches this page is not answering

Geothermal developers, hydrogeologists, and mining engineers use a temperature-at-depth calculator when they already have a mean annual surface temperature and a local gradient from a heat-flow map or a nearby well, and they need a first estimate of formation temperature at a planned borehole or tunnel depth before they stand up a full numerical model.

Classroom and exam-prep generators need a deterministic oracle for the linear conduction formula so a grader can mark both the happy path (fifteen degrees Celsius, twenty-five degrees per kilometer, two kilometers yields sixty-five degrees) and the rejection of a negative depth. Prefer this capability when you already have surface temperature, a constant gradient and a depth and only need T(z). Round-trip checks are easy: convert to Celsius and meters, form T_surface plus G times z, convert back, and confirm temperature matches within the same eight-decimal rounding.

Planned geothermal borehole temperature

Turn a mean annual surface temperature and a local °C/km gradient into a first formation-temperature estimate at the planned well depth before a full heat-flow model is built.

Classroom checks of T(z) = T_surface + G · z

Students enter surface temperature, geothermal gradient and depth from a textbook problem and confirm that the converted product and the rejection of a negative depth match the published arithmetic.

How is temperature at depth calculated from a geothermal gradient?

The linear conduction model is T(z) = T_surface + G · z. Surface temperature is converted to Celsius, the geothermal gradient to Celsius per meter, and depth to meters. The product G · z is added to the surface temperature and the result is converted back into the requested temperature unit.

What happens when depth is negative or not a number?

A negative depth would describe a point above the surface datum, where this conduction model is not defined. A non-numeric depth cannot be converted to meters. Failed validation is not billed.

Is this the same as a heat-flow or temperature-unit converter?

No. A heat-flow calculator turns conductivity and flux into a gradient. A temperature converter only changes scale. This tool starts from a surface temperature, a constant geothermal gradient and a depth and returns T(z).

What does the temperature-at-depth calculator cost?

The browser tool is free and runs locally.

Is there a default geothermal gradient?

No. The continental average is often quoted at about twenty-five to thirty degrees Celsius per kilometre, but basins, volcanic provinces and cratons differ widely, so enter the gradient from a heat-flow map or a nearby well.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/earth/geothermal-temperature-at-depth

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/earth/geothermal-temperature-at-depth \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"surface_temperature":15,"geothermal_gradient":25,"depth":2000}'
{
  "surface_temperature": 15,
  "geothermal_gradient": 25,
  "depth": 2000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "earth.geothermal_temperature_at_depth",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

A negative or non-numeric depth is rejected with invalid_input and is never billed.

What the linear geothermal-gradient model computes

When conductivity and heat flow can be treated as constant over the interval of interest, temperature increases linearly with depth: T(z) = T_surface + G · z, where T_surface is the temperature at the surface or at a borehole collar, G is the geothermal gradient (the rise in temperature per unit depth), and z is the target depth measured downward from that same datum. Depth must be a finite number and cannot be negative: a negative depth would describe a point above the surface datum, where this conduction model is not defined, so the request fails with invalid_input.

How to call the API and what the response contains

Kelvin-per-kilometer increments are identical to Celsius-per-kilometer increments. A Fahrenheit-per-foot gradient is converted by multiplying by five ninths and dividing by 0.3048 meters per international foot. Send a JSON body with three required finite numbers: surface_temperature (aliases surface_temp, ts, t_surface, t0, and temperature), geothermal_gradient (aliases gradient, g, geo_gradient, and geothermal_grad), and depth (aliases z, target_depth, and d). Three optional unit fields use closed enums so the form renders as selects. temperature_unit accepts celsius, fahrenheit, or kelvin and defaults to celsius; it applies to the surface reading and to the returned temperature. gradient_unit accepts celsius_per_km, celsius_per_m, fahrenheit_per_ft, or kelvin_per_km and defaults to celsius_per_km, the unit most geology textbooks quote. depth_unit accepts meters, kilometers, or feet and defaults to meters. A missing field, a non-finite number, a depth that is negative, a surface temperature at or below absolute zero, or an unknown unit fails with invalid_input and is never charged. On success the body echoes the submitted values and the resolved units, then publishes surface_temperature_c, geothermal_gradient_c_per_m, depth_m, temperature_rise_c, temperature_c, temperature in the requested unit, result as an alias of that temperature, unit as a short label, method set to constant_geothermal_gradient, plus formula and equation strings filled with the rounded numbers. Pricing is a flat $0.002 per successful request with unit item.

Borehole planning, classroom checks, and searches this page is not answering

Enter the surface temperature, the gradient, and the target depth in the units you have; read temperature, temperature_c, and temperature_rise_c. Keep depth non-negative and finite, keep the surface temperature above absolute zero, and prefer JSON numbers over pre-formatted strings when you control the client. This page targets people searching for a temperature at depth from geothermal gradient calculator, a borehole temperature estimator, or a linear heat-flow depth tool. It is not a heat-flow solver from conductivity and flux, not a transient cooling or warming model, not a hydrothermal convection simulator, and not a unit converter for temperature alone.

Mine and tunnel rock-temperature brief

Convert a collar temperature, a site gradient, and a working depth into temperature_c so ventilation or cooling plant can be sized from a published linear conduction check.

Which units can I use for temperature, gradient, and depth?

temperature_unit is celsius (default), fahrenheit, or kelvin. gradient_unit is celsius_per_km (default), celsius_per_m, fahrenheit_per_ft, or kelvin_per_km. depth_unit is meters (default), kilometers, or feet. Closed enums render as selects.

Read the full KIT documentation →