← Back to prices

How we work out what counts as cheap

Every number on this site is calculated, not chosen. This page puts all of it on the table — the thresholds, the trade-offs, and the places where we think it could be better.

The short version: we calculate three things

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:

So green doesn't mean "cheap in absolute terms". It means "this price is in the cheapest quarter for where you live". That is what colours every bar on the chart.

Why not just use one fixed number?

Because regional differences are far larger than most people expect. These are the real figures from the current calibration (2026-09-08):

Region"Cheap" is at or below"Expensive" is above
East Midlands (B)≤ 21.6p> 30.3p
London (C)≤ 21.6p> 30.3p
Yorkshire (M)≤ 21.6p> 30.3p
Eastern England (A)≤ 22.8p> 32p
West Midlands (E)≤ 22.8p> 31.9p
North East England (F)≤ 22.8p> 31.9p
North West England (G)≤ 22.8p> 31.9p
Southern England (H)≤ 22.8p> 31.9p
Southern Scotland (N)≤ 22.8p> 32p
North Wales & Mersey (D)≤ 24.1p> 33.7p
South East England (J)≤ 24.1p> 33.5p
South Wales (K)≤ 24.1p> 33.5p
South West England (L)≤ 25.3p> 35.1p
Northern Scotland (P)≤ 26.6p> 36.8p

Note the gap between East Midlands and Northern Scotland: in Northern Scotland, 26.6p already counts as cheap, while the same price in East Midlands is medium or worse.

A single national threshold would paint the whole chart red for anyone in Northern Scotland, who would never see a cheap hour — which would make the tool useless to them.

How the best windows are chosen

We search from now to the end of tomorrow, across everything not yet past:

Why the extra cut? The breakfast peak often isn't dear enough to be dropped. Without cutting, midnight to teatime becomes one sixteen-hour valley and both recommendations land in the same small hours.

Why one of each? Simply taking the two cheapest valleys usually returns two overnight windows — which amounts to telling you to get up at 3am twice. The daylight one is often dearer, but its value is that you can actually act on it.

Which one wins on price is seasonal. Tested against 60 days of real prices, the daylight window was about 7p cheaper in late summer, because solar has moved the cheap hours to the middle of the day. In winter that inverts. So neither is labelled "best" — they are shown in clock order with their prices, and you choose.

If a day has no usable valley structure at all, we fall back to the plain cheapest window rather than showing nothing.

The peak to avoid

Over the same range, the longest continuous run of "expensive" half-hours — usually the 4pm to 7pm peak. On a day with no expensive half-hours, it isn't shown.

The day's grade

This grades the day, not the window suggested above it. That distinction is easy to miss and matters.

Why include hours already gone? To compare with 30 whole days, you need a whole day's figure. Judging only what's left makes the day look worse as it wears on — not because the market got worse, but because the cheap hours have passed.

Each window length is calibrated separately, since the cheapest single hour will always beat the average of the cheapest six. Move the slider and the thresholds move with it.

When the day's own cheapest stretch has already passed, we say so — otherwise "today is good" reads as a promise about the hours still ahead. This is not unusual: by 3pm, more than half of days have already had their best window.

Where "good for" and "avoid" come from

They follow the day's grade, not any single window, because "is today a day for the big loads" is a question about the day.

Only heavy loads are listed, deliberately. We have one price curve, not one per appliance — naming ten things would imply we know differences we do not. What is genuinely worth moving is the big stuff: an EV charge swings by pounds, a dishwasher by small change. Phones, TVs and fridges save nothing by being moved, so they are left out.

Why 30 days?

We tested baselines from 14 days to 9 months, replaying four years of real prices month by month. The answer: it barely matters.

So we took the shortest — 30 days tracks the market fastest. Summer and winter prices differ sharply, and too long a baseline judges today with last season's numbers.

That test re-runs automatically every month. If the market shifts so that 30 days stops fitting, we get told and can revisit it.

Why only one number per day?

A day contains 43 different 3-hour windows (one can start every half hour), but we take only the cheapest one — so 30 days gives 30 numbers.

Pooling them all would let a single windy day drag in a whole cluster of cheap windows, and a few good days would skew the entire baseline. One per day gives each day equal weight, which is what makes "how does today compare" answerable.

When does it update?

Automatically at 16:15 UK time every day — just after Octopus publishes tomorrow's prices — always using the most recent 30 days.

The calibration date is shown on the site; right now it is 2026-09-08.

Octopus only publishes as far as 23:00, so while you are looking at it, "today" actually holds 46 half-hours (00:00–23:00) — the last hour arrives with tomorrow's release. We grade on those 46. Checked against 44 days of London prices, the missing hour moved the day's cheapest window by 0.0p on average and 0.08p at worst, so no correction is applied.

Sources and limits

Look at the distributions

Below is real data for London (region C) over the last 30 days. Other regions have a similar shape, just shifted up or down.

Half-hourly prices

This is what decides the chart colours: a big cluster in the middle with a thin tail either side — windy days on the left, evening peaks on the right.

p25 21.6pp50 25.1pp75 30.3p0p10p20p30p40p50p60p70pHalf-hourly price (p/kWh)2140p25 21.6pp50 25.1pp75 30.3p0p20p40p60p2140
Half-hourly price (p/kWh)

Daily cheapest 3-hour window

This is what decides the day's grade. One number per day, so 30 points.

p25 14.4pp50 19.3pp75 21.9p-5p0p5p10p15p20p25p30pAverage price of each day's cheapest 3-hour window (p/kWh)60p25 14.4pp50 19.3pp75 21.9p0p10p20p30p60
Average price of each day's cheapest 3-hour window (p/kWh)

Note the asymmetry: most days bunch to the right, with a few unusually cheap days trailing off below. So the "pricey" threshold sits where the data is dense and is stable; the "good" threshold sits where it is sparse and is less precise — see the honesty section below.

Things worth being honest about

Why "cheapest left today" has no grade

When the recommendation lands on tomorrow, we still show today's cheapest remaining window, because a load of washing often cannot wait. But that row carries no grade, because there is no fair comparison for it.

Every grade compares against a whole day's cheapest window, while "cheapest left today" is drawn from however many hours happen to remain. Look after 3pm and it averages about 9.8p dearer — not because the market is dear, but because the cheap hours have gone. Judged that way it would read "pricey" no matter how good the market was, which tells you nothing. So that row gives the price alone.

Reference: cheapest 3-hour window thresholds by region

For the data-minded, these are the actual thresholds behind the day's grade (3-hour windows):

Region"Good" (better than 75% of days)"Pricey" (worse than 75% of days)
East Midlands (B)≤ 14.4p> 21.9p
London (C)≤ 14.4p> 21.9p
Yorkshire (M)≤ 14.4p> 21.9p
Eastern England (A)≤ 15.3p> 23.2p
West Midlands (E)≤ 15.3p> 23.2p
North East England (F)≤ 15.3p> 23.2p
North West England (G)≤ 15.3p> 23.2p
Southern England (H)≤ 15.3p> 23.2p
Southern Scotland (N)≤ 15.3p> 23.2p
North Wales & Mersey (D)≤ 16.2p> 24.5p
South East England (J)≤ 16.2p> 24.5p
South Wales (K)≤ 16.2p> 24.5p
South West England (L)≤ 17.1p> 25.8p
Northern Scotland (P)≤ 17.9p> 27p