A power-flow laboratory for the GB grid

The grid, solved to machine epsilon. Every half-hour since 2001.

GridSim is a physics-constrained AC state estimator — Newton–Raphson, full Jacobian, every reactive limit honoured. GDA is the data lake that feeds it a quarter-century of the British grid, one settlement period at a time. Together they replay history with the complete mathematics attached — and they are structurally incapable of predicting anything. That last part is a feature. I'll explain.

REPLAY ENGINE: OPERATIONAL FORECASTING: NOT PRESENT, BY DESIGN
0
buses in the GB model
2×10−7 MW
worst mismatch, anywhere
0
datasets in the lake
0
tests, all green

Background: the gb-full network replaying. Every few seconds a unit trips and the solver re-converges — three iterations, warm-started. Dramatised, but only slightly.

One platform, two licences

A solver you can audit. A country to run it on.

Sold the way MATLAB sells toolboxes — the Core stands alone, the module makes it dangerous.

GridSim Core

The instrument

AC Newton–Raphson power flow with the full polar Jacobian, generator Q-limit switching and an on-load tap-changer control loop. Three backends — a dense validated reference, a sparse engine (reverse Cuthill–McKee LU with an iterative fallback) that carries 9,241-bus networks, and a backward-forward sweep for radial feeders. Desktop application, CLI and Core library.

Bring your own network — JSON topology maps, IEEE and MATPOWER case import. It stands alone. If you have a grid, it will solve it, and it will show you every step of the working.

The solver in full

GDA Data Lake — module

The country

A 225 GB research estate: 150 GB of raw public grid data, 50 GB of inferred values, 25 GB of derived physics. 653 catalogued datasets — every NESO portal set, ~84 Elexon streams, all six DNO open-data portals, four weather archives reaching back to 1926 — schema-contracted, hive-partitioned, provenance-stamped.

It unlocks GB historical replay, warm-starts the solver into converged territory, and streams per-settlement-period corrections so the solution stays pinned to the public record. The add-on that turns a solver into a time machine — one that only goes backwards.

Inside the lake
Why it cannot forecast

Hindsight only. Enforced in code, not in marketing.

Every dated byte in this platform passes a horizon guard. GridSim's ForwardInferenceGuard refuses anything newer than 25.0 hours ago. GDA's guard is set at 25.2 hours — deliberately more conservative, so the lake refuses data before the solver ever sees it. The moat is wider than the wall.

The guard is imported into 38 files on the data side and wired into every dated ingester and the streaming bridge on the solver side. A future-dated record is refused at ingestion. A query past the cutoff returns INFEASIBLE_HORIZON. There is no flag to turn it off, because it isn't a setting — it's the architecture.

"Structurally incapable of nowcasting or prediction. It can only ever lag reality." — the guard's own documentation, and I will not be talked out of it.
Auditable
Every answer concerns a settled past — checkable, line by line, against the public record.
Clean hands
A tool that cannot see tomorrow cannot front-run it. No market-abuse surface, anywhere.
No liability
Nothing to mis-forecast. Sold as research instrumentation, never as a trading edge.
The numbers do the arguing

No adjectives were harmed. Only measured.

Validation cases
0/14
all at machine epsilon
Largest network solved
0
buses — PEGASE, machine ε
UK grid, warm-started
~60 ms
1–3 iterations, vs 8–11 cold
Frequency samples
0M
at 1-second resolution, 2014→
Grid events detected
0k+
13 detectors, tested vs history
Balancing spend replayed
£0m
993 actions, one settlement period
Inertia estimation
R > 0.95
physics-aware, per-asset
Reproducibility
byte-exact
dense = sparse = GPU, test-asserted
Inertia, per machine

The industry buys inertia as one number. I compute it as thousands.

Every tool I have ever been shown treats system inertia as a single lumped scalar — one figure, typed in as data, smeared across an entire synchronous area. GridSim doesn't. Inertia here is calculated, not assumed: per machine, distributed across the network, mapped and re-mapped on every tick of the replay.

The platform carries the split the market actually argues about — synchronous inertia, outturn inertia, market-procured inertia, each in GVA·s, each streamed per settlement period. And the physics-aware estimation behind it maps to the recorded grid at R > 0.95 — the frequency expert alone holds R² 0.97 across 392 million one-second samples, with thirty per-asset models behind it.

When a unit trips in the replay, you don't get a headline number twitching. You get the map: which machines resist, by how much, and how many seconds of ride-through the grid just bought.

