Optimal solar panel angle calculator

Finds the best tilt angle for your location and azimuth — separately for annual yield, winter and summer operation, from an hourly PVGIS simulation with terrain horizon. And it shows the more important truth: the curve is flat around the optimum — your roof pitch is usually closer than rules of thumb suggest. Enter your direction (azimuth) too — angle and orientation belong together. Coverage today: the DACH grid; a US grid built on NREL NSRDB data is in preparation.

Input

Input

Place (“Freiburg”) or coordinates (“47.99, 7.84”) · DE / AT / CH

Azimuth

0 = south · −90 = east · +90 = west

Result · Live

Annual-yield optimum
40°for your azimuth
Your tilt’s loss
1.2%vs. the annual optimum
Winter optimum
70°off-grid, design month
Summer optimum
25°seasonal use
Loss when laid flat
18.0%
  • The yield curve is very flat around the optimum. Tilt is not a meaningful optimisation lever here.TILT_TOLERANCE_WIDE
Annual total vs. tilt — with tolerance band
1,0251,1341,2431,35215°30°45°60°75°90°Optimum 40°Yours 30°

Shaded: 27–53° count as equivalent (within tolerance) · Click the curve to set your own tilt.

Values as table
TiltkWh/m²vs. optimum
1,075-18 %
1,129-14 %
10°1,176-10.4 %
15°1,216-7.3 %
20°1,250-4.7 %
25°1,276-2.7 %
30°1,296-1.2 %
35°1,308-0.3 %
40°1,3120 %
45°1,308-0.3 %
50°1,297-1.1 %
55°1,279-2.5 %
60°1,254-4.4 %
65°1,222-6.8 %
70°1,183-9.8 %
75°1,137-13.3 %
80°1,085-17.3 %
85°1,027-21.7 %
90°965-26.5 %
Monthly comparison: your tilt (30°) vs. the annual optimum (40°)
257JanFebMarAprMayJunJulAugSepOctNovDecYour tilt (30°)Optimum (40°)

Flatter wins in summer, steeper in winter — the monthly view shows where your tilt delivers.

Values as table
MonthYour tilt (30°)Optimum (40°)
Jan1.11.19
Feb2.12.29
Mar3.343.51
Apr4.914.99
May5.455.3
Jun5.815.59
Jul5.485.33
Aug5.065.04
Sep4.214.37
Oct2.652.82
Nov1.431.56
Dec0.971.09
Is adjusting worth it? — strategies compared
StrategyAngles & periodkWh/m²Extra yield
Fixedall year 40°1,312
2 positionsMay–Aug 25° · Sep–Apr 55°1,349+2.8 %
4 positionsApr 40° · May–Jul 20° · Aug 35° · Sep–Mar 60°1,356+3.3 %
Monthlybest angle per month (table below)1,361+3.7 %
JanFebMarAprMayJunJulAugSepOctNovDec
65° 65° 55° 40° 25° 15° 25° 35° 50° 60° 65° 75°

Computed from your location’s hourly data; switches happen at month boundaries (finer dates change less than 0.5%). Only relevant for adjustable mounts — gardens, ground mounts, campers. A roof is fixed, and that is usually perfectly fine.

Calculation steps
  • Tilt sweep (Perez hourly simulation): Σ_8760h Perez-POA × 19 tilts, az 0° = 1,424.9 kWh/m²
  • Calibration to the multi-year mean of the real years: POA × mean(2005–2023)/TMY @ 35° S (× 0.921) = 1,312 kWh/m²
  • Best tilt anchor (annual): argmax_beta H_a(beta) = 40 °
  • Parabolic refinement: parabola vertex, top-3 sweep points = 40.147 °
  • Tolerance band around the optimum: H_a(beta) >= (1 - 2 %) * H_a,max = 25.791 °
  • Adjustment strategies (best year split): argmax partition(19×12) — 2 tilts +2.8 %, 12 tilts +3.7 % = 1,349.2 kWh/m²

The formulas behind the calculator

Every number above can be recomputed: the full calculation path, all assumptions and the data source with retrieval date — plus cross-validation against independent references. Disclosed, not claimed.

