Solar pool heating, measured — not promised.
Live readings from our own pool and spa in Southern California, side by side with two unheated pools nearby.
- No cover or blanket
- Mostly shaded
- Logged every minute
Every reading is free to download, and you’re welcome to see the pool in person.
This season · Jul 31 – Oct 27
Browse the record
Each day shows its peak spa and pool temperature. Tap a day to see it.
Check our numbers
Every raw reading behind this page. Run the numbers yourself.
⬇ Download the full dataset CSV spreadsheet · several MB, best on Wi-FiFree to reuse with credit: CC BY 4.0
Two nearby pools with no heating. Ours is mostly shaded, so every comparison on this page uses the shaded one. Our pool is dotted in for scale.
Daily Summary
The season so far
Jul 31 – Oct 27, 2026 · 71 of 89 days logged (logger off for 18)
How these numbers are measured
Our pool. Everything on this page comes from the pool and spa at our own working installation. Sensors log a reading about once a minute, around the clock, to a public data log — and this page reads that log directly, so what you see is the raw record. Logging began June 12, 2026; the record shown here starts July 15, once sensor placement and calibration were settled — earlier readings measure the shakedown, not the system.
The controls. Two nearby unheated pools carry the same sensors — one sits in full sun, the other in shade. They show what pool water does with no heating at all. Every “boost” figure is simply the pool or spa temperature minus the shaded control’s reading at the same moment: a direct measurement, not a model or a projection.
Why we measure against the shaded control. Our pool sits in shade for most of the day, so shaded water is what this pool would actually be doing without the solar system — that’s the honest thing to compare it against. The full-sun control is still logged — it has its own chart under “More charts” — but it describes a sunnier pool than ours. Note which way this cuts: unheated water in full sun warms itself more than unheated water in shade, so measuring against the shaded control makes the boost figures larger than they would be against the full-sun one. Both readings are in the downloadable data if you want to run the comparison the other way.
Our heating limits. These are the limits we set on our own system, not a ceiling on what solar can do: the controller stops heating once our pool nears — °F or our spa nears — °F. Peak temperatures are capped on purpose — on hot, sunny days the water would climb past those lines without them.
The gas heater. The system also has a gas heater. A gas burn warms water far faster than sunshine can, which makes it easy to spot in the data. Days the heater runs are flagged automatically, and its rise is never counted in any solar statistic.
No pool cover. A solar blanket is the easiest way to make a solar heating system look better than it is — it holds heat in overnight and stops the evaporation that cools a pool all day. We don’t use one, on the pool or the spa. Every figure on this page is what the panels alone did to open water, which is also what an uncovered pool of yours would see.
Data gaps. If the logger goes quiet for more than an hour, the gap is shaded on the chart and the day is marked on the calendar instead of being smoothed over — and the header says so while it lasts.
Definitions. “Swim hours” are noon to 10 PM. A day counts as swim-ready when the pool averages — °F or warmer during swim hours.
Cost comparison. We price the heat a gas heater would have had to supply to keep the water where the panels kept it. Hour by hour, we take how far above the shaded control our water actually sat and multiply it by how much heat this pool loses per degree of that elevation — a figure measured from the pool’s own overnight cooling, not assumed. The day’s total is priced as a range from natural gas to delivered propane. On days the gas heater ran, only the hours before it fired are credited, never the heater’s own contribution.