1960s and 1970sWhere the two digits came from
Storing a year as two characters instead of four saved two columns on a card and two bytes in a record, on every record, in systems where the storage was the expensive part and the programmer was not.
It was a considered trade rather than an oversight, and the assumption behind it was reasonable: that these programs would be replaced long before the century turned.
What actually breaks
Not the display. Nobody was confused about which century it was.
What breaks is arithmetic and ordering. A period that spans the boundary computes as negative. A record from the year zero-zero sorts before one from ninety-nine. Interest, terms, expiry, eligibility and scheduling are all comparisons between dates, and comparisons are where the missing digits live.
1995 to 1999The scale of the remediation
An enormous, coordinated, largely successful effort to inspect and correct systems that in many cases had no surviving documentation and no surviving author, on hardware that was itself obsolete.
Two approaches dominated: expanding the field, which is correct and expensive, and windowing, which interprets a two-digit year relative to a pivot and is cheap and postpones the problem to a date chosen by whoever set the pivot.
2000 onwardsThe claim that it was invented
Because very little went wrong, a durable popular view holds that the problem was exaggerated by people who profited from fixing it.
The strongest version of that argument is not stupid and deserves stating: some countries and organisations spent proportionally far less and experienced broadly similar outcomes, which is evidence that some of the spending bought little.
What can be said against it
Failures did occur where systems were not remediated, and they were of the predicted kind rather than novel. Organisations that inspected their systems found the defect at rates consistent with the expectation. And the comparison between big spenders and small spenders is confounded by what those economies ran: fewer decades-old systems means less exposure, not better judgement.
The honest position is that the problem was real, the remediation was necessary somewhere, the amount spent was very likely more than the minimum, and the counterfactual is not recoverable.
The structural problem it illustrates
Successful prevention is indistinguishable from an absent threat. The reward for fixing something before it fires is being told it was never going to fire.
That is not a rhetorical complaint. It is a permanent difficulty in arguing for maintenance work of any kind, and it is why the same argument will be had again about the counter of seconds described elsewhere in this document.
The same shape, twice more
Two digits for a year. Sixteen bits for a character set. Thirty-two bits for a count of seconds. Each was a sound engineering trade against the cost of storage at the time, each assumed a lifetime shorter than the one it got, and each became a coordination problem rather than a technical one.
Which suggests the useful question when choosing a width today is not whether it is enough, but how the value will be written down, because that is the part that cannot be changed later.
The remediation nobody talks about
A large share of the work was not fixing dates. It was finding out what an organisation ran: producing an inventory of systems, identifying which were still in use, locating source code, and discovering which machines nobody had a maintenance contract for.
Several people who ran those programmes have said the inventory was the lasting benefit, independent of the date. That is a recollection and it is plausible, because the same inventory is the first step in every security and continuity exercise since.
present dayWhat windowing did to the calendar
The cheap remedy interprets a two-digit year against a pivot: below the pivot means the twenty-first century, above it the twentieth. The pivot was chosen by whoever did the work, is rarely documented, and differs between systems that exchange data.
Which means the problem was not removed but scheduled, at dates spread across the coming decades, individually small and collectively invisible. Some of those have already arrived and were reported as ordinary faults.
The dates that were not the first of January
Worth noting because it complicates the tidy story. Several related boundaries fell elsewhere: the ninth of September in a year written as nines, a leap day that a common simplification of the rule gets wrong, and various fiscal year starts that arrived before the calendar one.
The leap day case is the neatest: the rule has three parts, most informal implementations use one, and the year in question is the exception to the exception, so a wrong implementation is right that year and wrong in a hundred.
What we cannot verify
Spending estimates come from consultancies and government bodies, vary by an order of magnitude, and none is reproduced here. Counts of failures depend entirely on what is counted and by whom. The counterfactual, what would have happened without remediation, cannot be established and both sides of the argument rely on it.
In short
- Two digits saved storage on every record when storage cost more than programmers.
- The failure is in arithmetic and ordering, not in display.
- Windowing was the cheap remedy and moved the problem to a date somebody picked.
- The strongest version of the hoax claim is that low-spending economies fared similarly.
- That comparison is confounded by how much old software each economy actually ran.
- Successful prevention is indistinguishable from an absent threat, permanently.