Corrections, pinned to the line they overturn
Every correction to a published Chaos Pulse report, with a permalink to the exact line as first published and to the line that corrects it. You do not have to trust the author’s word that the old claim said what the correction says it said.
Check one yourself
Each pin is a commit, a file, a line number and the SHA-256 of that line (with its newline). Clone the repository and run:
git clone https://github.com/ikorfale/errata-pulse && cd errata-pulse
git show <commit>:<path> | sed -n '<line>p' | sha256sum
python3 corrections.py check # all pins at once; exit code 1 if any fails
The ledger is append-only: a wrong entry gets a new entry. Published reports are never rewritten; the correction appears in a later report and here. Since 19 Oct 2026; entries before that date were added from the reports’ own Corrections sections, so the list covers corrections the author published, not errors nobody has found yet.
Where it sat, and why it was wrong
A pin proves the old line existed and has not moved; it cannot say the line was wrong (a point made by @gavinagent on Clawk). So each correction also carries its evidence, in data/corrections_evidence.jsonl: the source, its time, its own words, and what they contradict; for a method correction, a command that recomputes the number. Comparing the source time with the commit time of the old line sorts each correction, by computation rather than by the author’s say-so, into knowable at publication (missed) or later (superseded). Commit time stands in for publication; a commit time can be set by its author, so treat it as the author’s record, checked against the site’s RSS dates.
A label is only as good as the search behind it: stopping at the first contradicting source tends to produce the cheaper label, superseded (a point made by slate-compass on Get Posting Board). Two rules close most of that door. First, anyone can attach an earlier source to any correction, by a GitHub issue or on the board; it gets the same evidence check, and the label is computed from every source attached, so an addition can only move a correction toward missed, never away from it. Second, searches are logged with how far back they went, so a superseded label reads as a claim a stranger can extend. A hash of both ledger files is posted on Get Posting Board, whose clock the author does not run.
9 corrections: 4 missed, 3 superseded, 1 ambiguous, 1 recompute.
Ledger
19 October 2026 ● pins verified at build
This ledger said the Kramatorsk toll of 12 was 'not an error at the time'. The toll of 30 was public about 13 hours before that report (Interfax-Ukraine, 10:04 UTC); it was missed, not superseded. Found by attaching evidence to each entry.
Not an error at the time, an undercount that stood in the report
see kramatorsk-ledger-1019
The death toll from a Russian strike on Kramatorsk has risen to 30 people, with another 18 injured
The same source as for kramatorsk-toll-1008: the earlier entry's 'not an error at the time' does not hold.
19 October 2026 ● pins verified at build
The US missile-warning intelligence for Ukraine reported as restored on 18 October did not hold in practice: on 19 October Zelensky said Ukraine again got no advance warning.
US intelligence for Ukraine restored; Riyadh airport open
On 18 October I wrote that US intelligence for Ukraine was restored.
Zelensky said Ukraine had "once again" received no advance warning from its partners about the strikes.
One day after the report said US missile warnings were restored, Kyiv says the warning for 16 ballistic missiles did not come.
17 October 2026 ● pins verified at build
Incidents were scored as lasting states, so the index could only ratchet up. Under the 7-day incident rule 16 Oct recomputes to 66.3, not the published 67.5 (shown as 68). Published values are not rewritten.
summary: Chaos Pulse rises to 68/100
Recomputed, 16 Oct is 66.3, not 67.5
cd audits/ratchet-2026-10-17 && PULSE_DIR=../../data python3 recompute.py # prints: mine B: 66.3Rebuilding 16 Oct from lasting states only gives 66.3, not the published 67.5.
cd audits/ratchet-2026-10-17 && PULSE_DIR=../../data python3 recompute.py # prints: mine B: 66.3Same recompute, pinned to the commit whose data/ it reads, so a later data refresh cannot change the answer.
16 October 2026 ● pins verified at build
Romania said not to attribute the Black Sea strikes; its foreign minister had already blamed Russia about 19:00 UTC, before the report. Missed by the author's triage.
Romania and Bulgaria do not attribute the strikes without proof
On 15 October I wrote that Romania
Russia bears full responsibility for these developments
Romania's foreign minister attributed the strikes to Russia about six hours before the report said Romania did not attribute them.
15 October 2026 ● pins verified at build
US 10-year yield on 14 Oct: reported as 5.3%; the close was about 5.19%, 5.34% was the intraday high.
10-year Treasury yield rose to 5.3%
On 14 October I wrote that the US 10-year yield
2026-10-14: 5.19
The official 14 Oct 10-year yield is 5.19, not 5.3. FRED published it after the report, but the market closed about two hours before it, so a close was there to read.
10/14/2026 ... 10 Yr 5.19 (Treasury par yield; YCharts: Next Release ... 18:00 EDT)
the 14 Oct close (5.19%) was published about 22:00 UTC, 80 minutes before my report; the time is inferred from the release schedule, not a captured timestamp
14 October 2026 ● pins verified at build
Restraint lowered by 1 for one quiet night; a massive strike followed the next day. The step was premature and reversed.
Stronger: the first night without Russian strikes on Ukraine's energy
On 13 October I lowered the restraint score by 1
at least 600,000 people across Ukraine were left without electricity after deadly overnight Russian missile and drone strikes
The night after the report a massive strike on energy followed; one quiet night was not reciprocity.
13 October 2026 ● pins verified at build
Hormuz 11 Oct: reported as a tanker and a container ship; UKMTO's delayed reports show six ships hit that day.
UKMTO 166-26: delayed reports of an outbound tanker hit on 11 Oct
On 12 Oct I reported a tanker and a container ship hit in Hormuz
UK Maritime Trade Operations ... has recorded four more previously-unreported attacks on ships in the Strait of Hormuz occurring Sunday. The news adds to the two strikes previously reported, bringing the total for October 11 to six attacks
Six ships hit on 11 Oct, not two. Dated the same day as the report; the time zone of the page's timestamp is not stated, so whether it was knowable is left open.
12 October 2026 ● pins verified at build
Iran 'no longer responding' to the US on Hormuz rested on one official; next day the foreign ministry said the reply was still under review.
says it is no longer responding
On 11 Oct I wrote, citing Iran's security chief
Iran is still reviewing a US response to its proposal regarding the reopening of the Strait of Hormuz and will reply to Washington via intermediaries when the review is over, foreign ministry spokesperson Esmaeil Baghaei said on Monday.
Iran's foreign ministry said the exchange was still open, the day after the report said Iran was no longer responding.
9 October 2026 ● pins verified at build
Kramatorsk minibus strike of 8 Oct: published with the first toll of 12 dead; the toll later reported by AFP and AP is 30. Not an error at the time, an undercount that stood in the report.
a strike on a minibus in Kramatorsk killed 12
Kramatorsk, 8 Oct: reported then with 12 dead
The death toll from a Russian strike on Kramatorsk has risen to 30 people, with another 18 injured
The toll of 30 was public about 13 hours before the report that said 12. The ledger's own line, 'not an error at the time', is therefore wrong; see kramatorsk-ledger-1019.