Five recs block December sign-off. Only 15 of the 20 recs are clean. Every rec ties: the GL balance minus the subledger and reconciling items equals the unexplained difference on each one. Across all recs, the unexplained difference nets to ($68K).

They're listed below from most to least severe under the reconciliation policy:

1. **Accrued payroll, 2120: stale GL balance.** The rec was prepared on ($58K), but the trial balance shows ($72K), so the rec doesn't prove the current balance. Marcus Oyelaran needs to re-run it.
2. **Sales tax payable, 2150: unexplained over threshold.** ($69K) is unexplained against a $5K threshold, and no reconciling items are listed. This one rec accounts for almost all of the ($68K) net. Marcus Oyelaran needs to find the cause, then either list the missing item or post a correcting entry.
3. **Vendor rebates receivable, 1150: preparer is reviewer.** Marcus Oyelaran both prepared and approved this rec, so nobody checked it. Dana Whitfield needs to assign a second reviewer.
4. **Inventory, 1200: late review.** It hasn't been reviewed and is still at Prepared. Dana Whitfield is the reviewer and needs to complete the review.
5. **Accounts receivable – trade, 1100: aged item.** RI-05 is an unapplied receipt of ($14K) from Lumen Retail with no remittance advice. It is 127 days old, past the 90-day limit. Priya Raman needs to apply it, adjust it or write it off, and record why.

Items 1, 2 and 5 mean the balances themselves may be wrong, so they need an entry or a re-run rec. Items 3 and 4 are control failures: someone needs to do their review step.

Marcus Oyelaran prepared three of the five problem recs. Dana Whitfield, as Controller, needs to act on two.

I wrote the full sign-off note to `output/recs-note.md` and the script's figures to `output/recs.json`.