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%). Revenue is essentially flat.

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

- **Losses:** Fenwick Legal lost ($686K) and Birchway Foods lost ($503K). These are the two largest of 4 lost customers.
- **Upsell and new:** Upsell from 23 customers and new revenue from 6 customers almost fully offset the losses. Harbor Freight Partners added $148K and Thistle Gardens added $116K.
- **Declines:** Driftwood Media declined ($113K), the largest of 11 declining customers. The data doesn't show why. Account notes or churn reasons would answer it.

The input was `customers_fy24_fy25.csv`, 48 rows. The note's data-notes line carries the file's hash.

Files are in `/tmp/spb-out-of-scope-claude-jwy3gdsv/output/`:
- `bridge-note.md`
- `bridge.json`