Open ledger · 2 September 2026

1,636 predictions.
None scored yet.

Before anyone builds a power plant, they file a request to plug it into the grid. Most of those requests never become anything.

I took every request still waiting in four US grid operators. Each one now has a probability of ever being built, and a date by which it must settle — built, or dead. 355 gigawatts covered.

The ledger is public. I can add rows. I cannot change one. Today it holds no results at all — the only honest state for a record that started this morning.

1,636
predictions, each with a probability and a deadline
355
gigawatts of capacity waiting in those four queues
0
settled so far. The record was written this morning, so nothing has had time to settle yet
2028
the first year any prediction is required to have settled. Many will settle sooner, as operators report outcomes

The four operators are MISO (the Midwest), CAISO (California), NYISO (New York) and ISO-NE (New England).

Why publish an empty scoreboard

The usual way to show a model works is to test it on the past. But the past is already known. You can adjust the model until the old answers come out right.

A record written in public before the answers exist is the one kind nobody can tidy up later. So that is what this is. The bad rows will stay too.

WRITTEN AND LOCKED · 2 SEPT 2026 1,636 predictions 0 of 1,636 settled today 2028 · first must-settle year
Come back and check. The same rows will be here, results attached.

The rules, set before the first row

Four rules are enforced by the code that writes the ledger, not by my good intentions:

rulewhat it prevents
Add onlyA second prediction on the same project is refused. No quietly revising a number as the odds change.
Results written onceA settled row cannot be settled again. No re-grading a miss into a hit.
Deadline requiredEvery row carries a date it must settle by, in a column named resolves_by. No prediction that stays open forever because it never quite failed.
Referee named upfrontEvery row names its referee, in a column called outcome_source, the day the prediction is made: the operator's own final verdict. No picking a friendly source later.

That last rule is why there is a daily archive. Operators publish today's status and overwrite it in place, so nobody keeps yesterday's value.

If the referee is a file that can be rewritten, the record is worthless. So the archive saves each waiting list every morning, and the ledger points at it.

Not one confident bet on a giant project

Arguments about AI and electricity are held in gigawatts, so the biggest requests get quoted. The model is trained on twenty years of what happened to requests like these. It will not back a single one of them.

Sizes below are in megawatts, MW. A thousand MW make one gigawatt.

the largest requestsoperatorMWchance built
ATLAS COMPLEX — solar + storageCAISO3,2007.9%
unnamed — gasMISO2,22026.6%
unnamedMISO2,2207.1%
unnamedMISO2,0151.4%
unnamed — gasMISO1,54010.1%
HOLMAN — hybridCAISO1,5002.1%
all 31 requests of 1,000 MW or more——12.2% avg

MISO does not publish project names, so many of the biggest rows are blank. The ledger identifies them by county, connection point and queue date.

Now the whole set. 335 of the 1,636 requests are expected to be built. They carry 63 GW of the 355 GW queued, or 17.8% of the capacity advertised.

MISO holds 243 GW of that, with the highest average probability, 26.0%. NYISO is lowest, at 4.5%.

What this model is good at, and what it is not

The model is logistic-v1. The full history holds 9,643 requests whose fate is known. It learned from 5,433 of them, about one in five of which were built — 21.4%.

It learned only from requests that had already finished, then was tested on the next group. Never the other way round.

The test it has to pass: beat a flat guess of 21.4% for every project.

Each prediction earns a penalty for how far it sat from what happened. Lower is better; zero is perfect.

measurevalue
penalty score (its name is the Brier score), the model0.1540
penalty score, the flat guess of 21.4%0.1668
how much smaller the model's penalty is7.7%
groups where its numbers matched reality2 of 7

So it beats the flat guess, by a little. Comparing it against guessing zero every time would have looked better and proved nothing.

Next I split the predictions into seven groups by the probability the model gave. In only 2 of the 7 did its numbers match what really happened.

Those two findings pull against each other. It beats the flat guess, yet its numbers are wrong in five groups out of seven. It gets the order right and the number wrong. Projects it rates higher do get built more often, and that ordering is worth something. But it pushes its percentages too far towards 0% and 100%.

Here are the seven groups: how many projects in each, and the share that got built. The last column is a 95% range: where that true share very likely sits.

model saysprojectsshare builtvery likely rangethe model's number was
0–5%7944.3%3.1–5.9too low
5–10%95910.7%8.9–12.9too low
10–15%62914.6%12.1–17.6about right
15–20%55619.1%16.0–22.5about right
20–30%99927.7%25.0–30.6too low
30–50%80935.0%31.8–38.3too high
above 50%35249.4%44.2–54.6far too high

The bottom row is the damaging one. The model promised better than a coin toss. Only 49.4% were built. Take one example: across the group it rates above 50%, projects it calls 65% are built about 49% of the time.

At the top end it claims more than the evidence supports. At the bottom end, for the same reason, it is too gloomy.

I tried rescaling its numbers (a method called isotonic regression) to fit what happened. That fixed one group and left the model worse overall. So it cannot be patched by shifting numbers. The model is simply more certain than the data allows.

I checked two other explanations first. Has the world changed underneath it? No. The build rate is flat: 22.2% before 2012, 21.3% after 2017. Using only recent history gains 0.16%, which is nothing.

The second check: are the high groups big enough to trust? They are thin, and their projects cluster in a few parts of the queue. That is my best guess so far, and the next thing to measure.

Trust which projects it ranks higher. Do not yet trust the percentage.

The ledger publishes the raw percentage anyway, weakness and all. A record edited down to the parts that work is not a record.

A bug caught on the way here

The first version of this ledger was written and thrown away the same morning. Every deadline came straight from the operator's own proposed completion date. A stalled project keeps the date it missed.

So 62 rows carried a deadline already in the past, the earliest 2002. Their deadline was gone before the prediction existed. Nothing can prove them wrong. They were not predictions at all.

The same file had a second fault. 63 rows wrote dates as 9/2/2026 and 1,573 wrote them as 2026-09-02. The code never read them as dates; it copied the characters across.

Mixed date formats had already ruined 84% of the queue dates earlier in this project.

Both are fixed. Every date is now read on its own, and every deadline is set at least two years past the day the prediction was made. The broken file is kept in the repository, not deleted, because a correction you cannot check is just a claim.

You may rewrite a ledger like this on one day only: the day you create it, before anything is published. That day has passed. It is frozen now.

Read it yourself

Every row gives the probability, the facts behind it, the deadline and the referee. 1,636 rows, 476 KB.