Energy yield

Weather data

The automatic irradiance service and its fallback, your own hourly file and what it must contain, and how horizontal irradiance becomes in-plane.

Every energy figure the application reports is downstream of one number: the annual in-plane irradiance at your site. There are two ways to supply it — an automatic fetch over the internet, or a full-year hourly file of your own — and the choice between them is the single largest decision in the yield estimate. It is a larger lever than any loss component you might argue about afterwards.

The choice is made at the top of the Energy Yield card on the Yield tab, under Weather Data Source. The two options are mutually exclusive tick boxes, and both feed the same pair of irradiance fields directly below them.

The Energy Yield card at its defaults: the weather source ticks with PVGIS selected, the irradiance fields, ambient temperature, mounting type, wind speed, albedo, and the three ADVANCED expanders closed.
The Energy Yield card

The two sources

OptionWhat it gives youWhat it needs
PVGIS API (auto-fetch)In-plane irradiance for your position, tilt and orientation, fetched when you calculateAn internet connection. No key, no account.
Hourly GHI file (CSV)A full year of your own hourly data, and optionally its own in-plane column and its own temperaturesA file you supply

PVGIS API (auto-fetch) is the shipped default.

Two abbreviations appear throughout, on the option labels and on the fields. GHI is global horizontal irradiance — what a sensor lying flat on the ground measures. GTI is global tilted irradiance, also called in-plane or plane-of-array irradiance — what a sensor lying in the plane of the modules measures. The second is the one that produces energy; the first is what most weather records contain.

The automatic service

Selecting the automatic option means nothing is fetched until you click Calculate Energy on the Yield tab, or Calculate energy on the Energy view. At that moment the application asks the service for the irradiance at your site latitude and longitude, at the array's tilt and orientation, and fills the irradiance fields with what comes back. The status line under the run buttons reads "Fetching irradiance from PVGIS…" while it waits.

The service is the EU Joint Research Centre's PVGIS. It needs an internet connection and nothing else — there is no API key to obtain and no account to register.

What makes it the better of the two automatic paths is that it returns in-plane irradiance directly. The tilted-plane transposition has already been done, for your latitude, your tilt and your orientation, inside the service. Nothing is estimated locally.

The fallback

Coverage is not universal. When the service has no data for your site, the application falls back to NASA POWER, and the two are not equivalent:

PVGISNASA POWER
What it returnsIn-plane irradiance, directlyMonthly horizontal irradiance climatology
How in-plane is obtainedAlready in-planeA simple isotropic tilt correction is applied to estimate it
Time resolution availableHourly, when fetched hourlyMonthly averages

The fallback is therefore the less precise of the two. A monthly climatology is an average of many years rather than a representative year, and an isotropic tilt correction is the crudest of the tilt models — it treats diffuse light as arriving equally from every part of the sky, so it does not capture the circumsolar brightening a better model does.

The source line

Neither service is silent about which one you got. A source line sits under the two irradiance fields and names where the current values came from:

Source lineMeaning
Source: —Nothing fetched or loaded yet
Source: PVGIS (EU JRC) — auto fetchedThe primary service answered
Source: NASA POWER — auto fetchedThe primary service had no data and the fallback answered
Source: Auto-fetch failed — switch to GHI file (in red)Neither service returned data

Read it before quoting any energy number. The service named on the line is whichever one answered for your site — the sample site below, for instance, was served by the fallback.

The Energy Yield card after Calculate Energy: GHI and GTI filled in and the green source line naming the service.
Irradiance after an automatic fetch

If neither service returns data, the irradiance fields stay at zero, the source line turns red, and the status line under the run buttons reads "PVGIS fetch failed — check your internet connection, or switch to 'Hourly GHI file (CSV)' and load a local file." That is a visible failure, not a silent fallback to a default irradiance — a zero irradiance produces a zero yield, and you will see it immediately.

Your own hourly file

Ticking Hourly GHI file (CSV) does two things at once: it reveals the row GHI file (CSV):, reading "No file loaded" beside a Browse… button, and it shows a format reminder titled Hourly GHI File — Required Format.

The Energy Yield card with Hourly GHI file (CSV) ticked and the GHI file row with its Browse button revealed.
The hourly file source selected
The Hourly GHI File — Required Format reminder listing the three columns: timestamp, GHI and ambient temperature.
The hourly file format reminder

The reminder asks for exactly three columns, in this order:

PositionColumnUnit
1An hourly timestamp, such as 2023-01-01 00:30
2Global horizontal irradianceW/m²
3Ambient temperature°C

A full year is 8,760 rows — 365 days at hourly resolution. A header row is optional and detected automatically, so a file exported straight from a data provider usually needs no editing.

Note the unit on the irradiance column. The file carries irradiance in watts per square metre, one value per hour — not an hourly energy in Wh/m², and not a daily or monthly total. The two are numerically equal for hourly data, but they are not the same quantity, and the row interval this input expects is one hour.

After the file is read

The file row stops saying "No file loaded" and summarises what it found — the file name, the number of hours, the annual GHI, where the in-plane figure will come from, the average temperature, and a tick confirming that temperature data was loaded. The source line under the irradiance fields reads along the lines of "Source: Hourly file (8760 h) | GTI calculated after layout | Monthly T from file".

Two phrases on that line matter. GTI calculated after layout means the in-plane figure is derived from your horizontal column once the layout has fixed the tilt, so the GTI (in-plane) field fills in when you calculate, not when you browse. Monthly T from file confirms the temperature column has replaced the seasonal model, which the next section explains.

What the application actually accepts

The reminder describes the strictest form of the file. The application is more tolerant than that, in two ways worth knowing before you reformat anything.

