AI Solar Panel
020 Cost Models and AI Quote Analysis 1,700 words · 8 min

Export Payments Modelled Properly: SEG Rates vs Real Behaviour

The headline number on a Smart Export Guarantee tariff is the single least useful figure in UK domestic solar. It is a rate, not a revenue. Between the p/kWh on the comparison page and the credit that lands on your account sits a set of things nobody advertises: when your surplus actually occurs, what the export tariff forces you to do on the import side, and how much it costs you to be wrong for twelve months.

If you already pull half-hourly data from a smart meter or an inverter API, you can model this properly. Not with an annual average. With your own 17,520 rows.

What the headline rate is actually measuring

SEG obliges licensed suppliers above 150,000 customers to offer at least one export tariff paying more than zero pence per kWh. That is the whole legal floor. Some suppliers meet it with 1p to 3p and a shrug. Others compete hard, because an export customer is usually an import customer worth acquiring, and export volume is a cheap hedge against their own imbalance costs.

So a smart export guarantee rates comparison built as a sorted list of p/kWh is comparing three different products as if they were one. A flat rate paid on every exported kWh. A time-of-use rate where one window is high and the rest is not. A bundled rate that only exists if you also buy your import electricity from the same supplier at their prices.

Sorting those by their largest advertised number is like ranking mortgages by the size of the cashback.

Distortion one: your surplus arrives when the rate is lowest

Solar surplus is brutally concentrated. On a 5.2 kWp south-facing array in the Midlands generating around 4,600 kWh a year, with no battery and a household that self-consumes roughly a third, about 3,100 kWh goes to the grid. Now ask where in the clock those kWh sit.

Roughly this, in my case, once I bucketed a year of half-hourly export readings:

WindowShare of exported kWhkWh/yr
02:00–05:000%0
05:00–16:0080%2,480
16:00–19:0015.5%480
19:00–02:004.5%140

Octopus Flux, using illustrative regional rates, pays about 26.5p between 16:00 and 19:00, 14.1p across the day, and around 7p overnight. The 26.5p is the number people quote. It touches 15.5% of your volume. Blended, that profile earns £496 a year, or 16.0p average. The “26.5p tariff” is a 16p tariff for a house without storage.

Capture rate is the number worth tracking: the fraction of your exported kWh that lands inside the premium window. Below about 25%, a time-of-use export tariff is a flat tariff wearing a costume, and you should compare its blended rate, not its peak rate, against Octopus Outgoing Fixed at 15p or E.ON Next’s export offer.

The same logic runs the other way on Outgoing Agile, which tracks day-ahead wholesale. Midday summer prices are exactly when every other domestic array in the country is also exporting. Cannibalisation is real, the day-ahead curve sags into single digits and occasionally goes negative, and your biggest generation days are your worst-paid ones. Agile export rewards a battery that can hold fire until 16:30. It punishes a bare array.

Distortion two: the export tariff is a Trojan horse for the import tariff

This is where most models go wrong, and it is the expensive one.

Several of the best-looking export rates are conditional: you get them only as an import customer of that supplier, on their tariffs. Flux is the clearest case, because Flux is a single product with both sides. Take my no-battery house again. Flux export earns £496 against £465 on flat 15p, a £31 win. Then look at import: 2,900 kWh a year, evening-weighted, at Flux’s 13.5p night / 27.5p day / 40.9p peak comes to £865. The same consumption on a plain 24p flat import tariff is £696.

Net position: Flux is £138 a year worse, having “won” the export comparison.

Add a 9.5 kWh battery and the arithmetic inverts, but not in the direction the marketing implies. Grid-charge overnight, cover the evening from storage, push the residue out at 17:00, and you land near 2,050 kWh exported with roughly 950 of those in the premium window. That is a 46% capture rate and a 19.6p blended export price, worth £401. Import rises to 3,600 kWh because you are now buying to store, costing £653 on Flux. Net cost of electricity: £252.

Now unbundle. Same battery, same behaviour, but Intelligent Octopus Go for import at 7p overnight and 26p the rest of the day, paired with Outgoing Fixed at a flat 15p. Import falls to £442. Export drops to £307.50 because you have given up the peak window premium. Net cost: £134.50.

The “worse” export tariff is £118 a year better, because the cheap import window is worth more than the rich export window when your battery is large enough to move energy between them. Nothing in a rates table tells you that. Only a model of your own half-hours does.

