Boiler size calculator
A 100 m² home with 2.4 m ceilings and average insulation has 240 m³ to heat at 80 W/m³, which is 19.2 kW, so a 20 kW boiler is the shortlist. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Floor area
- 100
- Ceiling height
- 2.4
- Insulation
- Weighted average
- Volume m3
- 240
- Watts per m3
- 80
- Power w
- 19,200
- Boiler kw
- 19.2
Sizing a central heating boiler by guesswork either leaves rooms cold on a design-day freeze or installs an oversized unit that short-cycles, wastes fuel, and wears out sooner than a correctly matched appliance. This boiler size calculator turns three plain measurements—heated floor area in square metres, ceiling height in metres, and insulation quality—into the heating power in kilowatts a space needs under a transparent volume rule of thumb. Interior volume is floor area times ceiling height. That volume is multiplied by a specific heat-loss density that depends on fabric: forty watts per cubic metre for excellent insulation, fifty for good, eighty for average, and one hundred twenty for poor. Watts divided by one thousand are boiler kilowatts; the tool also rounds that figure up to a whole kilowatt so catalog nameplates are never chosen below the estimate.
How boiler kilowatts are computed from volume and insulation
A hydronic, system, or combi boiler is sized to the heat a building loses on a cold design day, not to the largest radiator hanging on one wall. This boiler size calculator uses the volume method published by many European first-pass tools: multiply heated floor area in square metres by ceiling height in metres to obtain interior volume in cubic metres, then multiply that volume by a specific heat-loss density in watts per cubic metre that depends on insulation quality.
Excellent fabric—new or deeply retrofitted dwellings with continuous insulation, high-performance glazing, and limited infiltration—uses forty watts per cubic metre. Good fabric, typical of dwellings built to modern energy regulations, uses fifty watts per cubic metre. Average fabric, such as a mid-century house with partial loft, cavity, or window upgrades, uses eighty.
Poor fabric—solid walls, single glazing, uninsulated floors and roofs—uses one hundred twenty. The product is heating power in watts. Dividing by one thousand yields boiler kilowatts as a continuous estimate.
The response also returns a whole-kilowatt recommendation obtained by rounding the continuous figure up, so a catalog nameplate is never chosen below the estimated load. Treat the result as a transparent first-pass band for comparing twelve, eighteen, twenty-four, and thirty kilowatt boilers, not as a substitute for a room-by-room heat-loss survey that models windows, orientation, ventilation, and domestic hot-water peaks.
Where a boiler size calculator earns its keep
Heating engineers, merchants, and homeowners reach for a boiler size calculator when they need a kilowatt band before a surveyor visits. A replacement combi on a mid-terrace with known floor area and ceiling height can be shortlisted against eighteen, twenty-four, and thirty kilowatt catalogs in seconds, then confirmed with a full heat-loss if the dwelling is unusual. New-build developers and housing associations bulk-map plot areas and specified fabric bands into plant-room kilowatt schedules for dozens of dwellings without standing up a building-physics engine for a first pass.
Energy coaches and retrofit advisers show why improving insulation from poor to good drops the required boiler kilowatts on the same floor plan, which is often a better investment than a larger appliance. If you later need room-level heater output from volume and temperature rise, electric baseboard linear feet, or a full window-and-infiltration load, those are different search intents and separate landings; this page stays focused on boiler power in kilowatts from floor area, ceiling height, and insulation quality for a heated space.
What you can do with it
Replacement combi and system boiler shopping
Convert dwelling floor area, ceiling height and insulation band into a kilowatt nameplate so merchants and homeowners shortlist 18, 24 or 30 kW catalogs.
New-build and housing-association first-pass schedules
Bulk-map plot areas and specified fabric quality into plant-room boiler kilowatts before commissioning a full room-by-room heat-loss survey.
Retrofit coaching and quoting scripts
Show how upgrading insulation from poor to good lowers required boiler kW on the same floor plan, then reuse the identical contract in automated quotes.
FAQ
What happens if floor area is zero or negative?
Heated floor area must be a finite number strictly greater than zero in square metres; validation failures are not billed.
Which insulation quality should I choose?
Use excellent for new or deeply retrofitted fabric, good for modern regulations, average for partial upgrades, and poor for uninsulated solid-wall or single-glazed stock. The band only sets watts per cubic metre.
Is this a full heat-loss survey?
No. It is the classic volume × insulation-density rule of thumb for a first-pass boiler kW band. A full survey needs windows, orientation, ventilation, and hot-water peaks as separate tools.
How is the boiler size calculated?
Multiply the heated area by the room height to get the volume, then by a heat-loss rate set by the insulation, from 40 W/m³ in the best-insulated homes to 120 in the worst. Dividing the watts by 1000 gives kilowatts.
Why is the recommended size rounded up?
So a catalog nameplate is never chosen below the estimated load. A continuous estimate of 19.2 kW becomes a recommendation of 20 kW, the next whole kilowatt above it.
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/build/boiler-size \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"floor_area":100,"ceiling_height":2.4,"insulation":"average"}'const res = await fetch("https://api.kit.forhosting.com/build/boiler-size", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"floor_area": 100,
"ceiling_height": 2.4,
"insulation": "average"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/build/boiler-size",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"floor_area": 100,
"ceiling_height": 2.4,
"insulation": "average"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/build/boiler-size", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"floor_area":100,"ceiling_height":2.4,"insulation":"average"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"floor_area":100,"ceiling_height":2.4,"insulation":"average"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/build/boiler-size", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"floor_area": 100,
"ceiling_height": 2.4,
"insulation": "average"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "build.boiler_size",
"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.
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
How boiler kilowatts are computed from volume and insulation
Identical inputs always produce identical JSON: the implementation is pure arithmetic with stable rounding and no network, clock, or randomness.
What you send and what you get back
Measure the plan area of rooms the boiler will serve, or sum zone areas if you size a whole dwelling. Unrecognized strings fail rather than silently defaulting, because a guessed band would hide a unit error. The free browser path runs the same module, so a quote you generate in a script matches the public calculator on this page. Send three required fields. floor_area is the heated interior floor area in square metres; it must be a finite number strictly greater than zero. Zero, negative, missing, empty, or non-finite values fail with invalid_input and name floor_area so a form can highlight that control. ceiling_height is the heated storey height in metres, typically between about two point four and two point seven in housing; it must be a finite positive number. insulation is the fabric quality band: excellent, good, average, or poor. The comparison is case-insensitive, and common aliases such as high, modern, standard, typical, old, and uninsulated map onto those four keys. Numeric strings are accepted for the two quantities the same as JSON numbers. On success the body echoes cleaned floor_area, ceiling_height, and the canonical insulation key; volume_m3 as the product of area and height; watts_per_m3 from the insulation table; power_w as volume times that density; boiler_kw as power_w divided by one thousand; recommended_kw as the whole-kilowatt ceiling of boiler_kw; plus formula, method, and a unit_note that restates the SI conventions. A classic check is one hundred square metres at two point four metres with average insulation: two hundred forty cubic metres, nineteen point two kilowatts, and a recommended twenty kilowatt nameplate. Successful API calls use the published base of $0.002 per item; validation failures are not billed.
Where a boiler size calculator earns its keep
Curriculum authors for plumbing and heating courses want one JSON shape in the browser and the API so worksheets and auto-graders stay aligned. Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Technical questions
How is boiler size in kilowatts calculated?
boiler_kw = floor_area × ceiling_height × watts_per_m3(insulation) / 1000. Insulation bands use 40 (excellent), 50 (good), 80 (average), or 120 (poor) watts per cubic metre. recommended_kw is the whole-kilowatt ceiling of that figure.
What does the boiler size calculator cost?
The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.