I wrote the forecast change note to `output/drivers-note.md`. Current FY2026 EBITDA is **$303K**, down from **$452K** in Prior, a change of **($149K)**, or **(32.9%)**. The six step amounts add up exactly to the total change, which the script checks before it reports anything.

**What changed:** 3 of the 6 drivers moved.

| Driver | Prior | Current | Months changed | EBITDA delta |
| --- | --- | --- | --- | --- |
| Active customers | 46 | 44 | 12 | ($133K) |
| Gross margin | 26.2% | 26.6% | 12 | $39K |
| Headcount | 23.00 | 23.75 | 9 | ($54K) |

Revenue per customer, cost per head and other opex did not change, so each has a $0 delta.

**Why EBITDA moved:**
- **Fewer active customers is the main cause.** It cut EBITDA by ($133K) and accounts for all of the ($509K) revenue drop, which is (4.3%).
- **More headcount added cost**, taking a further ($54K) off EBITDA.
- **Higher gross margin offset part of that**, adding $39K.

The delta amounts depend on the order the drivers are applied in, which is fixed. So read them as each driver's step in that sequence, not as fixed shares of the total change.

**What the data can't tell you:** it shows how much each driver moved, not why. The note's Review section asks each driver's owner which documented assumption supports their change: which customers dropped out, what justifies the higher margin, and which hires or approved roles explain the extra headcount. The assumption register is where to check those answers.

The figures came from the planning script, and the full output is in `output/drivers.json`. Input file: `drivers_fy2026.csv`, 144 rows, sha256 `704c929028e8`.