Collector tilt optimizer

The textbook "tilt = latitude" rule maximises annual yield — which is the wrong objective when the collector array is oversized for the heat demand.

This tool models hour-by-hour clear-sky irradiance through the year, caps daily collection at what the tank can absorb, and picks the tilt that minimises unmet demand. For an oversized system, the answer comes out steeper than the textbook value — pushing more of the yield into shoulder months where it isn't wasted as bypass-dump.

Site

Defaults are the centre of Prague. Enter your own coordinates — positive latitude = north of the equator, positive longitude = east of Greenwich.

System

Collector efficiency: effective seasonal-average fraction of incident sunlight delivered as useful heat — NOT the peak optical efficiency you see on a collector datasheet (typically η₀ ≈ 0.75–0.82 for flat-plate, 0.70–0.78 for evacuated-tube). That peak number is the maximum possible at a single moment, with the sun normal to the collector and the tank cold; seasonal-average delivered is much lower because of a cascade of physical losses (temperature derate, cosine of incidence, control / pipe / stagnation losses, soiling). Conservative starting point: 0.40–0.45 for typical residential drainback flat-plate; up to ~0.50–0.55 for a well-designed short-pipe / low-temperature-delivery install; ~0.45–0.55 for evacuated tube in high-ΔT applications. The full cascade table and the Hottel–Whillier–Bliss equation behind these numbers live on the collector-efficiency reference page.

Tank inputs (size, max temp, supply temp, insulation): the model tracks tank state day-by-day through the year — heat collected today carries into tomorrow's draw, subject to the tank's physical envelope and standing-loss-to-ambient. Inputs are the physically-meaningful values you can read off a nameplate or controller, not a derived "capacity" number.
Tank size (L): the actual water volume. Industry sizing rule (Duffie & Beckman 1976 originally quoted 75 L/m²; modern solar-thermal practice narrows this to 50–60 L/m²): 50–60 L per m² of collector is the sweet spot, with 50–80 L/m² as the acceptable range — below 50 L/m² efficiency drops fast, above 80 L/m² cost rises without benefit. Defaults assume 300 L paired with the 6 m² default collector area.
Max tank temp (°C): the controller's hi-limit cut-off. 60–75 °C is the usual residential range (mixing valve drops delivery to 49 °C downstream); commercial sites with tempering valves go to 82 °C / 180 °F. Above max-temp the controller stops pumping and any additional clear-sky collection is bypass.
Cold-water supply (°C): the practical floor of the tank — once the last useful kWh is extracted, you're left with water at supply temperature. Central Europe / UK ≈ 10 °C; warmer climates 12–18 °C; Nordic 5–8 °C. Reference-rig data (449 000+ 1-minute samples, one full year) shows the tank almost never drops below the local supply, sitting a few degrees above it at its winter coldest (P10 ≈ 12 °C).
Tank insulation: drives the standing-loss-to-ambient rate. "Good" matches the 8 cm-PUR reference rig and gives ~0.0012 × L kWh/day (about 1.7 kWh/day for a 1431 L tank, matching measured rig values). Pick higher / lower as a proxy for your insulation thickness or age.

System / fluid: our drainback systems pump collector water straight into the thermal store, so the only heat exchanger in the loop is the collector itself. The "water" is pure water dosed with the trace corrosion inhibitors described on the corrosion-inhibition page (sodium silicate + sodium sulfite, well under 0.1 % by mass — heat capacity is essentially that of pure water). Closed systems use a propylene-glycol antifreeze loop with an extra heat exchanger between the loop and the store — that HX typically costs 3-6 % at solar-thermal operating ΔTs, and the 40 % glycol mix itself carries roughly 6 % less heat per litre than pure water at solar-thermal temperatures (volumetric heat capacity ρ·cp ≈ 3.9 vs 4.1 MJ/m³/K, i.e. ~1.08 vs ~1.16 kWh per litre per °C) plus another 2-4 % loss to higher viscosity reducing convective heat transfer. Combined, the closed glycol path consistently delivers 10-15 % less to the store than a like-for-like drainback array, so we apply a 12 % performance penalty when glycol is selected. Closed systems also have to dump excess heat through a bypass valve when the tank is full — see the footnote under the monthly-energy chart for what the "Closed-system bypass" series means for each system type.

Sky / climate

30%

