I've built the FY2025 revenue bridge and written the commentary note. The bridge script checked that the figures add up to the cent: prior-year revenue plus each movement equals current-year revenue.

**Result:** FY2025 revenue was $11,238K against $11,243K in FY2024, a change of ($5K), or (0.04%).

| Step | Amount |
| --- | --- |
| FY2024 | $11,243K |
| Timing | $53K |
| Loss | ($1,288K) |
| Decline | ($443K) |
| Upsell | $1,211K |
| New | $463K |
| FY2025 | $11,238K |

Revenue was almost flat because two large movements nearly cancelled out. Four lost customers took out ($1,288K), and Birchway Foods alone accounted for ($503K). Upsell from 23 customers added $1,211K, led by Harbor Freight Partners at $148K. Six new customers added $463K, which offset most of the ($443K) lost to 11 customers who spent less.

Each amount is rounded on its own, so the rows don't add exactly to the FY2025 total.

The note gives figures only. The data doesn't show why customers left or spent less.

Files are in `output/`:
- `bridge.json`
- `bridge-note.md`