PoolSolver

Pool Heat-Up Time Calculator

The honest answer to “how long?” — accounting for the heat your pool sheds while it warms, so 15 hours and not the 10 you'd get the lazy way. Plus the reverse: tell us how long you'll run the heater and we'll tell you how warm the pool will be — the planning answer for “swim by Saturday?” no rule of thumb gives.

Hook

“How long to heat my pool?” feels like a one-line question with a one-line answer.

It isn't, because two things are happening at once: your heater is adding energy, and your pool is shedding it. The warmer the water gets, the bigger its gap to the cooler air, so the faster it leaks — the climb slows toward the target. A pool gains the first few degrees briskly and then crawls the last stretch. And if your heater is small and your pool's uncovered on a windy day, it may never reach the target at all.

Promise

This calculator gives you the real heat-up time for your pool and your heater — gas or heat pump — accounting for the heat lost while it warms, and honest that the answer is a range. Flip it around and it'll tell you how warm your pool will be after any number of hours, so you can answer the only question that actually matters: turn the heater on whento have it warm by Saturday. And it'll tell you straight if your heater simply can't get there. Every term derived on the page.

Here's the deal: heat-up time is just the energy you need divided by the netpower you've got — your heater's output minus what the pool is losing. The catch is that the loss grows as the water warms, so the net power shrinks and the climb slows. Cover the pool and you cut the loss, which both speeds the heat-up and lets a smaller heater finish the job.

What you'll give us

The pool inputs (volume, surface area), the climate (water + air temp, wind, cover), and the heater (output + fuel). Same shape the sizing, cost, and evaporation pages use — same engine. The volume calculator deep-links here with ?gal= prefilled.

Two modes, one enginetime-to-target (the classic) · or how-warm-by-when (the planning answer no clone gives)TIME TO TARGETcurrent 70°F → target 85°Fengine returns ≈ 15 hrsame function as the sizing page's heat-up-time modeTEMP BY TIMErun heater 8 hr → degrees gainedengine returns + 8 °F → 78 °Fthe planning answer — “warm by morning?”What you give the calculatorPPool volumegal · L · m³ (?gal= deep link)SSurface areaft² or L × W (the loss footprint)CCurrent water°F right nowTTarget water OR hoursdepending on modeAAir temperaturetypical for the runWWind exposuresheltered · average · windyCCover (y/n)the lever that runs through the clusterHHeater outputBTU/hr · gas or heat pumpSame engine as the sizing, cost, and evaporation pagesTIME mode is the EXACT same function the sizing page already uses — both pages report the same hours for the same inputs.The cluster closes here: every thermal page links to every relevant sibling.
Pick the question you have. If you have a target temperature and want a duration: TIME mode. If you have a duration and want to know how warm you'll get: TEMP mode. The inputs are the same — pool + climate + heater — and so is the underlying physics: net power = output minus standing loss, and energy = volume × specific heat × ΔT. The result is the answer to whichever side of the equation you didn't know.
Input diagram showing the two-mode toggle (TIME to target / TEMP by time) and the eight inputs the heat-up-time calculator needs.

The calculator

Pick a mode — TIME to target (the classic) or TEMPERATURE by time (the planning reverse) — fill the fields, hit Calculate. The result panel returns the headline hours or degrees, the cover-on alternative regardless of toggle, and the can't-reach refusal when your heater is too small for the conditions.

Surface area (sets the standing loss)

Blank → estimated from gallons at 5 ft depth.

Wind exposure
Cover

The result panel always shows the cover-on alternative — a cover speeds the heat-up materially.

Fuel

Why heat-up time isn't a simple number

The reason “how long to heat my pool” has no one-line answer is that your pool is fighting you the whole time. Every hour the heater adds energy, the pool sheds some of it to the air — and the warmer the water gets, the bigger the gap to the cooler air, so the faster it leaks. That means the net power doing the actual warming shrinks as you climb.

Any calculator that just divides gallons by heater size and hands you a number is ignoring the loss — and the loss is often a third of your heater's output or more. On our standard pool, the 250,000 BTU/hr sticker becomes 166,000 of net power once the 84,000 of standing loss is subtracted, which is why the heat-up is about 15 hours and not the 10 you'd get the lazy way.

