Thermal resistance calculator
A 0.24 m wall with a conductivity of 0.8 W/(m·K) and a 15 m² face has a thermal resistance of 0.02 K/W. Enter the thickness, conductivity and area to see how strongly a single layer holds back the flow of heat. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Thickness
- 0.24
- Conductivity
- 0.8
- Area
- 15
- Thermal resistance
- 0.02 K/W
- Resistance
- 0.02
Plane-wall thermal resistance is the kelvin-per-watt drop you pay to push one watt of heat through a slab. This thermal resistance calculator takes thickness L in metres, thermal conductivity k in watts per metre-kelvin, and heat-transfer area A in square metres, then returns R equals L divided by k times A, in kelvins per watt. A thicker wall, a poorer conductor, or a smaller face all raise R, so less heat flows for the same temperature difference. Missing fields, empty strings, NaN, Infinity, and non-numeric text also fail and are not billed.
What the thermal resistance of a wall actually is
The conduction thermal resistance of a plane wall is the temperature difference that appears across the two faces when one watt of heat flows through the slab in steady state. Fourier's law for one-dimensional conduction through a constant-k layer writes the heat-transfer rate as Q equals k times A times ΔT over L.
Rearrangement immediately gives ΔT equals Q times R, with R equals L over k A, so R is in kelvins per watt when L is in metres, k is in watts per metre-kelvin, and A is in square metres. That is the SI conduction resistance of the wall, not the imperial assembly R-value in hour-square-foot-Fahrenheit per BTU that building codes quote per unit area. Those quantities are related but they answer different searches: this landing computes the kelvin-per-watt resistance of a single homogeneous slab from thickness, conductivity, and area.
Double the thickness and R doubles. Double the area and R halves. Double the conductivity and R halves as well.
Metals with k of tens or hundreds of watts per metre-kelvin barely resist; mineral wool with k around 0.04 resists strongly even in a thin layer. The model is one plane layer with uniform k and heat flowing normal to the faces. It does not add surface films, cavities, or studs, and it does not convert units.
Convert millimetres and British thermal units first so the kelvin-per-watt result is honest. Once you have R, the heat flow for a known temperature difference is simply Q equals ΔT over R, which is why this number sits next to a conduction calculator on a lab bench.
Where a wall thermal-resistance calculator earns its keep
Building-physics notebooks use a thermal resistance calculator so an envelope check can turn a known masonry thickness, a tabulated k, and a wall area into kelvins per watt without rearranging Fourier's law by hand. HVAC and refrigeration sketches need R of a panel or a duct wall before they convert a temperature difference into watts of load. Exam generators need a deterministic oracle that rejects a non-positive conductivity or area instead of leaking Infinity into a gradebook.
Laboratory reports that measure k of a specimen can turn that k, the specimen thickness, and the face area into R before comparing with a guarded-hot-plate reading. Failed validation does not consume balance. Keep requests small, pin the rounded resistance in tests, and you get reproducible kelvins per watt for homework, LMS plugins, and edge workers without standing up a heat-transfer package of your own.
What you can do with it
Envelope and masonry checks
Turn a known wall thickness, a tabulated thermal conductivity, and a face area into conduction resistance in kelvins per watt before estimating heat loss.
HVAC panel and duct walls
Compute R of a homogeneous panel or duct wall so a known temperature difference converts to watts of load without rearranging Fourier's law by hand.
Lab specimen to resistance
Convert a measured k, specimen thickness, and face area into R in K/W before comparing with a guarded-hot-plate or heat-flux reading.
FAQ
What happens if conductivity or area is zero or negative?
Conductivity and area must be strictly positive: zero would divide by zero, and a negative k or A is not physical for a plane wall. Invalid input is not billed.
Is this the same as an insulation R-value?
Building-code R-values are usually per unit area in h·ft²·°F/BTU and often sum several layers. Convert units and assemblies elsewhere.
What units does the calculator use?
SI: thickness in metres, thermal conductivity in watts per metre-kelvin, area in square metres, resistance in kelvins per watt (unit K/W).
How do I get the heat flow once I know the resistance?
Divide the temperature difference across the wall by the resistance. The result is the heat flow in watts, which is why this number is the first step before sizing a heating or cooling load.
Can the calculator handle a wall with several layers?
No. It treats one homogeneous layer with uniform conductivity and heat flowing straight through it. Surface films, air cavities and studs are not added, so work out each layer separately.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/phys/thermal-resistance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"thickness":0.24,"conductivity":0.8,"area":15}'const res = await fetch("https://api.kit.forhosting.com/phys/thermal-resistance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"thickness": 0.24,
"conductivity": 0.8,
"area": 15
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/thermal-resistance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"thickness": 0.24,
"conductivity": 0.8,
"area": 15
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/thermal-resistance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"thickness":0.24,"conductivity":0.8,"area":15}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"thickness":0.24,"conductivity":0.8,"area":15}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/thermal-resistance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"thickness": 0.24,
"conductivity": 0.8,
"area": 15
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.thermal_resistance",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs | 1000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Conductivity and area must be strictly positive: zero or negative values are rejected with invalid_input because they would divide by zero or invent a non-physical wall.
Input contract, response shape, and error behaviour
Magnitudes above one trillion are rejected so a mistyped exponent cannot blow a downstream plot. Conductivity and area must be strictly positive: zero conductivity would make R infinite, zero area would divide by zero, and negative values are not physical for this model. Thickness must also be strictly positive; a zero-thickness wall is not a wall. POST a JSON body with three required finite numbers: thickness, the wall path length L in metres; conductivity, the material thermal conductivity k in watts per metre-kelvin; and area, the heat-transfer face A in square metres, taken normal to the heat flux. Each field may arrive as a JSON number or as a numeric string. Aliases L, l, and length map onto thickness; aliases k, thermal_conductivity, and lambda map onto conductivity; aliases A, a, and surface_area map onto area. Missing values, empty strings, NaN, Infinity, objects, arrays, and non-numeric text fail with invalid_input naming the field, and those failures are not billed. On success the body echoes thickness, conductivity, and area, returns thermal_resistance as R in kelvins per watt, repeats that value as resistance for display, restates the identity in formula as R equals L over k A, sets unit to K/W, and sets method to plane_wall so clients can tell this landing from a unit converter. Example: thickness zero point two four metres, conductivity zero point eight watts per metre-kelvin, and area fifteen square metres yield thermal_resistance zero point zero two kelvins per watt, because zero point two four divided by zero point eight times fifteen is zero point zero two.
Technical questions
How does the thermal resistance calculator compute R?
Send a positive thickness L in metres (field thickness, aliases L, l, length), a positive thermal conductivity k in W/(m·K) (field conductivity, aliases k, thermal_conductivity, lambda), and a positive area A in square metres (field area, aliases A, a, surface_area). The API returns R = L / (k · A) in kelvins per watt.
What does the thermal resistance calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.