I've built the FY2025 revenue bridge and written the commentary note. The bridge script ran without errors and confirmed the walk adds up exactly from FY2024 to FY2025.

FY2025 revenue was **$11,238K**, against **$11,243K** in FY2024. That's 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 |

Total revenue barely moved, but there was a lot of change underneath:
- **Losses:** 4 customers left, taking ($1,288K). Most of that came from Fenwick Legal at ($686K) and Birchway Foods at ($503K). The data doesn't say why they left; you'd need churn or account-manager records to answer that.
- **Upsell:** 23 customers spent more, adding $1,211K. Harbor Freight Partners led with $148K.
- **New:** 6 new customers added $463K, led by Thistle Gardens at $116K.
- **Decline:** 11 customers spent less, cutting ($443K). Driftwood Media fell the most, by ($113K).

Each amount is rounded to thousands on its own, so the table rows don't add exactly to the FY2025 total; the note says this.

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