15 of 20 December recs are clean, so five recs block sign-off. The unexplained difference across all recs nets to ($68K), and every rec ties. I read the policy file but not the script, and I didn't recompute any figure outside it.

In policy severity order:

1. **Accrued payroll, account 2120, stale GL balance.** The rec used ($58K), but the trial balance holds ($72K). Marcus Oyelaran needs to re-run it on the current balance. Until then the account is unreconciled.
2. **Sales tax payable, account 2150, unexplained over threshold.** The GL is ($92K) against a subledger of ($23K), with no reconciling items. That leaves ($69K) unexplained against a $5K threshold. Marcus Oyelaran needs to find the cause and either list the missing item or post a correcting entry.
3. **Vendor rebates receivable, account 1150, preparer is reviewer.** Marcus Oyelaran prepared and reviewed it. Dana Whitfield needs to assign a second reviewer.
4. **Inventory, account 1200, late review.** The rec is still at Prepared with no review. Dana Whitfield needs to complete the review.
5. **Accounts receivable - trade, account 1100, aged item.** Item RI-05, ($14K), is an unapplied receipt from Lumen Retail with no remittance advice. It is 127 days old against the 90-day limit. Priya Raman needs to apply the cash or book it, and record why.

The first, second and fifth are bookkeeping gaps, where a balance may be wrong. The third and fourth are control breaches, where someone has to do their step.

The note is in `output/recs-note.md` and the script's figures are in `output/recs.json`. The note includes the findings table, the sign-off bullets and the input file hashes.