ForHosting KIT · Home, food & hobbies

Water heater sizing calculator

A household of four with a 70-gallon morning peak on an electric heater needs a 50-gallon tank. Enter how many people live at home, the busiest-hour demand if you know it and the fuel, then compare the standard size with product labels. 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
Occupants
4 gal
Peak hour demand
70
Fuel
Electric
You get
Recovery factor
0.7 gal
Peak hour demand gal
70
Peak hour demand liters
264.97882488
Occupant baseline gal
50

Choosing a storage water heater tank that is too small leaves the last showers cold during the morning rush; choosing one that is far too large wastes purchase cost, floor space, and standby heat. Homeowners, landlords, and remodel planners need a transparent number they can compare to the first-hour rating printed on a unit label. This water heater sizing calculator takes the number of people in the household and the optional peak-hour hot water demand, combines an occupant baseline table with a fuel-type recovery factor, and rounds up to common commercial tank sizes in US gallons and liters. When you omit peak demand, the tool estimates a morning-style peak from occupants so you still get a usable recommendation.

How occupants and peak-hour demand set tank size

Residential storage water heaters are sized for the busiest hour of the day, not only for average daily use. Manufacturers publish a first-hour rating that estimates how many gallons of hot water the unit can deliver in sixty minutes when starting full and recovering heat during that hour. Your peak-hour demand should be at or below that rating.

This calculator builds a conservative storage recommendation in two layers. First it applies a household-size baseline used widely as a rule of thumb: about thirty gallons for one person, forty for two, fifty for three or four, sixty for five, eighty for six, then ten more gallons per additional person up to a practical one-hundred-twenty-gallon ceiling for common retail tanks.

The recommended raw size is the maximum of the occupant baseline and the tank-from-peak value, then rounded up to the next standard commercial size such as forty, fifty, sixty, or eighty gallons.

Home remodel and replacement quotes

Enter household size and an estimated morning peak to recommend a forty-, fifty-, or eighty-gallon tank before comparing first-hour ratings on product labels.

How does the water heater sizing calculator choose tank size?

It takes the maximum of an occupant baseline table and peak-hour demand times a fuel recovery factor, then rounds up to a common commercial tank size in US gallons (also returned in liters).

Why does fuel type change the recommendation?

Gas recovers heat faster than electric storage, so a smaller tank can still meet the same first-hour demand. Heat-pump units use a higher stored-water share than gas.

What size water heater does a family of four need?

With a 70-gallon peak hour on an electric heater, a 50-gallon tank. The household table alone gives 50 gallons for three or four people, and the peak only takes over when it calls for a bigger tank.

What if I don't know my peak-hour hot water demand?

Leave it blank. The calculator then estimates a morning-style peak from the number of occupants, 8 gallons plus 12 per person, and still gives you a usable tank size and a first-hour rating to look for.

How do I use the first-hour rating printed on the label?

It is how many gallons a full heater delivers in sixty minutes while it reheats. Choose a model whose rating meets or exceeds your peak-hour demand; the result shows that target next to the recommended tank.

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/home/water-heater-sizing

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/home/water-heater-sizing \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"occupants":4}'
{
  "occupants": 4
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "home.water_heater_sizing",
  "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.

How occupants and peak-hour demand set tank size

Second it converts peak-hour demand into a tank-from-peak figure by multiplying demand by a recovery factor that depends on fuel: electric units recover more slowly so a larger share of the hour must come from stored water; gas recovers faster; heat-pump hybrids sit between electric storage behavior and high recovery.

Input fields, units, fuel, and response shape

POST a JSON body with occupants as a required whole number from one to thirty people living in the home. Optionally send peak_hour_demand as a non-negative volume of hot water needed in the busiest hour, using unit gal for US gallons (default) or L for liters. Optionally set fuel to electric (default), gas, or heat_pump so the recovery factor matches the heater type you plan to install. Aliases such as people, household_size, peak_demand, and natural_gas are accepted so forms and spreadsheets can map without renaming every column. Missing occupants, non-integer people counts, negative demand, or unknown fuel strings fail with invalid_input and are not billed. On success the body echoes occupants, unit, and fuel; reports whether peak demand was estimated; returns peak demand, occupant baseline, tank-from-peak, and raw size in both US gallons and liters; gives recommended_tank_gal and recommended_tank_liters after standard-size round-up; includes recommended_first_hour_rating fields matching the peak target; and adds matched_standard, method, formula, message, and step strings for display.

Where a water heater sizing API earns its keep

Home-improvement sites and SEO landings that rank for water heater sizing calculator need a live tool whose free browser path matches the paid automation path on the same pure module. Property managers batch-size replacements across units by posting occupants and a measured or assumed peak hour from laundry and shower schedules. Failed validation does not consume balance. HVAC and plumbing estimators embed the call in quote forms so customers see a tank gallon suggestion next to first-hour rating language before a site visit. Spreadsheet plugins and home-audit apps call the API to fill a recommended_tank_gal column without shipping opaque vendor tables.

Property management batch sizing

POST occupants and peak-hour demand for each unit type to fill recommended_tank_gal columns in replacement schedules and purchase orders.

SEO widgets and contractor lead forms

Embed the free browser path on a water heater sizing page so visitors get the same gallon recommendation your API later uses in automation.

What if I do not know peak-hour demand?

Omit peak_hour_demand. The calculator estimates peak gallons as 8 + 12 × occupants and sets peak_estimated to true so you can refine later with a fixture audit.

What units does the API accept?

occupants is a whole number of people. peak_hour_demand uses unit gal (US gallons, default) or L (liters). Results always include both gallons and liters.

What does the water heater sizing calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →