runbookify
← All plans
Payroll & Timekeeping / Payroll Accounting & Reconciliation

Payroll Bank Reconciliation: Match Every Outflow Before You Sign Off

Match your payroll register's outflows against the bank/clearing-account statement, flag uncashed checks and missing debits, age stale checks for escheatment, and produce a clean reconciliation your controller can approve.

IntermediateA weekendBuilds onNext.jsSupabaseResend
What you'll build

A web tool where you import the payroll register and the bank statement, the tool auto-matches outflows to bank items and flags anything uncleared, your controller dispositions each unmatched item, and the tool exports an approved reconciliation plus an outstanding-items report — with stale uncashed checks flagged for escheatment review.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A Supabase account (free)
  • A Vercel account (free)
  • A Resend account (free)
  • Your payroll register / expected-outflows CSV for the period
  • Your payroll bank/clearing account statement CSV
  • Claude Code or any AI coding agent

The problem this kills

Every pay period the payroll clearing account has to tie out, and someone — usually you — sits down with two exports and a highlighter. On one side: the payroll register, every expected outflow (direct deposits, the tax payments, the bank fees, the manual checks you cut for the person who missed the run). On the other side: the bank statement for the payroll account. You match line by line, hunting for the ACH batch that posted a day late, the paycheck that still hasn't cleared, the debit you expected that never showed up.

It's slow, it's eye-straining, and the stakes are real. A missing debit can mean a tax payment that didn't go out. An uncashed paycheck that ages past the state's dormancy window becomes an unclaimed-property (escheatment) problem with its own filing deadline. And when the numbers finally tie, you're the one signing off — so you need to be sure, not hopeful. You don't have to do this by hand, and you don't need to be a developer to stop.

What you'll build

A simple internal web tool. You import two CSVs: your payroll register / expected outflows and the bank statement for the payroll/clearing account. The tool auto-matches each expected outflow to a bank item on a key you control — amount + date + reference — and tolerates the normal timing wobble (a debit that posts the next business day). It splits everything into three buckets: matched and cleared, outstanding (expected but not yet on the bank — uncashed checks, in-transit ACH), and unexpected (on the bank but not in your register). It ages every outstanding check and flags the stale ones for escheatment review. Your controller works the unmatched list, dispositions each item (timing difference, void, research, escheat), and clicks Approve. Only then does the tool lock the reconciliation and export a clean reconciliation summary plus an outstanding-items report.

What's inside the Implementation Plan

The downloadable plan is a step-by-step file you paste into an AI coding agent. It opens by interviewing you about your business — which payroll system and bank you export from, exactly how your register and statement columns are named, what reference your checks and ACH batches carry, your typical and peak item counts, your bank's posting-timing quirks, and your state's dormancy rules for uncashed pay — and then it tailors the match key, the timing tolerance, and every later step to your answers. This is not a generic template; the agent reflects a short spec back to you and waits for your thumbs-up before it builds anything. From there it walks the agent through importing both CSVs, the auto-match engine, the outstanding/unexpected split, check aging and escheatment flagging, the controller disposition-and-approve screen, and the reconciliation + outstanding-items export — each step with a ready-to-copy prompt. There's also a fallback so you can build the whole thing today even with no bank API.

The governance it includes (this is the point)

This is real payroll-accounting tooling, so it ships with the controls a finance team needs: login so only your team can use it, row-level security so you only ever see your own organization's reconciliations, a complete audit trail of who matched, dispositioned, and approved which items and when, a hard human-approval gate so no reconciliation is finalized until your controller signs off, and duplicate guards keyed on amount + date + reference so the same bank line or register item can't be matched or imported twice. Stale uncashed checks are surfaced for escheatment review instead of quietly aging out of sight.

Who it's for

Controllers and bookkeepers who reconcile the payroll clearing account each period and want to stop doing it with a highlighter. If you can describe how your payroll outflows hit the bank, you can build this.

You've got this — start with the plan, paste the first prompt, answer the interview, and you'll see your first period tie out the same afternoon.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.