Payroll Cost Overview
Note: Screenshots in this article use data from our internal demo organisation. Any organisation IDs or user IDs visible in the screenshots reference our demo dataset, not your or any other customer's data.
🎯 Overview
Review payroll output line-by-line, from journal-ready totals down to individual pay elements per employee.
This report:
- Surfaces every payment, deduction, and cost element generated by a payroll run, including reclaim amounts for statutory pay.
- Splits journal postings between an employee's home location and the locations where they actually worked.
- Flags pay codes and output lines missing the nominal codes needed to post a clean journal.
Use this dashboard to:
- Build and reconcile the payroll journal before posting to your accounting system.
- Investigate cross-location postings where staff have worked outside their home site.
- Spot configuration gaps in pay code setup before they cause journal errors.
➕ Benefits
- One place to view payroll output at every level of detail — from journal totals down to single pay elements.
- Built-in validations catch missing nominal codes and unsynced TGP runs before they break your journal.
- Worked-location splits give finance teams accurate cost allocation across sites, not just home-location postings.
🗂️ Dashboard Tabs
| Tab | What it shows | Best for |
|---|---|---|
| Journal Cost Overview | Pay element totals split into Cost and Liability with debit/credit codes | A quick summary view of journal-ready totals |
| Payroll Journal | The full payroll journal with debit and credit lines per employee, per element | Posting the journal to your accounting system |
| Cross posts | Journal entries adjusted for staff who worked outside their home location | Reconciling cross-location postings |
| Journal split by worked locations | Journal entries allocated to the locations where the work actually took place | Site-level cost allocation |
| Data | The raw payroll output element data underpinning every other tab | Ad-hoc analysis and exports |
| Validations | Pay codes and output lines missing nominal codes, plus the configured paydeds list | Catching configuration gaps before posting |
Journal Cost Overview
A summary view of payroll output grouped by pay element, showing the totals that feed your journal. A Permissions indicator at the top tells you how many of the in-scope employees you can see based on your HR Employee Management permissions, alongside a Last Data Sync indicator.
- Journal Cost Table By Pay Element — one row per pay group, tax year, tax month, payded type, and pay code. Shows the total amount alongside the configured dr_code and cr_code, with separate Cost and Liability columns so you can see at a glance what posts as an employer cost versus what posts as a balance-sheet liability (including Net Pay). Reclaim amounts on statutory pay (SMP, SPP, SAP and similar) are subtracted automatically.
Payroll Journal
The full posting-ready journal. Every pay element produces a debit line and a credit line, so the journal balances by construction. Use this tab to export the journal for your accounting system.
- Payroll Journal — one row per debit and one row per credit, with pay_group, pay_period, tax_year, tax_month, calendar_month, pay_day, full_name, employee_number, org_unit_name, accounting_cost_code, job_name, payded_type, pay_code, amount, cost_centre, ledger_code, dr_code, cr_code, debit_value, and credit_value. The home org unit (location) on this tab is the employee's primary location.
Cross posts
When an employee works at a location other than their home site, a portion of their gross pay needs to be recharged from the home site to the worked site. This tab calculates those cross-posting entries using the matched Sona Pay Time-to-Gross (TGP) run.
- Sona Pay <-> TGP sync — shows, for each pay group and pay period in scope, which TGP run has been synced. If no TGP run is matched, the message "No TGP run synced - cross posts won't be calculated" appears — cross posts can't be produced for that period until the sync is in place.
- Cross posts — the journal entries representing the recharge between home and worked locations, with the same shape as the main payroll journal so they can be posted alongside it.
Journal split by worked locations
The same payroll journal as the Payroll Journal tab, but with each line allocated to the location where the work was actually performed rather than the employee's home location. Like Cross posts, this tab depends on a synced TGP run.
- Sona Pay <-> TGP sync — the same TGP sync check as on the Cross posts tab; if no run is synced for a pay period, the worked-location split can't be calculated for it.
- Journal split by worked locations — journal lines with org_unit_name and accounting_cost_code set to the worked location rather than the home location.
Data
The full grain of payroll output — one row per pay element per employee per pay period — for ad-hoc analysis and exports.
- Data — columns include pay_group, pay_period, tax_year, tax_month, period_number, pay_date, employee_number, employee_name, org_unit_name, job, pay_code, units, rate, amount, accounting_cost_code, dr_code, and cr_code.
Validations
Configuration checks that highlight gaps which would otherwise cause your journal to be incomplete or out of balance.
- Payroll output lines with missing nominals — actual payroll output lines whose pay code has no debit or credit nominal code configured. These lines won't appear on the journal until the underlying pay code is set up.
- Paydeds with missing nominals — the distinct list of configured pay codes (paydeds) that are missing nominal codes.
- Pay codes with missing paydeds — pay codes that appear in payroll output but have no matching payded configuration record at all.
- Paydeds list — the full configured list of pay codes with their debit_code and credit_code, useful as a quick reference when fixing the gaps flagged above.
🎛️ Filters
Standard Filters
- Full Name / Employee ID — find a specific employee.
Report-Specific Filters
| Filter | Default | What it does |
|---|---|---|
| Pay Group | -- | Narrows to one or more pay groups. |
| Payroll Period | -- | Narrows to a specific pay period (e.g. 2024-M1-01). |
| Tax Year | -- | Filter by UK tax year. Note that tax year 2024 covers April 2024 to March 2025. |
| Tax Month | -- | Filter by UK tax month within the selected tax year. |
| Pay Date | -- | Filter by the date employees were paid. |
| Pay Code | -- | Narrow to one or more specific pay codes (e.g. Net Pay, EE Tax, Statutory Sick Pay). |
| Employee Number | -- | Find a specific employee by their payroll employee number. |
❗️ Important Definitions
- Cost vs Liability — on the Journal Cost Overview tab, Cost sums Payment and Cost-type elements (the employer's gross outlay), while Liability sums Deduction and Cost-type elements plus Net Pay (amounts the organisation owes out — to HMRC, pension providers, and the employee). The two columns together represent the debit and credit sides of the journal.
- Reclaim amounts — for statutory pay types (SMP, SPP, SAP, SPBP, Shared Parental Leave, Statutory Neonatal Care Pay), HMRC allows the employer to reclaim a portion of the cost. Where a matching reclaim pay code is configured, the dashboard automatically generates a negative reclaim line so the journal reflects the net employer cost rather than the gross.
❓ Common Questions
Why are cross posts and worked-location splits empty for some pay periods?
Both calculations depend on a synced Sona Pay Time-to-Gross (TGP) run for the pay period. Check the Sona Pay <-> TGP sync card on either tab — if it shows "No TGP run synced - cross posts won't be calculated" for a period, that period needs its TGP run synced before the splits can be produced.
Why does the Permissions indicator say I'm seeing fewer employees than the total?
The dashboard respects your HR Employee Management permissions. The indicator shows how many employees fall within your permission scope versus the total in the filtered payroll output. If you need to see more employees, your permission scope needs to be widened by an admin.
Why don't all pay codes appear on the journal?
Pay codes only post to the journal when they have debit and credit nominal codes configured. The Validations tab surfaces the pay codes and output lines missing this configuration — once nominals are added, those lines will start appearing on the Payroll Journal, Cross posts, and Journal split by worked locations tabs.
🗓️ Data Coverage
- Data freshness: Refreshes every 30 minutes via the automated data pipeline. Check the Last Data Sync indicator on the Journal Cost Overview tab for the exact timestamp in your local timezone.
⬇️ Downloading Data
- To download the current view as a PDF, click the download button in the top-right corner of the dashboard.
- To download an individual chart or table as CSV or Excel, click the download button in the top-right corner of that chart.