The CFO one-pager is written to `output/exec-summary.md`, at 309 words against the 350-word limit. The figures are in `output/summary.json`. The script ran cleanly, and its reconciliation checks passed.

- **Headline:** FY2025 revenue was $11,238K against a budget of $11,600K. Operating income was $388K against $583K.
- **Quarterly revenue:** Q1 was ($121K) and Q3 was ($229K) against budget. Q2 and Q4 were within ($7K) of budget.
- **Drivers:** I kept three of the six movers the script lists. Revenue was ($362K) unfavourable and cost of goods sold was $196K favourable. Salaries and wages were ($38K) unfavourable.
- **Watch list:** I kept three of the four off-target KPIs.
  - Days sales outstanding: 51.2 against 45.0.
  - On-time delivery percent: 93.3% against 95.0%.
  - Active customers: 40 against 42.
  - I left out inventory turns, which has been off target for only one month.
- **Question for leadership:** What is driving the Q1 and Q3 revenue shortfalls, and is it recoverable?
- **Data notes:** The summary lists both input files with their row counts and hashes. It also carries the script's note that some rows don't add exactly because each amount is rounded on its own.

There is no prior-year comparison or forecast, because neither is in the inputs.