Annual horizontal irradiation (GHI) is the solar energy that reaches a flat, level surface in a year. Across 30 European cities it runs from about 949 kWh/m² in Oslo to about 1,930 kWh/m² in Faro (PVGIS 5.3, 2005 to 2023). Seville gets 1,904 and Berlin 1,115. A 1 kWp array at the optimal tilt, with 14% system losses, yields about 1,672 kWh a year in Seville and 1,061 in Berlin.
SurgePV publishes this guide and sells solar design software. Every figure in the tables below comes from the European Commission’s PVGIS 5.3 service, a free online solar data tool. It was queried through its public API (a way for software to request data) on 28 October 2026. The inputs are listed under the first table. Your own roof will differ.
Solar Irradiance by European City
The table is sorted by annual GHI, from the highest to the lowest of the 30 cities in it. GHI is the solar energy that reaches a flat horizontal surface in a year. The last column is the electricity a 1 kWp array produces. The array sits at the tilt in the fifth column and faces close to south. System losses are the energy lost in cables, the inverter and similar parts. Peak sun hours show the same energy as hours of full-strength sun (1 kW/m²).
| City | Point (lat, lon) | GHI (kWh/m² per year) | Peak sun hours per day (GHI ÷ 365) | Optimal tilt | Yield (kWh/kWp per year) |
|---|---|---|---|---|---|
| Faro, Portugal | 37.02, -7.93 | 1,930 | 5.29 | 34° | 1,747 |
| Seville, Spain | 37.39, -5.98 | 1,904 | 5.22 | 35° | 1,672 |
| Málaga, Spain | 36.72, -4.42 | 1,897 | 5.20 | 34° | 1,698 |
| Almería, Spain | 36.84, -2.46 | 1,884 | 5.16 | 35° | 1,723 |
| Córdoba, Spain | 37.89, -4.78 | 1,879 | 5.15 | 35° | 1,651 |
| Granada, Spain | 37.18, -3.60 | 1,867 | 5.11 | 34° | 1,676 |
| Valletta, Malta | 35.90, 14.51 | 1,854 | 5.08 | 31° | 1,634 |
| Athens, Greece | 37.98, 23.73 | 1,800 | 4.93 | 32° | 1,575 |
| Madrid, Spain | 40.42, -3.70 | 1,779 | 4.87 | 37° | 1,620 |
| Lisbon, Portugal | 38.72, -9.14 | 1,758 | 4.82 | 33° | 1,580 |
| Barcelona, Spain | 41.39, 2.17 | 1,662 | 4.55 | 38° | 1,571 |
| Rome, Italy | 41.90, 12.50 | 1,643 | 4.50 | 37° | 1,493 |
| Milan, Italy | 45.46, 9.19 | 1,466 | 4.02 | 39° | 1,359 |
| Bucharest, Romania | 44.43, 26.10 | 1,431 | 3.92 | 36° | 1,298 |
| Budapest, Hungary | 47.50, 19.04 | 1,318 | 3.61 | 38° | 1,227 |
| Vienna, Austria | 48.21, 16.37 | 1,255 | 3.44 | 39° | 1,177 |
| Zurich, Switzerland | 47.37, 8.54 | 1,248 | 3.42 | 37° | 1,151 |
| Paris, France | 48.86, 2.35 | 1,219 | 3.34 | 39° | 1,149 |
| Munich, Germany | 48.14, 11.58 | 1,211 | 3.32 | 39° | 1,141 |
| Prague, Czechia | 50.08, 14.44 | 1,168 | 3.20 | 39° | 1,095 |
| Berlin, Germany | 52.52, 13.40 | 1,115 | 3.06 | 40° | 1,061 |
| Warsaw, Poland | 52.23, 21.01 | 1,115 | 3.06 | 39° | 1,053 |
| Brussels, Belgium | 50.85, 4.35 | 1,108 | 3.03 | 39° | 1,045 |
| Amsterdam, Netherlands | 52.37, 4.90 | 1,081 | 2.96 | 39° | 1,026 |
| Copenhagen, Denmark | 55.68, 12.57 | 1,075 | 2.95 | 42° | 1,054 |
| London, United Kingdom | 51.51, -0.13 | 1,070 | 2.93 | 40° | 1,023 |
| Dublin, Ireland | 53.35, -6.26 | 1,007 | 2.76 | 42° | 988 |
| Stockholm, Sweden | 59.33, 18.07 | 990 | 2.71 | 44° | 992 |
| Helsinki, Finland | 60.17, 24.94 | 984 | 2.70 | 44° | 974 |
| Oslo, Norway | 59.91, 10.75 | 949 | 2.60 | 45° | 958 |
Inputs for every row: PVGIS 5.3 API (MRcalc for GHI, PVcalc for tilt and yield), radiation database PVGIS-SARAH3, years 2005 to 2023 (19 years), terrain horizon on (hills and mountains that block low sun are counted), crystalline-silicon modules, free-standing mounting, 14% system losses, optimal tilt and azimuth chosen by PVGIS. Azimuth is the compass direction the array faces. The optimal azimuth is within 8° of due south in every row. Each point is a city-centre coordinate chosen for this table. A roof elsewhere in the same city will give slightly different numbers. Peak sun hours are GHI divided by 365 days and by the 1 kW/m² reference irradiance, on the horizontal plane. The source is the PVGIS API documentation and the PVGIS 5.3 release notes.
What the table shows:
- Highest and lowest GHI: of these 30 cities, Faro (1,930 kWh/m²) is highest and Oslo (949 kWh/m²) is lowest.
- Ranking changes with the metric: Seville is second by GHI but fifth by yield. Almería is fourth by GHI but second by yield. It gets 1,723 kWh/kWp against 1,672 in Seville. PVGIS reports a temperature and irradiance loss of 6.03% for Almería and 9.81% for Seville. This is the main difference between their loss budgets (total loss 20.95% against 24.06%). See solar temperature derating for how heat cuts module output.
- Southern against northern Europe: a kWp in Seville yields about 1.6 times what it does in Berlin (1,672 against 1,061 kWh). This comes from the same table.
- Netherlands: the same query gives 1,081 kWh/m² a year for Amsterdam, 1,093 for Rotterdam, 1,048 for Groningen and 1,120 for Maastricht. Amsterdam and Rotterdam differ by about 1%.
The table shows the sun resource (how much sunlight a place gets) and a modeled yield. It is not a forecast for a specific roof. Shading, a different roof pitch, equipment and the real loss budget all move the result.
Andalusia Solar Irradiation in kWh/m² per Day
The five Andalusian cities in the table (Andalusia is in southern Spain) range from 1,867 kWh/m² a year (Granada) to 1,904 (Seville), a spread of 2.0%. The monthly figures below are horizontal irradiation per day. They double as horizontal peak sun hours, because one hour at 1 kW/m² is 1 kWh/m².
| Month | Seville | Málaga | Almería | Córdoba | Granada |
|---|---|---|---|---|---|
| Jan | 2.75 | 2.81 | 2.80 | 2.61 | 2.73 |
| Feb | 3.61 | 3.64 | 3.69 | 3.48 | 3.48 |
| Mar | 4.74 | 4.73 | 4.81 | 4.66 | 4.55 |
| Apr | 5.95 | 5.91 | 6.05 | 5.82 | 5.60 |
| May | 7.13 | 7.13 | 7.04 | 7.04 | 6.82 |
| Jun | 7.86 | 7.90 | 7.75 | 7.88 | 7.80 |
| Jul | 8.07 | 7.90 | 7.68 | 8.10 | 8.03 |
| Aug | 7.19 | 7.02 | 6.88 | 7.21 | 7.13 |
| Sep | 5.64 | 5.58 | 5.46 | 5.58 | 5.54 |
| Oct | 4.11 | 4.11 | 4.09 | 4.04 | 4.11 |
| Nov | 2.95 | 3.00 | 3.01 | 2.85 | 2.91 |
| Dec | 2.47 | 2.52 | 2.57 | 2.38 | 2.52 |
| Year | 5.22 | 5.20 | 5.16 | 5.15 | 5.11 |
Each value is a month’s total irradiation, averaged over 2005 to 2023. It is divided by the actual number of days in that month across those years. The Year row is annual GHI divided by 365, as in the first table. In Seville the horizontal figure runs from 2.47 kWh/m² per day in December to 8.07 in July. On the 35° tilted plane, PVGIS reports 4.45 kWh/m² per day for December (higher than horizontal). It reports 7.46 for July (lower than horizontal). State the plane whenever you quote peak sun hours. The peak sun hours glossary entry has the definition.
Monthly Yield per kWp: Seville, Almería, Berlin and Amsterdam
This table answers the Berlin-in-June and Almería-in-December questions. It gives the average daily energy in kWh per kWp per day. The array is 1 kWp, at each city’s optimal tilt, with 14% system losses.
| Month | Seville | Almería | Berlin | Amsterdam |
|---|---|---|---|---|
| Jan | 3.88 | 3.90 | 1.09 | 1.13 |
| Feb | 4.26 | 4.48 | 2.06 | 1.88 |
| Mar | 4.56 | 4.79 | 2.98 | 2.97 |
| Apr | 4.81 | 5.13 | 4.06 | 4.06 |
| May | 5.06 | 5.25 | 4.20 | 4.18 |
| Jun | 5.17 | 5.38 | 4.33 | 4.22 |
| Jul | 5.32 | 5.38 | 4.11 | 4.01 |
| Aug | 5.25 | 5.32 | 3.90 | 3.67 |
| Sep | 4.89 | 4.93 | 3.48 | 3.18 |
| Oct | 4.29 | 4.39 | 2.36 | 2.14 |
| Nov | 3.79 | 3.86 | 1.34 | 1.32 |
| Dec | 3.64 | 3.82 | 0.96 | 0.93 |
| Year | 4.58 | 4.72 | 2.91 | 2.81 |
Berlin in June gives 4.33 kWh per kWp per day. Almería in December gives 3.82. Berlin in December gives 0.96, about one quarter of Almería’s figure. Over the year, Seville averages 4.58 kWh/kWp per day, Almería 4.72, Berlin 2.91 and Amsterdam 2.81.
Years differ. PVGIS reports the standard deviation of annual energy across the 19 years. Standard deviation measures how much values vary. It is 40 kWh/kWp for Seville (2.4% of its 1,672 kWh/kWp average). It is 62 kWh/kWp for Berlin (5.8% of 1,061). The northern site varies more from year to year. This is the spread of the 2005 to 2023 record. It is not a P50 or P90 assessment. P90 is a yield expected to be met or exceeded in 90% of years (P50: 50%). The P50 and P90 glossary entry explains how those probability figures are built.
Start With the Metric You Need
| Metric | Typical unit | Question it answers |
|---|---|---|
| Irradiance | W/m² | What is the radiation power per area at this time? |
| Horizontal irradiation | kWh/m² over the stated period | How much solar energy reaches a horizontal surface? |
| DNI irradiation | kWh/m² over the stated period | How much direct-beam energy reaches a surface normal to the beam? |
| Diffuse horizontal irradiation | kWh/m² over the stated period | How much diffuse-sky energy reaches a horizontal surface? |
| Plane-of-array irradiation | kWh/m² over the stated period | How much solar energy reaches the selected array plane? |
| Specific PV yield | kWh/kWp over the stated period | How much modeled electrical energy is delivered per installed peak power? |
| Peak sun hours | Equivalent hours over the stated period | What duration at the reference irradiance represents the integrated resource? |
Irradiance is power per area. Irradiation is energy per area. A column marked kWh/m² per year is an energy total for the year. It is not W/m² at one moment. The GHI glossary gives the definition.
DNI Is Not a Horizontal Beam Fraction
pvlib’s component-sum documentation gives the irradiance relationship:
GHI = DHI + DNI × cos(solar zenith angle)
DNI (direct normal irradiance) is sunlight that arrives in a straight beam, measured on a surface that faces the sun. DHI (diffuse horizontal irradiance) is sunlight scattered by the sky. The zenith angle is the angle of the sun from straight overhead. The values must share a time basis. Take one moment with DNI 800 W/m², DHI 100 W/m² and a zenith angle of 60°. Then GHI is 100 + 800 × 0.5 = 500 W/m². DNI/GHI is 1.60. But the horizontal direct-beam fraction is 400/500 = 80%. A DNI/GHI ratio above one is possible because the two surfaces differ. For annual energy, add up the projected beam over time. Do not subtract annual DNI from annual GHI to get diffuse energy.
Reproduce a City Resource Record
Use the official PVGIS monthly-radiation tool documentation, which describes exports for horizontal and inclined irradiation, direct normal irradiation and the diffuse-to-global ratio.
- Select the coordinates. For a city comparison, define one representative point and label it.
- Choose a radiation database and state the start and end years. Use the same period for every location.
- Request the quantities you need. Keep horizontal and inclined outputs in separate columns.
- Record whether terrain horizon is on and whether you supplied a custom horizon.
- Export the data and keep the input metadata with the results.
- Calculate annual totals and daily equivalents from the correct fields, checking units first.
- Repeat with identical settings for every location.
The values above come from two calls per city. For Seville they are:
MRcalc: https://re.jrc.ec.europa.eu/api/v5_3/MRcalc?lat=37.39&lon=-5.98&horirrad=1&startyear=2005&endyear=2023&raddatabase=PVGIS-SARAH3&outputformat=json
PVcalc: https://re.jrc.ec.europa.eu/api/v5_3/PVcalc?lat=37.39&lon=-5.98&peakpower=1&loss=14&optimalangles=1&raddatabase=PVGIS-SARAH3&startyear=2005&endyear=2023&outputformat=json
Annual GHI is the sum of the 228 monthly values divided by 19 years. Version matters. The JRC (the European Commission’s Joint Research Centre) lists SARAH-3 as covering 2005 to 2023 in PVGIS 5.3. It describes PVGIS 6 as a beta release, a test version, with a dataset for 2013 to 2024. A PVGIS 6 export will not match the 5.3 numbers above exactly. So record the version with every export. The PVGIS user manual explains how a typical meteorological year (TMY) is built from representative months. A TMY is a different product from a 19-year mean.
For daily equivalents, divide a monthly total by the number of days in the month and by the 1 kW/m² reference. To get an annual daily figure from monthly ones, weight by days. Do not just average the twelve monthly values. Example: 60 kWh/m² of horizontal irradiation in a 30-day month at a 1 kW/m² reference is 60 ÷ 30 = 2.00 equivalent hours per day. It is not 60 hours a day. It is not 60 kWh/kWp of electricity.
Calculate an Initial PV Energy Screen
Use plane-of-array irradiation (POA), the sunlight that lands on the tilted panels, for a tilted system. A quick screening formula, with consistent definitions, is:
Specific yield = POA irradiation / reference irradiance × performance ratio
Annual electrical energy = installed kWp × specific yield
Required kWp = annual target kWh / specific yield
The performance ratio here is a stated assumption of 0.82. It shows how much of the ideal output the system really delivers. It is not module efficiency. Take two arrays with the same annual target of 146,000 kWh (400 kWh a day over 365 days):
| Input or output | Array A | Array B |
|---|---|---|
| Annual POA irradiation | 1,200 kWh/m² | 1,800 kWh/m² |
| Specific yield (POA ÷ 1 kW/m² × 0.82) | 984 kWh/kWp | 1,476 kWh/kWp |
| Required peak power (146,000 ÷ yield) | 148.374 kWp | 98.916 kWp |
| Annual energy at that capacity | 146,000 kWh | 146,000 kWh |
Array B needs one third less peak power. The sum is 98.916 ÷ 148.374 = 0.667. These two arrays are examples only, not Berlin or Seville. Roof area, electrical limits, module counts and inverter choice also set the final size. An annual match does not mean the array meets demand every hour. So calculate self-consumption (energy you use on site), export and storage from real production and load profiles (how much power the building uses over time).
Run the PV Simulation Separately
The PVGIS grid-connected PV tool estimates monthly and annual output for a defined system. Its inputs include peak power, mounting and system losses. Its outputs include array-plane irradiation and PV energy. Record module technology, DC peak power, slope, azimuth and losses separately from the resource database. Compare cities with one array configuration first, then model each real design.
Do not apply a second performance ratio to a simulated output that already includes losses. The annual optimum tilt is a goal for a model. It is not an instruction for every roof. Compare feasible layouts against roof constraints, shading, access and structure. PVGIS is free to use. To see how free and paid design tools differ, read free vs paid solar design software.
From City Averages to Your Roof
A city value is a first screen for a market. A proposal needs the site details. These are roof planes, horizon, shading and equipment. Keep the resource exports, design assumptions and monthly results together. SurgePV’s energy simulation and solar simulation software pages describe the yield modeling in the product. In a guided demo you can ask which weather source and loss assumptions the model uses for your site.
See Energy-Yield Modeling for Your Address
Bring a real site to a guided demo and see the inputs and outputs of SurgePV’s yield modeling.
Book a Free DemoGuided demo with the SurgePV team
Frequently Asked Questions
Which European city has the highest solar irradiance?
Of the 30 cities in this guide’s PVGIS table, Faro has the highest annual horizontal irradiation at about 1,930 kWh/m² and Oslo the lowest at about 949. Seville is second on GHI (1,904) but fifth on yield per kWp. The ranking covers those 30 city points, not every European city.
How do I find solar irradiance for a European city?
Use the official PVGIS interface. Select the project coordinates and a radiation database. Export monthly horizontal irradiation for a stated period. Keep the export and the settings. A city point is a screening location. Repeat the assessment at the actual project site.
How many peak sun hours does Seville get?
Seville averages 5.22 horizontal peak sun hours per day over the year. The range is from 2.47 in December to 8.07 in July (PVGIS 5.3, SARAH-3, 2005 to 2023). On a 35° tilted plane, the December figure is 4.45 and the July figure is 7.46 kWh/m² per day.
How much electricity does 1 kWp produce in Berlin in June?
About 4.33 kWh per day at the optimal tilt with 14% system losses, against 0.96 kWh per day in December. Berlin averages 2.91 kWh per kWp per day over the year, or 1,061 kWh/kWp (PVGIS 5.3, 2005 to 2023).
How much solar irradiation does the Netherlands get per year?
The PVGIS query used in this guide gives 1,048 kWh/m² a year in Groningen, 1,081 in Amsterdam, 1,093 in Rotterdam and 1,120 in Maastricht. These are measured on a horizontal surface and averaged over 2005 to 2023.
What is the difference between GHI and peak sun hours?
Irradiance is power per area. Irradiation is energy per area over time. Peak sun hours are irradiation divided by a reference irradiance of one kilowatt per square meter. An annual horizontal total of 1,460 kilowatt-hours per square meter equals 4.00 daily equivalent hours over a 365-day year (1,460 ÷ 365). That is not four clock hours of sunshine.
How do I size a solar system using peak sun hours?
For a first screen, divide the target electrical energy by a consistent specific-yield estimate. Specific yield is the energy made per kWp. If you work out yield from irradiation, use the array plane, a stated reference irradiance and a defined performance ratio. Then test monthly production, load and losses. An annual energy match does not guarantee self-sufficiency.
Can DNI be higher than GHI?
Yes. DNI is measured normal to the direct beam, meaning square-on to it. GHI includes the direct beam projected onto a horizontal surface plus diffuse horizontal radiation. Their ratio is not a direct-beam fraction of horizontal irradiation. Calculate that fraction using components on the same surface and time basis.
Is a typical meteorological year the same as a long-term mean?
No. A TMY (typical meteorological year) assembles selected representative months from the source period. A long-term average summarizes the full period. Record which product you used. Neither gives a project P50 or P90 on its own.
Which irradiance dataset should I use for financing a European solar project?
Ask the lender or independent engineer which dataset, uncertainty method and report format they require. Agree it before you commission any work. Document the source period, the site evidence, the system model and the uncertainty basis.
Where this fits
This article is part of SurgePV's Solar Design hub, which works through the topic from first principles to the decisions a project team actually has to make.


