I've built the December 2025 KPI scorecard, the monthly business review write-up and the six-slide review deck. All three scripts finished cleanly. The scorecard matches the P&L for revenue, gross margin percent and opex percent. The P&L figures reconcile to the cent. The deck build confirmed that all 58 figures on the slides come from the two script outputs.

**December 2025 in brief**
- **Month:** revenue was $827K against a $824K budget. Operating income was $8K against $13K, a shortfall of ($5K). Gross margin was 26.1% against a 26.8% budget.
- **Year to date:** revenue is ($362K) behind budget and operating income is ($195K) behind.
- **KPIs:** 4 of 8 were on target. Days sales outstanding (51.2 vs 45.0) and on-time delivery (93.3% vs 95.0%) have both been off target for 3 months. Active customers (40 vs 42) has been off for 2 months and inventory turns (5.33 vs 6.50) for 1.

**One inconsistency to check:** the KPI file sets the gross margin target at 26.0%, but the P&L budget implies 26.8%. As a result, the scorecard shows gross margin as on target while the P&L table shows it (0.7) points below budget. I reported both as the scripts printed them and didn't try to reconcile them. Someone should confirm which target is correct.

In the narrative's Drivers section, I stated only the variances and didn't give causes the data doesn't show. The questions for the owners of the two 3-month exceptions are in the scorecard note.

Files are in `output/`:
- `IS_MBR_2025-12.pptx`: the deck
- `scorecard-note.md`: the KPI results against target
- `mbr-narrative.md`: the review write-up
- `scorecard.json`, `mbr.json`, `slide-map.json`, `deck.json`: script outputs and the slide map