# Reflection: Current projections must exclude fixtures

## Trigger

Real daily uploads and automatic monthly publication were enabled while the database acceptance fixture remained in
`finance.current_daily_versions`, causing correct aggregation of non-business test data.

## Expected Behavior

The transition from schema acceptance to business-facing use should retire all fixture pins and verify that every
current Finance source has operational provenance.

## Actual Behavior

The fixture's immutable version and current pointer were both retained. Later features validated formulas, lineage,
downloads and max-ARRIVAL consistency against a structurally valid but contaminated snapshot.

## Root Cause

- Weak gate
- Unclear ownership

The handoff documented synthetic-data cleanup as a production gate, but no executable readiness check owned it.

## Evidence

- Current version 2: run `mvp-v1-fixture-20260727`, `synthetic.xml`, provider `local_fixture`.
- [Channel BI contamination evidence](../../50-evidence/topics/2026-07-30-channel-bi-post-update-data-contamination.md)
- `DATABASE_ARCHITECTURE_REASSESSMENT_V2.md` already required synthetic cleanup before production.

## Lesson

Structural reconciliation proves that downstream outputs match current facts; it does not prove those facts are
operational. Before business-facing acceptance, assert provenance as well as counts, hashes and formulas.

## Action

- Add check/eval
- Update gate

Future deployment/readiness work should fail when a current Finance version uses `local_fixture` or another explicitly
non-operational source. Cleanup must preserve immutable history while removing the fixture from the current projection.

## Promotion

Promote this to a deployment/data-readiness gate and automated acceptance check when remediation is implemented.
