Payroll Journals is the register of every payroll journal in your business unit — one row per pay run, whether the journal came back from your payroll provider or GO wrote it itself. It is where you check, at a glance, that each run's journal was received and that it reconciles against what GO calculated.
The Payroll guide covers importing and reconciling a journal as one step inside a single run's Control Center. This page is the other half of that story: the cross-run view, so you can scan every period at once and spot the ones that still need attention.
Where to find Payroll Journals

From the left sidebar choose HR & Payroll, then Payroll Journals.
The page opens on a list of every journal recorded for this business unit, across all payroll runs and all sources. Viewing requires payroll view access — without it the sidebar entry is hidden, and going to the address directly shows an Access denied message instead of the list.
What a payroll journal is
A payroll journal is the authoritative, per-line record of what a pay run actually paid — every earning, withholding, deduction, employer item, and net-pay allocation, broken down by worker.
Where it comes from depends on how the run was processed:
- Provider mode — your provider (e.g. Paychex) processes the run and returns their payroll journal. You bring that journal into GO, and GO compares it against its own numbers.
- GO Native mode — there is no provider and no file to exchange. GO builds the journal itself when the run posts, from the same figures it writes to the General Ledger.
Either way the run ends up with a journal, so this page lists both kinds side by side. See Payroll Providers for the difference between the two modes.
What you see on this screen
| Column | What it shows |
|---|---|
| Pay period | The period the journal covers, shown as start – end. |
| Source | Where the journal came from — see Source formats below. |
| Reconciliation | The reconciliation badge — Pending, Clean, Variance, or Blocked. See the badges below. |
| Employees | How many workers the journal covers. |
| Hours | Total hours across the journal. |
| Gross | Total gross pay. |
| Net | Total net pay. |
| Check date | The date the pay was (or is to be) issued. |
| Imported | When the journal landed in GO. |
The search box above the grid matches on the journal's file name, batch id, and parser version — useful when a provider sends several files and you need to find the one you just uploaded.
You can sort and filter the list by Source, Reconciliation, Employees, Gross, Check date, and Imported. Pay period, Hours, and Net are display-only columns — they aren't sortable or filterable. Your sorting, filtering, and page position are kept in the page address, so you can bookmark a filtered view (for example, everything currently sitting at Blocked) or share the link with a colleague.
The reconciliation badges
Reconciliation is the reason to scan this list. GO compares the gross pay it calculated for each worker against the gross pay in the journal, and rolls the result up into one badge per journal:
| Badge | What it means | What to do |
|---|---|---|
| Pending | The journal is recorded but reconciliation hasn't run against it yet. | Open the journal and run Reconcile. A Pending journal will not let the run post. |
| Clean | GO's numbers and the journal agree for every worker (differences under a cent are ignored). | Nothing. The run is free to post. |
| Variance | There are differences worth looking at, but none that block. Typically a worker whose gross differs by a dollar or more between GO's calculation and the provider's. | Review it, and post if you're satisfied the provider's figure is right. Variance does not stop posting. |
| Blocked | A worker appears on one side but not the other — either the provider paid someone GO doesn't have on the run, or GO calculated someone the provider's journal doesn't list. | Must be resolved. A Blocked journal will not let the run post. |
The short version: Clean and Variance can post. Pending and Blocked cannot. If a provider-mode run refuses to post and everything else looks right, this badge is the first place to look.
How differences are graded
Behind the badge, each worker's difference is graded on size:
- Under one cent — not a difference at all; nothing is recorded.
- Under a dollar — treated as rounding and absorbed silently. The journal can still be Clean.
- A dollar or more — a rate disagreement. Raised as a warning, which makes the journal Variance.
- Worker missing on one side — makes the journal Blocked.
The journal also carries a variance total — the combined size of all the differences found — shown on the journal's own page.
Source formats
The Source column tells you how the journal reached GO:
| Source | How it arrived |
|---|---|
| Paychex CSV | You uploaded the provider's Payroll Journal CSV export. It is read straight away. |
| Paychex PDF | You uploaded the provider's printed Payroll Journal as a PDF. GO reads it automatically, which takes a moment longer. |
| Paychex API | The run's results were read directly from Paychex over the provider connection, with no file changing hands. This requires a verified Paychex connection — see Payroll Providers. |
| GO Native | No provider was involved. GO wrote the journal itself when the run posted. |
What the source affects: how much detail the journal carries. A journal read directly over the connection carries the full per-tax split — federal, Social Security, Medicare, state, local — and the employer's own tax liability as separate figures. A journal taken from an uploaded file usually carries only the withholding total, so the per-tax columns and the employer-burden figures show a dash (—) rather than zero. A dash means "the source never said", not "nothing was withheld".
How journals arrive
Provider mode — importing the returned journal
Journals aren't created from this page. In provider mode you bring a journal in from the run itself: open the payroll run's Control Center, click the Provider Journal tile (labelled with your provider, e.g. Paychex Journal), and choose Import. Pick whether you're supplying the CSV export or the PDF, choose the file, and upload.
A CSV is read immediately. A PDF is queued and read automatically in the background — the tile keeps checking and fills in on its own once the reading finishes, so you don't need to close and reopen it.
As soon as a journal is read, GO reconciles it automatically, so the badge is usually already meaningful by the time you look at it. (An administrator can turn that automatic pass off, in which case you reconcile with the button by hand.)
GO Native — written at posting
If a run has no provider, there is nothing to import. When you post the run, GO writes the journal itself from the same figures that go to the General Ledger, and records it as GO Native with a Clean badge — there is no second set of numbers to disagree with.
Opening a journal

