Skip to content
Substrata
Join

Is the data correct and complete?

How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.Method →Code → datasets · How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.Method →Code → failing rows · weakest: Producer and holder rows at How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code → · measured 12:28 UTC

Each dataset is held to six written criteria (config/substrata-quality.ts) and scored by one published rule. Checks on the committed files run in every build; checks against live sources — links, quotes, tickers, USGS tables — run every six hours on a rotation. No AI is used in either. Every failing row below links its source and a way to report it.

01Scores

Per dataset and criterion
DatasetScoreCompletenessCorrectnessProvenanceFreshnessLink healthConsistency
Producer and holder rowsHow this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.25 of 33 rows held.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.200 of 232 rows held.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.189 of 190 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.11 of 12 rows held.Method →Code →
Tickers and listingsHow this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.238 of 238 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.123 of 124 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.100 of 100 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.139 of 139 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.153 of 153 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.70 of 70 rows held.Method →Code →
Key-number series (corpus)How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.17 of 17 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1130 of 1138 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.554 of 574 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.140 of 140 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.564 of 564 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.139 of 139 rows held.Method →Code →
Official statistics (BLS)How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.6 of 6 rows held.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.6 of 6 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.6 of 6 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.6 of 6 rows held.Method →Code →
Claims checked against seriesHow this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →not measurednot measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.12 of 12 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.12 of 12 rows held.Method →Code →
Dependencies (what needs what)How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.14 of 17 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.47 of 47 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.50 of 50 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.50 of 50 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.47 of 47 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.50 of 50 rows held.Method →Code →
Accepted eventsHow this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.22 of 24 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.24 of 24 rows held.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.24 of 24 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.24 of 24 rows held.Method →Code →
World production and reserves (USGS MCS)How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.24 of 27 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.340 of 340 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1031 of 1031 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.19 of 19 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.254 of 254 rows held.Method →Code →
Oil, gas, coal and hydro (EIA)How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.968 of 968 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.977 of 977 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.4 of 4 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.439 of 439 rows held.Method →Code →
Producers per country (USGS Minerals Yearbook)How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1486 of 1486 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1481 of 1486 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1486 of 1486 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.76 of 76 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1486 of 1486 rows held.Method →Code →
Producer sites on the globe (GeoNames placement)How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1167 of 1167 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.997 of 997 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.997 of 997 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2 of 2 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.997 of 997 rows held.Method →Code →
Export restrictions (OECD)How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1042 of 1091 rows held.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1089 of 1091 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2 of 2 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1091 of 1091 rows held.Method →Code →
Sanctions regimes (EU, OFAC)How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →not measurednot measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.72 of 72 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.297 of 298 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.72 of 72 rows held.Method →Code →
Science: readiness entries and the feedHow this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.32 of 33 rows held.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1922 of 1922 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.15 of 15 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.14 of 14 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.14 of 14 rows held.Method →Code →
Jobs and the boards they come fromHow this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.138 of 138 rows held.Method →Code →not measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2701 of 2701 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2565 of 2565 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.131 of 132 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2563 of 2563 rows held.Method →Code →
Training and learning pathsHow this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →not measurednot measuredHow this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.56 of 56 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.51 of 51 rows held.Method →Code →not measured

02Each dataset

Criteria, counts, trend and every failing row

Producer and holder rows How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

config/substrata-coverage.ts · config/substrata-participants.ts · shown on /bottlenecks

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links (How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → refused robots)

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.25 of 33 rows held.Method →Code →
Every bottleneck has at least one maker row with a primary source.
Correctness —
Not measured: A producer row links its source but stores no sentence to re-find on it, so it cannot be re-derived mechanically yet. Dependencies, events and series do store one.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.200 of 232 rows held.Method →Code →
Every producer, holder and directory row links a primary source; every non-material chokepoint cites a source for why it binds.
Freshness —
Not measured: Rows carry no read date — git dates the commit, not the reading. A gap: adding readOn per row would make this measurable.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.189 of 190 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.11 of 12 rows held.Method →Code →
A mining row agrees with USGS: its country produces the resource (Mineral Commodity Summaries), and the company is named in that country’s Minerals Yearbook table.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-12.

