KB-779F

T2 RP Audit — 01 Base RP Count Reliability

5 min read Revision 1

01 — Base Registries-Pivot Count Reliability

Inventory

  • pivot_definitions: 39 total (37 active, 2 inactive, 1 superseded).
  • Parent graph integrity: 0 orphan parent refs (every parent_code resolves to a code). PASS.
  • v_registries_pivot_node_contract: 39 nodes. v_registries_pivot_surface: 39.
  • v_total_final_acceptance_scorecard: 11 dims (as designed).
  • pivot_results cache: 149 rows.

Counts are LIVE (not cached)

Cross-checked node_contract against live source tables:

  • PIV-019 → 1,194,844 == live birth_registry count.
  • PIV-007 → 309 == live dot_tools count. The surface recomputes live; pivot_results (149) is a secondary cache whose staleness is reported as drift_status, not served.

count_status distribution (node_contract)

count_status n
pivot_backed 25
PIVOT_MISSING 14

14/39 nodes (36%) have NULL count (PIVOT_MISSING). These are entirely scaffold/template pivots: MTX-TEST (test), PIV-020 (default), PIV-101..106 (cross-table drill templates), PIV-201..206 (l2-drill templates). Each is flagged count_missing:true, several classification_lane:inactive_retire_candidate or composition_status:drill_overload. → CANDIDATE_EXPECTED / scaffolding, not a bug, but the UI must render these as "no count", never 0.

grouping_status (surface)

NO_COUNT 14 · NOT_REQUIRED 11 · NEEDS_GROUPING 10 · SATISFIED 4. The 14 NO_COUNT == the 14 PIVOT_MISSING. Consistent.

drift_status

ok 31 · drift 7 · null 1. The 7 drift nodes: MTX-L1-OVERVIEW, MTX-L2-ATOM, PIV-019 (all = 1,194,844 birth_registry, growing), PIV-007 (309 tools), PIV-008 (37 ui_pages), MTX-TEST (null), PIV-104 (null). → drift = live value diverged from the pivot_results cache. Drift detection is a working FEATURE; the live surface is correct. → ACCEPTABLE_BACKGROUND_DRIFT.

Drill reconciliation (v_rp_drill_reconciliation) — node vs children sum

parent parent_count children_total status
PIV-007 DOT Tools 309 309 RECONCILES
PIV-009 Collections 168 168 RECONCILES
PIV-016 Entity types 42 42 RECONCILES
PIV-001 System catalog 169 492 ADVISORY_NO_PARTITION_LAW
PIV-101 Catalog-by-layer (null) 146 PARENT_NOT_SCALAR
MTX-L1-OVERVIEW 1,194,844 2,388,523 ADVISORY_NO_PARTITION_LAW

3 partitioned parents reconcile exactly. The non-reconciling ones are by design (overlapping slices for PIV-001; matrix cross-tab double-count ≈2× for MTX-L1) and are explicitly labeled ADVISORY_NO_PARTITION_LAW / PARENT_NOT_SCALAR. → NEEDS_LAW_DEFINITION, handled honestly. UI must not naively sum children under a parent — it must read partition_defined/drill_status.

Dynamic-drill proof matrix + dashboard

v_rp_dynamic_drill_proof_matrix: 12/12 PASS across all 5 axes. Dashboard: ui_contract_ready=true, substrate_contract_ready=true, axes_covered=5, missing_grouping 10, missing_substrate 2, official_blocked 39, candidate 33, verdict UI_DYNAMIC_DRILL_PROVEN_WITH_CANDIDATE_BLOCKERS. NOTE: the proof matrix is a curated 12-case contract proof, not full-population validation; it proves the drill contract behaves correctly on representative nodes, not that all 39 counts are individually correct.

Findings

  • normalized_signature is NULL on all 39 pivots → the signature-based dedup mechanism is inert. Low risk today (only 39 pivots, parent graph clean, 0 active dup signatures), but the de-dup guard provides no protection. → DUPLICATE_RISK (low).
  • MTX-TEST is a live test pivot flagged inactive_retire_candidate still present in node_contract. → STALE_DATA / noise, should be retired/excluded from UI.
  • substrate_available=true for all 39 base nodes including the 14 with NULL count → substrate-availability ≠ count-availability (see doc 09).

Score: 83/100

Counts live, parent graph clean, contract proven, divergences labeled. Docked for 36% no-count scaffold nodes, test-pivot noise, inert signature-dedup, and substrate/count semantic overlap.

Back to Knowledge Hub knowledge/dev/reports/architecture/parallel-terminal2-registries-pivot-count-reliability-bug-audit-2026-06-05/01-base-rp-count-reliability.md