Here's the full-year budget versus actual commentary for the operating review:

---

## Headline

YTD 2025 revenue was $11,238K against a $11,600K budget, unfavourable by ($362K), or (3.1%); operating income $388K against $583K, unfavourable by ($195K), or (33.5%).

## Results

| Measure | Actual | Budget | Variance |
| --- | --- | --- | --- |
| Revenue | $11,238K | $11,600K | ($362K) |
| COGS | $8,324K | $8,491K | $167K |
| Gross profit | $2,914K | $3,109K | ($194K) |
| Gross margin | 25.9% | 26.8% | (0.9) pts |
| Operating expenses | $2,527K | $2,526K | ($1K) |
| Operating income | $388K | $583K | ($195K) |

## Month

December 2025 revenue was $827K against a budget of $824K, a favourable $3K. Operating income was $8K against $13K, an unfavourable ($5K).

## Drivers

- Revenue fell ($362K), or (3.1%) below plan, driven by misses in March ($123K), July ($132K) and August ($105K).
- Salaries and wages ran ($38K), or (2.5%) high, and Freight out added ($29K), or (8.3%) in unfavourable variance.
- Marketing came in $38K, or 28.5% favourable, and Technology saved $25K, or 15.0%, partly offsetting cost overruns.
- Gross margin contracted (0.9) pts to 25.9%, pressed by higher freight and lower revenue offset only partially by lower Cost of goods sold of $196K favourable.

## Data notes

pnl_fy2025.csv, 120 rows, sha256 `eaa52ac89e97`

Each amount is rounded on its own, so the Gross profit and Operating income rows do not add exactly in Results.

---

The commentary is ready for your operating review. The file is saved at `output/bva-note.md`.