Three payroll totals, and which one finance means
The controller quotes 4.66 million, the payroll manager quotes just under 4.0, and the bank paid out 2.8. All three are May, and all three are right. They are different totals with different jobs, and the meeting where they collide is avoidable.
◆ Three totals, three jobswho reaches for which number, and where it lives.
| Total | May 2026 | Whose number it is |
|---|---|---|
| Employer cost | 4,663,142.08 | The controller's: earnings plus employer taxes plus employer benefit cost, the labor cost report total |
| Gross pay | 3,997,550.00 | The payroll manager's: what workers earned before anything is withheld |
| Net pay | 2,814,275.20 | The treasurer's: what actually left the bank on pay day |
Each total is the right answer to a different question. The trouble starts when a budget built on employer cost is compared to a register showing gross, or a bank statement showing net, and the gap is treated as an error. The gaps are structural, and they decompose exactly.
◆ From employer cost down to grosstake off the cost only the employer sees.
| May 2026 | Amount |
|---|---|
| Employer cost, the labor cost report total | 4,663,142.08 |
| Employer payroll taxes, ledger account 6010 | 305,812.58 |
| Employer benefit cost, ledger account 6020 | 359,779.50 |
| Gross pay, ledger account 6000 | 3,997,550.00 |
These are the same three accounts the ledger tie proves each period, and the top line is the same total the labor cost report carries. Workers never see the two middle rows: taxes the employer owes on top of wages, and the employer share of benefits. Sample values are illustrative, never client data.
◆ From gross down to nettake off what is withheld from workers.
| May 2026 | Amount |
|---|---|
| Gross pay | 3,997,550.00 |
| Employee taxes withheld | 919,436.50 |
| Employee benefit contributions | 199,877.50 |
| Other deductions, plans and garnishments | 63,960.80 |
| Net pay, what the bank file carries | 2,814,275.20 |
Everything between gross and net is money withheld on the worker's behalf: their taxes, their share of benefit premiums, their plan contributions and garnishments. None of it is employer cost, which is why net is the one total that never appears on the labor cost report.
◆ The owned answerone fact, every component classified, all three totals from one query.
The build keeps one payroll fact at line grain, with every pay component classified once: earning, employer tax, employer benefit, employee tax, or employee deduction. The classification is the same mapping the pay component page writes down. All three totals then fall out of one query, and they agree with each other by construction.
-- The three May totals from one classified payroll fact
SELECT
SUM(CASE WHEN class = 'earning' THEN amount END) AS gross_pay,
SUM(CASE WHEN class IN ('earning','employer_tax','employer_benefit')
THEN amount END) AS employer_cost,
SUM(CASE WHEN class = 'earning' THEN amount END)
- SUM(CASE WHEN class IN ('employee_tax','employee_deduction')
THEN amount END) AS net_pay
FROM fct_payroll_line
WHERE period = '2026-05'
When the three totals come from one fact, the question in the meeting changes. It stops being which number is right and becomes which question is being asked, and that one answers itself.
- employer cost
- Earnings plus employer taxes plus employer benefit cost; the labor cost total.
- gross pay
- What workers earned before any withholding.
- net pay
- What is actually paid out after withholdings; the bank file total.
- withholding
- Money kept back from gross on the worker's behalf, taxes above all.
- deduction
- A non-tax amount taken from gross: plan contributions, garnishments.
- employer payroll taxes
- Taxes the employer owes on top of wages, never visible in gross.
- benefit contribution
- The worker's share of a benefit premium, withheld from gross.
- pay component
- One earning, tax, or deduction type on a payslip line.