Distortion three: switching is not free, and not fast

Export tariff changes are slower and stickier than import switches. Budget four to eight weeks for the export MPAN to move and settle. Some suppliers will not take your export at all unless they also supply your import, which means an import exit fee, commonly £75, sits in front of the decision. Several export rates are variable and can be cut with 30 days’ notice, while others fix for 12 months. Those are completely different risk products at the same headline price.

There is also the withdrawal problem. Attractive export deals get closed to new customers regularly, and once you leave one you usually cannot go back. Treat a good grandfathered rate as an asset with option value, not just a number to beat.

Two mechanical gotchas worth confirming before any of this matters. Your installation needs to be MCS certified and the DNO notification (G98 or G99) completed, or suppliers will decline the SEG application outright. And your export needs a real half-hourly export register, not a deemed 50% figure. Check a bill for genuine HH export data. If the meter is a SMETS1 that never got enrolled, fix that first, because everything below depends on it.

Building the model from your own data

You want one table: timestamp, generation, consumption, export. Half-hourly, a full year if you have it, minimum three months spanning a solstice if you do not.

Sources that work without touching an installer:

  • Octopus API: GET /v1/electricity-meter-points/{mpan}/meters/{serial}/consumption/?group_by= returns half-hourly data and works against your export MPAN as well as import. API key from the dashboard.
  • n3rgy: free DCC data access for your own meter, consented through their portal, gives HH import and export in CSV.
  • Hildebrand Glow: the CAD device plus the Bright app, with an MQTT feed if you want live data into Home Assistant.
  • Inverter side: GivEnergy and SolarEdge both have documented cloud APIs; Enphase Envoy exposes a local endpoint; Fronius has the Solar API on the LAN. Solar Assistant, PVOutput and emoncms all export CSV.
  • No system yet: PVGIS hourly radiation for your coordinates plus Solcast’s free tier for a forecast shape, combined with your existing import HH data to infer baseline load.

Then it is a groupby. Pandas, DuckDB or Excel Power Query all do this in a few minutes. Ask Claude or ChatGPT to write the rate-window join against your CSV schema; that part is genuinely faster with an AI assistant, and it will catch BST/GMT boundary errors that quietly shift your 16:00–19:00 bucket by an hour twice a year. That hour matters. It moved my modelled capture rate by four points the first time I got it wrong.

Output should look like this, per candidate tariff, per year:

$ python export_model.py --profile battery_9.5kwh --year 2025

tariff                            export kWh  capture%  blend p/kWh  export £  import £   net £
Outgoing Fixed 15p + IOGo              2,050       n/a        15.00    307.50    442.00  -134.50
Outgoing Agile + IOGo                  2,050      41.2        13.88    284.54    442.00  -157.46
Octopus Flux (bundled both sides)      2,050      46.3        19.57    401.17    653.40  -252.23

sensitivity: export volume +/-15%  ->  net £ range -108 to -161 (best tariff unchanged)
best tariff robust across 87% of bootstrap resamples

The sensitivity line is the part people skip and shouldn’t. Export volume varies 15% year to year on weather alone. If your ranking flips inside that band, the decision is noise and you should pick on contract terms instead: notice period, exit fees, payment cadence.

Monitor the thing you modelled

Once a month, pull the previous month’s HH export, recompute the blended rate you actually received, and compare it to what your model predicted for that month. Two divergences matter. If realised blended rate drifts below modelled by more than about 5%, your behaviour has changed (battery discharge schedule, holiday absences, a new EV charging pattern) and the tariff choice may no longer hold. If exported volume drops while generation holds steady, you have a self-consumption change or a clipping problem worth investigating.

Anyone building this alongside a purchase decision should run it through the same discipline as the capital side; the approach in Cost Models and AI Quote Analysis covers how export revenue feeds a payback model without laundering optimism into the assumptions.

The rate you are quoted, the rate you receive

Rates move. Every figure above is illustrative and regional, and you should rebuild the table against live supplier pages and Ofgem’s published SEG tariff list before committing. What does not move is the method: take your half-hourly surplus, apply each tariff’s actual rate windows to it, add the import side of any bundled product, subtract switching costs amortised over the lock-in period, and only then rank.

Do that and the spread between the best and worst realistic option for a typical battery household collapses from the 20p-plus implied by headline rates to somewhere between £100 and £150 a year. Worth capturing. Not worth a bad import tariff.