River
Y CombinatorBacked by Y Combinator

Finance & AccountingFree

Form 941 Payroll Tax Reconciliation

The four-field match the IRS will run in two years, plus the two reconciliations it will never run for you.

Start here

River's payroll tax filing reconciliation reads the returns you already filed against the registers that produced them, and against the deposits that actually cleared. It runs three separate ties rather than one. Each quarter's register against that quarter's return, that quarter's Schedule B against the payments in your bank, and the four quarters summed against the wage statement totals on exactly the fields the IRS compares. Every difference comes back with the line it sits on and what fixes it.

Every template for this is a preparation checklist. It walks you through filling the return out, which is the part your payroll provider already did. The check nobody performs is the one after filing, and it is the only one that finds an error while the fix is still cheap. Amending a quarter takes one form; answering a notice about it two years later takes the records nobody kept. The payroll journal and accrual pack holds the register side of the tie.

Written for the controller or bookkeeper who signs the returns, and for the accountant taking on a client whose prior filings nobody has looked at. Run it in January before the wage file transmits, after any payroll provider change, and on any quarter that came out with a balance due. Where the letter has already arrived, the tax notice response picks it up, and the client filing calendar pack keeps the next four quarters on time.

The government's own match finds a seventh of it

The reconciliation almost nobody performs is one the government performs for you, late. Its Combined Annual Wage Reporting program compares four fields: federal income tax withheld, social security wages, social security tips and Medicare wages, on the quarterly returns against the wage statement totals at Social Security. Gross wages, the number everybody eyeballs, is not one of them. Case review starts in April of the second following year, so tax year 2026 is read from April 2028, and the letter gives you 45 days.

Kirkbride Millwork, 46 employees, 4,312,000 of Medicare wages. Three errors. Group-term life imputed income of 18,420 went onto the wage statements in December but onto no return, so the match assesses 2,818. A provider change on 1 July restarted the social security wage base, so two owners' wages were reported at 265,000 and 228,000 against a 184,500 cap, overpaying 15,376. Both documents agree there, so the match sees nothing: it checks that the two filings match, not that either is right.

The third error hides behind a return that balances. Kirkbride's second quarter owed 261,500 and deposited 261,500, so line 12 equalled line 13. But April's payroll was funded 27,400 light and only cleared with the deposit for the quarter's last payroll. Publication 15 applies deposits to the most recent liability in the quarter and dates the penalty from the due date of whatever it lands on. That catch-up arrived ten weeks late, at the 10 percent tier: 2,740 instead of 548.

How it works

  1. Add the filed returns

    All four quarterly returns with Schedule B, plus the annual transmittal if the wage statements went out.

  2. Add register and deposits

    The payroll register for every pay date, and the payment history showing what actually cleared.

  3. River runs three ties

    Register to return, Schedule B to deposits, and four quarters summed against the wage statements.

  4. Fix what is off

    Each difference comes back with its line, its cause, and the amendment or correction it needs.

What you get

  • The four fields the IRS matches, tied per quarter and summed against the wage statements
  • Each quarter's Schedule B read against the deposits that actually cleared your bank
  • A register-to-return tie that catches errors both filings share and therefore agree on
  • Late deposits priced at the tier they actually draw, not the one you assumed
  • Wage base and additional Medicare thresholds re-derived per employee, per pay date
  • The amended return or corrected wage statement each difference needs, named and drafted

Common questions

What exactly does the IRS compare, and when?

Four fields: federal income tax withheld, social security wages, social security tips and Medicare wages, taken off the quarterly returns and matched against the wage statement totals Social Security processed. Case review begins in April for the second preceding tax year, and the resulting letter gives you 45 days to reply.

Our quarterly return balanced. Doesn't that mean the quarter is fine?

No, and that is the most useful thing on this page. A quarter can owe and deposit the same total while individual deposits landed late or short, which is a penalty rather than a balance due. The comparison that finds it is Schedule B against your actual payment dates, per liability. Pay changes hide the same way, which is what the register diff catches.

We switched payroll providers mid-year. What breaks?

Year-to-date figures, usually. A new system starting at zero lets the social security wage base and the additional Medicare threshold restart, so anyone above either one gets taxed twice. Both the returns and the wage statements come out of that system, so they agree with each other and the government's match finds nothing. A contractor moved onto payroll mid-year restarts it too, so price that conversion first.

How do late deposit penalties actually get calculated?

In calendar days from the due date of the liability, at 2 percent for one to five days, 5 percent for six to fifteen, and 10 percent beyond that or when the amount is paid with the return instead. Which liability a deposit clears is decided by rule, not by you.

What does the output actually look like?

A spreadsheet with one tab per tie and one row per difference, showing the return line, the register figure, the variance and the fix. Then a short memo listing the amendments and corrected wage statements to file. The balance sheet substantiation pack is where the resulting liability balances get proved.

Can it read our deposit history, or do I type it in?

It reads what you paste. A payment history export, the bank lines for each transfer, or a screenshot of the deposit schedule all work. Pulling the transfers straight off the statement is usually fastest, and the bank statement importer turns a PDF statement into dated lines first.

A notice already arrived. Is this still the right tool?

Partly. Use this to work out what the notice is actually about, since a letter naming one field usually has its cause on a different one. Then draft the reply with the balance already proved, and remember that the 45-day window on this letter runs from the date printed on it.

Form 941 Payroll Tax Reconciliation

Fill in the form and your workspace opens with the work already underway.