Net power = the climbstandard pool, 250k gas, uncovered — a third of the heater is just replacing what the pool sheds0k70k140k210k280kBTU/hr (thousands)84k loss166k NET250k output≈ 15 hr to climb 15 °F · not the 10 you'd get ignoring loss(2,503,500 BTU energy ÷ 166,000 BTU/hr net = 15.08 hr)
Your heater's output is one number; the heat your pool is losing while it warms is another. What actually drives the climb is the difference — the net power — and it's usually a third less than the sticker. That's why the heat-up takes 15 hours and not the 10 you'd get dividing energy by output. The cover lever cuts the loss; the next sections show by how much.
Stacked bar showing 250,000 BTU per hour heater output split into 84,000 standing loss and 166,000 net power that warms the pool.

A cover heats your pool faster

A cover doesn't just save money and water — it heats your pool faster. Because heat-up time is energy divided by netpower, and a cover slashes the loss the heater is fighting, covering the pool while it heats means more of the heater's output goes into warming instead of chasing evaporation.

On our standard pool, a cover takes the heat-up from about 15 hours to about 11 — nearly four hours faster, on top of the money it saves (see the cost calculator) and the water it keeps (see the evaporation calculator). One cover, four payoffs across the cluster: faster, cheaper, less water lost, smaller heater needed.

A cover steepens the climbstandard pool · 250k gas · curves integrate loss at each step (the F7 nonlinearity made honest)70°F75°F80°F85°F0h4h8h12h16hrun time (hours)water temperaturetarget 85°Funcovered ≈ 15 hrcovered ≈ 11 hr
Both curves rise briskly at first then flatten as the pool warms — because the warmer the water, the bigger its gap to the air, and the faster it sheds heat. The net power doing the actual warming shrinks, and the climb slows. The cover curve sits above the uncovered one throughout because it's fighting less loss. The simple-formula time we headline (the asserted number) is the marker on the target line; the integrated curve hits it a touch later, which is the small conservatism we're open about.
Covered vs uncovered temperature-versus-time curves for the standard pool, both showing the F7 nonlinearity (flattening near target).

How warm by morning? The reverse question.

Here's the question people actually have: not “how long for a full heat-up” but “I want to swim Saturday afternoon — when do I turn the heater on?” So flip the calculator around. Tell it how many hours you'll run the heater, and it tells you how many degrees you'll gain.

Run a 250k heater on our standard pool overnight — eight hours — and you'll gain about eight degrees: a 70-degree pool is a swimmable 78 by morning. Want 80+? Start by dinnertime. Now you know to start it Friday night, not Saturday lunch — the planning answer no rule of thumb gives you.

How warm by when?standard pool · 250k gas · uncovered — degrees gained at the same loss anchor as the time-mode headline+0°F+5°F+10°F+15°F+20°F+25°F+30°F0h4h8h12h16h20h24h28hrun time (hours)degrees gainedBy morning · 8 h+8 °F → 78 °FFriday → Saturday · 16 h+16 °F → 86 °FBy tomorrow this time · 24 h+24 °F → 94 °F
Run the heater overnight (8 hours) and a 70-degree pool is a swimmable 78 by morning — start it Friday after dinner for a Saturday-lunch swim. Want 80+? Add a few more hours. The rate is roughly a degree per hour at these conditions; cover the pool and it's faster. The simple-formula loss anchor (the assertion-locked headline convention) is at the slight conservative side, so the real climb is a touch warmer than shown — the integrated curve in the previous chart makes the honest physics visible.
Reverse-mode chart of degrees gained over run hours for the standard pool with a 250k gas heater, with by-morning, Friday-Saturday, and 24-hour markers.

Gas vs heat pump: the time you're buying

If you're choosing between a gas heater and a heat pump, heat-up time is half the decision — running cost, on the cost calculator, is the other half. Gas is a sprinter: a 250k gas heater warms our standard pool in about 15 hours. A heat pump is a marathoner: a 110k unit on the same pool takes about four days from cold — because after the standing loss, its net warming power is small.

That's not a flaw; a heat pump's job is to holda warm pool cheaply, not to heat a cold one fast. If you heat from cold often and want it quick, that's gas. If you keep it warm all season economically, that's the heat pump. The two pages together — this one for time, the cost one for dollars — make the trade-off concrete.