Every bottleneck has at least one maker row with a primary source 8 failing

Every producer and holder row links a primary source 14 failing

2 more

Every non-material chokepoint cites a primary source for why it binds 18 failing

6 more

A mining row is named in the USGS Minerals Yearbook table for that country and resource 1 failing

Source links answer (3 tries; 401/403/429 counted apart) 1 failing

  • Crucible-grade high-purity quartz sand: Russian QuartzUND_ERR_CONNECT_TIMEOUT: Connect Timeout Error (attempted address: russianquartz.com:443, timeout: 1SourceOn this siteReport an error

Tickers and listings How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/listings.json · shown on /exposure

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → of How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → re-verified at source · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.238 of 238 rows held.Method →Code →
Every company with a Markets page has a listing row, and every listed company has a primary line.
Correctness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.123 of 124 rows held.Method →Code →
Every SEC line’s CIK still carries that ticker in the SEC ticker file; every FIGI still maps to the recorded ticker and exchange at OpenFIGI.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.100 of 100 rows held.Method →Code →
Every line carries its FIGI or CIK and a link to that record.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.139 of 139 rows held.Method →Code →
Every row was re-validated within the dataset’s maximum age.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.153 of 153 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.70 of 70 rows held.Method →Code →
Pinned home lines agree with the file, and no two companies claim the same security.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-13.

The SEC ticker file still gives each CIK its recorded ticker 1 failing

Key-number series (corpus) How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/series.json · shown on /data/series

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → of How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → re-verified at source · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links (How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → refused robots)

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.17 of 17 rows held.Method →Code →
Every bottleneck binding now has at least one key-number series.
Correctness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1130 of 1138 rows held.Method →Code →
Each quoted sentence states the value its point records, and is still on the source page.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.554 of 574 rows held.Method →Code →
Every point has a source URL, a verbatim quote, the publisher and its publication date.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.140 of 140 rows held.Method →Code →
Each series’ quotes were re-read within the declared maximum age.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.564 of 564 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.139 of 139 rows held.Method →Code →
Every series belongs to a bottleneck that exists.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-12.

Every point has a source URL, a quote, the publisher and the date it was published 20 failing

8 more

The quoted sentence is still on the source page 8 failing

Official statistics (BLS) How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

config/substrata-official-series.ts · research_series_points · shown on /data/series?origin=official

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.6 of 6 rows held.Method →Code →
Every declared series has points in the database.
Correctness —
Not measured: Values are the agency’s API response stored as published, re-fetched daily; a revision overwrites the value.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.6 of 6 rows held.Method →Code →
Every series names its BLS series id, which is its source link.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →
The daily fetch ran within its schedule.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.6 of 6 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.6 of 6 rows held.Method →Code →
Every official series belongs to a bottleneck that exists.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-13.

Claims checked against series How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/claims.json · shown on /data

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness —
Not measured: There is no list of every quantitative sentence in the corpus to measure against yet.
Correctness —
Not measured: A claim’s correctness is its series agreeing with it — measured under consistency.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.12 of 12 rows held.Method →Code →
Every claim has a verdict and says how it was checked.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →
Claims were re-checked within the declared maximum age.
Link health —
Not measured: Claims cite series, whose links are checked under Series.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.12 of 12 rows held.Method →Code →
Each claim’s sentence is still in its file, on a real bottleneck, against series that exist.
60 runs, 2026-09-29 to 2026-10-14

Dependencies (what needs what) How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

config/substrata-dependencies.ts · shown on /xray

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → of How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → re-verified at source · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links (How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → refused robots)

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.14 of 17 rows held.Method →Code →
Every bottleneck binding now is joined to at least one dependent or input.
Correctness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.47 of 47 rows held.Method →Code →
The quoted sentence is still on the source page.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.50 of 50 rows held.Method →Code →
Every row has a source URL, a verbatim sentence and a read date.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.50 of 50 rows held.Method →Code →
Every row was read within 180 days.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.47 of 47 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.50 of 50 rows held.Method →Code →
Both ends name an existing bottleneck or directory company.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-12.

Every bottleneck binding now is joined to at least one dependent or input 3 failing

Accepted events How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

config/substrata-events.ts · config/substrata-events-accepted.json · shown on /events

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → of How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → re-verified at source · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness —
Not measured: The universe of events is open; what is found and not yet read is the review queue, measured on /data/freshness.
Correctness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.22 of 24 rows held.Method →Code →
The quoted sentence is still on the source page.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.24 of 24 rows held.Method →Code →
Every event has a source URL, a quoted sentence, its date and the date it was accepted.
Freshness —
Not measured: An event is dated when it happened; it does not go stale.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.24 of 24 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.24 of 24 rows held.Method →Code →
Events name existing bottlenecks and companies, and happened before they were accepted.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-11.

The quoted sentence is still on the source page 2 failing

  • 2026-04-15 ASML plans to ship more than 60 EUV scanners in 2026, high-Nthe quoted text is not on the pageSourceReport an error
  • 2026-09-05 Wacker’s 600-worker Charleston polysilicon plant may close athe quoted text is not on the pageSourceReport an error

World production and reserves (USGS MCS) How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/usgs-mcs.json · shown on /atlas

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → of How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → re-verified at source · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.24 of 27 rows held.Method →Code →
Every resource the atlas names has a world table (USGS or EIA), or its absence is declared.
Correctness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.340 of 340 rows held.Method →Code →
Countries add up to the printed world total, and every value is on its country’s row in the chapter PDF.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1031 of 1031 rows held.Method →Code →
Every value keeps the text it was printed as, and its table names its source and unit.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →
The edition was read within its declared maximum age.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.19 of 19 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.254 of 254 rows held.Method →Code →
Every country row maps to an ISO country code and a known resource.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-12.

Every resource the atlas names has a world table, or its absence is declared 3 failing

Oil, gas, coal and hydro (EIA) How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/eia-energy.json · shown on /atlas

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness —
Not measured: Checking against EIA’s full country list needs the bulk file; the script keeps every country EIA reports a value for.
Correctness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.968 of 968 rows held.Method →Code →
No country produces more than the world total EIA prints.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.977 of 977 rows held.Method →Code →
Every value keeps the text it was printed as, and its table names its source and unit.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →
The bulk file was read within its declared maximum age.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.4 of 4 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.439 of 439 rows held.Method →Code →
Every country row maps to an ISO country code and a known resource.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-13.

Producers per country (USGS Minerals Yearbook) How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/usgs-producers.json · shown on /atlas

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1486 of 1486 rows held.Method →Code →
Every facility names its operating company.
Correctness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1481 of 1486 rows held.Method →Code →
Every company and location is a whole cell of the workbook, not a fragment of a wrapped line or a ditto mark.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1486 of 1486 rows held.Method →Code →
Every facility comes from a dated Yearbook table with its workbook link.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →
The chapters were read within the declared maximum age.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.76 of 76 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1486 of 1486 rows held.Method →Code →
Every facility maps to a country code and a resource the site tracks.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-13.

Every company and location is a whole cell, not a fragment of a wrapped line or a ditto mark 5 failing

  • india: Uranium Corp. Ltd. of India [Department of Atomic — Bagjata, Banduhurang, Bhatin, Jaduguda,reads as part of a wrapped cellSourceReport an error
  • kazakhstan: Kazzinc Ltd. [Glencore plc, 69.7%, and NMC Tau-Ken — Lead plant, Ust-Kamenogorsk metallurgicalreads as part of a wrapped cellSourceReport an error
  • tajikistan: JV Zeravshan LLC [Zijin Mining Group Co. Ltd. — Jilau and Taror mines, Zarafshonreads as part of a wrapped cellSourceReport an error
  • vietnam: Asia Tungsten Products (Vietnam) Ltd. (ATC) — Plant in Tan Tien Industrial Zone, Vinh Bao,reads as part of a wrapped cellSourceReport an error
  • vietnam: Nui Phao Mining Co. Ltd. (NPMC) [Masan — Nui Phao Mine, Thai Nguyenreads as part of a wrapped cellSourceReport an error

Producer sites on the globe (GeoNames placement) How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/producer-places.json · shown on /atlas

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1167 of 1167 rows held.Method →Code →
Every facility location the Yearbook prints is either placed or listed as unresolved; none is dropped without a trace.
Correctness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.997 of 997 rows held.Method →Code →
No point lands inside another country, and a province named in the address holds the point.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.997 of 997 rows held.Method →Code →
Every point names the GeoNames entry it came from, by id, name and feature code, and states its precision.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →
The places were matched within the declared maximum age.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2 of 2 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.997 of 997 rows held.Method →Code →
Every point joins back to a facility in the Yearbook file by country and printed location.
8 runs, 2026-10-12 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-14.

Export restrictions (OECD) How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/oecd-export-restrictions.json · shown on /atlas

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1042 of 1091 rows held.Method →Code →
Every measure has the date it took effect.
Correctness —
Not measured: Re-deriving each measure means re-querying the SDMX API; the refresh script does that, not the scheduled check.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1089 of 1091 rows held.Method →Code →
Every measure names its legal instrument or legal basis.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →
The inventory was read within its declared maximum age.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2 of 2 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1091 of 1091 rows held.Method →Code →
Every measure names a real country code and a resource the site tracks.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-13.

Every measure names its legal instrument or legal basis 2 failing

Every measure has the date it took effect 49 failing

37 more

Sanctions regimes (EU, OFAC) How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/sanctions.json · shown on /atlas

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links (How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → refused robots)

Completeness —
Not measured: The UK publishes no machine-readable list per regime; that gap is declared in the file.
Correctness —
Not measured: Re-deriving regimes means re-reading the EU map API; the refresh script does that.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.72 of 72 rows held.Method →Code →
Every regime or programme has a title and a link to its official page.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →
Read within 60 days: regimes are amended every few weeks.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.297 of 298 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.72 of 72 rows held.Method →Code →
Every regime is attached to a real country code.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-12.

Source links answer (3 tries; 401/403/429 counted apart) 1 failing

Science: readiness entries and the feed How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

config/substrata-science.ts · research_science_items · shown on /science

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.32 of 33 rows held.Method →Code →
Every bottleneck has at least one paper, preprint or grant in the feed.
Correctness —
Not measured: Feed items are machine-collected and labelled unreviewed on every page; readiness is a dated judgement.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1922 of 1922 rows held.Method →Code →
Every readiness entry cites a source; every feed item has a link and a date.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.15 of 15 rows held.Method →Code →
Readiness was judged within 90 days, and the feed ran on schedule.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.14 of 14 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.14 of 14 rows held.Method →Code →
Every entry relieves a bottleneck that exists.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-13.

Every bottleneck has at least one paper, preprint or grant in the feed 1 failing

Jobs and the boards they come from How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/job-boards.json · research_jobs · shown on /careers

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links (How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → refused robots)

Completeness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.138 of 138 rows held.Method →Code →
Every company with a Markets page has a job-board row.
Correctness —
Not measured: A role is shown as its board returns it; a role gone from its board is closed on the next run.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2701 of 2701 rows held.Method →Code →
Every board row says how it was found; every open role links its posting.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2565 of 2565 rows held.Method →Code →
Every open role was still on its board within the last three days.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.131 of 132 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.2563 of 2563 rows held.Method →Code →
Every open role belongs to a directory company.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-12.

Source links answer (3 tries; 401/403/429 counted apart) 1 failing

Training and learning paths How this is computedThe mean of the criterion scores that could be measured for the dataset.Method →Code →

research/learning-paths.json · shown on /learn

How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → rows · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → sourced · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → stale · How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → broken links (How this is computedRows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Method →Code → refused robots)

Completeness —
Not measured: There is no list of every programme to measure against.
Correctness —
Not measured: Programme details are read from the provider page by a person.
Provenance How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.56 of 56 rows held.Method →Code →
Every path links its provider page and says when it was checked.
Freshness How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.1 of 1 rows held.Method →Code →
Checked within the declared maximum age.
Link health How this is computedRows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.51 of 51 rows held.Method →Code →
Every source URL the rows cite answers without a 4xx, 5xx or timeout after three tries; a publisher refusing robots (401/403/429) is reported apart, not counted as broken.
Consistency —
Not measured: No other dataset states the same facts.
60 runs, 2026-09-29 to 2026-10-14

Network looks are a rotation: the oldest verdict here is from 2026-10-13.