The FY2025 one-pager is written, at 313 words, under the 350-word limit. The script's reconciliation checks passed: quarterly revenue sums to the year, and operating income built from the lines matches the subtotal.

**What it says**
- **Headline:** FY2025 revenue was $11,238K against a budget of $11,600K. Operating income was $388K against $583K.
- **Quarters:** Q1 and Q3 drove the revenue shortfall, at ($121K) and ($229K). Q2 and Q4 were close to budget.
- **Drivers:** Revenue was ($362K) unfavourable. Cost of goods sold was $196K favourable, which cushioned the miss but did not close it. Salaries and wages were ($38K) unfavourable.
- **Watch list:** Days sales outstanding is 51.2 days against a target of 45.0, and on-time delivery is 93.3% against 95.0%. Each has been off target for 3 months. Active customers are at 40 against 42.
- **Question for leadership:** What is behind the revenue shortfall, and do the slow collections and late deliveries share a cause?

**Choices I made**
- I left inventory turns off the watch list. It has been off target for only one month.
- I included only three drivers. The fourth-largest, freight out at ($29K), didn't fit the word limit.
- The data notes carry the script's rounding note: some rows don't add exactly as printed. That is rounding, not an error.

Files are in `output/`:
- `exec-summary.md`
- `summary.json`

The skill's output contract fixes these file names, so I didn't rename the summary to the `IS_<Deliverable>_<period>` pattern.