0 % = clear-sky idealised maximum (the prior version of this tool's behaviour). Higher values attenuate the clear-sky direct-beam contribution and shift more of the remaining irradiance into the isotropic-sky diffuse component, which itself favours flatter panels. Rough starting points: ~10 % clear desert · ~30 % central Europe · ~50 % maritime Atlantic / persistent overcast. This is an annual-average proxy, not a climate database — sites with strong seasonal cloud asymmetry (e.g. Mediterranean summer-dry vs Atlantic winter-cloudy) will trade differently.

Demand profile

30%

Fraction of the annual demand that comes from space heating (winter-weighted) vs domestic hot water (constant year-round). Higher = the optimum tilt shifts steeper because more demand falls on short winter days.

Panel orientation

50°
180°

Collected kWh/yr
Delivered kWh/yr
Unmet kWh/yr
Solar fraction
Monthly energy (kWh) — delivered / closed-system bypass* / unmet

* Closed-system loss only. In a pressurised closed loop, heat above the tank's capacity is dumped via a bypass valve once the store is full. Drainback systems (such as ours) simply stop circulating — there is no active heat-dump loop, so excess solar input is simply not harvested (the available irradiance is still incident on the panel; it just isn't picked up because the loop is dry). For a drainback install, treat "potential bypass" as a tank-sizing warning: it's roughly the yield you'd have to forfeit as bypass-valve dumping each year if you ran the same array as a pressurised closed system.

Daylight hours through the year — sunrise to sunset for the entered latitude
Tilt × azimuth — annual delivered (kWh) — red = hottest (best), blue = coldest (worst). The white-bordered cell is the current slider position; the black-bordered cell is the swept optimum. To inspect any cell's exact numbers, move the tilt and azimuth sliders to that pair and read the summary above.

How it works

The sun-position math is the same simplified NOAA / Meeus solar-position algorithm our firmware uses to expose sunrise_unix, sunset_unix, and current altitude/azimuth on the live /api/health endpoint. The plane-of-array correction is the standard cosine-of-incidence on a tilted, azimuth-rotated panel; sun on the back face is clipped to zero.

A clear-sky DNI model (1366 W/m² · 0.7AM) gives a per-hour direct-beam estimate. Hourly samples across a representative non-leap year (8760 samples), summed for the candidate (tilt, azimuth, area, efficiency), give an upper-bound annual yield. Daily collection above (demand + tank-store) is treated as dumped; daily collection below demand is the unmet shortfall. No storage carryover between days: each UTC day is bucketed independently against that day's demand and the tank's daily-store capacity.

The "optimal" tilt is the 0–90° sweep value that minimises annual unmet demand, not maximum yield — this is the key trick that makes the "tilt steeper for oversized arrays" insight fall out naturally rather than being a hand-tuned heuristic. The tool also tells you how far the optimum sits from the classical tilt = lat rule (and its seasonal variants lat + 15° for winter-peaking and lat − 15° for summer-peaking, which appear throughout the textbook literature), and why.

This is essentially a simplified, visualised F-Chart calculation (Klein, Beckman & Duffie 1976; canonical reference Duffie & Beckman, Solar Engineering of Thermal Processes, Wiley, 4th ed. 2013, ch. 21) — the industry-standard sizing method that solar-thermal engineers have used since the late 1970s. Full F-Chart computes a monthly solar fraction from two dimensionless groups (X and Y), then sums; this tool computes delivered + unmet directly via the same physical inputs (irradiance, tilt, area, demand, storage) without invoking the F-Chart equation form. Sanity check: a well-sized drainback flat-plate install at mid-latitudes typically delivers 400–600 kWh/m²/yr of net energy to the store — if your "Collected ÷ area" number falls anywhere in that band, the model is producing engineering-plausible results. Industry sweet-spot solar fraction is 30–60 %; chasing higher SF runs into diminishing-returns (per-collector yield drops sharply, and bypass losses grow) — common stopping rule: stop sizing once per-collector yield drops more than ~30 % vs the 1-collector baseline.

Assumptions to be aware of

Further reading

Dr. Ben Gravely's solarhotwater-systems.com catalogues four decades of practical drainback installation experience (2000+ systems since 1978). Useful complement to the F-Chart / D&B references when you want to see how the canonical sizing and orientation rules behave on real installs.