Data, sources and freshness
The rule behind every row: a value is either verified against a supplier, regulator or network source, or it is marked unverified and hidden by default. Nothing is estimated.
Coverage
| Dataset | Source and cadence |
|---|---|
| Octopus Energy tariffs, all 14 regions, electricity and gas, import and export | Octopus Energy public products API, synced daily. Off-peak windows are derived from the published half-hourly rate series; Agile and Tracker carry 7, 30 and 90-day averages. |
| Other suppliers (British Gas, EDF, E.ON Next, Good Energy, OVO, ScottishPower, So Energy, Ecotricity and others) | Supplier tariff sheets, quote pages and product pages, verified by hand with the check date recorded. Regional coverage is stated on each row: H (Southern England) or GB average where the supplier publishes one figure. |
| Ofgem price cap | Ofgem's regional tables, transcribed on announcement day for the coming quarter. All 14 regions plus the GB average, direct debit, standard credit and prepayment, single-rate and Economy 7, electricity and gas. |
| EV public charging | Each operator's own pricing page, re-checked on a schedule and whenever a price change is reported. |
Regions
Electricity prices in Great Britain vary by GSP group (distribution region). Use the letter; the API also returns the region name.
| Code | Region | Code | Region |
|---|---|---|---|
| A | Eastern England | J | South East England |
| B | East Midlands | K | South Wales |
| C | London | L | South West England |
| D | Merseyside and North Wales | M | Yorkshire |
| E | West Midlands | N | South Scotland |
| F | North East England | P | North Scotland |
| G | North West England | GB | Great Britain average |
| H | Southern England |
Northern Ireland has a separate market and is not covered.
Provenance fields
Every tariff, rate, cap and charging row carries source_url (the page or API the value came from), verified_at (the date it was checked), verified_by (a person or a named automated process) and confidence (verified or unverified). Pass include_unverified=true to see unverified rows; they are clearly labelled.
Freshness
GET /v1/meta/status (or the get_data_freshness tool) returns, per dataset, the number of verified rows and the newest and oldest verified_at, the cap period in force and the next one on file, and the last sync runs. Every response also carries meta.as_of.
Changelog
Inserts, updates and retirements are recorded automatically with old and new values: GET /v1/meta/changelog?table=tariff_rates&limit=50. Rows are retired (active=false, valid_to set), never deleted, so a tariff that was withdrawn last month is still there with include_unavailable=true.
Corrections
If a figure is wrong, email david@cleantechcontent.co.uk with the row's id and a source. Corrections are applied with a note in the changelog.