Gas: hours. Heat pump: days.same standard pool — net power after the 84k loss decides the time0h25h50h75h100h15 hrGas 250k · sprinternet 166k after loss96 hr · ~4 daysHeat pump 110k · marathonernet 26k after lossheat pump's job is to HOLD a warm pool cheaply, not to heat a cold one fast — see the cost calculator for the dollars
It looks like a flaw, but it isn't — a heat pump and a gas heater are different tools. Gas burns fuel fast and pushes a lot of BTU; a heat pump moves heat from the air, so it puts out far less but costs far less per BTU delivered (see the cost calculator). If you heat from cold often and want it quick, gas. If you keep the pool warm all season economically, heat pump. The two pages together — this one for time, the cost one for dollars — make the trade-off concrete.
Side-by-side bars: gas 250k takes about 15 hours; heat pump 110k takes about 96 hours (four days) on the same standard pool.

Where the numbers come from

Same engine as the sizing, cost, and evaporation pages — no new physics, just inverted.

  1. Step 1 · energy = mass × specific heat × ΔT

    gallons × 8.345 lb/gal × 1.0 BTU/(lb·°F) × ΔT = the heat you need to add. For 20,000 gallons heated 15 °F that's 2,503,500BTU. Water's specific heat is exactly 1.0 by the definition of the BTU; the 8.345 lb/gal is the CRC density at 60 °F shared across this site's pages.

  2. Step 2 · standing loss = U × surface × ΔT

    The same lumped-U engine the sizing and cost pages use; covered drops U to ~35 % of uncovered. For our standard pool that's 84,000 BTU/hr uncovered, 29,400 covered. This is a typical-conditions estimate — evaporation swings it 2–3 % with humidity and wind, which is why heat-up time is a range.

  3. Step 3 · net power = output − loss

    Net power = heater output − standing loss. For our standard pool with a 250k gas heater, that's 250,000 − 84,000 = 166,000BTU/hr. The net is what actually climbs the temperature; ignoring the loss is the field's core mislead.

  4. Step 4 · time = energy ÷ net power (TIME mode)

    For E1: 2,503,500 ÷ 166,000 = 15.08 hours. Same function the sizing page uses — both pages report this number for the same inputs, by construction.

  5. Step 5 · degrees gained = net × hours ÷ thermal mass (TEMP mode)

    Pure algebraic inversion of step 4. degrees = net × hours ÷ (gallons × 8.345 × 1.0). For E6 (250k uncovered, 8 hr from 70 °F): 166,000 × 8 ÷ (20,000 × 8.345) = 7.96 °F ≈ 8 °F → ~78 °F by morning.

    We anchor the loss at “current + 15 °F” — the same convention as the time-to-target mode — so the two modes can't disagree on loss. That's a slight conservatism: the real loss is lower while the pool is still cool, so the actual climb runs a touch warmer than this simple formula predicts. The HeatUpCurves chart in §4.2 visualises the integrated honest physics.

Eight worked examples

All numbers consume the asserted lib/thermal/heatloss.ts engine — the same one the sizing, cost, and evaporation pages use. E1's TIME-mode result equals the sizing page's reported heat-up time by construction (same function).

E1 — Standard heat-up (the baseline)

20,000 gal, 800 ft², 70 → 85 °F, air 70 °F, average wind, uncovered, 250,000 BTU/hr gas → net 250,000 − 84,000 = 166,00015.08 hours.

Takeaway:a third of the heater is replacing loss while it warms — which is why it's 15 hours, not the 10 you'd get ignoring loss.

E2 — Same pool, covered (the cover speeds it up)

Identical but covered → loss drops to 29,40011.35 hours, nearly 4 hours faster.

Takeaway: cover the pool while it heats and more of the heater goes into warming instead of chasing evaporation — faster heat-up, plus the money and water a cover saves.

E3 — Heat pump from cold (the slow-marathoner reality)

Same uncovered pool, 110,000 BTU/hr heat pump → net 110,000 − 84,000 = 26,00096.29 hours (~4 days).

Takeaway:a heat pump heats a cold pool over days, not hours — by design. Its job is to hold a warm pool cheaply; for fast heat-from-cold, that's gas.

E4 — Spa (minutes, not hours)

