I've written the analysis up in `forecast_accuracy_fy2025.md`. Opex forecasts were good and improved with each version. Revenue forecasts were weaker and ran high.

The file covers revenue and total operating expenses, the only two lines in the forecast file. Actuals and budget in the forecast file match the P&L exactly. Opex is the sum of the seven Opex lines in the P&L.

**Full-year landing**
- **Revenue:** Actual revenue was $11.24M, 3.1% under budget.
- **Revenue outlooks:** The 3+9 and 6+6 reforecasts were still about 1.5% too high. The 9+3 landed on the number.
- **Opex:** Actual opex was $2.527M. Every version landed within 0.5% of it.

**Opex accuracy in Q4 (mean absolute monthly error)**

| Version | Opex error |
|---|---|
| Budget | 2.7% |
| 3+9 | 1.3% |
| 6+6 | 0.6% |
| 9+3 | 0.3% |

Budget opex missed badly in individual months (March −12.8%, May +15.7%) but netted to about zero over the year.

**Revenue**
- **High bias:** Every version overstated revenue, by 0.1% to 3.2% overall.
- **Concentrated misses:** The errors came mainly from July to September.
  - The 3+9 was +9% high in July and +7% in August.
  - The budget was +15% high in July and +11% in August.
  - The 6+6 got July and August right but put September at +15% over actual.
  - That looks like a shortfall pushed into September that never arrived. Whoever built the 6+6 could confirm what they assumed.
- **Q4:** Even the budget was within about 1% of actual revenue in Q4.

**Later reforecasts weren't automatically better.** The 6+6 revenue bias (+2.8%) was no better than the 3+9's (+2.7%). Its lower monthly error came from offsetting misses rather than a better read of the run rate. For Q4 revenue, the 3+9 was worse than the original budget.

I couldn't tell whether the revenue misses were volume or price, or which cost lines drove the opex errors, because the version file only has the two lines. Each version also covers a different number of months (3 to 9), so compare them only on the like-for-like H2 and Q4 tables in the file.

I also left a helper script, `acc.py`, in the working directory.