Battery & tariff simulator

Octopus half-hourly prices, fetched live · one charge/discharge cycle per day · all client-side
Settings

1 · Your data

Drop usage CSV here, or click
Octopus half-hourly electricity export
Drop gas CSV here, or click

2 · Current tariff

Use this if your export has no cost column, or to test a future price rise.

3 · Tariff to compare

4 · Battery & inverter

Min charge is the discharge floor — the bottom slice the battery never dips below (makers typically say 10%).
Leave the import cap blank to let grid import be house load plus battery charge.
Used for time-to-payback. Leave at 0 to hide it.

5 · Strategy

“Next charge cycle” keeps remaining charge until the battery next charges, instead of dumping it at a fixed clock boundary.
Set 0 to charge only when prices are negative or free.

6 · Heat pump

Gas kWh → useful heat (× efficiency) → electricity (÷ COP).
Your CSV is kept in this browser’s own storage so you don’t have to re-upload it — it never leaves your machine.

Result

Sensitivity

Re-runs the optimiser at nearby pack sizes and inverter ratings, everything else unchanged. ~13 runs, a few seconds each.

All tariffs compared

Same battery, inverter and strategy for every row. Each tariff uses its own standing charge, accumulated per half-hour so mid-period changes are exact.

Day explorer

00:00
grid import battery discharge export

Whole day

import price export price state of charge

Monthly

Start by dropping in your usage CSV

Download your half-hourly electricity data from Octopus, then drop the CSV on the left. Rates are fetched live from the public Octopus API for whichever region and tariff you pick, and cached in your browser. Nothing is uploaded anywhere — the whole simulation runs in this page.

What the model assumes

  • Capacity is usable kWh; round-trip loss applies on charge, so storing 32 kWh imports 32/0.9 = 35.6 kWh.
  • Inverter power caps charge and discharge per half-hour; discharge to load and to export share that cap.
  • One cycle per day: all charging precedes all discharging, and everything charged is discharged the same day.
  • Perfect foresight of each day's prices — realistic on Agile, which publishes day-ahead.
  • Your consumption is assumed unchanged by the tariff switch.