# Quality report - EDU-0234-2026-10-r1
Generated from machine-readable outputs of pipeline commit `ca6539cc1678`. Nothing in this report is typed by hand; `report_validate.py` re-reads every table against the JSON outputs.

## Automated checks (every check must be PASS)
| check | result |
|---|---|
| A4_conflict_and_tie_counts_reconcile | PASS |
| P1_authority_dockets_source_labels_nonblank | PASS |
| P1_carrier_label_columns_nonblank | PASS |
| P1_insurance_filings_source_labels_nonblank | PASS |
| P1_insurance_history_source_labels_nonblank | PASS |
| P2_authority_dockets_legacy_labels_and_usdot_in_census | PASS |
| P2_insurance_filings_legacy_labels_and_usdot_in_census | PASS |
| P2_insurance_history_legacy_labels_and_usdot_in_census | PASS |
| P2_legacy_as_of_constant | PASS |
| P2a_all_legacy_as_of_fields_are_frozen_2026_05_14 | PASS |
| P2b_recorded_date_anomalies_fully_disclosed | PASS |
| P3_scheduled_cancellation_constant | PASS |
| R1_all_source_counts_equal | PASS |
| R2_all_rows_accounted_census | PASS |
| R2_all_rows_accounted_crash | PASS |
| R2_all_rows_accounted_inspections | PASS |
| R2_all_rows_accounted_l_actpend | PASS |
| R2_all_rows_accounted_l_authhist | PASS |
| R2_all_rows_accounted_l_carrier | PASS |
| R2_all_rows_accounted_l_inshist | PASS |
| R2_all_rows_accounted_l_revoke | PASS |
| R2_all_rows_accounted_m_authhist | PASS |
| R2_all_rows_accounted_m_carrier | PASS |
| R2_all_rows_accounted_m_inshist | PASS |
| R2_all_rows_accounted_m_insur | PASS |
| R2_all_rows_accounted_m_revoke | PASS |
| R2_no_unexplained_n1_counters | PASS |
| R3_carriers_equal_census_rows_and_status | PASS |
| R4_crash_fatalities_reconcile_exact | PASS |
| R4_crash_injuries_reconcile_exact | PASS |
| R4_crash_rows_reconcile | PASS |
| R4_inspection_oos_reconcile_exact | PASS |
| R4_inspection_rows_reconcile | PASS |
| R4_inspection_violations_reconcile_exact | PASS |
| R5_bipd_modal_class_is_dollars_legacy_2026-05-14 | PASS |
| R5_bipd_modal_class_is_dollars_motus | PASS |
| S1_enumerations_clean | PASS |
| S1_iso_dates_clean | PASS |
| S2_authority_dockets_key_unique | PASS |
| S2_insurance_filings_key_unique | PASS |
| S2_insurance_history_key_unique | PASS |
| S2_usdot_unique | PASS |
| S3_individual_count_equals_raw_census | PASS |
| S3_n1_no_violation | PASS |
| S3_nonindividual_street_zip_fill_equals_source | PASS |
| S3_phone_fill_equals_census_plus_labelled_fallback | PASS |
| S4_authority_dockets_active_equals_filtered_all | PASS |
| S4_carriers_active_equals_filtered_all | PASS |
| S4_insurance_filings_active_equals_filtered_all | PASS |
| S4_insurance_history_active_equals_filtered_all | PASS |
| S5_csv_parquet_equivalent | PASS |
| S6_no_forbidden_headers_or_email_values | PASS |

