I wrote the December 2025 narrative to `output/mbr-narrative.md`, and the script's figures are in `output/mbr.json`. The script ran cleanly and its reconciliation checks passed. I didn't re-run it or check the narrative against it afterwards.

- **Month:** Revenue was $827K against a $824K budget. Operating income was $8K against $13K, a ($5K) miss. Gross margin was 26.1% against 26.8%, or (0.7) pts.
- **Year to date:** Revenue is ($362K) behind budget, and operating income is $388K against $583K. The year to date confirms the month's weak margin: 25.9% against 26.8%.
- **Drivers:** Other operating and cost of goods sold were each ($6K) unfavourable in the month. Year to date, cost of goods sold is $196K favourable, which offsets part of the revenue shortfall.
- **KPIs:** Four are off target: days sales outstanding, on-time delivery, active customers and inventory turns. The first two have missed target for three months running.

The data doesn't show why year-to-date revenue is short. The narrative says so and names customer-level sales against plan as the data that would answer it.