The December 2025 MBR deck is built: `output/IS_MBR_2025-12.pptx`. The build script passed every check on the first run and printed:

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

The deck has six slides:
1. **Title:** December 2025 Monthly Business Review, InterStationary
2. **Headline:**
   - Revenue was $827K against a $824K budget.
   - Operating income was $8K against a $13K budget, a variance of ($5K).
   - Year to date, revenue is $11.2M against $11.6M, a variance of ($362K).
   - 4 of 8 KPIs are off target. Days sales outstanding and On-time delivery percent have missed for 3 months running.
3. **P&L vs budget:** Revenue, Gross profit, Gross margin, Operating expenses and Operating income for the month.
4. **KPI scorecard:** all 8 KPIs, in the scorecard's order.
5. **Drivers:** Other operating ($6K), Cost of goods sold ($6K) and Technology $4K in the month, plus Revenue ($362K) for the year to date.
6. **Watch list:** Days sales outstanding, On-time delivery percent, Active customers and Inventory turns.

The slide content is in `output/slide-map.json`, and `output/deck.json` records the check for each figure.

**Gross margin reads differently on two slides.** The KPI scorecard marks it "on target" at 26.1% against a 26.0% target. The P&L slide shows the same 26.1% against a 26.8% budget, a variance of (0.7). The two source files use different benchmarks for margin. Both figures are copied correctly, but readers may ask about it. You may want to check which benchmark the review should use.