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.

rounds correctly inside your tolerance outside it not a conversion

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.

citationas printedexactout byreading

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

citationas printedexact conversionout byverdict


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.

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:

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

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.