Not a new argument, a second reading
Everything in this chapter has already been derived somewhere else in the book. What follows is the same material arranged for the second reading, the one that happens at a console at 09:41 with a refused ticket on screen and a release train waiting. Nobody reads a monograph cover to cover at that moment. They need the table, the code, and the reason, in that order — and the discipline that makes the table trustworthy is that every row still carries the number, not just the name.
Six rows, six numbers
A bare register of codes teaches an operator to recognise a string. It does not teach them why the string exists. So every entry in this chapter's fail-code tables is pinned to the fixture that produced it:
| Code | Owning card | The number that made it necessary |
|---|---|---|
DUAL_MARK_MIDPOINT | Frame card | Clouds at 1.50 and 2.10 published as 1.80; or a crowd mean of 1.80 with standard error 0.100 and a 95% interval of [1.60, 2.00] — an interval that contains neither honest cloud |
SILENT_CONVENTION_SWAP | As-of / discount frame | A 4.00% semi-annual rate pasted as continuous: discount factor 0.6730 versus 0.6703, moving a cloud from 2.10 to 2.04 and costing 270,000 on one swap leg |
ARB_SANDWICH_VIOLATED | World / scheme card | Gross return 1.12 against an up-factor of 1.10; the implied risk-neutral weight comes out to 1.10, a "probability" above one, and it prices a call at 9.82 |
SIGMA_ILL_POSED | Loss card | Rank at most 59 on 60 observations across 80 names; the null directions of the singular covariance matrix buy 167 basis points of reported return at an unchanged 15.81% volatility |
DRIFT_OVERLAY | Measure card | Expected P&L of +1.0 under the physical measure collapses to exactly 0 under the pricing measure, and goes negative after a cost of 0.40; residual correlation 0.34 against a 0.25 threshold |
LIVE_SHIFT | Live-shift card | Coverage drifts 90% → 72% → 60%, a deviation 15.8 standard deviations below nominal at n = 250 |
Read the table again and notice what each number is actually doing. It is not decorating the code; it is the reason the code has to exist at all. Take away the 270,000 and "silent convention swap" is a pedantic style complaint. Take away the 9.82 and "arbitrage sandwich violated" is an abstract inequality nobody will ever check under deadline. The number is what turns a rule into something a machine can refuse and a human can verify in one glance.
Two rows worth reading against each other
LIVE_SHIFT and BOOK_COUPLING are both retirement triggers, and both live in the worlds-and-budgets section of the register, but they differ sharply in scope and in who can actually see them. A live shift — coverage drifting 90% → 72% → 60%, a deviation 15.8 standard deviations below nominal at n=250 — is visible on one name's own monitor and can be actioned by one owner in ninety seconds. Book coupling is invisible on any single name's monitor by construction: three names each showing eight, seven, and nine yellow exceptions look like three defensible quarters in isolation. Only the aligned exception dates reveal the finding, because the real failure is that all three broke on the same six days. A product screen that renders exception counts and not exception dates cannot fire this code, no matter how well-tuned its thresholds are.
Hard gates before soft gates, always in that order
The register is organised the same way the harness itself runs: contract checks first (as-of honesty, frame declaration, arbitrage sandwiches), statistical checks only on tickets that survive them. A leaked print or a broken no-arbitrage condition is not a matter of degree; the desk either had legal information or it did not, so those codes fire at 0/1 and stop the ticket cold. A drift overlay or an ill-posed covariance is closer to a spectrum, which is why those rows carry a range rather than a single trigger — the arithmetic still ends in a number, but the number is a threshold crossed, not a binary contract violated.
Why the lookup has to earn its keep
A reference that only lists becomes a cargo cult: operators learn which code maps to which panic response without ever learning which card actually owns the fix, and eventually someone "fixes" a refuse by editing the response instead of the input. This chapter's discipline is to keep every entry traceable back to the chapter that derived it, so the lookup is a shortcut through material you already understand, not a substitute for understanding it. When a row seems arbitrary at 09:41, the number attached to it is where the arbitrariness gets discharged.
Book: Chapter 25 in Rulers Before Models.