I've built the December 2025 scorecard and written its note. 4 of the 8 KPIs were on target, and 2 have been off target for three months or more. The script's checks tied revenue, gross margin and opex percent to the P&L.

| KPI | Actual | Target | Status | Months off |
| --- | ---: | ---: | --- | ---: |
| Revenue | $827K | $824K | on target | 0 |
| Gross margin percent | 26.1% | 26.0% | on target | 0 |
| Days sales outstanding | 51.2 | 45.0 | off target | 3 |
| On-time delivery percent | 93.3% | 95.0% | off target | 3 |
| Order fill rate percent | 97.6% | 97.0% | on target | 0 |
| Active customers | 40 | 42 | off target | 2 |
| Inventory turns | 5.33 | 6.50 | off target | 1 |
| Opex percent of revenue | 25.1% | 25.3% | on target | 0 |

- **Exceptions:** Days sales outstanding and on-time delivery are the two off three months or more. The note puts a question to each owner: which customers' balances are aging past terms, and which lanes, carriers or warehouses account for the late orders.
- **Also off target:** Active customers (2 months) and inventory turns (1 month). The note doesn't flag either, because the scorecard method only lists KPIs off three months or more.
- **Note format:** The note uses the scorecard skill's fixed four sections. I didn't add commentary beyond that, and it does not explain causes.

Files are in /tmp/spb-kpi-scorecard-2025-12-v1-claude-l45iky_o/output:
- scorecard-note.md
- scorecard.json