Pool Heater Size Calculator
Two geometry numbers, not one — volume sets the heat-up energy, surface area sets the loss. An honest BTU range rather than a fake-precise single number, because evaporation genuinely varies with weather. And the lever that changes the answer more than the heater you pick: a cover.
Hook
Almost every pool-heater calculator asks for one number — your gallons — and hands you a heater size.
But heating a pool is really two different problems with two different geometry numbers: the energy to warm the water depends on its volume, while the heat it losesdepends on its surface area. Get those two confused and you'll buy a heater that's too small for a windy, uncovered pool — or far too big for a covered one.
Promise
This calculator sizes your heater from the actual physics: the heat-up energy from your volume, the standing heat loss from your surface area, your climate, and whether you run a cover. You'll get an honest heater-size range (not a fake-precise single number, because evaporation genuinely varies with weather), the heat-up time that size delivers, and the one change that cuts heating load the most. Every term derived on the page.
Here's the deal: a pool heater has two jobs — warm the water up, and then keep replacing the heat that escapes the surface — mostly as evaporation. Size it for the heat-up time you want plus the loss at your conditions, and you land it right. We'll show you both halves, and why a cover changes the answer more than almost anything else.
What you'll give us
Both halves of the physics: volume for the heat-up energy and surface area for the standing loss. Don't know your surface? Enter length × width or fall back to a 5-ft average-depth estimate from your gallons — the result panel labels the estimate clearly. The volume calculator deep-links here for the gallons.
The calculator
Pick a mode (size a heater, or compute heat-up time for one you have), fill the fields, hit Calculate. The result panel reports a class range (never a single fake-precise BTU number), shows the covered alternative regardless of your cover toggle, and breaks the math into its two halves — exact and estimate, labelled differently.
Don't know your gallons? Pool volume calculator — two minutes, any shape, deep-links straight back here with ?gal= prefilled.
Two numbers, not one — volume heats, surface loses
The page's signature insight, and the difference between this calculator and the “just tell me your gallons” ones.
The energy to warm your pool is set by how much water there is — its volume. But the heat your pool loses, hour after hour, is set by how much water is touching the air — its surface area. Those are two different geometry numbers. A deep, small-footprint pool and a shallow, sprawling one can hold the same water but lose heat at completely different rates, because the shallow one has far more surface exposed.
The proof. Two 20,000-gallon pools, same ΔT, same wind, both uncovered:
Deep pool · 500 ft²
52,500 BTU/hr
Standing loss. A 20,000-gal pool that's tall and narrow loses heat at this rate.
Shallow pool · 1,000 ft²
105,000 BTU/hr
Standing loss. Same water, double the surface, exactly double the loss.
Size off gallons alone and you'll undersize the wide pool every time — by a heater class or more. That's why the calculator above asks for surface area as its own input. If you're not sure, the pool volume calculator gives you the gallons and you can plug a tape-measure number for length × width here — that pair gets you to a sharper heater size than any “BTU per gallon” chart can.
Where the heat actually goes — evaporation is the thief
The component breakdown that justifies the model and sets up the cover lever. Read this once and the cover advice in the next section feels obvious.
Your pool loses heat four ways, and they're not equal. Evaporation is the giant — typically half to two-thirds of the total — because every pound of water that leaves as vapor carries off about 1050 BTU of latent heat with it. Convection (wind cooling the surface) and radiation (heat beaming to a cold night sky) split most of the rest. Conduction into the ground is almost nothing.
That latent-heat mechanism is why evaporation is so costly per pound. The physics doesn't care about your air temperature directly — it cares about the vapor-pressure difference between your warm water and the air just above it. That gap is what humidity and wind set, which is why both matter so much, and why “heat loss = U × area × ΔT” is a useful engineering simplification rather than an exact law. The pool evaporation calculator models that vapor-pressure mechanism specifically — and reconciles to ~60 % of this page's combined surface loss at standard conditions, so the two pages describe the same physics by construction.
We lump the surface losses into a typical-conditions combined coefficient because that's the form a homeowner calculator can actually use. The real number swings 2–3× with your weather — which is exactly why we give the heater size as a range, not a single number. The honesty boundary the §12 negative-space list spells out is built around this fact: the engine is precise; the world isn't.
The cover changes everything
Most heat-loss savings live in evaporation, and a cover shuts evaporation down. This is the single highest-leverage change you can make.
A cover doesn't just trap a little warmth — it shuts down the dominant loss mechanism entirely. In our standard E1 example, a cover cuts the standing loss from 84,000 to 29,400 BTU per hour — it saves 54,600 BTU every hour the pool sits. Day and night. Continuously.
The sizing payoff: with a cover, the same pool needs a markedly smaller heater (or the same heater heats far faster), because the heater spends its output warming water instead of chasing evaporation. The calculator above always shows you the covered alternative regardless of which toggle you pick — surfacing the lever by construction rather than burying it behind a checkbox.
The cost side of this story — what the saved BTU translate to in dollars per season — lives on the future cost-to-heat calculator (shipping in a later phase). We won't fuel-wash the comparison here; the energy savings are real either way.
Gas vs heat pump — the speed/cost fork
Two pools, two philosophies. Sized differently, used differently.
A gas heater is a fire hose — 200,000 to 400,000 BTU an hour — so it heats fast and shrugs off cold snaps, but it burns expensive fuel. A heat pump is a slow, efficient pump that moves heat from the air instead of making it: it puts out far less per hour (100,000–140,000) so it heats a cold pool over days, not hours, but it can deliver four to six units of heat per unit of electricity, so it's cheap to run.
The sizing consequence (E5). A 110,000 BTU/hr heat pump on our example pool takes ≈96 hours — ~4 days — to heat from cold. That's fine for a pool you keep warm continuously (its real job is maintenance), wrong for one you want hot by Saturday. Gas wins for fast / intermittent; heat pump wins for steady / economical.
The cost math — what each fuel costs per BTU at your local rates, the COP curve as air temperature drops, the season-long dollars — is the cost-to-heat calculator's job (shipping in a later phase). We won't fuel-wash the comparison here. Both are legitimate choices for the right pool and the right user.
Where the numbers come from
The page's engine in five steps. First-principles where the physics allows; clearly-labelled engineering estimate where it doesn't.
Step 1 · heat-up energy (the EXACT half)
Energy = mass × specific heat × ΔT. In pool units that's gallons × 8.345 lb/gal × 1 BTU/(lb·°F) × ΔT °F. Water's specific heat is exactly 1 by the definitionof the BTU — the unit was built around it. The 8.345 lb/gal is imported from the salt calculator (same constant the chemistry pages use; CRC at 60 °F), so the two engines can't disagree about what a gallon weighs.
Step 2 · surface heat loss (the ESTIMATE half)
Loss BTU/hr = U × surface ft² × (Tw − Ta). U = U_BASE + WIND_COEFF × wind mph; covered drops U to ~35% of uncovered. U is a typical-conditions engineering estimate that lumps evaporation, convection, and radiation into one ΔT-proportional form. The real value swings with humidity and wind.
U_BASE = 5 BTU/(hr·ft²·°F) · WIND_COEFF = 0.4 BTU/(hr·ft²·°F·mph) · evaporation carries latent heat ≈ 1050 BTU/lb (the physics behind §4.2).
Step 3 · required heater size (SIZE mode)
required BTU/hr = (energy from step 1) ÷ heat-up hours + (loss from step 2). Round UP to the next real heater class for the headline; show the next class above as the upper end of the honest range.
Step 4 · heat-up time (HEAT-UP mode)
time = energy ÷ (heater output − loss). The subtraction is the catch: if the heater's output is at or below the standing loss, you don't get a long heat-up time, you get a heat-up that never finishes. The engine flags this (we don't print a time-to-never-arrive).
Step 5 · sanity check (E1)
20,000 gal, 800 ft², ΔT 15 °F, air 70 °F, average wind, uncovered, 24 hr heat-up. Heat-up energy = 2,503,500 BTU. Standing loss = 84,000 BTU/hr. Required = 188,313 BTU/hr → a 200,000–250,000 BTU/hr heater. That's the worked example E1, and it matches the engine to the BTU.
Want to start with sharper inputs? The pool volume calculator gives you gallons for any shape, and you can plug a tape-measure length and width here for surface area. The two-number wedge is real — give it both numbers and the recommendation tightens.
How fast the pool actually warms
Three real engine curves: a 250K gas heater uncovered, the same heater with a cover, and a 110K heat pump uncovered. All at the E1 conditions, computed directly from the engine's loss model — not fabricated curves.
Worked examples — eight common scenarios
Every BTU below comes from the same engine. The §4.1 surface-vs-volume wedge (E7) and the cover wedge (E6) are locked as build invariants — drift in the engine would trip the gate.
Example 1
What size heater for a standard inground (the core case)
20,000 gal · 800 ft² (20×40) · raise 70 → 85 °F · air 70 °F · avg wind · uncovered · 24-hr heat-up
≈188K BTU/hr → a 200K–250K heater
Heat-up energy 2,503,500 BTU. Standing loss 84,000 BTU/hr.
The standing loss is nearly as big as the heat-up load — that's the evaporation tax on an uncovered pool.
Example 2
Same pool, with a cover (the cover lever)
Identical to E1 but covered
Required drops to ≈134K → a 150K heater does the same job
Standing loss falls from 84,000 to 29,400 BTU/hr — a whole heater class smaller, or your 250K heats it far faster.
A cover shrinks the heater you need by a whole class — because it kills the evaporation that was half your load.
Example 3
How long will my 250K heater take? (heat-up-time mode)
250,000 BTU/hr gas heater on the E1 pool, uncovered
≈15 hours
Net power = 250,000 − 84,000 loss = 166,000 BTU/hr. Cover-on alternative: 11.3 hr.
Even a big heater spends a third of its output just replacing losses on an uncovered pool — cover it and the same heat-up takes far less.
Example 4
Spa fast heat (small mass, big heater)
400-gal spa · 30 ft² surface · raise 60 → 102 °F · air 60 °F · covered · 250,000 BTU/hr
≈34 minutes
Heat-up energy 140,196 BTU; net power ≈ 246,913 BTU/hr.
Spas heat in minutes, not hours — tiny thermal mass against a big heater. The opposite of a pool's inertia.
Example 5
Heat-pump sizing (the speed/cost fork)
110,000 BTU/hr heat pump on the E1 pool, heating from cold (uncovered)
≈96 hours (~4.0 days)
Net power = 110,000 − 84,000 = 26,000 BTU/hr.
A heat pump's job is to HOLD temperature cheaply, not to heat from cold fast. Size it for maintenance and keep the pool warm continuously; if you need hot-by-Saturday, that's gas.
Example 6
What a cover actually saves (the wedge, quantified)
E1 conditions
54,600 BTU every hour the pool sits
Uncovered standing loss 84,000, covered 29,400. Continuous, day and night.
That's not a rounding error — it's more than half your heat loss, gone, for the price of a cover. The biggest single lever in pool heating.
Example 7
Same gallons, double the loss (the §4.1 proof)
Two 20,000-gal pools · ΔT 15 · average wind · uncovered: deep 500 ft² vs shallow 1,000 ft²
52,500 vs 105,000 BTU/hr — exactly double
Same water, same heat-up energy, completely different standing loss.
Heat loss tracks surface, not volume. A wide shallow pool needs a bigger heater than its gallons suggest — which is why we ask for both numbers.
Example 8
Wind more than doubles the loss
E1 pool · ΔT 15 · uncovered: still air vs 15 mph wind
60,000 vs 132,000 BTU/hr — 2.2× swing
Wind strips the warm boundary layer above the water, accelerating evaporation.
An exposed, windy pool needs a markedly bigger heater than a sheltered one. A windbreak or a cover is worth real BTU.
Reference tables
Three crawlable tables, CC BY 4.0. Note the honesty split: T2 is exact physics; T1 and T3 are typical-conditions estimates. Different colours of math, labelled differently.
T1 · Recommended heater class by surface area × ΔT
ESTIMATE RANGE24-hr heat-up · average wind (5 mph) · uncovered · plaster-pool typical air ΔT. Each cell is the recommended class + the next class above; weather can swing the answer 2–3× because evaporation does.
| Surface (ft²) | ΔT 10 °F | ΔT 15 °F | ΔT 20 °F | ΔT 25 °F |
|---|---|---|---|---|
| 300 | 150–200K | 150–200K | 150–200K | 150–200K |
| 500 | 150–200K | 150–200K | 200–250K | 200–250K |
| 800 | 200–250K | 250–333K | 333–400K | 333–400K |
| 1,000 | 250–333K | 333–400K | 333–400K | 400–400K |
| 1,500 | 333–400K | 400–400K | 400–400K | 400–400K |
T2 · Heat-up energy by volume × ΔT (BTU)
EXACT PHYSICSgallons × 8.345 lb/gal × 1.0 BTU/(lb·°F) × ΔT °F. No weather variance — water's specific heat is the same in spring and summer. This is the half of the math you can trust to the BTU.
| Volume (gal) | ΔT 10 °F | ΔT 15 °F | ΔT 20 °F | ΔT 25 °F | ΔT 30 °F |
|---|---|---|---|---|---|
| 5,000 | 417K | 626K | 835K | 1043K | 1252K |
| 10,000 | 835K | 1252K | 1669K | 2086K | 2504K |
| 15,000 | 1252K | 1878K | 2504K | 3129K | 3755K |
| 20,000 | 1669K | 2504K | 3338K | 4173K | 5007K |
| 25,000 | 2086K | 3129K | 4173K | 5216K | 6259K |
| 30,000 | 2504K | 3755K | 5007K | 6259K | 7511K |
T3 · Standing-loss multipliers (the levers)
ESTIMATERelative effect of the levers you can pull on a 20×40 pool (800 ft²) at ΔT 15. Cover ratio is the COVER_LOSS_FRACTION engine constant; wind chips use the sheltered / average / windy preset values.
| Lever | Loss (BTU/hr) | Vs uncovered baseline |
|---|---|---|
| Uncovered baseline (avg 5 mph wind) | 84,000 | 1.00× |
| + cover | 29,400 | 0.35× (35% of uncovered) |
| Wind preset: Sheltered (~1.5 mph) | 67,200 | 0.80× baseline |
| Wind preset: Average (~5 mph) | 84,000 | 1.00× baseline |
| Wind preset: Windy (~15 mph) | 132,000 | 1.57× baseline |
All three tables released under CC BY 4.0. Attribute PoolSolver and link back. T2 cells are EXACT physics; T1 and T3 cells are typical-conditions estimates — quote them with the label they ship with.
Sources & methodology
This is the foundation of the shared lib/thermal/ engine now consumed by the cost-to-heat, evaporation, and heat-up-time calculators — the heating cluster is complete.
Heat-up energy follows the first-principles definition E = mass × specific heat × ΔT. Water's specific heat is exactly 1.0 BTU/(lb·°F) by the definition of the British thermal unit; the 8.345 lb/gal is the same CRC water-density constant the salt and chemistry pages import from lib/dosing/core.ts. One source for water's weight; the two engines can't disagree about it.
Heat-loss model. The four-mechanism decomposition (evaporation ~50–70 %, convection, radiation, conduction) traces to standard ASHRAE pool-engineering references. We lump the surface losses into a combined U-coefficient that is linear in wind and dropped to ~35 % of uncovered when a cover is in place. This is a typical-conditions engineering estimate, not a constant of nature— evaporation tracks the water-to-air vapor-pressure difference, which swings 2–3× with humidity and wind. Every place we expose U or its components, the label says “estimate.”
Latent heat of vaporization (~1,050 BTU/lb) is the physics behind why evaporation is so costly per pound of water lost, and why a cover (which shuts down evaporation) is the biggest lever. The cover-fraction constant in the engine is the simplification of that physics — calibrated to ASHRAE-typical conditions, not derived from your individual weather.
Heater output classesfollow residential manufacturer product lines (150K / 200K / 250K / 333K / 400K for gas; 100K–140K for heat pumps). The sizing recommendation rounds UP to the next real class and surfaces the next class above as the upper bound of an honest range. We don't print a single fake-precise BTU number; the §12 negative-space list is built around refusing it.
The honesty paragraph (heating edition)
The heat-up half is exact. The loss half is a range. That asymmetry is the whole methodology. T2 (heat-up energy by volume × ΔT) ships labeled EXACT; T1 (heater class) and T3 (lever multipliers) ship labeled ESTIMATE. We give a class range, not a single number, because evaporation varies with weather you can't enter in a form field — and a calculator that pretends otherwise is making the same error this page exists to fix. Cost is out of scope here — running cost depends on fuel, efficiency, and your local rates, which is the cost-to-heat calculator's job. And gas-line / electrical / combustion hookup is a licensed-trade job: we size, a pro installs.
About two coincidental-digit constants. The thermal engine's WATER_SPECIFIC_HEAT = 1.0 and WIND_COEFF = 0.4share digit strings with two chemistry constants on this site (dihydrate calcium chloride purity = 1.0 in the calcium engine, and the Langelier C-term offset = 0.4 in the LSI engine). They are genuinely different physical concepts — water's specific heat is defined by the BTU, and the wind coefficient is a heat-transfer correlation. The grep gate that enforces single-source discipline counts assignments per concept, not digit appearances. Documenting it here so any future “consolidate” instinct is checked.
The heating cluster — now complete. The cost-to-heat, evaporation, and heat-up-time calculators all consume this same lib/thermal/heatloss.ts engine — designed shared, not page-local — the way the chemistry cluster shares acidbase.ts across the pH, alkalinity, and LSI pages. Explore the volume, LSI, and full calculator hub for everything live.
Frequently asked questions
What size heater do I need for my pool?
Why do you ask for surface area AND volume?
How long will it take to heat my pool?
Does a pool cover really save that much?
Gas heater or heat pump — which size?
Why does wind matter so much?
Can a heater be too small?
How much does it cost to run? / What's the BTU per gallon?
Related calculators
Next in Pool Heating: Pool Heating Cost Calculator.
Related across clusters: Pool Pump Run Time Calculator.
All Pool Heating calculators: browse the hub.