The reforecasts were accurate in total but kept forecasting revenue too high. All four versions landed close to the actual, and the last one, 9+3, was the best on both revenue and operating expenses. The script's checks passed: every closed month matches the P&L actual, and the Budget version matches the P&L budget.

| Version | Revenue FY variance | Revenue MAPE (typical monthly miss) | Revenue bias | Opex MAPE |
| --- | --- | --- | --- | --- |
| Budget | $362K, or 3.2% | 3.7% | 3.2% | 4.1% |
| 3+9 | $177K, or 1.6% | 3.3% | 2.1% | 1.8% |
| 6+6 | $158K, or 1.4% | 2.9% | 2.8% | 0.77% |
| 9+3 | $3K, or 0.02% | 0.63% | 0.10% | 0.30% |

- **Revenue was forecast too high every time.** Budget, 3+9 and 6+6 all overshot. Even with six months already closed, 6+6 had a bias of 2.8%, higher than 3+9's. So the optimism didn't fade as the year went on. The data doesn't show why; the assumptions behind each version would.
- **Two months account for most of the revenue misses.** 6+6 overshot September by $151K, or 15.0%, against a typical miss of 2.9%. Budget and 3+9 both had their biggest miss in July; Budget's was $132K, or 15.0%. It's worth asking what each version assumed for those months.
- **9+3's result is mostly down to timing.** It only had three months left to forecast, all close to when it was made. Use it for the year-end landing, but it doesn't show that revenue forecasting got better.
- **Opex forecasting did get better.** Budget's full-year opex was off by only ($1K), but its monthly misses were large and cancelled out: May alone was off by $32K, or 15.7%. 6+6 still had six months left to forecast and kept its typical miss to 0.77%.

The write-up also has the full tables for both lines and a note on the input files.

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