I've written the review to `output/register-note.md`, with the script's figures in `output/register.json`. One thing first: the script measures review age from 2026-01-01 by default, not from today. Measured from today, every assumption in the register is past due for review.

**Using the default date of 2026-01-01**, with a review counted as stale after 180 days: of 20 assumptions, 4 are flagged.

| ID | Assumption | Owner | Last reviewed | Finding |
| --- | --- | --- | --- | --- |
| A-09 | Inventory turns | Tomas Herrera | 2025-03-14 | stale review |
| A-13 | Line of credit interest rate | Dana Whitfield | 2025-06-02 | stale review |
| A-16 | Merit increase | none | 2025-11-14 | no owner |
| A-04 | Average headcount | Elena Brandt | 2025-12-15 | changed without a source |

- **Headcount is the one to fix first.** It changed from 23.00 to 23.75 with no source recorded, and it feeds the headcount driver, so it moves opex directly.
- **Merit increase has no owner.** Who should own it?
- **5 values changed in total.** Only headcount lacks a source. The other four have one:
  - active customers went from 46 to 44
  - gross margin went from 26.2% to 26.6%
  - the list price increase went from 4.0% to 4.5%
  - days sales outstanding went from 45 to 47

**Using today, 2026-10-03:** all 20 assumptions are stale and 20 are flagged. The missing owner and the unsourced change stay the same. I saved this run to `output/register_asof_today.json`.

The note follows the default date, as the review template requires. If you want it dated to today, I can regenerate it so the findings table lists all 20 assumptions.