15 of 20 December recs are clean, and the unexplained difference across all recs nets to ($68K). Five recs have findings, and every rec ties. The review script's figures are in `output/recs.json`, and the sign-off note is in `output/recs-note.md`.

What blocks sign-off, most severe first:

1. **Accrued payroll (2120), stale GL balance.** The rec uses ($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 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, then either list the item or post the correcting entry.
3. **Vendor rebates receivable (1150), preparer is reviewer.** Marcus Oyelaran prepared and reviewed it. Dana Whitfield needs to assign a second reviewer.
4. **Inventory (1200), late review.** The rec is still Prepared and has not been reviewed. Dana Whitfield needs to complete the review.
5. **Accounts receivable - trade (1100), aged item.** RI-05, ($14K), is an unapplied Lumen Retail receipt with no remittance advice. It has been open 127 days against a 90-day limit. Priya Raman needs to clear or book it and record why.

Items 1, 2 and 5 are bookkeeping gaps, meaning the balance may be wrong. Items 3 and 4 are policy breaches, meaning a person has to do their review step. The note also lists the three input files with their row counts and hashes.