How we work out what counts as cheap
Every number on this site is calculated, not chosen. Here is how.
The short version: we calculate three things
- Best window — when to run things (two windows on days with two peaks, otherwise one)
- Peak to avoid — when it is dearest
- Today & tomorrow — how each day rates overall: Free, Good, Normal or Pricey
All three come from the same source: the last 30 days of real half-hourly prices in your grid region. Only the slicing differs.
The basis: how the three colours are decided
We take the last 30 days of real prices in your grid region, sort them cheapest to priciest, and split them:
- Cheapest 25% → green, Cheap
- Middle 50% → amber, Medium
- Priciest 25% → red, Expensive
- Below 0p (you're paid to use power) → blue, Negative
So green does not mean "cheap in absolute terms". It means"this price is already in the cheapest quarter for your region". That is what every bar's colour on the chart is saying.
Why not one fixed number?
Because prices differ across Britain by more than most people expect. These are the actual figures from this calibration (2026-10-29):
| Region | "Cheap" is under | "Expensive" is over |
|---|---|---|
| East Midlands (B) | ≤ 21p | > 33.6p |
| London (C) | ≤ 21p | > 33.6p |
| Yorkshire (M) | ≤ 21p | > 33.6p |
| Eastern England (A) | ≤ 22.2p | > 35.5p |
| West Midlands (E) | ≤ 22.2p | > 35.5p |
| North East England (F) | ≤ 22.2p | > 35.5p |
| North West England (G) | ≤ 22.2p | > 35.5p |
| Southern England (H) | ≤ 22.2p | > 35.5p |
| Southern Scotland (N) | ≤ 22.2p | > 35.5p |
| South East England (J) | ≤ 23.3p | > 37.3p |
| South Wales (K) | ≤ 23.3p | > 37.3p |
| North Wales & Mersey (D) | ≤ 23.4p | > 37.3p |
| South West England (L) | ≤ 24.3p | > 39.2p |
| Northern Scotland (P) | ≤ 25.6p | > 41p |
Note the gap between East Midlands and Northern Scotland: in Northern Scotland, 25.6p already counts as cheap — but the same price in East Midlands is medium or worse. With one national threshold, anyone in Northern Scotland would see a chart that was red from end to end and never get a cheap hour at all.
How is the best window chosen?
Prices are published in one batch each afternoon at 4pm and run to 11pm the next day.The window is chosen within that batch, not within the calendar day. Then:
- Drop every half-hour that counts as expensive. What is left falls into separate stretches — we call them valleys
- If a valley still has a noticeable bump in the middle, treat that as a peak too, and split again
- In each valley, find the cheapest stretch of the length you asked for (3 hours by default)
- The cheapest one is badged 1; if another valley holds a window far enough away from it, you get that one too, badged 2
British prices usually have two peaks a day — morning and early evening — with two valleys naturally sitting between them: the overnight one and the daytime one. We cut along the shape of the day rather than splitting it by the clock. So on a day without two peaks you getone window only, instead of a second option invented to fill the space.
What about the peak to avoid?
Within the same span: every stretch that runs an hour or more with all of it in the expensive band. Usually two a day — the morning commute and roughly 4pm to 7pm — and both are listed.
Today & tomorrow — how Free, Good, Normal and Pricey are worked out
This rating is about the whole day, not about the window suggested above. That distinction matters and is easy to miss.
Today and tomorrow each get their own rating on the same scale, because "is today a good day to do this?" is always answered against tomorrow. Tomorrow's prices usually arrive around 4pm, and until they do, that row says so.
Then:
- Take the whole day's cheapest window of that length, including hours already gone
- Take the same figure for each of the last 30 days — 30 numbers
- Today's lands in the cheapest quarter → Good; the middle →Normal; the priciest quarter → Pricey
- If the average goes below 0p → Free (you're paid to use power — rare, but it does happen)
Why count hours that have already passed? Because comparing against 30 whole days means using a whole day's figure. Counting only the hours left would make every day look worse as the evening wore on — not because the market got worse, but because the cheap hours had already gone.
Move the slider and the standard moves with it: the cheapest single hour will always beat the average of the cheapest six.
When does it update?
Everything recalculates automatically at 4:15pm UK time each day — just after Octopus publish tomorrow's prices — always using the most recent 30 days. This calibration is from 2026-10-29.
Sources and limits
- All prices come straight from the Octopus Energy public API, as unit rates including VAT (p/kWh).
- We ignore the standing charge, because it is a fixed daily amount and does not change with when you run the washing machine.
- 30 days is a trade-off: too short and one or two extreme days distort it, too long and it stops tracking the seasons (winter and summer prices differ a great deal).
- This is a relative comparison, not a forecast. We tell you how today compares with the past month; we do not predict prices beyond tomorrow.
Why does "Cheapest left today" have no rating?
When the suggested window falls on tomorrow, we still give you the cheapest stretch left today — a basket of washing often cannot wait. But that row carries no rating, because there is no fair comparison to make: every rating is measured against a whole day's cheapest window, while "left today" is only the hours not yet gone. The later you look, the worse it scores, and it would end up showing Pricey however good the market was.
It does carry a colour label (Cheap, Medium, Expensive or Negative), because the colour answers a different question:is this price cheap or dear for your region over the last 30 days? That one is fair to ask of any half-hour. Ratings compare days; colours compare prices.