Supersession Audit Trail

Every logical row whose append-only `entry` column has more than one version. Each rewrite carries a `supersedes` reason from L1's v1 vocabulary (Inflight / BundleAssignment / TechnicalCorrection). Reads from the BASE tables, not Current* — by definition Current* hides the prior entries we want to audit here. Use the supersedes filter to slice by reason: high TechnicalCorrection volume signals a feed problem; high Inflight is normal in a busy bundling cadence.

Logical Keys with Supersession

Count of distinct transaction_id values whose append-only `entry` column has more than one row. Healthy demos may be 0; production workloads typically have a small steady trickle of TechnicalCorrection / BundleAssignment events.

Supersessions with No Reason

Count of higher-Entry rows whose `supersedes` reason is blank. Target value = 0 — every supersession SHOULD declare its cause (Inflight / BundleAssignment / TechnicalCorrection) per the L1 SPEC.

Transactions Audit

Every entry of every logical transaction with >1 entry. The `supersedes` column on the higher-entry row tells you why it exists. Use the supersedes filter (Inflight / BundleAssignment / TechnicalCorrection) to narrow the audit to one cause class.

Daily Balances Audit

Every entry of every (account, business_day) cell with more than one stored value. The `money` column changing across entries is the audit trail for an end-of-day re-statement.



**Supersession Audit**

`_supersession_*` is **not** a SHOULD-constraint — it's a diagnostic view that surfaces logical keys with multiple `entry` versions (the audit trail for `TechnicalCorrection` / `BundleAssignment` / `Inflight` rewrites). Reads from BASE tables (not Current*) since Current* hides superseded entries by construction. See M.2b.12 dashboard for the visualization.

**Action.** Diagnostic only — supersession is expected for normal corrections. Investigate when `entry_count` is unusually high for the row's age, or when the rewrite reason is missing. Diff the entries to see what actually changed across versions.