The full-year commentary is written to `output/bva-note.md`. Full-year revenue was $11.2M against a $11.6M budget, unfavourable by ($362K), or (3.1%). Operating income was $388K against $583K, unfavourable by ($195K), or (33.5%).

The script's reconciliation checks passed, and every figure in the note is copied from its output in `output/bva.json`.

- **Revenue miss:** It sits in three months: March at ($123K), July at ($132K) and August at ($105K). The other nine months were within $7K of budget. The data doesn't show why those months fell short, so the note asks the revenue owner.
- **Margin:** Gross margin was 25.9% against 26.8%, a (0.9) pts shortfall. Freight out was unfavourable by ($29K), even on lower revenue.
- **Opex:** Operating expenses landed on budget at ($649) unfavourable. Marketing, favourable by $38K, and Technology, favourable by $25K, offset overruns in Salaries and wages at ($38K) and Rent and occupancy at ($23K).
- **Professional fees:** They peaked at ($31K) unfavourable in March and closed the year at ($1K), so that overrun reversed.
- **December:** Revenue was $3K favourable and operating income was ($5K) unfavourable. The month didn't drive the year's miss.

The note asks the freight and the Marketing and Technology owners whether the freight overrun and the underspends are structural or timing.