I've written the full-year commentary to `fy2025_bva_commentary.md`. The CSV had 12 periods and 10 line items, with no missing or duplicate rows.

**Headline:** Revenue was $11.24M against a $11.60M budget, which is $362k (3.1%) under. Operating profit was $388k against $583k, which is $195k (33.5%) under. Operating margin was 3.4% against a budgeted 5.0%.

- **Revenue:** The miss sits in March (–$123k) and July–August (–$237k). The other eight months were within about ±$8k of budget. The file doesn't say why those months were weak, so the sales owners need to supply that.
- **Gross margin:** At 25.9% it was 0.9 points below the 26.8% budget. Product cost was 70.7% of revenue against 70.2% budgeted. Freight was $29k over budget even though sales were lower, and it was over in 11 of 12 months.
- **Operating expenses:** They landed on budget in total, but only through offsets. Marketing was $38k under and Technology was $25k under. Salaries were $38k over, mostly in July–September, and Rent was $23k over, mostly an April spike plus August–September.
- **Professional fees:** They look like a timing issue. March was $31k over and May was $30k under, so the full-year variance is about nil.

The commentary flags two points for you to confirm before presenting:
- The marketing underspend starts in July, the same window as the revenue shortfall. I didn't call it a saving.
- The causes of the salary overrun and the rent spikes aren't in the data. I marked them as needing confirmation from the owners.