Back to the archive

The encyclopedia · Software & IT · Technical decision · 1960s–1999

Two digits saved a few bytes per record — and cost the world $300B to undo

Storing '99' instead of '1999' was sensible when memory was expensive. Forty years later, putting the other two digits back cost the world $300B.

US Government · IEEE · 1999-12-31

What happened

For decades, storing a year as two digits was good engineering. Memory and disk were expensive, the convention was universal, and every programmer knew the systems would be replaced long before 2000. They were not replaced. The code went into payroll, billing, air traffic, power grids and bank ledgers, and stayed there.

By the 1990s nobody knew where all of it was. Remediation meant auditing code nobody had read in twenty years, in languages the original authors had retired from, to find every place a year was stored short. The global effort ran for years and cost an estimated $300 billion — the largest coordinated software repair ever attempted.

At midnight almost nothing failed, and the argument began immediately over whether the money had been wasted. It is unfalsifiable by design: a prevented failure leaves no evidence. What is not in dispute is the arithmetic — two bytes per date, multiplied across forty years of records, cost $300B to add back.

Why it happened

  • A storage optimisation was made permanent by code that outlived every assumption behind it.
  • The convention was universal, so no single owner was responsible for undoing it.
  • Nobody kept a record of where dates were stored, so the fix started with an inventory.
  • The deadline could not move, which removed the option of doing it gradually.
What it cost$300B+ to put two digits backcostly

The lesson

A shortcut taken because the system will be replaced becomes permanent when it isn't. Price the exit before you take it — the bill arrives on someone else's deadline.

Aftermath

Almost nothing failed at midnight, and the absence of failure became the argument against the spend — the paradox of prevention. The remediation left behind the first complete inventory many organisations had of their own systems, and the 2038 problem, the same bug in 32-bit timestamps, is already known and already dated.

Sources

spotted an error? The club wants to know.

Comments · 0

    Sign in to join the comments.

    More like this

    Somewhere, someone solved the problem this company failed at. 2nd Opinion →