TGP Comparer
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
Compare two payroll runs side-by-side to spot exactly what's changed between them.
This report:
- Lists every pay element that differs between two selected payroll runs, flagged as added, removed, or unchanged
- Shows the latest payroll runs available for selection, with their pay group, pay period, generator, and timestamp
- Covers Sona Pay Time-to-Gross-Payroll (TGP) output rows — one row per pay element (basic pay, overtime, holiday pay, allowances, etc.)
Use this dashboard to:
- Reconcile a re-run payroll against its previous version before approval
- Investigate why an employee's pay has changed between two runs
- Audit the impact of mid-period corrections or rate changes on gross pay
🗂️ Dashboard Tabs
This is a single-page dashboard. The top of the page lists the most recent payroll runs so you can pick which two to compare; the comparison table below shows the differences row by row.
- Latest Payroll Runs — a reference list of recent TGP runs showing Organisation, Run Name, Pay Group, Pay Period, Start Date, Period Length, Generated By, and Generated At. Use this to identify the two run names you want to feed into the comparison.
- Comparer — the side-by-side comparison table. Each row carries a Comparison flag (Data added, Data removed, or No Change) together with Employee Number, Employee Name, Location, Job Role, Shift Type, Type of Work, Earned Date, Pay Code, Pay Description, Pay Variant, and Minutes (plus units, pay rate, and gross pay). By default the Comparison filter is set to Changes only, so unchanged rows are hidden.
- Runs specification — a prompt reading "Please select two payroll runs". It appears only when one or both of the Payroll Run Name Left / Payroll Run Name Right filters is empty, and disappears once both are populated.
🎛️ Filters
Standard Filters
- Full Name / Employee ID — find a specific employee within the comparison
Report-Specific Filters
| Filter | Default | What it does |
|---|---|---|
| Payroll Run Name Left | -- | The first ("before") payroll run to compare. Required. |
| Payroll Run Name Right | -- | The second ("after") payroll run to compare. Required. |
| Comparison | Changes only | Restricts the comparison table to changed rows. Set to all values to see unchanged rows too. |
| Pay Rule description | -- | Narrows the comparison to specific pay elements (e.g. one pay code or description). |
| Generated By | -- | Filters the Latest Payroll Runs list by the user who generated the run. |
| Generated At | -- | Filters the Latest Payroll Runs list by when the run was generated. |
📅 Date Filtering
The Generated At filter applies to the Latest Payroll Runs list and narrows it to runs generated within a chosen window. It does not filter the Comparer table — comparison is driven by the two run names you select.
❗️ Important Definitions
- Comparison flag — each row in the Comparer table is tagged as Data added (the row exists in the right-hand run but not the left), Data removed (exists in the left run but not the right), or No Change (exists identically in both). Matching is based on a checksum of the underlying pay element, so a row counts as unchanged only when every value is identical between the two runs.
- Payroll run — a Time-to-Gross-Payroll (TGP) calculation executed in Sona Pay. Each run produces one row per pay element per employee, capturing pay code, rate, units, gross pay, and the employee, shift, and organisational context for the period.
❓ Common Questions
Why is the comparison table empty?
If the Runs specification prompt is showing, one or both of Payroll Run Name Left and Payroll Run Name Right are not yet selected — pick a run name in each. If both are populated and the table is still empty, the two runs are identical for the current filters; clear the Comparison filter from Changes only to confirm.
Why does a row show as both removed and added for the same employee?
When any field on a pay element changes between runs (a rate, the minutes, the pay code), the original row appears as Data removed and the updated row appears as Data added — they are matched on a checksum of the full row, not on employee alone. Reviewing the two rows together shows you exactly which value changed.
🗓️ Data Coverage
- Data freshness: Refreshes every 30 minutes via the automated data pipeline. The dashboard reads directly from Sona Pay's payroll output, so newly generated runs appear in the Latest Payroll Runs list shortly after they complete.
⬇️ 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.