Ground truth · law × metrology
The Law’s Own Arithmetic
Federal regulations habitually write a quantity once and then repeat it, in brackets, in the other measurement system. Each of those pairs carries its own ground truth, because arithmetic decides whether the two halves agree. There are 21,807 of them in the current Code of Federal Regulations. 66 sentences state two numbers that cannot both be right.
49 CFR 173.162 is about gallium. One sentence of it does the same conversion twice:
…each containing not more than 100 mg (0.0035 ounce) of gallium and packaged so that the quantity of gallium per package does not exceed 1 g (0.35 ounce)…
The first is right: 100 mg is 0.0035274 oz, which at four decimal places is 0.0035. The second is ten times too large. One gram is 0.035 oz, not 0.35. The two halves of one sentence use different arithmetic, and the sentence that gets it right is sitting nine words away.
That is checkable, and it is checkable everywhere, because the conversion factors involved are not measurements: an inch has been exactly 0.0254 metres and a pound exactly 0.45359237 kilograms since the international yard and pound agreement of 1959. So the residual in every pair can be computed exactly, with no floating point anywhere, and there is a right answer.
All 49 published titles of the eCFR, fetched from govinfo bulk data on 2026-09-13. Each title carries its own govinfo build date and its own sha256; the Code is amended daily, so this is a specific state of it and not “the CFR”.
The dial
“Is this a discrepancy?” is not a question about arithmetic. The arithmetic is settled. It is a question about rounding, and different readers hold different rules, so the rule belongs to you rather than to us.
A pair is set aside first if the written value is what you get by rounding the exact conversion to the precision actually written: to its decimal places, to its significant figures, or to its significant figures reading trailing zeros in an integer as decoration. Everything that survives all three is ranked by how far out it is, and the slider decides where you stop calling it rounding.
Slide it to zero and nearly two thousand pairs become disagreements, because at zero you are insisting that every regulation carry its conversions to the last written place and most of them round to a convenient number instead. Slide it to the far end and you are left with the sentences that are out by a factor of ten. The number that matters is the one that does not move much in between, and it is at the bottom of the slide: these are not close calls.
Sixty-six sentences
Everything past a quarter apart was read, one sentence at a time, in the source XML rather than in the extractor’s summary, because the summary is the thing under suspicion. 84 sentences cleared that bar. 18 of them turned out not to be errors and are in the next section, which is the more useful one. These 66, in 12 titles, are sentences whose two numbers cannot both be right.
A note that cites a correct conversion in the same sentence is the evidence: a drafter working to a different convention would have used it throughout.
The eighteen that were not errors
An extractor that manufactures false errors would make this whole page a lie, so the rate at which it does is the number that decides whether anything above is worth reading. Of the 84 sentences read, 18 turned out to be sound. They are the most instructive rows in the study, because each names a way that a correct sentence can look wrong.
These are the ones a human reading found. The three classes are handled by name in the extractor now, and are covered by its own tests, which is why they are few. The one honest reading of the number is: of the sentences the machine put in front of a reader as likely errors, roughly one in five was not.
The factor that governs
The Code also publishes conversion factors of its own, in tables, and tells the reader to use them. A factor is not a rounding of anything: it is the rule you are handed to round with, so an error in one propagates into every conversion a reader performs. 111 such statements exist, 104 of them between units whose relationship is exactly defined. 13 do not come out right at the figures written.
49 CFR 171.10(c), the hazardous materials conversion table, row “Force”
1 Newton = 0.2248 Pound-force | 1 Pound-force = 4.483 N
A pound-force is a pound times the standard acceleration of gravity, and both are defined exactly, so a pound-force is exactly 4.4482216152605 newtons. 4.483 is 0.78 per cent high. The table also disagrees with itself: its own left-hand entry, 0.2248, is correct, and its reciprocal is 4.4484.
The same section, at 171.10(a), says that where SI units appear they “are the regulatory standard” and that the customary values in parentheses “are for information only”. The section that decides which number governs is the section carrying the wrong factor.
| citation | as printed | exact | out by | reading |
|---|
Of the thirteen, one is not an error at all: 14 CFR part 60 gives a nautical mile as 6,080 feet, which is the old British Admiralty mile, a different unit rather than a wrong number. Six are the exact value truncated instead of rounded at the last figure. Two are stray decimal points in a radio table. Four, including the one above, are simply wrong.
The desk
Every pair, searchable. Type a unit, a citation, or a word from the quantity.
the table is not loaded
| citation | as printed | exact conversion | out by | verdict |
|---|
How this was done, and what it cannot say
The reading
All 49 published titles come from govinfo’s bulk XML, which is the channel govinfo
advertises in its own sitemap. (The eCFR’s API is not used: www.ecfr.gov/robots.txt
disallows the endpoint. Same bytes, permitted channel.) The XML is walked as a tree rather
than flattened, for two reasons that both produce false claims if you get them wrong.
Appendices are published after the numbered sections of their part, as siblings rather than
children, so anything that remembers “the last section I saw” files appendix text
under the wrong citation. And numbers are routinely broken by markup: an exponent is a
<SU> or an <E T="51">, a fraction is an
<FR> on its own line, and a flattener turns 10-6
into a subtraction.
The arithmetic
Every value is carried as an exact rational, numerator and denominator, all the way to the comparison. Nothing is ever a floating-point number until it is rendered. That is possible because every factor that matters is an exact decimal by international agreement, and it means “the exact conversion” on this page is not a figure of speech.
Where a unit is not exactly defined, the pair can never be called an error. BTU names at least three different quantities, calorie two, horsepower three, and an inch of mercury depends on a conventional density. Publishing “the CFR got this wrong” on the strength of our own choice between two legitimate definitions would be the exact failure this study exists not to commit.
The five ways a correct sentence looks wrong
A first pass over one title produced thirty-seven apparent errors, of which a third were the extractor’s fault. Each class below is now handled by name and covered by the extractor’s own tests.
- The denominator arrives late. 37.5 kg (7.5 pounds) of combustibles per square meter (square foot) is correct per square metre against per square foot.
- The parenthetical belongs to something else. In 254 mm ±3 mm (10 inches) it converts the 254; in 0.076 mm (0.003 in) ±0.004 mm (0.002 in) the tolerance has its own pair; in 53 ±1.0 km/h (33.5 mph) the base carries no unit at all.
- A temperature interval is not a temperature. The Code writes both in the same notation. A rise of 67 °F (37.3 °C) is right as a difference and absurd as a reading, and the only thing that tells them apart is the surrounding words.
- The parenthetical is an alternative. 48 hours (or 96 hours) is a second permitted value, in the same notation as an equivalence.
- The whole provision is restated. 40 CFR 407.61 says 1000 kg (1000 lb) of grapes yields 834 litres (100 gallons) of juice, which is two self-consistent statements rather than two conversions.
Four defects in the published text itself
Arithmetic turns out to be a detector for typography. Four times, a pair was wrong until the published text was read as containing a typographic defect, and the repair was adopted only because it made the sentence come out right, never silently, and always recorded:
- 40 CFR 60.110 prints 151, 416 liters (40,000 gallons). A thousands separator broken by a space; 151,416 L is exactly 40,000 gal.
- 40 CFR part 63, Appendix A prints dry at l75 °C (350 °F), and 6 to l6 mesh in the same sentence. A lowercase letter l where the digit 1 belongs.
- 21 CFR 178.3910 prints 37-8 °C (100 °F). A hyphen where a decimal point belongs.
- 29 CFR 1910.333 prints l ft. 6 in. (46 cm). The same letter-for-digit again, in a clearance table.
What a verdict is not
“Contradiction” means the sentence as published states two values that cannot both be right. It does not say which one is wrong. It does not say the provision is invalid, unenforceable, or unsafe, and it does not say anybody has been harmed. Which number governs is a question for the agency and for a lawyer; 49 CFR 171.10 happens to answer it in its own text, and most sections do not. This page is arithmetic.
What the study does not reach
- Only the parenthetical form. A quantity converted in a different sentence, or in a table column, or between a rule and its appendix, is invisible here.
- Only one edition. Every title was fetched once, on one day. The annual editions back to 1996 are published and would date each error to the rule that introduced it; that has not been done.
- Only a quarter of the discrepancies were read. 199 pairs fail the rounding rules by less than the review threshold. They are published, counted, and carry the machine’s verdict and nothing more.
- The quantity corpus is not published. 416,282 quantities were extracted; the file is 168 MB and only the pair subset is in the data room. The extractor rebuilds the rest from public bytes in about a minute.
- One gap named rather than hidden. 49 CFR 171.10 says its factors come from ASTM E 380, which is paywalled, so we cannot tell whether 4.483 was copied from ASTM or introduced in transcription. The printed 2011 edition carries the same value, so it is not a recent slip.
Take it
The pair dataset is published, CC0, with a schema, a manifest of digests, and a dependency-free validator that re-checks every row: /data/cfr-unit-pairs/. Every row carries its own ground truth, which is unusual for a measurement-extraction corpus: the regulation labels the answers itself, so a system that reads quantities out of legal text can be scored against it without anybody hand-labelling anything.
The programs are published at /checks/research/the-laws-own-arithmetic/, and run from an empty directory:
node research/the-laws-own-arithmetic/fetch.mjs # ~825 MB from govinfo, about a minute node research/the-laws-own-arithmetic/extract.mjs # the two datasets node research/the-laws-own-arithmetic/factors.mjs # the conversion-table census node research/the-laws-own-arithmetic/verify-extractor.mjs # 121 assertions node research/the-laws-own-arithmetic/verify.mjs # every check, coverage gate included
The underlying text is a work of the United States Government and an edict of government, uncopyrightable under 17 U.S.C. §105 and Georgia v. Public.Resource.Org, 590 U.S. 255 (2020). Neither GPO nor the data.gov entry publishes an explicit licence statement for the bulk files; that silence is recorded as silence rather than upgraded into a grant.