I wrote the accuracy review. The script ran cleanly, and every closed month ties to the P&L actuals. The Budget version matches the P&L budget.

**Revenue**

| Version | Closed months | Full-year variance | MAPE | Bias |
| --- | --- | --- | --- | --- |
| Budget | 0 | $362K, or 3.2% | 3.7% | 3.2% |
| 3+9 | 3 | $177K, or 1.6% | 3.3% | 2.1% |
| 6+6 | 6 | $158K, or 1.4% | 2.9% | 2.8% |
| 9+3 | 9 | $3K, or 0.02% | 0.63% | 0.10% |

- **Direction of the misses:** Every version except 9+3 over-forecast revenue. The worst misses were 15.0% (Budget in July, 6+6 in September).
- **9+3 is the best, with a caveat:** It had only three months left to forecast. Its 0.63% MAPE therefore doesn't show that the forecasting itself improved.
- **Operating expenses:** All four versions landed within $14K for the year. Budget's full-year variance was only ($1K), but its MAPE was 4.1%. Offsetting monthly misses hid this, and May alone was off by $32K, or 15.7%.

The reforecasts steadily narrowed the revenue gap, but the data can't say whether the cause was better forecasting or fewer months to forecast. Explaining the July and September revenue misses would need the assumptions behind those months.

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