Estimate HVAC BTU needed for room size
A 300 square foot room with an 8 foot ceiling, average sun and 2 people needs about 6000 BTU per hour, half a ton of cooling. Enter your room to compare units before you shop. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Square feet
- 300
- Ceiling height
- 8
- Sun exposure
- Weighted average
- Occupants
- 2
- Ceiling height ft
- 8
- Base btu
- 6,000
- Height factor
- 1
- Sun factor
- 1
Estimate the HVAC cooling capacity a room may need from its floor area and three practical adjustments. Enter positive square footage, then describe the ceiling height, general sun exposure, and typical number of occupants. The calculator returns a transparent BTU-per-hour estimate, an equipment-shopping capacity rounded up to a 500 BTU step, and approximate refrigeration tons. It uses deterministic rule-of-thumb guidance for early planning and comparisons. It is not a substitute for a Manual J calculation or advice from a qualified HVAC professional, especially for unusual construction, extreme climates, or whole-building systems.
Start with room area and understand the baseline
The estimate begins with the room's floor area in square feet. Measure the conditioned floor rather than the exterior footprint: for a simple rectangle, multiply interior length by interior width; for an irregular room, divide it into rectangles, calculate each area, and add them. The calculator applies a baseline of 20 BTU per hour for every square foot.
A 300-square-foot room therefore begins at 6,000 BTU per hour before other factors are considered. This familiar rule of thumb is useful because it provides a quick, consistent comparison between rooms, but it deliberately simplifies the physics. Actual heat gain also depends on outdoor design temperature, insulation, air leakage, window type and orientation, appliances, duct conditions, and connections to adjacent spaces.
Square footage must be positive because zero or negative area cannot represent a cooling load; invalid values produce an input error instead of a misleading result. Treat the baseline as the first planning number for a single room, not as permission to purchase equipment without checking the building and manufacturer guidance. If your measurements are in square metres, convert them to square feet before entering them so the 20-BTU factor is applied to the correct unit.
Adjust for ceiling height, sunlight, and people
An eight-foot ceiling is the baseline. The calculator scales the area load by ceiling height divided by eight, reflecting that a taller room contains more air and often has more wall surface exposed to heat. For example, a ten-foot ceiling applies a factor of 1.25.
Sun exposure then applies a broad adjustment: shaded rooms use 0.90, average exposure uses 1.00, and sunny rooms use 1.10. Choose the description that represents the room during the hottest part of the day, paying attention to large windows and west-facing glass rather than momentary cloud cover. Occupancy is handled separately because people release heat and moisture.
Two occupants are included in the baseline; each regular occupant above two adds 600 BTU per hour. Enter the number normally present when cooling matters, not the maximum number who might briefly visit. These factors are intentionally general so the result remains easy to explain and reproduce.
They cannot capture commercial lighting, kitchen equipment, server racks, poor insulation, open stairways, or major infiltration. If any of those conditions apply, regard the result as a preliminary estimate and ask an HVAC professional to calculate the detailed sensible and latent loads.
Read the result and choose equipment responsibly
The response separates the baseline, height factor, sun factor, and occupant adjustment so you can see exactly how the estimate was formed. The estimated BTU per hour is the direct arithmetic result. The recommended capacity rounds that figure upward to the next 500 BTU per hour, which is convenient for comparing common room air conditioners and small-system ratings.
Approximate tons are also shown by dividing the unrounded estimate by 12,000, since one refrigeration ton equals 12,000 BTU per hour. Do not assume that a substantially oversized unit is safer. Excess capacity can shorten cycles, reduce moisture removal, create uneven temperatures, increase noise, and waste money, while undersizing can leave the room uncomfortable during design conditions.
Compare the recommendation with the available equipment sizes and the manufacturer's coverage table, then consider insulation, windows, local climate, air leakage, heat-producing devices, and whether nearby spaces are open to the room. A contractor performing a recognized residential load calculation can incorporate those details and verify airflow and duct requirements. This tool is best used to establish a sensible range, compare scenarios, document assumptions, or prepare questions before requesting a quote.
What you can do with it
Compare bedroom air conditioners
Estimate a practical BTU range from bedroom area, ceiling height, afternoon sun, and usual occupancy before comparing product specifications.
Prepare for an HVAC quote
Record a transparent preliminary load and its assumptions so a contractor can explain how a detailed calculation differs.
Evaluate changing room conditions
Compare how a taller ceiling, sunnier exposure, or more regular occupants changes the rule-of-thumb cooling estimate.
FAQ
What formula does the estimator use?
It multiplies square feet by 20, then by ceiling height divided by 8 and the sun factor. It adds 600 BTU per hour for each occupant above two.
How should I choose sun exposure?
Use shaded for little direct solar gain, average for ordinary mixed exposure, and sunny for strong direct sun or substantial sun-facing glass.
Is this the same as a Manual J calculation?
No. This is general rule-of-thumb guidance. A Manual J calculation considers climate, construction, leakage, windows, and other detailed loads.
How many BTU does a 300 square foot room need?
About 6000 BTU per hour, or half a ton, with an 8 foot ceiling, average sun and 2 people. A taller ceiling, more sun or more people push the figure up.
How much do extra people add to the BTU estimate?
Two people are already included. Each regular occupant beyond two adds 600 BTU per hour, so count the people usually in the room when cooling matters, not the most who might visit.
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/hvac-btu-room-size-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"square_feet":300}'const res = await fetch("https://api.kit.forhosting.com/build/hvac-btu-room-size-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"square_feet": 300
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/build/hvac-btu-room-size-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"square_feet": 300
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/build/hvac-btu-room-size-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"square_feet":300}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"square_feet":300}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/build/hvac-btu-room-size-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"square_feet": 300
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "build.hvac_btu_room_size_estimate",
"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
Read the result and choose equipment responsibly
API requests cost $0.002, while the same deterministic calculation can be explored in the browser.
Technical questions
What happens if square footage is zero or negative?
The request returns an invalid_input error because square footage must be positive.
How much does the API request cost?
A successful API request costs $0.002. The browser version uses the same deterministic calculation.