I've built the December 2025 MBR deck: `output/IS_MBR_2025-12.pptx`. The build script checked every figure against the two source files and found none from anywhere else. It printed:

> December 2025 deck: 6 slides, 64 figures, every one from a source. Wrote output/IS_MBR_2025-12.pptx and output/deck.json

The slide content I wrote is in `output/slide-map.json`. The six slides are:

1. **Title:** "December 2025 Monthly Business Review", InterStationary.
2. **Headline:** four bullets.
   - Operating income was $8K against a $13K budget, a variance of ($5K), because gross profit fell ($5K) short.
   - Revenue was $827K against a $824K budget, but fell ($72K), or (8.0%), from November.
   - Year to date, revenue is $11.2M against $11.6M budget, a variance of ($362K). Operating income is $388K against $583K.
   - 4 of 8 KPIs are off target.
3. **P&L vs budget:** revenue, gross profit, gross margin, operating expenses and operating income.
4. **KPI scorecard:** all 8 KPIs, in the scorecard's order.
5. **Drivers:** three monthly variances (Other operating ($6K), Cost of goods sold ($6K), Technology $4K) and the year-to-date revenue variance of ($362K).
6. **Watch list:** the four KPIs off target. Days sales outstanding and On-time delivery percent have each been off target for 3 months running.

**Gross margin target vs budget:** the two sources use different gross margin benchmarks. The scorecard compares the 26.1% actual with a 26.0% target and marks it "on target". The P&L table on slide 3 compares the same 26.1% with a 26.8% budget, a variance of (0.7). Both numbers are copied correctly from their sources, but a reader may ask why gross margin is on target on one slide and below budget on another. You may want to confirm whether the 26.0% KPI target in `kpis_fy2025.csv` is meant to differ from the budget.