An estimate based on the stated assumptions. The final design must be checked by a qualified professional against the rules that apply where you are.

Data as of: 2026-07-30

Every intermediate value with its formula, number and provenance
StepFormulaValueProvenance
Tilt sweep (Perez hourly simulation)Σ_8760h Perez-POA × 19 tilts, az 0°1,424.9 kWh/m²measured
Calibration to the multi-year mean of the real yearsPOA × mean(2005–2023)/TMY @ 35° S (× 0.921)1,312 kWh/m²measured
Best tilt anchor (annual)argmax_beta H_a(beta)40 °measured
Parabolic refinementparabola vertex, top-3 sweep points40.147 °assumed
Tolerance band around the optimumH_a(beta) >= (1 - 2 %) * H_a,max25.791 °measured
Adjustment strategies (best year split)argmax partition(19×12) — 2 tilts +2.8 %, 12 tilts +3.7 %1,349.2 kWh/m²measured
Formula
β* = argmax H_a(β) · POA (plane-of-array irradiance) per hour via Perez · sweep 0–90° · calibrated per month to the 2005–2023 multi-year mean
Valid for
DACH grid at 0.25° resolution (1,155 points, PVGIS SARAH3 2005–2023), all azimuths, terrain horizon of the grid point included, levels calibrated to the multi-year mean of the PVGIS per-year series. The same cross-validated chain as the peak-sun-hours calculator: annual totals within 2% of PVGIS, east and west planes within about 1%. The optimum itself is reliable to a few degrees — the curve is flat there.
Not covered
Near shading from buildings and trees (only the terrain horizon is included), snow-slide behaviour, mounting costs, east-west split arrays, tracking systems (see the peak-sun-hours calculator).
Data sources

The same array at nearby locations

35° tilt, south-facing, identical array — the closest cities around your location, each with its own weather grid point. Every row is computed with the same formulas as your result above.

Location comparison: annual average, P90 and optimal tilt per city
LocationDistancePSH/dayP90 kWh/m²Optimum
Berlin1 km3.581,20840°
Oranienburg19 km3.501,19440°
Blankenfelde-Mahlow20 km3.581,19835°
Potsdam22 km3.591,21540°
Bernau22 km3.521,20935°
Ludwigsfelde26 km3.641,21940°
Königs Wusterhausen29 km3.571,20340°
Strausberg33 km3.631,23240°
Eberswalde45 km3.571,22740°

The sunniest and the dullest nearby place are 4 % apart — location beats tilt optimisation. Clicking a place opens its location page in a new tab.

Solar panel angle table: major cities (DE / AT / CH)

Best tilt angle for solar panels per city — separately for annual yield, winter and summer, facing south, from the hourly PVGIS simulation with terrain horizon. The most important column is the tolerance band: any angle inside it costs less than 2% of yield — arguing over single degrees is wasted time.

Optimal tilt angle for solar panels in major cities of Germany, Austria and Switzerland: annual, winter and summer optimum, tolerance band, loss when laid flat
CityAnnual optimumTolerance band (−2%)WinterSummerFlat (0°)
BerlinDE40°27–53°70°25°−18.0 %
HamburgDE40°25–52°65°25°−16.2 %
MünchenDE40°25–51°65°20°−16.1 %
KölnDE40°25–52°65°20°−15.8 %
Frankfurt am MainDE35°24–51°60°20°−15.1 %
DüsseldorfDE40°25–52°65°20°−15.8 %
StuttgartDE35°24–50°65°20°−15.0 %
EssenDE35°24–51°65°20°−14.7 %
DortmundDE40°24–52°65°20°−15.1 %
DresdenDE40°26–52°65°20°−17.0 %
WienAT35°22–48°55°20°−13.2 %
GrazAT40°25–51°65°20°−16.8 %
LinzAT35°24–51°65°20°−15.7 %
SalzburgAT35°23–49°55°20°−14.2 %
ZürichCH40°25–51°65°20°−16.1 %
GenfCH40°25–51°65°20°−16.6 %
BaselCH35°23–50°60°20°−14.7 %
LausanneCH40°26–51°65°20°−17.3 %

