I built the FY2025 revenue bridge, and it reconciles to the cent. FY2025 revenue was $11.2M against $11.2M in FY2024, a change of ($5K) or (0.04%).

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

The main drivers, all from the script output:
- **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 and Ember Analytics at $136K.
- **New customers:** 6 customers added $463K, led by Thistle Gardens at $116K.
- **Decline:** 11 customers took ($443K), led by Driftwood Media at ($113K) and Juniper Schools at ($107K).

The note says the data doesn't show why these customers left or shrank. Account notes or churn interviews would answer that.

The input was `customers_fy24_fy25.csv`, 48 rows. Every figure in the note is copied from the script's output.

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