I built the FY2025 bridge and wrote the commentary note. The script reconciles to the cent: FY2024 + Timing + Loss + Decline + Upsell + New = FY2025.

Revenue was flat: $11.2M in FY2025 against $11.2M in FY2024, a change of ($5K), or (0.04%). Losses and declines almost exactly offset upsell and new business.

| Step | Amount |
| --- | --- |
| FY2024 | $11.2M |
| Timing | $53K |
| Loss | ($1.3M) |
| Decline | ($443K) |
| Upsell | $1.2M |
| New | $463K |
| FY2025 | $11.2M |

- **Losses:** The largest were Fenwick Legal at ($686K) and Birchway Foods at ($503K).
- **Upsell:** Harbor Freight Partners added $148K and Ember Analytics added $136K.
- **New business:** Thistle Gardens added $116K.
- **Declines:** Driftwood Media lost ($113K) and Juniper Schools lost ($107K).

The note doesn't give causes for any of these, because the data doesn't show them.

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