Inertia split — one tick of replay GVA·s
Synchronous (intrinsic)57.9
Outturn64.2
Market-procured6.3
Purchased time to 49.2 Hz 11.4 s

Seconds of frequency ride-through at the live credible loss — the hero metric of the NESO RP1 tab. Illustrative frame.

Electrically proofed

Fourteen cases. Zero excuses.

Every solution is re-checked by an independent instrument that rebuilds the admittance matrix from scratch in NumPy and recomputes S = V ⊙ conj(YV) at every bus — no shared code with the solver, nowhere for an error to hide.

CaseBusesMax mismatchVerdict
case9 (WSCC)91.7×10⁻¹² MWMACHINE ε
case1181183.9×10⁻¹² MWMACHINE ε
case3003002.7×10⁻¹¹ MWMACHINE ε
case9241pegase9,2414.3×10⁻⁹ MWMACHINE ε
gb-full — Great Britain3,5391.3×10⁻⁹ MWMACHINE ε

Worst mismatch anywhere in the full table: ~2×10⁻⁷ MW — 0.2 milliwatts on a national grid carrying ~50 GW. One part in 2.5×10¹¹. Every generator reactive limit respected exactly.

The full working

Other tools give you an answer. This one shows its maths.

Every job can emit its complete working as it executes — the math ladder. The full admittance matrix. The starting point. Every Newton iteration's mismatch and correction vectors. Every reactive-limit switching event. The Jacobian itself. Plus the git commit, the machine, and the wall-clock, stamped into one JSON document.

And it is byte-for-byte reproducible — a test fails if two runs ever differ. Dense backend, sparse backend and GPU produce bit-identical results. Peer review was designed in, not bolted on.

Step through a solve, iteration by iteration
case300-solve.json gridsim-solve-export/1
"solve": {
  "solver": "sparse-newton-raphson",
  "iterations": 7,
  "maxMismatchMw": 2.7e-11,
  "ybus":        [ 1,122 non-zero entries ],
  "passes": [
    { "iteration": 0, "maxMismatch": 4.7e+00,
      "mismatch":   [ 600 values ],
      "correction": [ 600 values ],
      "jacobian":   [ 600 × 600 ] },
    …
  ],
  "qLimitEvents": [
    { "bus": 117, "switch": "PV→PQ" }
  ],
  "converged": true
},
"meta": {
  "gitCommit": "1f3a9c2",
  "reproducible": "byte-for-byte"
}
The lake underneath

1.4 billion datapoints. None of them about tomorrow.

How far back can it look? Further than you'd guess.

1926 →
Weather archives
four sources, GB-wide
2001 →
National demand
every settlement period
2009 →
Generation mix
fuel by fuel, with carbon
2011 →
5-minute telemetry
GridWatch, continuous
2014 →
Frequency + RoCoF
392M samples at 1 s
NESO portal Elexon / BMRS — 84 streams All 6 DNO portals PV_Live solar Carbon intensity Smart-meter aggregate TEC + REPD registers OSM infrastructure
Go deeper

This page is the trailer. These are the reels.

Every claim above has a full page behind it — tables, formulas, protocol specs, the lot. A technical evaluator should not have to email me to find out how something works.

Who licenses this

Anyone whose question begins "what was the grid doing when…" Nobody whose question begins "what will".

Research groups

Twenty-five years of solved GB states, byte-reproducible, with the full working attached to every result. Your reviewers re-run your study and get your bytes.

Consultancies

Defensible historical grid states for connection studies, constraint analyses and post-event work — priced against a week of one consultant's time.

Universities

A solver that shows every iteration of its working is a teaching instrument by accident. Coursework networks in, math ladders out. Group packs from £3,800.

Regulators' technical teams

Check a claim against the record with a tool that is structurally incapable of having a position on tomorrow. The horizon guard is your independence argument.

Licensing

Priced like an instrument. Because that's what it is.

Academic
For the research group
£950 / seat / year
+ GDA Data Lake: £1,500 / group / year
  • Full solver, all three backends
  • Complete math-ladder exports
  • Non-commercial research & teaching
Details
Enterprise
For the organisation
£29,000 / site / year
+ GDA Data Lake: £35,000 / site / year
  • Unlimited seats on site
  • Monthly refresh, named engineer
  • Onboarding day included
Details

Illustrative list pricing, ex VAT. Every licence is concluded by conversation, not checkout.