I wrote the December 2025 narrative to `output/mbr-narrative.md`. The script's figures are in `output/mbr.json`. The script's reconciliation checks passed.

- **Month:** Revenue was $827K against a budget of $824K. Operating income was $8K against $13K, a variance of ($5K). Gross margin was 26.1% against 26.8%.
- **Year to date:** Revenue was $11.2M against $11.6M, a variance of ($362K). Operating income was $388K against $583K, a variance of ($195K).
- **Drivers:** In the month, Other operating and Cost of goods sold each missed budget by ($6K). Year to date, the revenue shortfall was partly offset by a $196K favourable variance in Cost of goods sold.
- **KPIs off target:** Four of the eight KPIs missed target.
  - Days sales outstanding and on-time delivery have missed for 3 months.
  - Active customers has missed for 2 months.
  - Inventory turns has missed for 1 month.
- **Data notes:** The narrative cites `pnl_fy2025.csv` (120 rows) and `kpis_fy2025.csv` (96 rows), each with its sha256 hash.

Every figure is copied from the script's output, and none is calculated by me. The narrative gives no causes, because the data doesn't show any. It doesn't explain why December revenue fell from $899K in November, because the data has no driver for that.