Calculate peak sun hours

Calculates your site's peak sun hours per month — in the module plane, for any tilt AND azimuth, with terrain horizon and a P50/P90 band from 19 individual years. Data: hourly PVGIS (SARAH3). Weather-report "sunshine hours" are useless for sizing; peak sun hours are energy: kWh/m² per day — the solar insolation that determines what your solar panels actually deliver. Coverage today: the DACH grid (Germany, Austria, Switzerland) at 0.25° — a US grid built on NREL NSRDB data is in preparation.

Input

Input

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

Mounting / tracking
Azimuth

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

Result · Live

Annual average (PSH)
3.58kWh/m²/d
P90 annual total
1,208kWh/m²reached in 9 out of 10 years
Worst month
1.03kWh/m²/d
Best month
5.72kWh/m²/d
Module-plane gain
18.1%vs. global horizontal (GHI)
  • Snow cover is likely at this location (Jan). The irradiance model explicitly does not represent it.SNOW_NOT_MODELLED
  • Best and worst month differ by a factor of 5.5. The choice of design month determines the system size.WINTER_SUMMER_RATIO_EXTREME

For scale: a 400 W panel here delivers about 0.4 kWh per day in Dec and 2.3 kWh in Jun — before system losses.

Peak sun hours per month — with P50/P90 band and global horizontal (GHI)
01234567JanFebMarAprMayJunJulAugSepOctNovDecJun 5.72Module planeGlobal horizontal (GHI)
Jun · Module plane: 5.72 · P50 5.61 · P90 5.24 · Global horizontal (GHI): 5.74 kWh/m²/d — Hover over the chart for individual values.
Values as table
MonthModule planeP50P90Global horizontal (GHI)
Jan1.151.070.970.65
Feb2.201.981.451.38
Mar3.443.242.612.56
Apr4.974.884.044.28
May5.395.474.575.18
Jun5.725.615.245.74
Jul5.425.234.715.35
Aug5.075.114.394.59
Sep4.304.233.543.36
Oct2.752.781.961.82
Nov1.501.501.110.86
Dec1.031.000.810.53
19 real years (2005–2023), scaled to your configuration
P90 1,208P50 1,3021,184 kWh/m²1,205 kWh/m²1,209 kWh/m²1,235 kWh/m²1,247 kWh/m²1,266 kWh/m²1,272 kWh/m²1,284 kWh/m²1,297 kWh/m²1,302 kWh/m²1,306 kWh/m²1,315 kWh/m²1,336 kWh/m²1,373 kWh/m²1,378 kWh/m²1,380 kWh/m²1,387 kWh/m²1,395 kWh/m²1,476 kWh/m²1,1841,476 kWh/m²

P90 means: in 9 out of 10 years your array reaches at least this value — the conservative number for sizing and financing. Every dot is a real weather year, scaled to your configuration.

When does the array deliver? — mean irradiance by hour and month
JanFebMarAprMayJunJulAugSepOctNovDec036912151821Time (CET)

Hover over the chart for individual values. · Scale: 0–678 W/m²

Values as table
Month01234567891011121314151617181920212223
Jan0000000001061631722332331389790000000
Feb0000000077189299363353335285196978000000
Mar00000016217931242149252042639732521782100000
Apr000002401533104725726516786455654322781412900000
May000002310225941458064461564363250541028418776160000
Jun0000536109256399460620664658647632474358247114372000
Jul00000238320333749060464565261856847337622396280000
Aug000005561773515046266446296505113803051685470000
Sep0000001412928840352759959957349536222488300000
Oct0000000552053013744064183572842241166000000
Nov000000007119722226227423813110510000000
Dec0000000001241801541851831337500000000

The tilt heatmap loads in a moment …

The horizon chart loads in a moment …

Calculation steps
  • Hourly simulation (Perez transposition): Σ_8760h Perez-POA(tilt 35°, az 0°) = 1,419.3 kWh/m²
  • Calibration to the multi-year mean of the real years: POA × mean(2005–2023)/TMY @ 35° S (× 0.921) = 1,307.8 kWh/m²
  • Annual average per day: H_a / 365 = 3.5831 kWh/m²/d
  • Gain vs. global horizontal irradiance: POA_a / GHI_a - 1 = 18.119 %
  • P50/P90 from individual years: P50/P90(n = 19, ref 35°) = 1,207.9 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
Hourly simulation (Perez transposition)Σ_8760h Perez-POA(tilt 35°, az 0°)1,419.3 kWh/m²measured
Calibration to the multi-year mean of the real yearsPOA × mean(2005–2023)/TMY @ 35° S (× 0.921)1,307.8 kWh/m²measured
Annual average per dayH_a / 3653.5831 kWh/m²/dmeasured
Gain vs. global horizontal irradiancePOA_a / GHI_a - 118.119 %measured
P50/P90 from individual yearsP50/P90(n = 19, ref 35°)1,207.9 kWh/m²measured
Formula
POA (plane-of-array irradiance) per hour = beam · cos AOI + Perez sky diffuse + ground reflection · summed over 8760 h · 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), tilt 0–90°, all azimuths, fixed planes plus single- and dual-axis tracking, terrain horizon of the grid point included. Levels are calibrated per month to the multi-year mean of the PVGIS per-year series, and the sun position is evaluated at the SARAH scan time (about hh:11). Cross-validated against PVGIS: absolute annual totals within 2% at four flatland reference sites across all tilts 15–90°, east and west planes within about 1% of the PVGIS hourly calculation.
Not covered
Snow cover on the modules (separate warning), near shading from buildings and trees (only the terrain horizon is included), backtracking and row shading for trackers. The P50/P90 year-to-year spread is measured at the 35° south reference and transferred to the chosen configuration — a stated approximation.
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.