All values: south-facing, terrain horizon of the respective grid point, hourly PVGIS SARAH3 data (2005–2023). Winter optimum for off-grid December sizing, summer optimum for seasonal use. Click a city to open its data page.

Frequently asked questions

What is the best tilt angle for solar panels?

For south-facing panels in the DACH region the annual optimum is around 35–40° depending on the location. More important than the exact number is the shape of the curve: it is flat around the optimum — ±10° usually stays within 2% of annual yield. That is why this calculator shows not just the best angle but the whole tolerance band for your location and azimuth.

Does the optimum also apply to east- or west-facing roofs?

No — and that is exactly what this calculator computes hour by hour. The further the surface turns away from south, the flatter the optimum: an east-facing roof in Berlin peaks at roughly 5–20° instead of 40°, because steep east surfaces lose the afternoon sun. The azimuth is freely adjustable (0 = south, −90 = east, +90 = west) and the sweep is computed for exactly that orientation — validated against the PVGIS hourly calculation to about 1%.

Why do the annual, winter and summer optima differ?

Because the sun sits low in winter and high in summer. The winter optimum in central Europe is a steep 60–70° — relevant for off-grid systems sized by the worst month. The summer optimum is a flat 20–25° (seasonal use, gardens, camping). The annual optimum is the compromise in between. Which angle is “right” depends on the goal, not on a rule of thumb.

How accurate is the computed optimum?

The calculator simulates every tilt from 0–90° hour by hour through the typical meteorological year (TMY) of your grid point, calibrated to the 2005–2023 multi-year mean, with terrain horizon. Cross-validated against PVGIS’s own optimal-angle search: deviation below 2.5°, annual total at the optimum below 1%. And because the curve is flat, even that residual uncertainty costs practically no yield. For comparison: almost every other calculator uses latitude rules of thumb (e.g. latitude × 0.76 + 3.1°, or latitude minus 15°). Those come from clear-sky maths — in Central Europe the high diffuse share pushes the real optimum well below them. This calculator computes your actual weather, not your latitude.

My roof has a fixed pitch — is a tilt-up frame worth it?

Usually not. Enter your roof pitch: the calculator quantifies the loss versus the optimum, and for common roofs (25–50°) it is almost always below 2%. A tilt-up frame costs money, adds wind load and often needs permits — one percent of extra yield rarely pays for that. The cost of the frame itself is explicitly not modelled here.

Is it worth adjusting the tilt through the year?

Usually less than US rules of thumb promise — and this calculator computes it for your location. Example Berlin: switching twice a year (around May to ~25°, September to ~55°) yields about 3% more than staying fixed at the optimum; adjusting monthly by hand almost 4%. Popular calculators promise 5–15% — that holds for sunny climates; in cloudy central Europe diffuse light dominates, and diffuse light barely cares about tilt. The planner shows the optimal angles, switch months and the honest gain — relevant for adjustable ground mounts and campers, not for fixed roofs.

What angle for a flat roof?

On a flat roof the angle competes with area: a 30° tilt-up needs considerably more roof area per kWp because of row spacing — total roof yield is often higher with a flatter 10–15° layout and more modules. Also, below roughly 10–12° rain no longer cleans the modules reliably. Practical rule: mount at 10–15°, check spacing with the row-spacing calculator — and the tolerance band above shows how little the last degrees cost.

What about vertical panels — balcony railings, walls, fences?

Vertical mounting (90°) costs about a third of the yield over the year at a south-facing site compared to the optimum — but has an underrated winter advantage: the low winter sun hits steep modules favourably, and snow does not settle. If you can tilt a railing panel out by 20–30°, you recover a large part of the loss. The balcony solar calculator computes the exact numbers for your site; the peak sun hours calculator shows the monthly curve at 90°.

Does this calculator work outside Germany, Austria and Switzerland?

Not yet. The hourly grid currently covers the DACH region (1,155 grid points at 0.25°). For other regions the official tools are the best choice: PVGIS by the European Commission (worldwide except polar regions) with its "optimize slope" option, or NREL PVWatts for the United States. A US grid built on NSRDB hourly data is in preparation — with the same tolerance-band and seasonal analysis as here.