I built the FY2025 bridge and wrote the note. Revenue was essentially flat: $11.2M in FY2025 against $11.2M in FY2024, a change of ($5K), or (0.04%). The script checked that the bridge adds up to FY2025 revenue to the cent.

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

**What drove it:**
- **Lost customers:** 4 customers left, taking ($1.3M). Fenwick Legal was the largest at ($686K) and Birchway Foods next at ($503K).
- **Customers buying more:** 23 customers added $1.2M, which nearly cancelled out the losses. Harbor Freight Partners added the most, $148K.
- **New customers:** 6 new customers added $463K.
- **Customers buying less:** 11 customers cut back by ($443K) in total.
- **Timing:** $53K came from 3 customers whose renewal dates shifted.

The data doesn't show why customers left or cut back. Churn reasons or contract records would be needed to answer that.

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