Payroll is where a pay period's approved time, commissions, reimbursements, and other pay come together into a single pay run — reviewed, calculated, exported to your payroll provider (or finalized in GO), and posted to your books. This guide walks a brand-new payroll administrator through the entire process, step by step, from the checks you do before your very first run all the way through posting and correcting mistakes.
Every run is driven from one screen (the Payroll list) and one workspace (the Control Center). If you follow the tiles in the Control Center from left to right, top to bottom, you will complete a payroll correctly every time.
Before you start — the one-time setup checklist
Payroll pulls from settings that are configured once and then reused for every run. Before your first payroll, confirm these are in place (each links to its own guide). If any are missing, a run either won't calculate, won't export, or won't post.
| Setup | Why payroll needs it |
|---|---|
| Pay Period Groups | Decide who is in a run and how often they are paid (weekly, bi-weekly, etc.). You select a group when you create a run. |
| Pay Rates & Pay Classifications | Set how each hour is priced. A worked hour with no rate will block the provider export. |
| Overtime Rules | Define when overtime and double-time premiums apply. The Calculate step reads these. |
| Deductions & Tax Jurisdictions | Determine what comes out of gross pay and how withholdings are figured. For crews working across state lines, the Tax Reciprocity page (HR & Payroll → Tax Reciprocity) records multi-state withholding agreements. |
| Payroll Posting (HR & Payroll → Payroll Posting) | The Chart of Accounts mappings the Post step writes to — accrued payroll, employer tax payable, employee withholding, employee deduction, and net pay. Posting is blocked until all five are set. |
| Payroll Providers | Who receives the export (e.g. Paychex). Leave a run's provider empty to run GO Native instead — see below. |
| Payroll Types | The kind of run — Regular, Bonus, and so on. You pick one when you create a run. |
Two ways to run payroll. If a run has a provider (like Paychex), you generate an export file and send it out — this is Provider mode. If a run has no provider, GO does the withholding math itself and you finalize it in-app — this is GO Native mode. The steps are nearly identical; the only difference is the export/finalize step. This guide notes where they differ.
Where to find Payroll
From the left sidebar choose HR & Payroll, then Payroll.

The page lists your payroll runs. Each row shows the run's Number, Description, Type, Pay Group(s), the Period it covers, gross pay, hours, its Workflow status, and its Provider.
The run lifecycle — the five stages
Every run moves through a defined set of stages. Knowing where a run sits tells you what you can still change and what happens next.
| Stage | What it means | What you can do |
|---|---|---|
| Draft | You're gathering and checking time, commissions, and reimbursements. | Add/remove people and pay, calculate overtime, then approve. |
| Approved | You've signed off that the inputs are correct. Amounts are locked in. | Generate the provider export (or finalize for GO Native). You can still reopen it back to Draft. |
| Exported | The provider file has been generated (or the GO Native run finalized). | Import the provider's returned journal (Provider mode), then post. |
| Posted | The run is finalized and written to the General Ledger. Time is locked. | Review the journals, generate Certified Payroll. To undo, you must reverse it. |
| Void | The run was cancelled (before posting) or reversed (after posting). | Nothing further — it's a record of a run that didn't stand. |
Heads-up: an Approved run can quietly drop back to Draft on its own if someone un-approves a day of time or detaches all the time behind it. This is a safety feature — if the inputs change, the sign-off no longer holds. If you see a run's status change back to Draft, that's why; just re-check the time and approve again.
Step 1 — Create the payroll run
On the Payroll list, right-click any row and choose Add Payroll.

