## Business Value
Persist the production-validated account-category repair that prevents campus revenue and expenses from dropping out of financial reporting. The reviewed delta adds 654 exact account mappings while preserving all 2,580 previous rows (3,234 mappings at the October 2 application, across 14 categories), including the 15 requested write-offs. Together with the separate School/coverage repair in PR #2124, the resulting financial publications pass revenue, expense and expected 20% Timeback reconciliation.
## Change
Add an apply-once, default-atomic extension of quickbooks-account-policy-v1, with matching read-only candidate/preflight queries and executed SQL boundary fixtures. It extends existing unanimous normalized account-name policy to wholly unmapped realms, and applies six explicitly user-accepted reporting-account families across realms. Named rules require the reviewed account number, exact normalized name and QuickBooks classification; source signs are preserved. Assumptions and provenance identify the user's approval without claiming separate Finance approval.
The caller pins the complete candidate count/fingerprint and accepted snapshot. The migration runs only as the existing warehouse owner, takes publication/policy locks, validates source keys and ledger acceptance, rejects competing rules, inactive categories, existing-identity collisions and marker drift, then appends atomically. It neither overwrites existing mappings nor automatically classifies future accounts. After application, drop the temporary procedure; replay with the old candidate pin fails rather than changing policy.
Also constrain the unmapped-actual publication audit to the generation represented by its current target, so retained historical ledger rows do not create a false failure. Document the exact application, supported Core invocation and live acceptance evidence beside the runner.
## Validation
- October 2 production application of the original revision completed: Data API statement e532aaf2-d36f-4e27-ba5b-2bec548e0d24 FINISHED, reviewed candidate count 654, fingerprint b19ca992a620ffa88eb2872854593c22, accepted source 86a0026e-71de-4df4-86f5-869380527dbc. All previous full rows preserved and all added identities/categories exactly matched the reviewed candidates. Temporary procedure removed afterward.
- The original October 2 procedure statement in 3ca4008e exactly matched the applied DDL request; migration file SHA256 fbd7cdc3fcf5275725519ca7034f59bdbdd20510b3dfcb8e481ff5e7e41962ef.
- Genuine supported Core ON_DEMAND core-fast-financial-validation-20261002-105212 SUCCEEDED in 4m 9s, reusing accepted raw snapshot 6cad5602-4634-4681-9b31-d926b29b33d4; posting generation fe6f4160-39f5-4116-b2cd-4b9b052a9e65:posting.
- The automatically triggered mart timed out behind unrelated HubSpot/financial-writer locks. After clearance and fresh preflight, supported report-only retry financial-validation-lock-retry-20261002-111257 SUCCEEDED in 2m 26s. Elapsed Core start to accepted report was 23m 11s including contention/recovery; 6m 35s is the sum of successful processing stages, not a clean-chain benchmark. No new 68-company extraction or duplicate Core execution was started.
- All 24 Core financial/publication audits and coordinated category, revenue and 20% Timeback checks PASS. The coordinated School/coverage candidate produces 59 Schools in all three QTD financial contracts and zero Facilities GL/total/shape/lineage mismatches; that separate source change remains in PR #2124.
- All 143 local Core tests PASS, including 36 account-policy cases. They execute the canonical ledger/parity predicates and cover older receipts hiding newer replay, unknown publication times, deletion of the last represented extraction row, unrelated-table receipts, and SQL NULL truth rules. Scoped Ruff and git diff --check PASS.
- All 46 isolated Redshift procedure cases PASS on 2026-10-15 for revision 2026-10-15.1. The candidate procedure is compiled and executed against uniquely named sandbox objects; tests exercise replay boundaries, exact persisted mapping tuples, preservation of original rows, canonical NOT NULL constraints, deliberately nullable legacy marker copies, and post-write rollback. Production policy was not reapplied, and fixture cleanup was catalog-verified. The original October 7 revision also passed its 32 live cases.
The live account delta is already applied. Source merge must not replay the old reviewed migration against production. CI reruns for review-fix commit 7f8aa632; source review remains required before merge. Future automatic onboarding/classification is outside this reviewed apply-once delta.
## Review verification
- The October 7 proposal to require one extraction ID for every retained row remains withdrawn: accepted incremental current-state tables contain multiple extraction IDs.
- The valid replay finding is fixed in 7f8aa632: both input tables' latest publication receipts must be covered by the accepted snapshot. Successful receipts remain required for represented extraction IDs. The table-level boundary also catches replay deletion of every row carrying an extraction ID, a gap independently reproduced for both inputs in Redshift. Accepted older rows and unrelated-table receipts retain their supported behavior.
- Production catalog metadata confirms mapping_count and category_count are NOT NULL. Defensive pre/post marker guards now explicitly reject NULL or missing metadata and verify both row and category parity. Actual Redshift tests cover normal constraints, nullable sandbox copies, and rollback after both writes.
- The success-path test asserts exact persisted Account/category/source-key tuples, every original xref column, and every marker field except the intended count increment.
The October 2 application remains historical evidence for the original 654-row delta. The current guard-only migration revision has been live-validated on isolated sandbox fixtures; routine pipeline code is unchanged and the production delta is not replayed.
## Implementation Effort
Approximately 2–3 engineer days to inspect account identities and existing policy, prepare guarded migration/review queries, exercise failure boundaries, apply and validate the candidate, reconcile published categories/revenue/Timeback and document the rollout. Pipeline waiting is additional.
## Linear
Related [SURTR-1497](https://linear.app/builder-team/issue/SURTR-1497/extend-quickbooks-account-categories-to-new-realms-by-exact-chart-of), under [SURTR-1496](https://linear.app/builder-team/issue/SURTR-1496/close-quickbooks-campus-pandl-gaps-from-finance-escalation-quickbooks). This PR persists the reviewed October repair; SURTR-1497's broader automatic future-realm classification is not implemented here.