400-gal spa, ~30 ft², 60 → 102 °F, covered, 250,000 BTU/hr → 34.07 minutes.

Takeaway:a spa's tiny water volume against a big heater means it's ready before you've finished tidying the deck — the opposite of a pool's inertia.

E5 — The heater that can't get there (the refusal)

20,000 gal, 800 ft², target needs ΔT 30, air 60 °F, windy (15 mph), uncovered, 100,000 BTU/hr → standing loss 264,000 BTU/hr exceeds the 100k output.

Net power is negative — the pool never reaches target.

Takeaway:a heater smaller than your standing loss can't warm the pool at all — it only slows the cooling. Cover first; then upsize.

E6 — How warm by morning? (the reverse-mode wedge)

Standard pool, 250,000 BTU/hr, uncovered, run 8 hours overnight from 70 °F. degrees = 166,000 × 8 ÷ (20,000 × 8.345) ≈ +8.0 °F → ~78.0 °F by morning.

Takeaway: ~8 °F overnight → a swimmable 78 °F by morning; want 80+? Start it by dinnertime, not just overnight.

E7 — Bigger heater, diminishing returns

Standard pool, compare 250k vs 400k gas (uncovered): 250k → ≈ 15.08 hr; 400k → net 316,000 → ≈ 7.92 hr. 60 % more output buys ~47 % less time — not proportional, because the loss is subtracted from both.

Takeaway:a much bigger heater heats faster but not proportionally, and it's capacity you pay for. The sizing calculator picks the right class; this shows the hours it buys.

E8 — Metric / cool climate

50 m³ (~13,209 gal), raise 18 °F-equivalent, cooler air, gas 250k → ≈ 13.30 hours.

Takeaway: the math is identical in metric; cooler air means more loss and a longer heat-up — cover it.

Reference tables

T1 · Heat-up time by pool size × heater output (uncovered, ΔT 15 °F)

ESTIMATE · typical conditions (air 70 °F, 5 mph wind). A cover speeds each cell ~25 %; em-dashes mark the can't-reach refusals (heater ≤ loss).

Pool150k200k250k400k
Small (12k gal · 500 ft²)15.4 hr10.2 hr7.6 hr4.3 hr
Standard (20k gal · 800 ft²)1.6 days21.6 hr15.1 hr7.9 hr
Large (30k gal · 1,100 ft²)4.5 days1.9 days1.2 days13.2 hr

T2 · Heat-up time by ΔT × fuel (standard pool, uncovered)

ESTIMATE · standard 20k-gal pool, 800 ft², air 70 °F, 5 mph wind. Gas 250k vs heat pump 110k.

ΔT (°F)Gas 250kHeat pump 110kSpeed gap
108.6 hr1.3 days3.6× longer
1515.1 hr4.0 days6.4× longer
201.0 daysNaN× longer
251.6 daysNaN× longer
302.5 daysNaN× longer

T3 · Temperature gained per run hours (standard pool, gas 250k, uncovered)

ESTIMATE · the reverse-mode planning reference. Loss anchored at “current + 15 °F” — a slight conservatism, see Methodology.

Pool1 hr4 hr8 hr16 hr24 hr
Small (12k gal · 500 ft²)+2.0 °F+7.9 °F+15.8 °F+31.6 °F+47.3 °F
Standard (20k gal · 800 ft²)+1.0 °F+4.0 °F+8.0 °F+15.9 °F+23.9 °F
Large (30k gal · 1,100 ft²)+0.5 °F+2.1 °F+4.3 °F+8.6 °F+12.9 °F

Tables released CC BY 4.0. All time entries are estimates at typical conditions; a cover speeds each ~25 %.

Methodology & sources

Time = energy ÷ net power — first principles. The energy and the loss both come from the SAME lib/thermal/heatloss.ts engine that the heater-sizing, cost-to-heat, and evaporation pages use. This page's time-to-target EQUALS the sizing page's reported heat-up time by construction — same heatUpTime function, locked exact by assert-heatuptime.mjs. Drift in the engine simultaneously trips this assertion and the sizing page's worked-example assertion.

