Lesson 87: Executive Readout Reconciliation Between Daily Ingestion Totals and Published Governance Copy in RPG Live-Ops

Direct answer: Executive readout reconciliation is a pre-publish gate that compares your upcoming Lesson 78 slide narrative to merged totals from Lesson 86 lesson78_daily_signal_ingestion_log.csv. You freeze a deck_version, attach ingestion_batch_hash coverage for the reporting window, classify any mismatch between bullets and numbers, and block external governance language until owners initial the reconciliation packet.

Pixel-style donut illustration suggesting a closed loop between metrics and presentation

What this lesson solves

Daily ingestion feeds the register; humans still write slides. Slides compress, round, and occasionally lie by optimism. This lesson stops “green executive story” text from shipping when merge_status = pending_owner rows still exist or when headline borrow language from Lesson 82 outruns merged causal factors.

Prerequisites: Lessons 78, 86, and access to the final deck file or CMS snapshot. Expected time: about ninety minutes including one tabletop dry run.

What you will build

  1. lesson78_readout_reconciliation_packet_policy.md (sections below)
  2. lesson78_readout_slide_reconciliation_log.csv
  3. A same-night checklist run between finance close and deck send

Step 1 - Define mismatch classes

class symptom risk
M1 – Count drift slide shows aggregate factor totals that do not match merged ingestion sums for the window misstates severity
M2 – Narrative drift deck claims “borrow parity stable” while ingestion still tags unmapped_candidate for dispute codes false confidence
M3 – Scope drift deck cites global posture while surge was regional in Lesson 85 bridge rows repeats green-dashboard error
M4 – Comms linkage drift deck headline implies Lesson 82 promise tier not yet in merged register player-facing contradiction prep

Step 2 - Author lesson78_readout_slide_reconciliation_log.csv

column purpose
recon_row_id monotonic id
readout_publish_at_utc when external governance copy may go live
deck_version immutable label (exec-readout-2026-05-07b)
deck_slide_ref slide id or CMS block id
bullet_text_hash sha256 of the exact governance sentence under review
ingestion_window_start_utc matches Lesson 86 daily batches included
ingestion_window_end_utc inclusive cutoff
ingestion_coverage_hash hash of all merged ingestion_row_id rows in scope
claimed_metric_name example: merged_dispute_rows_count
claimed_metric_value from deck
register_metric_value from Lesson 78 register or summed ingestion
delta_abs absolute difference
mismatch_class none, M1, M2, M3, M4
owner_initial divergence or comms owner sign-off

If mismatch_class != none, the deck does not ship until corrected or the reconciliation packet documents an explicit written exception with waiver id.

Step 3 - Run the same-night sequence

  1. T-120m: Export last merged ingestion rows for the window; freeze ingestion_coverage_hash.
  2. T-90m: Lock deck_version; no copy edits without bumping version.
  3. T-60m: Fill reconciliation log; highlight mismatches.
  4. T-30m: Divergence owner and comms owner initial rows or escalate.
  5. T-0: Publish readout only if all mismatch_class rows are none or exception-linked.

Step 4 - Tabletop - optimistic slide

Simulate: deck says “no elevated dispute signals” while ingestion shows three merged rows with signal_source = chargeback_batch.

Expected output: M2, block publish until slide text matches investigating localized payment anomalies or similar honest interim phrasing aligned with Lesson 85 bridge discipline.

Pro tips

  • Tip: Store slides as PDF with hash for audit, not only live Google Slides without revision id.
  • Tip: Pair numeric reconciliation with the calibration habits in How to Score Forecast Calibration Drift Before Release Gates.
  • Tip: If marketing insists on sizzle, constrain sizzle to non-governance slides; keep factor posture slides boring and exact.

Common mistakes

  • Mistake: Reconciling against raw ingestion instead of merged rows. Fix: only merge_status = merged counts toward executive claims.
  • Mistake: Using weekly deck cadence to excuse skipping Lesson 86 daily batches. Fix: reconciliation window must cite actual daily coverage hash or explicitly list missing days.
  • Mistake: Letting Legal review without ingestion hash. Fix: Legal gets the reconciliation log, not only the deck.

Mini challenge

  1. Take one bullet from a past readout.
  2. Write one lesson78_readout_slide_reconciliation_log row with a deliberate M1 delta.
  3. Draft the single-sentence correction that preserves honesty without leaking player secrets.

Success check: an auditor can recompute register_metric_value from cited ingestion_row_id list attached to the packet.

FAQ

Is this redundant with Lesson 78 alone?

Lesson 78 owns the register. This lesson owns presentation fidelity to that register at publish time.

What if the deck is oral-only?

Still produce the csv log against spoken script text captured in meeting notes with hash.

Who owns exceptions?

The same waiver governance path you use for promotion; do not invent a new slack channel.

Lesson recap

You now have a reconciliation spine that forces slides to stay honest to ingestion before governance copy escapes.

Next lesson teaser

Next, complete the Lesson 88: Borrow-Train Closeout Certificate so readout version, final ingestion hash, and bridge rows archive into one signed baseline before the next train opens.

Related learning

Treat the reconciliation csv as part of the readout product, not meeting admin.