Paid-acquisition parity
Status and scope
| Field | State |
|---|---|
| Contract status | Current master |
| Implementation status | Mixed; certification is evidence-dependent |
| Last source review | 2026-08-26 |
| Runtime verification | Required for values and interaction closure |
| Owner | Not recorded in this public document |
This master owns parity between legacy reporting behavior, source platforms, and Launchpad V2's paid-acquisition surfaces. It replaces overlapping plans, client-feedback PRDs, catalog audits, breakdown reviews, punch-list audits, and custom-audience designs.
Parity is not visual similarity or a passing build. It means the same scope, source definition, grain, date window, denominator, missing-state behavior, and interaction produce an explainable result.
Source hierarchy
Use direct platform/CRM evidence for the exact metric and window; current V2 latest-state/ledger output; current V1 output when legacy parity is the requirement; source code/tests for mechanics; and dated audits only as diagnostic anchors.
Do not use a selected cohort as a whole-business denominator. Platform purchases, CRM orders, attributed purchases, and commerce lifecycle transactions are distinct metrics.
Standing invariants
- Tenant scope resolves on the server and cannot be expanded by browser input.
- Missing, unavailable, null, and zero remain distinct through API and UI.
- Money units and conversions are explicit at boundaries.
- ReplacingMergeTree reads use maintained latest-state contracts or
FINALwhere required. - Date presets/comparisons carry the same bounds through UI, API, and query layers.
- Breakdowns preserve entity identity and do not double-count parent and child rows.
- Custom audiences are Meta ad-set metadata; permission failure is not an empty list.
- Generated/merged catalogs are canonical; copied counts are historical only.
Surface contract
| Area | Contract |
|---|---|
| Summary KPIs | Use selected scope and each metric's own denominator |
| Hierarchy | Preserve client → account → campaign → ad set → ad → creative identity |
| Breakdowns | Use shared definitions with consistent ordering and nested state |
| Sorting/filtering | Apply to the documented population, not accidentally only top-level rows |
| Comparisons | Use complete identity keys and fail closed for unsupported presets |
| Revenue | Keep platform, paid-attributed CRM, and commerce lifecycle revenue separate |
| Coverage | Explain account/date coverage; valid zero differs from unavailable |
Certification gates
- Pin deployment, scope, timezone, and completed window.
- Run source-direct checks; provider failures are unavailable.
- Run maintained V2 audits and V1 comparisons against the same scope.
- Produce a discrepancy ledger by metric and grain.
- Traverse hierarchy, breakdown, sort, filter, comparison, long-name, and sticky-column behavior in the browser.
- Verify public/runtime behavior separately from source and local builds.
No credentialed live audit means no live certification.
Provenance
| Replaced document | Contribution retained here |
|---|---|
| Paid-acquisition parity plan | No-mock-data rule and interpretation of 1:1 |
| V1/V2 site-data audit | Catalog audits and four-state comparison |
| Breakdown/segment review — 2026-07-02 | Gap model and sequencing |
| Legacy parity review — 2026-07-29 | Historical catalog and schema evidence |
| Client-feedback parity PRD — 2026-08-21 | Date, metric, table, creative, ID, and toolbar requirements |
| Marketing multi-surface audit — 2026-08-18 | Source-direct certification and coverage boundaries |
| Punch-list audit — 2026-08-14 | Early cross-route drift evidence |
| Metric catalog unification plan | Shared catalog/resolver direction |
| Custom Audiences design | Meta probe, fail-closed metadata, acceptance gates |
| Attribution remediation plan | Terminology, saved sets, identifiers, and fee context |