Artificial Wasteland artwaste.land

Dual-unit quantity pairs in the Code of Federal Regulations

7 of 7 conditions 21,807 rows · 19.7 MB · 5 files

Federal regulations habitually write a quantity once and repeat it parenthetically in the other measurement system: not more than 100 mg (0.0035 ounce) of gallium. This dataset is every such pair in all forty-nine published titles of the eCFR, 21,807 of them, each with the exact conversion computed from defined factors and the residual attached.

The files

FileRowsBytessha256
pairs.jsonl 21,807 19,665,124 eb5609c02ed28f3b1b0b67f9eaa46f4060d7a2e06e2c01f45a4660c13f837722
README.md n/a 4,346 5aeca2bdade491d593553d0cab4be552de0c096ed466b60868e5434ba313f7b6
schema.json n/a 8,001 bf462c50510b04859b509aee152320483ed6807eda4a275472a827ba427a98c1
sources.json n/a 2,446 4959d31d821d57ca94a1e78fbae25281ce7e95d33c70213dd910015864489b7b
validate.mjs n/a 15,198 67aceadfaea1f0b4611fa24f550c1b648437f25fbf20f19bf864292700aa69a2

Take the folder and check it yourself: node validate.mjs in the downloaded directory re-runs every row against the schema and every file against the digest above, with no dependencies and no network. The dataset's own full account is README.md.

A row, field by field

Origin is the column that decides whether we may give a field away at all. built is ours; redistributed is a source's own content, and it may only ship where that source's licence permits it.

FieldTypeOriginWhat it is
id string built Stable within one extraction run; not stable across runs, because the CFR is amended daily.
cite string built Citation assembled from the XML ancestor stack, e.g. "49 CFR 173.162" or "14 CFR part 25, Appendix F".
title integer built CFR title number, 1 to 50.
part string or null built Part number, as the XML records it.
section string or null built Section number without the section sign. Null inside an appendix.
appendix string or null built Appendix heading, when the pair is in one.
verbatim string redistributed The pair exactly as the regulation prints it, from the first quantity through the closing parenthesis.
sentence string redistributed The sentence it sits in, as published.
a_written string redistributed The first quantity as written, number and unit.
a_value string built Its value as an exact rational, "n" or "n/d". Fractions and mixed fractions are kept exact.
a_unit string built Normalised unit identifier for the first quantity.
b_written string redistributed The parenthetical quantity as written.
b_value string built Its value as an exact rational.
b_unit string built Normalised unit identifier for the parenthetical quantity.
b_decimal_places integer or null built Decimal places actually written in the parenthetical. Null for a fraction.
b_significant_figures integer or null built Significant figures actually written, counting trailing zeros. Null for a fraction.
expected string or null built The exact conversion of the first quantity into the second unit, as a rational. Exact because the factors are exact by definition.
expected_number number or null built The same value as a double, for convenience. The rational is authoritative.
ratio number or null built written divided by expected. Meaningless for a temperature and recorded anyway; use last_place_error there.
relative_error number or null built Absolute relative difference. Null for a temperature, where the scale has an arbitrary zero.
last_place_error number or null built How far the written value sits from the exact conversion, in units of its own last written decimal place.
reading string built Which reading made the comparison: direct, temperature-interval, force-reading, compound, eight-hour-day, ambiguous-unit, spaced-thousands, letter-l-for-digit-one, hyphen-for-decimal-point, none.
verdict string built agree, rounded, discrepant, alternative, same-unit, percent-of, inexact-unit, incomparable.
rounds_at_written_places boolean or null built The written value equals the exact conversion rounded to the decimal places it was written to.
rounds_at_written_figures boolean or null built The same at the significant figures written.
rounds_ignoring_trailing_zeros boolean or null built The same again, reading trailing zeros in an integer as insignificant.
definition_dependent boolean built True when a unit in the pair names more than one quantity (BTU, calorie, horsepower, inch of mercury). Such a pair is never called an error.
affine boolean built True for a temperature pair.
in_table boolean built The pair is in a table cell rather than running text.
flags array built Structural warnings from the extractor.
reviewed boolean built A person read this sentence in the source and recorded a verdict.
review_class string or null built contradiction, artifact-compound-rate, artifact-parallel-statement, artifact-source-markup.
review_note string or null built What the reader saw, usually including a correct conversion in the same sentence.

Where it came from, and how we know we may pass it on

Electronic Code of Federal Regulations, bulk XML, all 49 published titles

U.S. Government Publishing Office (govinfo bulkdata) · https://www.govinfo.gov/bulkdata/ECFR

Licence
Work of the United States Government, not subject to copyright (17 U.S.C. 105)
How we know
statute
Accessed
2026-09-13

The Code of Federal Regulations 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 bulkdata files, and that silence is recorded here as silence rather than upgraded into a grant; the statute and the case are the basis, not a publisher notice. govinfo bulkdata is used rather than the eCFR API because www.ecfr.gov/robots.txt disallows /api/versioner/v1/full/.

The extraction, the conversions and the hand-check

Artificial Wasteland · https://artwaste.land/strata/the-laws-own-arithmetic/

Licence
CC0 1.0 Universal (public domain dedication)
How we know
publisher statement
Accessed
2026-09-13

Ours, dedicated to the public domain. The generator is research/the-laws-own-arithmetic/.

The seven conditions, and what was measured

  1. Bytes 1 data file(s), 19,665,124 bytes, largest 18.8 MiB
  2. Shape 21,807 rows checked, 0 violation(s)
  3. Count 21,807 rows across 1 file(s), all counts agree
  4. Fixity 5 file(s) verified by sha256
  5. Provenance 2 source(s), each with a licence from the table
  6. Origin 33 field(s): 29 built here, 4 redistributed under a licence that permits it
  7. Rebuild research/data-room/emit/cfr-unit-pairs.mjs (byte-equality proved by: node research/data-room/publish.mjs --check)

← every dataset, and the three we could not publish