This guide covers: Browse past payrolls, Read the run detail, Edit a draft, Recalculate, Cross-portal view.
Browse past payrolls
What it does: Lists every payroll run for a client — drafts, approved, processing, completed, voided.
Where: Two paths:
- Per-client list — client sidebar → Payroll (
/clients/{clientId}/payroll). - Global accountant list — top nav → Payroll (
/payroll), then pick a client from the dropdown.
Steps:
- Open the payroll list.
- Each row is a card showing: Date range · Pay Date · Gross · Status badge · Employees · Net Pay · Employee Taxes · Employer Taxes.
- Draft rows show Edit and Delete action buttons inline.
- Toggle Show YTD Setup payrolls at the top to include or hide
ytd_setup-type rows (YTD takeover entries are stored as fake payrolls so they aggregate cleanly into 941/W-2/940 — toggle off for a cleaner real-run list).
Who: Accountant, SMB admin, or any client-portal/SMB-portal user with payroll-read permission.
Notes: The list shows the 50 most recent runs. The current pay-period banner at the top is computed from the next pending period, not the latest run. On the global accountant page (/payroll), draft rows have an inline Approve action and approved rows have an inline Process action — both with confirm dialogs.
Read the run detail
What it does: Shows everything about one run — period dates, status timeline, employee items, direct deposit status, downloadable PDFs.
Where: Click View Details on a row, or View in the global accountant list (/clients/{clientId}/payroll/{payrollId}).
Steps:
- Click into the run.
- The header shows the status pill (draft, approved, processing, completed, voided, cancelled) with a status icon.
- The download menu has: Payroll Register PDF, All Paystubs ZIP, All Paychecks ZIP, per-employee paystub/paycheck.
- Action buttons depend on status:
draft→ Approve Payroll.approved→ Process Payroll (with a Same-Day ACH toggle pre-checked fromclient.same_day_ach_enabled).- Any non-
draft/voided/cancelled→ Void Payroll (with a confirm explaining: cancel Moov debits, mark items voided, cancel scheduled tax payments).
- For
completedruns, the Direct Deposit Status card shows: not_initiated, pending_funding, pending, processing, complete, or error — with retry/refresh actions.
Who: Accountant or SMB admin.
Notes: A Post to QuickBooks button is available when QBO is connected — calls the same endpoint as the auto-post Celery task, idempotent server-side (returns "already_synced" if the run already has a journal-entry mapping). The detail page also surfaces tax breakdowns and lets you click into individual payroll items to Edit Taxes if you have a justified manual override (rare).
Edit a draft
What it does: Re-opens a draft payroll for changes to dates, hours, or earnings — only works on draft status.
Where: Click Edit on a draft row or visit /clients/{clientId}/payroll/{payrollId}/edit directly.
Steps:
- From the payroll list, click Edit on a draft row.
- The same form as a new payroll loads, prefilled from the saved draft. The
pay_type_at_runsnapshot stamped on each item drives whether each row shows hourly or salary fields — so a salary employee who took unpaid time off stays salary, even ifhours_regularhappens to be 0. - Change any field. Click Calculate Preview to recompute.
- Click Save Changes to persist.
Who: Accountant or SMB admin.
Notes: The page hard-blocks if the run isn't draft — a toast appears and you're redirected back to the run detail. To "edit" an approved run, void it and re-create — see the void action on the detail page, or use a correction run from Off-cycle, bonus & correction payrolls. The edit page does NOT let you change which employees are in the run — that's set at creation.
Recalculate
What it does: Runs the tax engine again on the current edits without persisting them.
Where: Calculate Preview button on the edit form.
Steps:
- Inside the edit form, change hours, bonus, commission, or dates.
- Click Calculate Preview.
- The green preview panel updates with new gross, net, employee taxes, employer taxes, and the per-employee breakdown.
- To apply, click Save Changes. To discard, navigate away.
Who: Accountant or SMB admin.
Notes: Preview reads against the current YTD ledger plus all OTHER items in the run, so caps and additional Medicare thresholds are correct. Editing the period dates re-runs reciprocity and SUI-rate resolution by pay date — so a draft moved across a calendar boundary may show different state-tax breakdowns.
Cross-portal view
What it does: Same data, surfaced in each portal for the right audience.
Where:
- Client-portal owners — Payroll History in the sidebar (
/client-portal/payroll). - SMB-portal admins — Payroll in the sidebar (
/smb-portal/payroll). - Employee portal — only their own paystubs (a separate Pay & Tax Forms view).
Steps:
- Log in to the portal.
- Client portal: pick a tax year from the dropdown; runs are listed as expandable cards. Click a card to reveal the summary (Gross · EE Taxes · ER Taxes · Net) and the per-employee breakdown table (Employee · Gross · Federal · State · SS · Medicare · Net).
- SMB portal: top of page shows three stat cards (Total Payroll Runs · Total Paid YTD · Total Employees Paid). The list below shows status badges per run with View Details links.
Who: Client-portal owner, SMB-portal admin.
Notes: The client and SMB portals are read-only for past runs. To run new payroll, the SMB portal has a Run Payroll button at the top right; the client portal does not — only the accountant or the SMB itself runs payroll. Status badges in the SMB portal: Pending (yellow), Processing (blue), Completed (green), Failed (red).
Related: Run a regular payroll · Off-cycle, bonus & correction payrolls · Auto-pilot payroll · Direct deposit return codes.