Sign-off is blocked: 15 of 20 December recs are clean, and the other 5 each have a finding. The unexplained difference across all recs nets to ($68K). The script found every rec ties internally.

In severity order:

1. **Accrued payroll (2120), stale GL balance.** The rec uses a GL balance of ($58K), but the trial balance shows ($72K). Marcus Oyelaran needs to re-run it on the current balance. Until then the account is unreconciled.
2. **Sales tax payable (2150), unexplained difference of ($69K).** The GL is ($92K) against a subledger of ($23K), with $0 of reconciling items. This is above the $5K threshold. Marcus Oyelaran needs to find the cause and either list the item or post a correcting entry. It is marked Reviewed, so the review did not catch it.
3. **Vendor rebates receivable (1150), preparer is also reviewer.** Marcus Oyelaran did both steps. Dana Whitfield needs to assign a second reviewer.
4. **Inventory (1200), not reviewed.** It is still at Prepared, with a $1K unexplained difference. Dana Whitfield needs to complete the review.
5. **Accounts receivable - trade (1100), aged item.** RI-05, ($14K), is an unapplied receipt from Lumen Retail with no remittance advice, 127 days old. Priya Raman needs to clear or book it and record why.

Items 3 and 4 are control failures, where someone has to do their step. Items 1, 2 and 5 mean a balance may be wrong.

The full table and data notes (input files, row counts and hashes) are in `output/recs-note.md`. The script's figures are in `output/recs.json`.