I built the December 2025 KPI scorecard, the review write-up and the six-slide deck. Both scripts exited cleanly and the deck script reported all 56 figures in it as coming from the two source files. The scorecard ties to the P&L, and the review figures reconcile to the cent.

**December 2025 results**
- **KPIs:** 4 of 8 were on target. Days sales outstanding (51.2 against 45.0) and on-time delivery (93.3% against 95.0%) have each been off target for 3 months. Active customers (40 against 42) and inventory turns (5.33 against 6.50) are also off target.
- **Month:** revenue was $827K against a budget of $824K. Operating income was $8K against $13K.
- **Year to date:** revenue is $11,238K against $11,600K, a variance of ($362K). Operating income is $388K against $583K.

**Files, in `output/`**
- `IS_MBR_2025-12.pptx` is the deck.
- `scorecard.json` and `scorecard-note.md` are the KPI results and note.
- `mbr.json` and `mbr-narrative.md` are the review figures and write-up.
- `slide-map.json` and `deck.json` are the deck's inputs and check record.

The dashes in the P&L rows come straight from the scripts' rounding notes: some rows don't add exactly as shown. Both notes and the deck carry that caveat.