Loading approved evidence
Retrieving and verifying the requested analytical release. Result data loads before optional map boundaries and source checks.
Your filters and release stay in the address. Navigation remains available.
Retrieving and verifying the requested analytical release. Result data loads before optional map boundaries and source checks.
Your filters and release stay in the address. Navigation remains available.
REPRODUCE A RELEASED RESULT
The MOT roadworthiness and STATS19 fuel-comparison pilots export the exact selection, its evidence vintage and the information needed to interpret it.
The London regional baseline and qualifications study includes a frozen input snapshot, executable Python, pinned dependencies, reference outputs and independent calculation checks. Inspect the mileage sensitivity or reproduce all 399 bootstrap draws.
Open reproducible study 01 · London baseline and qualifications →
Choose Analyst package · ZIP for a readable working copy of the selected frequency, geographic, EV/ICE or GLM evidence. Choose Selection audit · CSV for exact audit fields. Existing full-release audits and analysis bundles retain their current formats.
| Analyst file | Purpose |
|---|---|
| results.csv | Selected results and named supporting sections, with readable headings, units, supplied intervals, support and missing-value reasons. |
| definitions.csv | Outcome, population, period, denominator, coverage, reference, limitations and column meanings. |
| provenance.csv | Analytical release, filters, source identifiers and hashes, recorded approval dates, calculation identity and citation. |
| selection.json | The validated selection, pinned URL and SHA-256 checksums for the CSV files. |
| README.txt | Loading guidance, precision and missing-value conventions, citation and reuse limits. |
The versioned analyst format is data-lab-analyst/1. CSV files use UTF-8, quoted fields and CRLF record separators. Numeric values retain full precision; empty numeric cells mean unavailable, never zero. Consult the evidence state and reason. Percent, ratio and per-mile units are explicit. Text that could become a spreadsheet formula is escaped.
The shared link contains the evidence selection and analytical release. GLM review decisions and notes remain in your browser and require a separate decision-file export. A pinned link never substitutes a newer release; if evidence is unavailable, it says so. Source checks and changes awaiting review do not change the pinned result.
Extract all files together. Open the three CSVs in your spreadsheet or analytical tool, preserving empty numeric cells. A browser download failure has direct-download links; clipboard failures retain manually selectable link and citation text.
| File | Contains | Use |
|---|---|---|
| Selection CSV | Main comparison rows and pairwise differences, full numeric precision, display labels, units, support, missing-value states, definitions and release/method identifiers. | Load the selected result into an analytical workflow. |
| Chart SVG | Vector chart of the released rates, interval method, observation support and evidence release. | Share alongside the CSV or bundle; it is not a substitute for their definitions. |
| Analysis bundle JSON | Selection CSV and chart; sensitivity context; reference metadata; input/archive identifiers; SHA-256 checksums; citation; Python and R loading examples. | Review, cite and verify the result independently. |
| Full tracker release JSON | All released data in that tracker, including other years and selections. | Explore the wider approved evidence. This is clearly separate from a selection export. |
data-lab-selection/1 packages geographic results, fraud evidence, documented vehicle-data routes and source-catalogue selections. It includes the exact selection URL, column names, rows, a matching CSV, sources and interpretation limits, plus the verified release identifier and fingerprint. A selection bundle preserves the records you selected; it does not add statistical confidence, raw-input reconstruction or unavailable reference weights.
Numeric negative values stay numeric and null cells remain blank in CSV. Text that could be interpreted as a spreadsheet formula is escaped. Live source-monitoring fields describe the capture time and may change independently of approved results. Map exports contain the complete displayed layer, with the selected location recorded in the filters.
data-lab-analysis/1 supports mot-roadworthiness and stats19-fuel. Use the direct export link supplied by the toolbar; it contains an explicit release and every pilot selection. No login is required for these public aggregate exports.
The link accepts CSV, chart or bundle format. Missing releases return an explicit unavailable response; unsupported selections are rejected. The service never substitutes the latest release or another year.
Loading a released aggregate is different from recomputing it from raw records. Original code, source archives, licences, codebooks and applicable access rights must support any raw-data rerun. A source URL or checksum alone does not establish that they do.
Save the downloaded file as analysis-bundle.json. This standard-library example verifies its CSV checksum and preserves missing numeric values.
import json, csv, io, hashlib
from pathlib import Path
bundle = json.loads(Path("analysis-bundle.json").read_text(encoding="utf-8"))
assert bundle["contract"] == "data-lab-analysis/1"
text = bundle["dataCsv"]
assert hashlib.sha256(text.encode("utf-8")).hexdigest() == bundle["checksums"]["dataCsv"]
rows = list(csv.DictReader(io.StringIO(text)))
for row in rows:
for key in ["value", "lower", "upper", "events", "denominator", "all_observations", "retained_fraction"]:
row[key] = None if row[key] == "" else float(row[key])
print(bundle["selection"])
print([(r["fuel"], r["basis"], r["value"], r["state"]) for r in rows])
# Reproduces released aggregates; does not rerun original raw records.
This example uses the jsonlite package and keeps unavailable numeric cells as NA.
# install.packages("jsonlite") if needed
bundle <- jsonlite::fromJSON("analysis-bundle.json", simplifyVector = FALSE)
stopifnot(bundle$contract == "data-lab-analysis/1")
rows <- read.csv(text = bundle$dataCsv, na.strings = "", stringsAsFactors = FALSE, check.names = FALSE)
print(bundle$selection)
print(rows[c("fuel", "basis", "value", "state")])
# NA is unavailable/not applicable; never replace it with zero.
# Fractions and percentage-point differences have different units.
# This loads released aggregates, not original raw records.
The comparison inspects source fingerprints, recorded method/code, the selected result values, definitions and reference population. Source checks describe monitoring activity. A changed input may be a revision or replacement. A changed result establishes a difference between approved releases; it does not by itself prove when or how raw records were recalculated.
If the predecessor or this selection is unavailable, that limitation is shown. An available predecessor opens with the same explicit selections.