Double-click a row to open that journal.
The journal page is read-only — nothing on it can be edited. It opens with a summary card showing which payroll it belongs to, when it was imported, its reconciliation badge, and the variance total if one was recorded, alongside the headline figures: Employees, Transactions, Total gross, Total net, Total withheld, Total deductions, Employer burden, and Employer other items.
A Reconcile button sits in the same card — see Re-running reconcile below.
Per-employee rollup
One row per worker: Worker ID and Worker name as the provider recorded them, then Hours, Gross, the individual tax columns (FIT, SS, Medicare, State, Local), Withheld, Deductions, Net, and ER burden (the employer's own cost).
The last column, Mapped person, is the one to watch: it reads Mapped when that provider worker has been matched to a person in GO, and Unmapped when it hasn't. Unmapped workers are what usually cause a Blocked badge.
Deduction breakdown
A second table splits each worker's deductions into 401(k) pre-tax, Health pre-tax, and Other, with the deduction total and any employer other items alongside.
Lines
The bottom table is the journal at its finest grain — one row per transaction line, with its sequence number, worker, description, hours, rate, and amount. This is where you look when a total doesn't match and you need to find the individual line responsible.
What to do about a Variance or Blocked journal
Blocked — a worker is on one side only
Blocked almost always means a provider worker hasn't been matched to a person in GO yet. From the run's Control Center, open the Provider Journal tile and click Map employees. The dialog lists every worker in the journal with their gross and net for context, and lets you pick the matching GO person for each. A "N of M mapped" badge tracks progress, and each pick is saved as you make it — so a half-finished session keeps what you've already matched.
Once every worker is mapped, reconcile again. Variances only become meaningful when the mapping is complete, so finish the mapping first.
If the mismatch is real rather than a mapping gap — the provider genuinely paid someone who isn't on the GO run, or GO calculated someone the provider didn't pay — fix the underlying run (add or remove the person's time and pay) and reconcile again.
Variance — the amounts differ
Open the journal and compare the per-employee rollup against what GO calculated for the run. Common causes are a pay rate that differs between GO and the provider, or a Social Security or unemployment cap that the provider applied and GO didn't. Variance is a warning, not a stop: if you're satisfied the provider's figure is correct, you can post the run as it stands. If GO's figure is the right one, correct the run and reconcile again.
Re-running reconcile
Reconcile can be run as often as you like, from the journal's own page or from the Provider Journal tile. It re-compares the journal against GO's current figures and updates the badge and variance total, so after any correction, run it again to see where you stand. Re-running it changes nothing but the reconciliation result.
Reconciling requires payroll process permission — with view-only access you can read the journal but the Reconcile button stays unavailable.
Good to know
- One live journal per payroll run. Re-importing replaces the previous journal for that run entirely — the old journal, its employees, and its lines are removed and the new file takes their place. The import history of what was uploaded and when is kept separately, so the audit trail survives.
- Uploading the same PDF twice while it's still being read is refused — "This journal PDF is already being parsed for this payroll." Wait for the first pass to finish rather than uploading again.
- Workers you matched before are matched for you. When a journal is imported, any worker you have already matched to a person on an earlier import from the same provider is matched automatically, so returning employees don't need re-mapping every period.
- A dash (—) is not a zero. Throughout the journal, a dash means the source didn't carry that figure. Uploaded files typically don't carry per-tax splits or employer burden; a journal read over the connection does.
- Provider-mode runs cannot post without a usable journal. The pre-post check on the run's POST tile will refuse a run whose journal hasn't been imported, and posting is refused while the badge reads Pending or Blocked.
- Journals are never edited. The page is a read-only record of what the provider reported (or what GO posted). Corrections are made on the payroll run, then reconciled again.
Permissions
Viewing this page and opening a journal requires payroll view access. Importing a journal, mapping workers to people, and running reconcile all require payroll process — the same permission as generating the provider export. Without payroll view the sidebar entry doesn't appear at all. See Roles & Permissions.
Common questions
My run won't post and everything else looks fine — why? Check the journal's badge. Only Clean and Variance journals allow posting; Pending (never reconciled) and Blocked (a worker on one side only) both refuse.
Why is my journal Blocked when the totals look right? Blocked is about who, not how much. One or more provider workers aren't matched to a GO person yet — use Map employees on the run's Provider Journal tile, then reconcile again.
Why are the FIT / SS / Medicare columns all dashes? The journal came from an uploaded file, which carries only the withholding total, not the individual taxes. That's expected — the total is still there in the Withheld column.
Can I edit a journal? No. Journals are a record of what was reported. Fix the underlying payroll run and reconcile again, or import a corrected file from the provider.
I imported the wrong file — what now? Import the right one. The new journal replaces the old one for that run.
Why does a GO Native journal always say Clean? GO wrote it from its own posted figures, so there is no second source to disagree with.
My journal still says Pending after importing. Reconciliation normally runs automatically on import, but it can be switched off for tenants who prefer to review by hand. Open the journal and click Reconcile.
Related topics
- Payroll — the full run lifecycle, including importing and reconciling a journal inside the Control Center.
- Payroll Providers — Provider mode vs GO Native, and where a run's provider is set.
- Payroll Posting — the account mappings a run writes to when it posts.
- Employees — where a person's provider Worker ID lives.