Column names are matched flexibly. The order in the reminder is a safe default, but a named header is recognised whatever position it sits in:

QuantityAccepted column names
Timetime, datetime, date, timestamp, time(utc), time(local), date/time
Horizontal irradianceghi, g(h), gh, global_horizontal, global horizontal irradiance, irradiance, solar irradiance, allsky_sfc_sw_dwn
In-plane irradiancegti, g(i), gi, in-plane irradiance

An in-plane column is used directly. The third group above is not in the reminder at all, and it is the most valuable of the three. If your file already carries in-plane irradiance — because you bought a dataset generated for your specific tilt and orientation, or because you have measured it on a plane-of-array pyranometer — that column is used as it stands. No transposition is performed, and none of the modelling assumptions in the next section apply to your numbers.

Why the temperature column earns its place

The third column is easy to dismiss as optional detail. It is not.

When a temperature column is present, the monthly average temperatures used by the model come from your data. When it is absent, they come from a sinusoidal seasonal model whose amplitude is scaled from the site's absolute latitude — a reasonable generic shape, but a generic one.

That matters because monthly performance ratio moves with module temperature, and module temperature is driven by ambient temperature. A monthly PR series built on measured ambient temperatures is defensible in a way that one built on a latitude-derived sine wave is not, and the monthly table on the Energy view is exactly the part of the output a technical reviewer reads line by line. See Temperature loss for the thermal model the temperatures feed.

How horizontal irradiance becomes in-plane

When the file carries only a horizontal column, the in-plane figure is derived in three steps.

Solar position

For each timestamp, the solar declination, the hour angle and the solar zenith angle are computed from the site latitude and the day of year. This fixes where the sun is in the sky for that hour.

Split the horizontal irradiance into beam and diffuse

A horizontal measurement is one number containing two physically different components: direct beam radiation from the sun's disc, and diffuse radiation from the rest of the sky. They transpose onto a tilted plane completely differently, so they must be separated first.

The split uses the Erbs (1982) correlation, which estimates the diffuse fraction from the clearness index — the ratio of the measured horizontal irradiance to the extraterrestrial irradiance on a horizontal plane at that moment. A low clearness index means an overcast hour, which is mostly diffuse; a high one means a clear hour, which is mostly beam.

Transpose onto the module plane

The two components are then projected onto the tilted plane with the Hay-Davies model:

GTI = Gb·Rb + Gd·(1+cos β)/2 + ρ·GHI·(1−cos β)/2
TermWhat it is
GTIIn-plane irradiance — the result
GbThe beam component on the horizontal plane
RbThe geometric ratio of beam irradiance on the tilted plane to beam irradiance on the horizontal plane
GdThe diffuse component on the horizontal plane
βThe module tilt angle from horizontal
ρThe ground reflectance used inside the transposition — a fixed value of 0.20, not the Ground albedo (ρ) field on the card
GHIThe measured horizontal irradiance

The three terms are, in order: beam projected geometrically onto the plane, sky diffuse seen by the fraction of the sky the tilted plane faces, and light reflected from the ground into the plane.

Note which ρ this is. The transposition holds its own fixed ground reflectance of 0.20 and is never handed the card's Ground albedo (ρ) field, so editing that field does not move the in-plane figure. It changes the rear-side gain on a bifacial plant and nothing else — see Bifacial modules.

Two assumptions the transposition makes

Both are recorded here because both are things a reviewer will ask about.

  • Panels are assumed to face the equator — due south in the northern hemisphere, due north in the southern. There is no azimuth input to the transposition, so a deliberately off-axis array is not modelled.
  • Timestamps are treated as local solar time. No time-zone offset or equation-of-time correction is applied to your file's timestamps. A file stamped in UTC for a site several time zones away will place the day's irradiance at the wrong solar hours, which shifts the shape of the day without changing the annual total.

Neither assumption applies when your file carries its own in-plane column, or when the automatic service returns in-plane irradiance directly.

The irradiance fields

Two fields under Irradiance hold the annual figures the calculation actually uses. Both are filled automatically — by the fetch, or from the file — and both remain editable, so you can type a figure from a source the application never saw.

FieldDefaultRangeWhat it does
GHI0.0, auto-filled0–3000 kWh/m²/yrAnnual global horizontal irradiance. Feeds the transposition, and the rear-side irradiance estimate on a bifacial plant.
GTI (in-plane)0.0, auto-filled0–3500 kWh/m²/yrAnnual in-plane irradiance. This is the figure multiplied by the performance ratio to give specific yield.

GTI (in-plane) is the one that sets the yield. If you are entering a figure by hand from a purchased study, that is the field to enter it in — putting an in-plane figure into the horizontal field will not produce the yield you expect.

The source line described above accompanies the pair. The Ground albedo (ρ) field further down the card belongs to the rear-side model rather than to these two figures; the ambient temperature, mounting type and wind speed between them belong to the thermal model on Temperature loss.

Which source to use

For a bankable estimate, use your own data. A purchased typical meteorological year for the site coordinates, or measured data from a ground station near the site, is the only input that supports a yield number under scrutiny. If that dataset carries an in-plane column, it removes the transposition from the discussion entirely; if it carries a temperature column, it removes the seasonal temperature model too.

For a first pass, use the automatic service. It is a single click, it needs nothing from you, and it is entirely adequate for comparing two layouts on the same site — where both estimates share the same irradiance and the comparison is unaffected by its absolute accuracy.

The chart window and the time-series export need an hourly series. An annual total alone — whether typed in or from the monthly fallback — is not enough to build one. Load an hourly file, or fetch hourly data from the automatic service. See Charts and time series.

Where to go next

On this page