## Acceptance-criteria coverage
| criterion | what | status |
|---|---|---|
| S1 | Columns/types/enumerations/ISO dates | PASS |
| S2 | Keys unique | PASS |
| S3 | N1 conformance | PASS |
| S4 | Active extract equals filtered all-status table | PASS |
| S5 | CSV and Parquet carry identical rows | PASS |
| S6 | No out-of-contract fields (header allow-list + e-mail-like value scan) | PASS |
| S7 | Two builds give identical SHA-256 | PASS |
| R1 | Rows received = source count after pull | PASS |
| R2 | Every source row accounted for | PASS |
| R3 | Carriers = Census rows by status | PASS |
| R4 | Aggregates reconcile exactly | PASS |
| R5 | Amount unit/magnitude check | PASS |
| R6 | N1 coverage versus SCHEMA reference (informational) | reported (informational) |
| F1 | Source fidelity by independent path | COMPLETED - see fidelity section (not a pass/fail gate by itself) |
| F2 | Official-portal sample | EXTERNAL - not part of the build run (see founder report) |
| F3 | Known discrepancies re-observed | EXTERNAL - not part of the build run (see founder report) |
| F4 | SAFER sample | EXTERNAL - not part of the build run (see founder report) |
| F5 | Gold regression | EXTERNAL - not part of the build run (see founder report) |
| P1 | Source/as-of labels on every row | PASS |
| P2 | Legacy as-of (P2a) and recorded-date disclosure (P2b) | PASS |
| P3 | Scheduled-cancellation label | PASS |
| P4 | Manifest | see metadata/MANIFEST.json and docs/ |
| P5 | Customer-visible proof set | see metadata/MANIFEST.json and docs/ |

## Reconciliation to source (R1)
| source | rows received | source count before | source count after |
|---|---|---|---|
| census | 4,516,324 | 4,516,324 | 4,516,324 |
| crash | 5,006,279 | 5,006,279 | 5,006,279 |
| inspections | 8,278,944 | 8,278,944 | 8,278,944 |
| l_actpend | 467,983 | 467,983 | 467,983 |
| l_authhist | 4,941,925 | 4,941,925 | 4,941,925 |
| l_carrier | 1,860,604 | 1,860,604 | 1,860,604 |
| l_inshist | 7,427,776 | 7,427,776 | 7,427,776 |
| l_revoke | 1,529,083 | 1,529,083 | 1,529,083 |
| m_authhist | 210,852 | 210,852 | 210,852 |
| m_carrier | 161,017 | 161,017 | 161,017 |
| m_inshist | 59,535 | 59,535 | 59,535 |
| m_insur | 135,140 | 135,140 | 135,140 |
| m_revoke | 28,723 | 28,723 | 28,723 |

## Source-row accounting (R2): rows received = sum of dispositions
| source | rows received | unaccounted |
|---|---|---|
| census | 4,516,324 | 0 |
| crash | 5,006,279 | 0 |
| inspections | 8,278,944 | 0 |
| l_actpend | 467,983 | 0 |
| l_authhist | 4,941,925 | 0 |
| l_carrier | 1,860,604 | 0 |
| l_inshist | 7,427,776 | 0 |
| l_revoke | 1,529,083 | 0 |
| m_authhist | 210,852 | 0 |
| m_carrier | 161,017 | 0 |
| m_inshist | 59,535 | 0 |
| m_insur | 135,140 | 0 |
| m_revoke | 28,723 | 0 |

Dispositions per source:

* census: bad_dot 0; emitted_as_carrier_row 4,516,324
* crash: aggregated_into_carriers 3,576,985; blank_dot 1,374,753; dot_not_in_census 54,541
* inspections: aggregated_into_carriers 8,278,541; blank_dot 0; dot_not_in_census 403
* l_actpend: bad_key 7,855; dot_not_in_census 1,056; emitted 352,156; suppressed_motus_docket 106,916
* l_authhist: bad_key 247,022; consumed_into_last_status_change 4,694,903
* l_carrier: bad_key 159,141; dot_not_in_census 506; duplicate_key 0; emitted 1,265,573; no_authority_status 323,492; superseded_by_motus_same_key 111,892; suppressed_docket_in_motus_other_dot 0
* l_inshist: bad_key 229,417; dot_not_in_census 10,556; duplicate_of_motus_removed 126; emitted 7,187,677
* l_revoke: bad_dot 69,100; consumed_into_revocation_fields 1,459,983
* m_authhist: bad_dot 0; consumed_into_last_status_change 210,852
* m_carrier: bad_dot 0; dot_not_in_census 449; emitted 160,566; exact_duplicate_source_row 2
* m_inshist: bad_dot_or_not_in_census 172; emitted 59,363
* m_insur: bad_dot 0; dot_not_in_census 957; emitted 134,183
* m_revoke: bad_dot 0; consumed_into_revocation_fields 28,723

