I've written the memo. FY2025 revenue was $11,238K against $11,243K in FY2024, a change of ($5K), or (0.04%). The script's check that FY2024 plus the three effects equals FY2025 to the cent passed in total, and for every family and segment.

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

- **Price:** Price offset the volume loss. Paper added $167K, led by Paper Mid-Market at $75K and Paper Enterprise at $63K. Writing Instruments and Desk Accessories moved the other way, at ($36K) and ($44K).
- **Mix:** Mix moved by segment, not by family. Enterprise lost ($627K) to mix, mostly Paper Enterprise at ($300K). SMB gained $399K and Mid-Market $362K, because those segments grew units faster than the company overall.
- **Open question:** The data doesn't show why Writing Instruments and Desk Accessories prices fell. The memo says contract and price-list data would answer it.

The memo notes that the amounts are rounded one by one, so the bridge rows don't add exactly. The note also lists the by-family table and the input file (18 rows, sha256 `5ced03ec721c`).

I never ran the check on the pack's shared style files against `house.lock`, because those commands were blocked by the permission check.

Files are in `/tmp/spb-price-volume-mix-fy25-v2-claude-pnwsl7l9/output/`:
- `pvm-note.md`
- `pvm.json`