FY2025 operating income came in at $388K against a $583K plan, a shortfall of ($195K), or (33.5%). Revenue was $11.2M against $11.6M, short by ($362K), or (3.1%). The script's check that every line adds up to the totals passed.

**Full year, line by line**

| Line | Actual | Budget | Variance | % |
| --- | --- | --- | --- | --- |
| Revenue | $11.2M | $11.6M | ($362K) | (3.1%) |
| Cost of goods sold | $7.9M | $8.1M | $196K | 2.4% |
| Freight out | $377K | $348K | ($29K) | (8.3%) |
| Salaries and wages | $1.6M | $1.5M | ($38K) | (2.5%) |
| Rent and occupancy | $431K | $408K | ($23K) | (5.6%) |
| Marketing | $94K | $132K | $38K | 28.5% |
| Technology | $143K | $168K | $25K | 15.0% |
| Professional fees | $97K | $96K | ($1K) | (1.4%) |
| Depreciation | $79K | $78K | ($1K) | (1.5%) |
| Other operating | $120K | $120K | $116 | 0.10% |
| **Gross margin** | 25.9% | 26.8% | (0.9) pts | |
| **Operating income** | $388K | $583K | ($195K) | (33.5%) |

**December, line by line**

| Line | Actual | Budget | Variance | % |
| --- | --- | --- | --- | --- |
| Revenue | $827K | $824K | $3K | 0.38% |
| Cost of goods sold | $584K | $578K | ($6K) | (1.0%) |
| Freight out | $27K | $25K | ($3K) | (10.8%) |
| Salaries and wages | $128K | $128K | ($324) | (0.25%) |
| Rent and occupancy | $34K | $34K | $169 | 0.50% |
| Marketing | $7K | $10K | $3K | 34.2% |
| Technology | $10K | $14K | $4K | 25.2% |
| Professional fees | $6K | $6K | ($310) | (5.6%) |
| Depreciation | $7K | $7K | ($95) | (1.5%) |
| Other operating | $16K | $10K | ($6K) | (59.5%) |
| **Gross margin** | 26.1% | 26.8% | (0.7) pts | |
| **Operating income** | $8K | $13K | ($5K) | (38.0%) |

Positive variances are favourable; figures in parentheses are unfavourable.

**What drove the year**
- **Revenue:** almost all of the miss came in three months: March ($123K), July ($132K) and August ($105K). In every other month revenue was within ($6K) to $7K of plan.
- **Cost of goods sold:** came in $196K under budget. The data doesn't say whether that's because fewer units were sold or because each unit cost less. Unit volume data would settle it. Freight out was the exception, ($29K) over budget and still rising in December.
- **Operating expenses:** level with budget overall. Underspends on Marketing ($38K) and Technology ($25K) offset overspends on Salaries ($38K) and Rent ($23K).
- **Professional fees:** were ($31K) over budget at their worst point, in March, but ended the year only ($1K) over, so this was timing.
- **December:** Other operating ran ($6K) over budget, which wiped out November's $6K favourable year-to-date position.

The draft commentary is in `output/bva-note.md` and the underlying figures are in `output/bva.json`. The note gives totals only, in the standard five-section format, so add the line-by-line tables above if you want them in the pack. Before Thursday, three groups need to answer questions:
- **Sales:** what happened in March, July and August.
- **Operations:** units sold and cost per unit, to explain the cost of goods sold underspend.
- **Marketing and Technology owners:** whether their underspends move into 2026.