## Aggregate reconciliation (R4, exact)
| measure | carriers sum | dot not in Census | blank dot | source total |
|---|---|---|---|---|
| inspection rows | 8,278,541 | 403 | 0 | 8,278,944 |
| crash rows | 3,576,985 | 54,541 | 1,374,753 | 5,006,279 |

## Rule N1 (measured on the written files)
| item | value |
|---|---|
| INDIVIDUAL carriers withheld | 216,773 |
| raw Census INDIVIDUAL count | 216,773 |
| violations: not withheld | 0 |
| marker missing | 0 |
| marker on non-INDIVIDUAL row | 0 |

## CSV versus Parquet (S5)
| table_view | rows csv | rows parquet | mismatched cells |
|---|---|---|---|
| authority_dockets_active | 650,299 | 650,299 | 0 |
| authority_dockets_all | 1,529,584 | 1,529,584 | 0 |
| carriers_active | 2,240,593 | 2,240,593 | 0 |
| carriers_all | 4,516,324 | 4,516,324 | 0 |
| insurance_filings_active | 413,736 | 413,736 | 0 |
| insurance_filings_all | 486,339 | 486,339 | 0 |
| insurance_history_active | 3,168,390 | 3,168,390 | 0 |
| insurance_history_all | 7,247,040 | 7,247,040 | 0 |

## Reproducibility (S7)
| item | value |
|---|---|
| output files compared | 17 |
| identical SHA-256 | yes |

## Source fidelity - independent re-fetch (F1)
| item | value |
|---|---|
| sampled USDOT numbers | 238 |
| fully compared | 238 |
| skipped (fetch failed / record absent) | 0 |
| fields compared per carrier | 111 |
| cells compared | 25,996 |
| mismatches | 0 |

Mismatching fields (ids in fidelity.json): none

## authority_dockets key anatomy (S2)
| item | value |
|---|---|
| rows | 1,529,584 |
| distinct (usdot, docket, authority_type) keys | 1,529,584 |
| duplicate keys | 0 |
| rows in duplicate keys | 0 |

## Raw source provenance
| item | value |
|---|---|
| mode | fresh_pull |
| all raw files match their acquisition hashes | yes |
| census rowsUpdatedAt at pull | 2026-10-12 |
| census acquired (UTC) | 2026-10-13T02:46:44Z |

## Founder-approved adjudications applied (A1, A2, A3)
| item | value |
|---|---|
| A1 exact_duplicate_source_row removed (blank-docket Motus rows, all source columns identical) | 2 |
| A1 USDOT numbers affected | 4575255, 4581028 |
| A2 DATE_ANOMALIES.csv rows | 135 |
| A2 carrier summaries flagged (insurance_latest_effective_date inherits implausible date) | 2 |
| A3 free-text values with masked e-mail substrings | 3 |
| A3 e-mail substrings masked | 3 |
| A3 e-mail-like values remaining in output | 0 |

Recorded-date anomalies by column, source and class (rule: pre_1900 or later than pull date + 5 years): authority_dockets.last_status_change_date|legacy_2026-05-14|beyond_pull_plus5y 70; carriers.insurance_latest_effective_date|census_carrier_row|beyond_pull_plus5y 2; insurance_filings.cancellation_effective_date_reported|legacy_2026-05-14|beyond_pull_plus5y 4; insurance_filings.effective_date|legacy_2026-05-14|beyond_pull_plus5y 2; insurance_history.cancellation_effective_date|legacy_2026-05-14|beyond_pull_plus5y 16; insurance_history.effective_date|legacy_2026-05-14|beyond_pull_plus5y 41

## Legacy recorded-date profile and adjudications
See `docs/ADJUDICATIONS.md` (evidence-backed rulings) and `metadata/release_metadata.json` (`date_profile`).

