I built the FY2025 revenue bridge and wrote the commentary note. Revenue was flat: FY2025 came to $11.2M against $11.2M in FY2024, a change of ($5K), (0.04%). The script's check that the bridge reconciles to the cent passed.

Large losses and large upsell nearly cancelled each other out:

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

- **Losses:** Fenwick Legal (($686K)) and Birchway Foods (($503K)) are the two largest of 4 lost customers.
- **Upsell:** 23 customers added $1.2M, led by Harbor Freight Partners at $148K.
- **New business:** 6 new customers added $463K.

The note doesn't give causes for any of these movements, because the data doesn't show why they happened.

Files are in `/tmp/spb-revenue-bridge-fy25-claude-9e4hay38/output/`:
- `bridge.json`
- `bridge-note.md`