Fill in:
- Payroll Type — e.g. Regular or Bonus.
- Pay Period Group — the cohort of employees this run pays. (A group already claimed by another open run is disabled — you can't pay the same group twice at once.)
- Period start and end dates — the end date snaps to the group's pay frequency. As you set the dates, GO may suggest a pay group based on who actually clocked time in that window — a helpful starting point you can override.
- Pay date — auto-fills (typically the Tuesday after the period ends); adjust if needed.
- Provider — pick your provider for Provider mode, or leave empty for GO Native.
Click Save. The run is created as a Draft.
Important: creating a run does not pull in any employees, time, or pay automatically. A new run is an empty container — you fill it in the Control Center next. (The pay-group suggestion is just a pre-selection, not an attachment.)
Step 2 — Open the Control Center
Double-click the run in the list to open the Control Center — a dashboard of tiles, each one a step in getting the run out the door.

Read the tiles left to right, top to bottom — that's the order you work them:
- Time — the hours being paid
- Commissions — commission events to include
- Reimbursements — expenses to pay out
- Provider Export (shown as e.g. Paychex Export) — the file for your provider
- Provider Journal (e.g. Paychex Journal) — the journal the provider sends back
- POST — review the roster and post to the General Ledger
- GO Payroll Journal — the posted payroll journal
- GO GL Rows — the individual GL allocation rows
- Certified Payroll — WH-347 reporting for prevailing-wage work
Tiles light up green as their prerequisites are met, and later tiles stay locked (greyed, with a padlock) until the earlier steps are done — so you always know what's finished and what's next. Each tile also has a small circle in its corner you can click to mark that step "done" as you go.
Step 3 — Attach and review Time
Click the Time tile.

Time comes from two places: the approved hours your crews logged (from the Tasks → Review workspace), and the live crew clock-ins from the Schedule board and mobile — when a crew clocks in and out during the day, those clock entries feed the day's time directly. The Time tile is where you make sure the right hours are attached to this run:
- Add a person — Add Person puts an employee on the run (creating a placeholder day so you can enter or attach their time).
- Assign / unassign days — from the day view, Assign to this Payroll / Unassign from this Payroll moves a day's clock entries onto or off the run. A day already claimed by another payroll, or a day outside this run's period, is refused — so time can't be double-paid or mis-dated.
- Copy Previous Day — for crews whose days repeat, the day view can copy the previous day's clock entries onto the current day. If the target day already has entries, a prompt asks whether to Replace them or Append the copied entries to them.

The tile shows how many entries are assigned (for example, 15 / 15 across the run's employees). Aim to have every expected day attached and approved before you move on.
Step 4 — Calculate overtime
Still on the Time tile, click Calculate Overtime.

This does two things automatically:
- Midnight split — any shift that crosses midnight is split into two parts so each half lands in the correct day and workweek. You don't do anything; it happens as part of Calculate.
- Overtime & double-time — GO applies your Overtime Rules to work out regular, overtime, and double-time hours for each person.
When it finishes cleanly, the Time tile turns green and the export step unlocks. If GO finds a problem (for example a worked day that isn't approved yet), it will stop and list what to fix instead of writing incorrect amounts. Fix the flagged items and calculate again.
When to run Calculate: after you've attached and approved the time. If you add or change time later, run Calculate again — it's safe to re-run while the run is still Draft or Approved.
Step 5 — Attach Commissions and Reimbursements
These are optional extra pay that ride along with the run.
Commissions
Click the Commissions tile.

It lists commission events that are eligible for this run — pending, tied to a project, with an amount, dated on or before the pay date. Assign the ones to pay now; unassign to pull one back. The tile shows a count (e.g. 2 / 4 assigned). See Commissions for how events are earned.
Reimbursements
Click the Reimbursements tile.

It lists approved reimbursements not yet on a run. Attach the ones to pay with this payroll. See Reimbursements for how they're submitted and approved. (A run also has a Misc Pay area for other approved one-off pay, attached the same way.)
Step 6 — Approve the run
Once time is attached, calculated, and any commissions/reimbursements are on, it's time to sign off. In the Control Center, use the Approve Payroll panel (below the tiles) and click Approve Payroll.

Approving moves the run from Draft → Approved and marks the inputs as final. You can only approve a Draft run that actually has time or people on it. If you need to change something after approving, use Reopen (see Fixing mistakes) to return it to Draft.
Step 7 — Generate the provider export (or finalize GO Native)
Provider mode (e.g. Paychex)
Click the Provider Export tile (labeled with your provider, e.g. Paychex Export) and choose Generate Export (the button names your provider's format, e.g. Generate Paychex CSV).

GO builds the provider's payroll file and saves it (you can download it again anytime). Before it writes the file it runs quick checks — every person needs a pay rate, every worked day must be approved, overtime must be calculated, and each person needs their provider Worker ID. If any check fails, GO refuses and tells you what's missing rather than sending a bad file. On success the run moves to Exported.
GO Native mode (no provider)
If the run has no provider, the tile instead offers Finalize for Posting. GO computes withholdings itself and moves the run to Exported — no file to send. Then continue to Post.
Provider Journal (Provider mode only)
After your provider processes the run, they return a payroll journal. Open the Provider Journal tile and import their CSV (a PDF can be read automatically). If the provider's worker names don't automatically match your people, use Map employees — a dialog that lists each provider-journal worker with their gross and net, and lets you pick the matching GO person for each row. A "N of M mapped" badge tracks progress, and reconciliation only unlocks once every worker is mapped. Then reconcile the journal — matching it to the run — which unlocks posting. GO Native runs skip this step.

Step 8 — Post to the General Ledger
Click the POST tile. This opens the Post workspace — a summary bar with the run's live status, roster, and headline totals, a per-person review of what's about to post, and (until the run posts) the pre-post check.

The pre-post check is your safety net. It lists any blockers that must be cleared before the run can post. Common ones:
- The run hasn't been exported/finalized yet.
- Time isn't fully approved, or overtime isn't calculated.
- (Provider mode) the provider journal isn't imported or reconciled.
- A required posting account (Chart of Accounts mapping) isn't configured — fix this on the Payroll Posting settings page (HR & Payroll → Payroll Posting), which must show 5/5 accounts configured.
- A worked hour has no pay class, project/task, or expense account to post against.
- No open fiscal period covers the pay date.
If there are blockers, the Post payroll button stays hidden until you clear them. When the check is clean, click Post payroll…. GO calculates employer taxes and burden, builds a balanced General Ledger entry, writes it, locks the run's time so it can't be edited, and moves the run to Posted.
Tip: the pre-post check runs live every time you open the POST tile, so you can use it as a to-do list — open it, clear whatever it flags, and come back.
Step 9 — Review the posted results

Once posted, the output tiles turn on:
- GO Payroll Journal — the posted payroll journal, grouped into debits and credits.
- GO GL Rows — the individual General Ledger allocation rows the run created.
- Provider Journal — (Provider mode) the provider's returned journal, for reference.
Open these to confirm payroll landed in your books the way you expect.
Step 10 — Certified Payroll (prevailing-wage work only)
If you do government / prevailing-wage jobs, you may need to file weekly WH-347 certified-payroll reports. The Certified Payroll tile unlocks once the run is Posted.

Pick a prevailing-wage project and the week ending date, name the certifying person and title, and click Generate WH-347. GO builds the WH-347 rows, the Statement of Compliance, and the fringe section, and renders a PDF you can download. Filing it with the DOL is a separate step — mark the submission once you've filed. Certified Payroll only applies to projects flagged as prevailing-wage; if a work classification on the job has no prevailing-wage rate, GO will tell you which one to fix first.
Fixing mistakes — Reopen, Void, and Reverse
Which one you use depends on whether the run has posted yet:
| Action | Use it when… | What happens |
|---|---|---|
| Reopen | The run is Approved or Exported (not yet posted) and you need to change people or pay. | Sends the run back to Draft so you can edit. You'll re-approve and re-export afterward. |
| Void | The run hasn't posted and should be cancelled outright. | Cancels the run, releases its time and attached pay so they're free for another run. No General Ledger entry is made. |
| Reverse | The run has posted and must be undone. | Posts a reversing General Ledger entry (a mirror image of the original) so the books stay auditable, releases the time, and marks the run Void. This is the only way to unwind a posted run — you never delete a posted payroll. |
Reverse requires the original entry's fiscal period to still be open. Void and Reopen are found on the run (grid right-click and in the Control Center); Reverse is offered on a posted run.
Permissions
Payroll is sensitive, so each capability is separately permission-controlled — viewing, creating, editing, calculating, approving, exporting, posting, voiding, and reversing. A new HR person is usually granted the day-to-day steps (create, edit, calculate, approve) while posting and reversing stay with a payroll lead. If a step is greyed out or missing for you, ask an administrator to check your role. See Roles & Permissions.
Common questions
My run went back to Draft by itself — why? Someone un-approved a day of time or detached the time behind it, so the approval no longer holds. Re-check the Time tile and approve again.
Why won't my run post? Open the POST tile and read the blockers list — it tells you exactly what's missing. The most common is that the provider export hasn't been generated (Provider mode) or the run hasn't been finalized (GO Native).
What's the difference between Void and Reverse? Void cancels a run that hasn't posted (no books impact). Reverse undoes a run that has posted, by writing a reversing General Ledger entry. Use Reverse for anything already Posted.
Do Provider and GO Native runs differ? Only at the export step: Provider mode generates a file and imports the provider's journal back; GO Native finalizes in-app and skips the journal import. Everything else — time, calculate, approve, post — is the same.
Where does the time come from? From the approved hours crews logged in Tasks → Review, and from live crew clock-ins on the Schedule board and mobile, which feed the day's clock entries directly. The Time tile is where you attach those hours to the run.
Related topics
- Pay Period Groups & Payroll Types — who's in a run and what kind it is.
- Pay Rates & Pay Classifications — how hours are priced.
- Overtime Rules, Deductions, Tax Jurisdictions — what adjusts pay.
- Commissions & Reimbursements — extra pay attached to a run.
- Payroll Providers — who receives the export.