FY2025 revenue was $11,238K, against $11,243K in FY2024. That's a change of ($5K), or (0.04%). The flat total hides a ($395K) loss from volume, which was offset by $256K from price and $135K from mix.

| Step | Amount |
| --- | --- |
| FY2024 | $11,243K |
| Volume | ($395K) |
| Mix | $135K |
| Price | $256K |
| FY2025 | $11,238K |

**What drove it**
- **Volume:** units fell (3.5%), from 176,462 to 170,256. Every family lost volume, led by Print Consumables at ($128K) and Paper at ($101K).
- **Mix:** units moved away from Enterprise, which lost ($627K) of mix. SMB added $399K of mix and Mid-Market added $362K. Paper Enterprise had the largest single mix loss, at ($300K).
- **Price:** Paper added $167K, led by Paper Mid-Market at $75K. Print Consumables added $125K. Prices fell in Desk Accessories, at ($44K), and Writing Instruments, at ($36K).
- **Weakest family:** Writing Instruments fell ($90K) and lost on price, mix and volume.

**Open questions the data can't answer:**
- Did Enterprise customers leave, or buy less? Customer-level data would show this.
- Why did prices fall in Writing Instruments and Desk Accessories? A history of list prices and discounts would show this.

The script checked that the three effects add up exactly to the revenue change, to the cent. That holds in total, for every family and for every segment. All 18 rows use the same unit (cartons), so units can be added across rows. Each displayed figure is rounded on its own, so the rows in the table may not add exactly to the totals shown.

Files are in `output/`:
- `pvm-note.md`: the full commentary, including a table by family
- `pvm.json`: the script's figures