How we calculate
Three kinds of number go into a result: your own inputs, prefilled defaults with a source, and modelling assumptions such as monthly averages. The result depends on all three.
The model
- We split your yearly use into three parts: daylight hours, cheap hours (if your tariff has them) and the rest, which we call peak.
- Each month we take an average day. Solar power goes to your daylight use first; anything left over can charge the battery or is exported.
- The battery covers peak use with stored solar, after losses (round-trip efficiency).
- If your tariff has a cheaper rate, the battery fills its remaining space at that rate and covers more of the peak.
- Yearly energy cost = peak kWh × peak rate + cheap kWh × cheap rate − exported kWh × export rate. The standing charge is the same with or without a battery, so we leave it out.
- Yearly saving = cost without the battery − cost with it. Payback = installed price ÷ yearly saving, optionally with a yearly reduction of the saving.
- With the result we show what would change the answer (each main figure 20% lower or higher, one at a time), the saving for smaller and bigger batteries with the same inputs, and, if you enter the warranty, whether the battery pays back within it. If it does not, we say so plainly: on those figures, don’t buy yet.
- If you say how much of your evening use you could move to the cheap hours yourself (timers on appliances or the car charger), we apply that to both situations. We then show what moving use saves on its own, and the battery’s saving and payback are only what it adds on top.
- If you pay with a loan, we show the monthly repayment (interest charged monthly at the yearly rate ÷ 12), the total interest and the cash left each month after the repayment. Payback time stays the cash-price figure; affordability is shown separately.
The steps above describe an allocation calculation, not a chronological simulation. We allocate surplus solar first, then cheap grid charging against the remaining daily capacity and peak-use budget. We do not track an hourly state of charge, carry stored energy between days, or simulate overnight pre-charging before the next day's solar. Real control settings, forecasts and the timing of use can therefore change the result.
What the model leaves out
- One export rate for every hour. Tariffs that pay more at peak times, such as Octopus Prime Outgoing, cannot be entered as they really work, so they are not offered as a preset.
- Two import rates at most: a standard or peak rate and a cheap rate. Tariffs with three or more bands are simplified.
- The standing charge is left out of the sum. It is the same with or without a battery on one tariff, but it can change when you switch to a battery-friendly tariff; check it on the tariff page before you compare.
- Days are averaged per month. Real days vary: on a sunny day the battery may fill completely, on a dull one not at all. If you choose your region, we spread your yearly solar figure over the months with the PVGIS pattern for the nearest city (see the table). If you do not, we spread it evenly, which overstates winter generation.
- We do not model charging from the grid to export at a higher rate, or tariffs whose prices change every half hour.
- Charging power only limits grid charging, and only if you enter both the battery’s charging power and the length of the cheap window: the battery then takes in at most power × hours each night. We do not limit discharging, or charging from solar, within the day.
- Battery wear, replacement of an inverter, and changes to rates over time are only covered by the optional “yearly loss of saving” field.
How we check facts
Research is collected with a quote from the source page and its address. Before anything is published, a script fetches each source again and checks that the quote appears word for word and that every figure in our sentence appears in the quote. PDFs are checked from their text layer and page references. Where a table has no usable text layer, we inspect the rendered page and record that manual check. A source recheck date is shown only when its quote has been reconfirmed; a changed or inaccessible source needs editorial review before its figures are updated.
A matching quote proves we copied the source correctly. It does not prove the source is right, or that we caught every condition attached to a rate. That part is editorial work, and it is where we have made mistakes; they are listed below.
We do not test products ourselves and we say so on every battery guide. Manufacturer claims are written as “X states …”.
Corrections
- 26 October 2026. Refreshed Intelligent Octopus Go's advertised starting rate from 7.6p to 8p/kWh and E.ON Next Drive Smart's midnight–6am rate from 8p to 6.5p/kWh. Removed E.ON's unlocated daytime example from our facts. These are conditional advertised rates; the regional table separately identifies each supplier product and price date.
- 26 October 2026. Battery comparisons now label AC output, battery DC power and apparent power (kVA) separately. The Sunsynk PDF filename says L5.3, but the document itself identifies SUN-BATT5.32; this guide uses the document's model.
- 26 October 2026. Good Energy’s 25p Solar Savings Exclusive was listed without its main condition: it is only for customers whose panels and battery Good Energy Solar installed. Added to the export rates table.
- 26 October 2026. British Gas prints its Export Premium rate as “£12p”. We had shown it as 12p/kWh; it now reads “as printed (unit unclear)” and is no longer a calculator preset.
- 26 October 2026. Octopus Prime Outgoing (16p from 4pm to 7pm, 9p other hours) and OVO’s “up to 20p” were calculator presets. The calculator uses one export rate for every hour, so both are now only in the table.
Test cases you can check by hand
Four made-up households, not measurements. We worked out each answer by hand first; every build checks that the calculator still gives the same result. All four use 3,650 kWh a year (10 kWh a day, 40% in daylight), a 13.5 kWh battery at 90% round-trip efficiency, 26.32p peak and £6,500 installed.
| Case | Saving a year | Payback | Worked by hand |
|---|---|---|---|
| No solar, cheap night rate | £381.74 | 17.0 years | Evening use 6 kWh a day fits in the battery. Each kWh saves 26.32p − 8p ÷ 0.9 = 17.43p. 6 × 365 × 17.43p = £381.74 a year. £6,500 ÷ £381.74 = 17.0 years. |
| No solar, one rate all day | £0.00 | never | No price gap and no solar: there is nothing to move, so the saving is £0 and the battery never pays back. |
| 3,650 kWh solar, one rate, 4.5p export | £420.22 | 15.5 years | 10 kWh solar a day (spread evenly), 4 kWh used in daylight, 6 kWh spare. Stored 6 kWh gives 5.4 kWh in the evening. Saving a day: 5.4 × 26.32p − 6 × 4.5p lost export = £1.15. × 365 = £420.22 a year. £6,500 ÷ £420.22 = 15.5 years. |
| 3,650 kWh solar, 8p night rate, 4.5p export | £458.39 | 14.2 years | As above, plus the last 0.6 kWh of evening use comes from the battery charged at night: 0.6 ÷ 0.9 × 8p = 5.33p a day. Without battery: 6 kWh × 26.32p − 6 kWh × 4.5p = £1.31 a day. With: £0.05. Saving £1.26 a day = £458.39 a year. £6,500 ÷ £458.39 = 14.2 years. |
Inputs and expected results as JSON: /api/v1/test-cases.json.
Data
The checked facts are published as JSON at /api/v1/. calculator.json describes the inputs and points to the model code itself, rekenaar.js, which is the same file the calculator runs. The model version is 2026-10-23 (monthly PVGIS profile, optional grid-charging power limit, optional load shifting without a battery).