How this tilt calculator works
The textbook answer to “what angle should my solar panels be?” is “your latitude”. That’s a decent starting point and nearly always slightly off, because the real optimum depends on how much of your sunlight is direct versus diffuse, when in the year your clear days occur, how hot the panels run in summer and which way they face. This calculator doesn’t rely on a formula. It tests the angles.
It downloads one full year of hourly NASA POWER satellite weather for your location and runs our complete PV simulation (the same engine as the solar panel calculator) for every tilt from 0° to 90° in 5° steps. The best value is then refined in 1° steps, and the search is repeated for the winter half-year, the summer half-year, each month and thirteen orientations from east through south to west. A typical run performs around 80 complete 8,760-hour simulations. Inverter clipping is switched off, so differences come purely from geometry and climate.
The physics in one formula
cos θ = cos Z · cos β + sin Z · sin β · cos(γ_sun − γ_panel) Annual yield(β, γ) = Σ_hours P_ac( G_poa, T_cell )
β is the tilt, γ the azimuth, Z the solar zenith angle, θ the angle of incidence on the panel, ρ the ground albedo, and A the anisotropy index of the Hay–Davies model (the share of diffuse light that behaves like the sun’s disc). Steeper tilts catch more low winter sun (cos θ) but see less of the sky dome ((1 + cos β)/2); the optimum is where the two effects balance over your year’s weather.
Worked example: Bucharest, south-facing
With the defaults (44.4°N, panels facing due south, TOPCon modules, 14% losses, 2024 weather) the simulation finds:
- Best annual tilt: 35°, yielding 1,222 kWh/kWp, or 6,110 kWh for a 5 kWp system. The latitude rule of thumb suggests 37°, close but slightly too steep.
- A typical 30° roof loses only 0.3%; 25° loses 1.1% and 45° loses 1.2%. A flat array loses 13.6%, a vertical façade 32%.
- Best winter tilt (Oct–Mar): 56°; best summer tilt (Apr–Sep): 21°. Switching between them twice a year gains 3.5%; four positions gain 3.8% and monthly adjustment 4.6%.
- Facing east at 35° gives about 80% of the optimum, south-east about 95%.
How to read the results
- Best fixed tilt is the headline for a ground mount or flat-roof frame. On a pitched roof you rarely have a choice, so check your tilt to see how much you lose (usually very little).
- Monthly optimum tilt swings from about 10–15° in June to 60–65° in December in mid-latitudes. That’s why off-grid systems, which have to get through December, are mounted steeply.
- Orientation sensitivity shows how fast yield drops as you turn away from the equator. Within ±30° of south you typically lose less than 5%.
- The tilt × orientation matrix is a quick reference for every roof face of a house.
Typical optimum tilts (fixed, equator-facing)
| Location | Latitude | Best annual tilt | Best winter tilt | Flat vs. optimum |
|---|---|---|---|---|
| Singapore | 1°N | 0–10° | 10–15° | 0 to −2% |
| Phoenix, USA | 33°N | 29–32° | 48–52° | −11 to −13% |
| Madrid, Spain | 40°N | 32–35° | 50–55° | −12 to −15% |
| Bucharest, Romania | 44°N | 33–36° | 55–58° | −13 to −14% |
| Berlin, Germany | 52°N | 35–40° | 55–62° | −12 to −16% |
| Helsinki, Finland | 60°N | 38–44° | 62–70° | −15 to −20% |
| Sydney, Australia | 34°S | 28–32° | 48–52° | −10 to −12% |
Tips
- Don’t build steep frames on a roof to chase a few percent. Raising panels on a 25° roof to 35° gains about 1%, but adds wind load, cost and visual impact.
- Use at least 10–15° tilt where possible: rain washes panels clean and snow slides off. Very flat arrays lose an extra 1–3% to soiling in dusty climates.
- On flat roofs, flatter can produce more per roof. Rows at 10–15° can be packed much closer than rows at 35° without shading each other, so total kWh per square metre of roof is often higher (see the solar roof area calculator).
- For off-grid, optimise for winter. Select Winter half-year above; the off-grid solar calculator then sizes the array for the worst month.
- For solar water heating, steeper collectors (latitude + 10°) balance summer overheating against winter gains; see the solar water heater calculator.
Limitations
Results are for one weather year (selectable back to 2001); the optimum tilt typically varies by only 1–3° between years. Shading from the horizon, trees or buildings is not modelled and can shift the optimum; mountains to the south, for example, favour steeper tilts. Snow cover on flat panels, bifacial gains and row-to-row shading on flat roofs are outside the model. NASA POWER data have roughly 50 km resolution, so coastal fog or valley effects are smoothed.
Method & assumptions
One year of NASA hourly irradiance, temperature and wind is downloaded once. The full PV simulation (NOAA sun position → Hay–Davies transposition → ASHRAE incidence-angle modifier → cell temperature → temperature-corrected DC → losses) is then repeated for tilts 0–90° in 5° steps and refined in 1° steps around the best value, for the yearly, winter and summer half-years, and for azimuths ±90° around the equator-facing direction. Inverter clipping is disabled so the comparison reflects only geometry and climate.
Seasonal gains compare re-tilting the panels twice a year, four times a year or monthly with a fixed array at the annual optimum.
Frequently asked questions
What is the best angle for solar panels?
How much energy do I lose if my roof is not at the optimal angle?
What angle should solar panels be in winter?
Is it worth adjusting the tilt of solar panels seasonally?
What is a 6/12 roof pitch in degrees?
Are east-west solar panels a good idea?
Sources & references
- NASA POWER — hourly solar and meteorological data
- Jacobson, M.Z. & Jadhav, V. (2018). World estimates of PV optimal tilt angles and ratios of sunlight incident upon tilted and tracked PV panels relative to horizontal panels. Solar Energy 169
- European Commission JRC — PVGIS (optimal inclination and orientation)
- Hay, J.E. & Davies, J.A. (1980). Calculation of the solar radiation incident on an inclined surface
Embed this calculator
Free for blogs, installers, schools and NGOs. Copy the code below; it updates itself automatically.