Your December 2025 monthly business review is ready. The narrative has been written to `output/mbr-narrative.md` with these headlines:

**Month**: Revenue beat budget by $3K, but operating income fell $5K short due to elevated other operating costs ($6K unfavourable) and gross margin compression from higher COGS.

**Year to date**: Revenue came in ($362K) under the $11.6M budget. Despite the volume miss, COGS management was strong ($196K favourable), but staffing costs ran ($38K) over budget. Operating income landed at $388K versus a $583K budget—a ($195K) miss.

**KPIs**: Four metrics are off target—Days sales outstanding stretched to 51.2 days (3 months off), on-time delivery slipped to 93.3% (3 months off), active customers fell to 40 (2 months off), and inventory turns came in at 5.33 (1 month off).

Both the JSON script output and the narrative markdown are in `output/`. The figures trace to the input files and reconcile to the cent.