Peak sun hours in major cities (DE / AT / CH)

Peak sun hours at 35° tilt, facing south — computed with the same engine as above, terrain horizon included. The annual total in kWh/m² doubles as the ideal yield per kWp before system losses; off-grid systems are sized for the worst month, not the annual average.

Peak sun hours of major cities in Germany, Austria and Switzerland: annual average, worst and best month, P90 annual total, optimal tilt
CityYear Ø PSH/dayWorst monthBest monthP90 kWh/m²Optimum
BerlinDE3.581.035.721,20840°
HamburgDE3.410.895.531,17640°
MünchenDE3.951.785.681,34940°
KölnDE3.511.135.391,21140°
Frankfurt am MainDE3.761.165.741,28135°
DüsseldorfDE3.541.135.421,22440°
StuttgartDE3.871.445.781,32035°
EssenDE3.491.125.391,20735°
DortmundDE3.481.115.361,18440°
DresdenDE3.631.305.481,23740°
WienAT3.931.156.001,36435°
GrazAT4.231.966.061,42840°
LinzAT3.941.405.841,37435°
SalzburgAT3.650.555.221,23935°
ZürichCH4.031.735.731,38240°
GenfCH4.372.066.191,50340°
BaselCH3.961.765.681,31035°
LausanneCH4.292.036.051,46640°

All values: 35° tilt, south-facing, terrain horizon of the respective grid point, hourly PVGIS SARAH3 data (2005–2023), calibrated per month to the multi-year mean. Click a city to open its data page with monthly values and optimal tilt.

Frequently asked questions

What are peak sun hours — and why are weather-report sunshine hours useless?

Peak sun hours are energy: kWh/m² per day, expressed as hours of full reference irradiance (1000 W/m²). Weather-report "sunshine hours" measure something else: the time during which direct irradiance exceeds 120 W/m² (WMO definition) — a pale winter hour just above the threshold counts in full, exactly like a blazing June hour carrying many times the energy. Sizing only cares about energy. Berlin at 35° tilt: about 5.7 PSH in the best month, just over 1 in December — an annual average hides exactly that difference.

How does this calculator work — and how accurate is it?

It simulates your module hour by hour through a typical meteorological year (TMY; 8,760 hourly values from PVGIS SARAH3, 2005–2023): solar position, angle of incidence, Perez transposition of the diffuse fraction, ground reflection, and the terrain horizon of your grid point. That is why it works for any azimuth — east-west or façade included. In cross-validation against PVGIS, the tilt gain deviates by less than 2% (up to 60° tilt) and 3% at the façade.

What do P50 and P90 mean — and why do years scatter?

The typical year is an average; real years scatter by several percent. From the 19 individual years in the dataset, the calculator derives two bands: P50 is the median — half of all years exceed it. P90 is the value reached in 9 out of 10 years — the conservative number for sizing and financing. Plan with P50 and you will be disappointed every other year.

Does the value apply to my site in a valley or on a slope?

The terrain horizon (mountains, ridges) of your nearest grid point is included — the 0.25° grid is never more than ~17 km away. What is NOT included: shading from nearby buildings, trees, or the neighbour's gable; that comes on top, mostly in winter. Snow on the modules is not modelled either — the calculator warns explicitly for months where it is likely.

How many peak sun hours do solar panels need?

There is no minimum below which panels stop working — the question is how much energy you need. At 35° facing south, a module plane in the DACH region collects between about 3.4 (Hamburg) and 4.4 (Geneva) kWh/m² per day as an annual average — 1,250 to 1,600 kWh/m² per year (see the city table). Rule of thumb: panel wattage × daily peak sun hours ≈ ideal daily output before system losses; a 400 W panel at 3.6 PSH yields roughly 1.4 kWh per day. For off-grid sizing, design for the worst month and its P90 value, not the annual average — December in Berlin drops to about 1 PSH at 35° tilt.

Are peak sun hours the same as specific yield (kWh/kWp)?

No, but they are directly linked. Peak sun hours describe the solar resource per square metre of module area (kWh/m² per day); specific yield describes the output per installed capacity (kWh/kWp per year — also called full-load hours). The bridge: at reference irradiance one kilowatt-peak delivers exactly one kilowatt — the annual PSH total is therefore the ideal specific yield before real system losses (PVGIS assumes a flat 14%). Berlin at 35° south: about 1,300 kWh/m² per year works out to roughly 1,100 kWh/kWp.

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° resolution, so the nearest point is never more than ~17 km away. For other regions the official tools are the best choice: PVGIS by the European Commission (worldwide except polar regions), or PVWatts by the US lab NLR (formerly NREL) for the United States. A US grid built on NSRDB hourly data is in preparation — same calculation path and the same P50/P90 bands as here.