Skip to content

How the calculation works

Everything below is checkable. Where our own results fall short of the bar we set, that is stated rather than omitted.

Reviewed 2026

Two tools, and they are not the same promise

The estimate on /estimate multiplies a published PVGIS yield figure by your array size and shows all six steps, so you can redo it on paper. It runs in your browser, it works anywhere PVGIS has data, and it asks you for your own electricity prices because we do not hold yours. It carries no calibrated bound and it is labelled an estimate throughout.

The calculator on /calculator is different. It asks the tested Python engine for a figure with a lower bound attached, and it only answers for a market whose export rules are actually implemented. Where they are not, it refuses and says what is missing rather than approximating.

Keeping those apart is the point. One is arithmetic you can check; the other is a modelled result you are being asked to trust, and the second has to be scarcer than the first.

One engine, no second copy

Every calibrated figure is produced by a tested Python engine and delivered over an API. The website performs no arithmetic on tariffs or savings for that path. Not for a preview, and not for speed.

This is a deliberate constraint rather than an implementation detail. The moment a second implementation exists it drifts from the first, and an installer whose PDF disagrees with the web page has been handed a contradiction in front of their customer.

The estimate tool is not an exception to this. It publishes no calibrated figure, so there is nothing for it to drift from, and it says so on its own page.

Where the yield figures come from

PVGIS, the European Commission Joint Research Centre’s photovoltaic performance tool. It states its own radiation database and the years it averages, and it is free for anyone to check: SARAH2 across Europe and Africa, NSRDB across the Americas, ERA5 elsewhere.

We pull it with a script that ships with the site, and the resulting dataset is committed rather than fetched at page load. Anyone can run the script and get the same file, which is the only reason a number on this site deserves to be believed.

Orientation and pitch adjustments are computed per latitude band, because pointing a roof away from the equator costs about 43% at high latitude and about 52% in the middle band. One global table would be wrong at both ends.

Why we publish a range

A single number implies a precision that no yield model has. Weather varies year to year, tariffs move, and household consumption is never quite what a profile says it is.

So we publish an expected figure alongside a lower bound: the level the model stays above in nine of ten simulated years. The lower bound is the one to plan with. It is a modelled likelihood, not a guarantee, and nobody underwrites it.

What we have not proven

Yields come from simulated weather, not from readings taken on your roof.

We ran one validation of the physics against measurements from a real site. The model did not meet the accuracy threshold we had set for it. The transposition error came out at 14.7%. We have not repeated that test at scale.

Until a field pilot says otherwise, treat everything here as a well-reasoned estimate rather than a measured result. We would rather lose a sale to that sentence than defend it later.

What the Smart Export Guarantee does and does not fix

The Feed-in Tariff closed to new applicants in March 2019. Since January 2020 the Smart Export Guarantee has obliged larger suppliers to offer an export tariff, but it does not set the rate. Beyond requiring it to be greater than zero, what you are paid is a commercial decision by your supplier.

That is why two identical roofs can earn very different amounts, and why our calculator asks who supplies you before it will produce a figure. Each supplier in the list carries the date its rates were last checked.

Where our Great Britain figures are still provisional

The engine was built for the Dutch market, where the minimum export payment is fixed in law as a share of the bare supply tariff. It therefore expresses feed-in as a percentage of the import price.

A UK export rate is not that. It is an independent figure in pence per kilowatt-hour, set by the supplier, bearing no fixed relationship to what you pay for import. Until the engine takes an absolute export rate, our UK results are directional rather than precise, and we would rather you knew that than found out later.

We are also carrying a Dutch construction the UK does not have: a monthly charge for exporting. Where that appears in a UK calculation it is an artefact of the model, not a real cost on your bill.

The three numbers that decide what your solar earns

Import price is what you pay per kWh drawn from the grid. Export rate is what your supplier pays per kWh you send back. Self-consumption is the share of your generation you use as it is produced.

A unit you consume is worth the import price you avoid. A unit you export is worth the export rate. Because those two differ substantially, self-consumption is what decides the outcome, and it is the thing a battery changes.