Cooling tonnage calculator
A 400 sq ft room with an 8 ft ceiling in a temperate climate needs about 8000 BTU per hour, two thirds of a ton, so the next equipment step is a 1-ton unit. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Area
- 400
- Ceiling height
- 8
- Climate factor
- 1
- Base btu per sqft
- 20 BTU/h
- Base btu
- 8,000
- Height factor
- 1
- Volume cuft
- 3,200
Cooling tonnage is the HVAC contractor's unit for how much heat an air conditioner must remove from a room: one refrigeration ton equals twelve thousand British thermal units per hour, the historic rate that melts one short ton of ice in a day. This cooling tonnage calculator converts three measurements you already have—floor area in square feet, ceiling height in feet, and a climate factor—into required cooling BTU per hour and the equivalent tons so you can shortlist half-ton equipment steps instead of guessing from a square-footage chart. A temperate eight-foot room uses twenty BTU per square foot; taller ceilings raise the air volume that must be cooled, and a climate factor above one loads the estimate for hot or humid design weather.
How cooling tons are computed from area, height, and climate
The refrigeration ton is a power unit, not a mass: one ton of cooling is the heat flow that melts one short ton of ice over twenty-four hours, which equals twelve thousand BTU per hour. Contractors quote split systems, packaged rooftop units, and mini-splits in tons—one and a half, two, two and a half, three, three and a half, four, five—because equipment catalogs are stepped that way, while the underlying load is still a BTU-per-hour energy balance.
This calculator starts from a temperate residential baseline of twenty BTU per square foot of floor area at an eight-foot ceiling, the same first-pass density used on countless takeoff sheets when a full Manual J study has not been run. Ceiling height then scales the volume of air that must be cooled: the height factor is ceiling height in feet divided by eight, so a ten-foot ceiling multiplies the baseline by one point two five and a twelve-foot great room multiplies it by one point five.
Climate factor is the remaining multiplier. Use one point zero for a temperate design day, something below one (often about zero point eight five) for a cool or marine climate, and something above one (often one point one five to one point three five) for hot, humid, or desert design weather. The product is required BTU per hour; dividing by twelve thousand yields tons.
The response also rounds tons up to the next half-ton equipment step so a catalog nameplate is never chosen below the estimate. Treat the result as a transparent first-pass band for comparing one-and-a-half through five-ton units, not as a substitute for a room-by-room load that models windows, insulation, occupancy, and duct losses.
Where a cooling tonnage calculator earns its keep
HVAC estimators, equipment merchants, and homeowners reach for a cooling tonnage calculator when they need a catalog step before a surveyor visits. A replacement split on a known bedroom or open-plan living room can be shortlisted against one-and-a-half, two, and two-and-a-half ton condensers in seconds, then confirmed with a full Manual J if the dwelling is unusual. New-build developers and housing associations bulk-map plot areas, storey heights, and climate bands into plant schedules for dozens of dwellings without standing up a building-physics engine for a first pass.
Energy coaches show why a hotter climate factor on the same floor plan raises required tons, which is often a better conversation than guessing from a national square-feet-per-ton rule of thumb. Keep requests small, pin the rounded tons in tests, and you get reproducible tonnage for quotes, LMS plugins, and edge workers without a load-calculation suite of your own.
If you later need sun-exposure and occupancy adjustments on a BTU landing, heating BTU for a room heater, or a full window-and-infiltration study, those are different search intents and separate tools; this page stays focused on cooling tons from area, ceiling height, and climate factor.
What you can do with it
Size a split or mini-split by the half-ton
Contractors enter room square footage, ceiling height, and a climate factor to get BTU/h, tons, and a recommended half-ton equipment step before shopping condensers.
Bulk first-pass schedules for housing plots
Developers map dwelling areas, storey heights, and climate bands into cooling-tonnage schedules before commissioning a full Manual J per unit.
FAQ
How is cooling tonnage calculated from room area?
Base load is area in square feet times 20 BTU per sq ft. That base is multiplied by ceiling height over 8 ft and by the climate factor. Tons equal BTU divided by 12,000. Recommended equipment rounds tons up to the next 0.5-ton step.
What happens when area is zero or negative?
Room area must be a positive number; a non-positive area cannot define a cooling load and is not billed.
What climate factor should I use?
Use 1.0 for a temperate design day, about 0.85 for cool or marine weather, and about 1.15 to 1.35 for hot, humid, or desert design weather. The factor is a dimensionless load multiplier, not a temperature.
Is this a full Manual J load calculation?
No. It is a transparent first-pass sizer for room area, ceiling height, and climate factor. Insulation, windows, occupancy, ducts, and design temperatures need a proper Manual J or professional load study.
Is the cooling tonnage calculator free?
The browser tool is free and runs locally.
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/tonnage \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"area":400}'const res = await fetch("https://api.kit.forhosting.com/build/tonnage", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"area": 400
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/build/tonnage",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"area": 400
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/build/tonnage", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"area":400}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"area":400}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/build/tonnage", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"area": 400
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "build.tonnage",
"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_area | 1000000 |
min_area | 1e-9 |
max_ceiling_height | 100 |
min_ceiling_height | 1e-9 |
max_climate_factor | 5 |
min_climate_factor | 0.1 |
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
Non-positive area is rejected with invalid_input rather than inventing a load from zero or negative square footage.
How cooling tons are computed from area, height, and climate
Identical inputs always produce identical JSON: the implementation is pure arithmetic with twelve-decimal rounding and no network, clock, or randomness.
What you send and what you get back
Ceiling height, when provided, must also be a positive number within limits; climate factor, when provided, must be a positive multiplier inside the published band (zero point one through five) so a stray zero or a unit-confused hundred cannot explode the estimate. A classic check is four hundred square feet at eight feet with climate factor one: eight thousand BTU per hour, two thirds of a ton, and a recommended one-ton nameplate. Send a JSON body with required area in square feet (aliases room_area, sqft, square_feet, floor_area, A) and optional ceiling_height in feet (aliases height, ceiling, ceiling_ft, H; default eight) and climate_factor as a positive load multiplier (aliases climate, factor, climate_multiplier, cf; default one). Area must be a finite positive number within the published absolute range so intermediate products remain finite in IEEE double precision on the Worker and in the browser. Non-positive area is the primary hard error this capability advertises: zero or negative square footage cannot define a room load and returns invalid_input naming area. Numeric strings are accepted for every quantity the same as JSON numbers. On success the body echoes rounded area, ceiling_height, and climate_factor; publishes base_btu_per_sqft (always twenty), base_btu, height_factor, volume_cuft, btu, tons, recommended_tons as the half-ton ceiling, recommended_btu as that step times twelve thousand, unit as BTU/h, formula as the human-readable equation string, message as a short English summary, and steps as an ordered array of substitution lines. Failed validation—missing area, non-finite numbers, non-positive area, or values outside absolute limits—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item.
Where a cooling tonnage calculator earns its keep
Curriculum authors for HVAC 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.
Integration use cases
Golden fixtures for HVAC quoting apps
Developers generate known-good tonnage cases plus deliberate non-positive area rejections for unit tests and continuous integration.