# When Official Numbers Disagree, Reconcile the Question First

Two government sources can publish different numbers without either source being wrong. The trap is treating a shared label—“population,” “employment,” “growth,” “baseline”—as proof that the numbers answer the same question.

The safer starting point is a concept signature. A public value should be identified by its publisher, dataset, concept, universe, geography, reference period, frequency, unit, adjustment and price basis, and vintage or release state. Until those fields match, there is no demonstrated conflict to resolve.

## A disagreement has three possible states

Suppose two files contain values that appear to refer to the same place and year. The pair can be:

1. **Semantically compatible.** The target concept and grain match. A later Census vintage of the same July 1 state population estimate fits here. Preserve both values and call their difference a revision.
2. **Compatible with loss.** A documented transform can make the pair useful, but it drops information or adds an assumption. A quarterly wage flow divided by quarter-end employment needs an explicit denominator-timing convention.
3. **Not comparable.** A material concept difference remains. Census resident population and QCEW covered employment are not rival measurements of one level. BEA nominal GDP and real GDP growth do not become comparable because both say GDP.

This gate matters more than source prestige. Census is authoritative for its population estimate. BLS is authoritative for QCEW covered employment and wages. BEA owns the national-account concept. EIA's AEO cases are authoritative model outputs for their named assumptions. None of those facts makes one publisher the universal winner.

## A precedence rule for real conflicts

When the concept signature does match, reconcile in this order.

First, choose the value that fits the declared target. A real-time question—“what did analysts know on the advance-release date?”—requires the release available then. A best-current-estimate question requires the latest eligible vintage. Substituting the latter for the former silently changes the question.

Second, enforce the same grain. Universe, boundary, timing, unit, adjustment, and price basis must match or have an explicit transform. Third, prefer the originating first-party series over an aggregator for the same field. Fourth, retain release role and method. Fifth, prefer evidence with a source row, hash, and derivation path. If two legitimate rows remain unresolved, keep them side by side. Do not average them into synthetic certainty.

The F01 evidence lab made this rule executable in an 11-row compatibility matrix. It rejects April census-base versus July estimate fields, modeled EIA values versus official history without a handoff rule, and nominal levels versus real growth. It permits Census vintages as revisions and BEA advance/latest values as percentage-point comparisons while retaining the estimate stages.

## Schema alignment is not semantic alignment

The two frozen Census national/state files make the difference concrete. Vintage 2024 contains 75 columns; Vintage 2025 contains 97. A position-based join or `SELECT *` pipeline could silently shift fields. Yet the named `POPESTIMATE2020` through `POPESTIMATE2024` fields and the 51 state/DC keys do align.

The correct response is neither “the schemas differ, so nothing is usable” nor “the keys match, so every column is equivalent.” It is a scoped adapter: select named fields, assert geography equality, version the mapping, and refuse unvalidated component columns.

BEA presents a different version of the same problem. Its GDP/GDI workbook contains stage labels including Advance, Second, Third, Revised, Updated, Initial, Final, and Preliminary. Deriving a universal stage from calendar lag would manufacture regularity the publisher does not supply. The stage label and actual release date belong in the data model.

## Preserve disagreement as lineage

The F01 canonical table stores every legitimate release as a separate row. A deterministic pair ID links the earlier and later observations. The transform registry says exactly whether the child is an absolute delta, percent of the earlier level, percentage-point change in a published rate, rank, rebased index, or scenario output.

That structure keeps an important distinction visible: a later value is not proof that the earlier value was an ingestion error. BLS and BEA trade timeliness against fuller source data. Census updates inputs and methods across annual vintages. A revision can be legitimate while still changing a published conclusion.

It also makes unresolved evidence honest. EIA's AEO2026 bulk metadata says the selected series start in 2024, but their actual data arrays begin in 2025. The pipeline did not generate a 2024 row from the declared bound. It retained the 2025–2050 keys and recorded the metadata discrepancy as a quality issue.

## The practical output is a decision, not one universal number

A reconciliation service should be allowed to return four outcomes: compatible, compatible with loss, not comparable, or unresolved. That is more useful than a system that always emits one value. It tells the analyst whether to calculate a revision, apply a documented transform, change the question, or stop.

The broader lesson is simple: reconcile definitions before values. The most dangerous public-data conflict is often the one a clean-looking join has already hidden.

## Evidence

- [Semantic compatibility matrix](../../ANALYSIS/processed/semantic_compatibility_matrix.csv)
- [Canonical observations](../../ANALYSIS/processed/canonical_observations.csv)
- [Transformation registry](../../ANALYSIS/processed/transformation_registry.csv)
- [Data-quality issues](../../ANALYSIS/processed/data_quality_issues.csv)
- [Full methodology](../../METHODOLOGY.md)
