← All posts

The London Whale and other great spreadsheet disasters.

The model that divided by the wrong thing

In early 2012, the Chief Investment Office of JPMorgan — the group managing the bank's own excess deposits — had a problem. Its Synthetic Credit Portfolio, run in part by a London trader named Bruno Iksil, had grown so large that it kept breaching the bank's Value-at-Risk limits. VaR is the alarm system of a trading floor: a daily estimate of how much a portfolio could plausibly lose. Breach the limit, and someone above you starts asking questions.

Conveniently, a new VaR model was almost ready — one that promised a more "accurate" (read: lower) number. It had been built by a well-regarded quant, under time pressure, and it ran, in the words of the bank's own post-mortem, "through a series of Excel spreadsheets, which had to be completed manually, by a process of copying and pasting data from one spreadsheet to another."

Inside those spreadsheets sat the error. The model needed the rate of change between an old hazard rate and a new one. From the task force report: "After subtracting the old rate from the new rate, the spreadsheet divided by their sum instead of their average, as the modeler had intended. This error likely had the effect of muting volatility by a factor of two and of lowering the VaR."

Read that again: dividing by the sum of two numbers instead of their average. It's the kind of mistake anyone who's written a formula at 11pm has made. The bank's Model Review Group even looked at the model, flagged issues — including that the copy-paste process should be automated — and approved it anyway. The follow-up never happened. With the new model live, the desk's reported risk dropped by half, the alarm went quiet, and the portfolio grew. By the time the positions unwound, the loss stood at $6.2 billion.

The spreadsheet didn't lose the money. The spreadsheet turned off the alarm that would have stopped the losing.

The average that ended five countries early

In 2010, Harvard economists Carmen Reinhart and Kenneth Rogoff published "Growth in a Time of Debt," with a finding tailor-made for headlines: once a country's public debt passes 90% of GDP, average growth flips negative — to −0.1%. In the middle of a global debate about post-crisis austerity, the 90% cliff became one of the most-cited numbers in economic policy.

In 2013, a graduate student named Thomas Herndon tried to replicate the result for a class assignment and couldn't. The authors sent him their actual spreadsheet — and there it was: an AVERAGE() formula spanning rows 30 to 44 instead of 30 to 49. Australia, Austria, Belgium, Canada, and Denmark — five countries of data — simply fell out of the calculation.

Honesty requires the nuance: the botched range accounted for only about −0.3 points of the error. Unusual weighting choices and excluded data did most of the damage. But it's the Excel error everyone remembers, because it's the one anyone can verify. With everything corrected, growth above the 90% threshold wasn't −0.1% — it was +2.2%. The cliff was a gentle slope, and it had helped justify austerity programs across two continents.

The pandemic that hit a row limit

In late September 2020, England's COVID case numbers looked oddly flat. The reason turned out to be an ingestion pipeline at Public Health England: labs submitted positive test results as CSV files, which were loaded into an Excel template for the national dashboard and contact-tracing handoff. The template used the legacy .xls format — which stops at 65,536 rows.

Excel did not crash. It did exactly what .xls does: kept what fit and said nothing. Over eight days, 15,841 positive cases — real people, confirmed infectious — never reached the contact-tracing system. Roughly 48,000 of their close contacts were never told to isolate. Two Warwick economists later estimated the truncation may have led to over 125,000 additional infections and more than 1,500 additional deaths (estimates the agency disputed). The fix, reportedly, was splitting the data into smaller files — and, later, an actual database.

The genome that renamed itself for Excel

Type the gene symbol MARCH1 into a fresh Excel sheet and it becomes 1-Mar. SEPT2 becomes 2-Sep. For years, geneticists pasting gene lists into spreadsheets watched Excel helpfully convert their data into dates — and a 2016 study found the converted names sitting in the supplementary files of roughly one-fifth of 3,597 published genomics papers.

The endgame is the remarkable part. In 2020, the HUGO Gene Nomenclature Committee — the body that names human genes — renamed 27 genes to be safe from autocorrect: MARCH1 became MARCHF1, SEPT1 became SEPTIN1. Science changed the map of the human genome to route around a spreadsheet default. When the tool won't stop helping, the data adapts.

Honorable mentions

The European Spreadsheet Risks Interest Group — yes, it exists — maintains a running list of these. It is long, and it is not slowing down.

The ones that never make the news

The famous disasters are the ones with post-mortems. Ask working analysts — the long practitioner threads on r/excel are full of this — and you get the everyday versions, anonymous by necessity and rhyming exactly with the headlines:

None of these are verifiable the way the Whale is. All of them are instantly believable to anyone who has inherited a workbook.

The pattern: spreadsheets fail silently

Look at who's in these stories: a bank quant, two Harvard economists, a national health agency, working scientists. Nobody here needed an Excel course. What sank them is that every one of these failures was silent. A formula that divides by the wrong denominator computes. An average over fifteen rows instead of twenty averages. A truncated import loads. A gene-turned-date sorts. There is no stack trace, no red squiggle, no exception. The grid shows you results, never reasoning — the inverse of code, where the logic is visible and the output is what you have to go compute.

Notice also what caught the one error that got caught: not review of the outputs — the outputs looked fine for three years — but a stranger re-deriving the numbers from scratch. Verification, not inspection. That's the actual lesson of the Whale and the 90% cliff: the checking has to reach the formulas, and checking formulas by hand is expensive enough that mostly nobody does it.

Which is why we'd argue these stories matter more in 2026, not less. AI is now writing formulas into workbooks at a pace no human review culture was built for, and it has its own well-known failure mode: numbers that look plausible and are wrong — or worse, dead. The tools that deserve trust are the ones that make verification cheap: show every change as a reviewable diff, re-read what they wrote, surface errors instead of computing past them. No tool catches a wrong assumption. But "the spreadsheet did something I didn't see" — the thread running through every story on this page — is exactly the failure that tooling can now make rare.