The F7 nonlinearity, stated honestly. Loss rises as the water-air gap grows, so net power shrinks as the pool warms and the climb slows. We estimate using loss at the target temperature — a slight conservatism (the real loss is lower while the pool is still cool). A precise answer would integrate; the practical range we give is the simple formula plus the integrated-curve visualisation in §4.2, which makes the gap visible without burying the headline number in maths. The actual finish runs a touch sooner than the integrated physics would predict, and the curve flattens more than a straight line.

The reverse mode (TEMP-by-time) is a one-line algebraic rearrangementof the same energy equation: degrees gained = (output − loss) × hours ÷ (gallons × 8.345 × 1.0). It uses the SAME loss anchor (current + 15 °F default lift) as the time-to-target mode, so the two modes can't disagree on loss — same physics, two views.

The F6 can't-reach refusal is inherited from the sizing page: when output ≤ loss the pool never arrives at any higher target, and we refuse to print a false time. The result panel routes to the cover-on alternative (often makes it reachable) and the sizing calculator for the next class up. A “47 hours” for a target never reached is the field's most common dishonesty; we don't print one.

State plainly: estimate range (rides on the loss estimate); gas heats in hours, heat pumps in days from cold (not a flaw — maintenance is their job); running cost is the cost calculator's domain (cross-link, don't duplicate).

Reference tables T1/T2/T3 are released under CC BY 4.0. All time entries are estimates at typical conditions.

Frequently asked questions

How long does it take to heat a pool?

For a standard 20,000-gallon pool raising 15 °F with a 250,000 BTU/hr gas heater, about 15 hours uncovered or about 11 covered — because the net power doing the warming is the heater output minus the standing loss the pool is shedding while it climbs. Heat pumps take much longer from cold (days) but cost less to run. Your number scales with volume, ΔT, and the loss, which depends on surface area, wind, and cover.

Why is my pool taking so long to heat?

Two reasons. First, the heat your pool is losing while it warms eats a meaningful chunk of the heater's output — often a third. Second, heating isn't linear: the warmer the water gets, the bigger the gap to the air, so the loss grows and the climb slows. The last few degrees are the slowest. Cover the pool: it cuts the loss and steepens the climb.

How long to heat a pool with a heat pump?

Days, from cold — typically about four days for a 20,000-gallon pool with a 110,000 BTU/hr heat pump raising 15 °F. After the standing loss the net warming power is small. That's not a flaw: a heat pump's job is to holda warm pool cheaply, not to heat a cold one fast. For fast heat-from-cold, that's gas; for season-long cheap maintenance, heat pump.

Will my pool be warm by tomorrow?

Switch the calculator to its reverse mode (Temperature by time), enter your current temp and how long you'll run the heater, and it tells you how warm you'll get. Run a 250k gas heater on a standard pool overnight (8 hours) from 70 °F and you'll gain about 8 °F — a swimmable 78 by morning. Want 80+? Start by dinnertime, not just overnight.

Does a cover make my pool heat faster?

Yes. A cover cuts the standing loss roughly to a third, which means more of the heater's output is doing useful warming. On the standard pool a cover takes the heat-up from about 15 hours to about 11 — nearly four hours faster. Plus the money it saves (cost calculator) and the water it keeps (evaporation calculator).

My heater runs but the pool won't warm up — why?

Your heater's output is at or below the standing loss the pool is shedding. The heater is replacing the loss, not adding warmth — the pool stays at its current temp instead of climbing. Common with a small heater on an exposed, uncovered pool in cold air. Fix: cover the pool first(cuts the loss dramatically), then if it's still too slow, step up to a bigger heater class.

Will a bigger heater heat my pool proportionally faster?

No — diminishing returns. Doubling the output doesn't halve the time, because the standing loss is subtracted from BOTH heaters' output. A 60 % bigger heater (250k → 400k) on our standard pool buys ~47 % less time (15 hr → 8 hr), not 60 %. The sizing calculator picks the right class for your conditions; this page shows the hours each one buys.

How long to heat a pool 10 degrees?

For a standard 20,000-gallon pool with a 250,000 BTU/hr gas heater, about 10 hours uncovered. Covered, about 7.5 hours. With a 110k heat pump, about 64 hours (~2.7 days). Every extra ΔT you ask for is proportionally more energy — a 15-degree climb takes about 50 % longer than a 10-degree one for the same heater, plus a touch more because the loss grows with the gap.

Related calculators

All Pool Heating calculators: browse the hub.