Your real labour hire margin is the charge rate you bill the client minus everything it costs to have that worker on site: the pay rate, plus super, payroll tax, workers compensation, leave and any allowances. Most labour hire businesses can't see that number per worker, per client or per placement until after month end, because the pay rate lives in payroll, the charge rate lives in a contract or spreadsheet, and the on-costs are worked out somewhere else again. The fix is to agree one margin calculation, map every pay item to a charge item, capture each timesheet once, and build a small set of weekly reports that show where the margin is thin or gone.
This article is general information, not tax or legal advice. Check the on-cost rules that apply to you with your accountant.
The problem in plain English
Every hour worked creates two numbers: what you pay the worker and what you charge the host client. They rarely sit in the same place:
- Pay rates are worked out by award interpretation in a rostering or payroll tool such as Deputy, Employment Hero (which absorbed KeyPay), or Xero or MYOB payroll. Overtime, penalties, casual loading and allowances are calculated there.
- Charge rates sit in client contracts, a rate card spreadsheet, a recruitment or labour hire system, or straight on the invoice template in Xero or MYOB.
- On-costs (super, payroll tax, workers compensation premiums, leave, insurance) are calculated by the accountant at month end, or estimated with a single loading that nobody has checked in years.
So "are we making money on this client?" gets answered weeks late, if at all. Our problem page on job profit you can't see until it's too late describes the same pattern in project businesses.
Step 1: Agree how you calculate margin
Before any report, write down what margin means in your business so finance, account managers and directors use the same definition. A practical structure has three layers:
- Gross bill. Billable hours times the charge rate for each line (ordinary, overtime, weekend, public holiday, allowances charged on).
- Direct pay. What the worker is paid for those hours, by pay item, as calculated by award interpretation.
- On-costs. The costs that follow the pay. The usual categories are:
- superannuation on qualifying earnings
- payroll tax, which is state-based, with its own thresholds and rules for on-hired workers
- workers compensation premiums, set by your state scheme and your industry classification
- leave accruals for permanent staff, or casual loading if it isn't already in the pay rate
- allowances and reimbursements that aren't charged on
- any per-worker costs you choose to include, such as PPE, inductions or licence checks
Margin is gross bill minus direct pay minus on-costs. Decide whether you also allocate overheads, and stick to it.
Avoid one blended on-cost loading for every worker. Super doesn't apply to every pay item the same way, payroll tax depends on the state, and workers compensation rates differ by type of work. A single loading hides exactly the placements you need to find. Ask your accountant which on-costs apply to which pay items, and put that in a simple table.
Step 2: Map every pay item to a charge item
This is where most margin leaks start. Award interpretation can produce many pay items for one shift: ordinary hours, overtime, a meal allowance, a night penalty. The client invoice needs a matching line for each one that is meant to be charged on.
Build a mapping table, one row per pay item, with these columns:
- pay item name and code (as it appears in Deputy, Employment Hero, Xero or MYOB)
- matching charge item on the client invoice
- whether it is charged on, absorbed, or charged at a fixed amount
- how the charge rate is set (fixed rate, pay rate plus a margin, or pay rate times a multiplier)
- which on-costs apply to it
For example, if award interpretation creates a new allowance and nobody adds it to the mapping table, the worker is paid it and the client never sees it on the invoice. That loss won't show until someone compares pay runs and invoices line by line.
Review the table whenever a pay item is added in payroll, and make someone sign off any pay item without a charge mapping.
Step 3: Capture each timesheet once
The same approved timesheet should drive both the pay run and the client invoice. When pay and billing work from different copies, the numbers drift and margin reports become arguments about whose hours are right. Rules that help:
- one place where the host client or supervisor approves timesheets, and both payroll and invoicing read from it
- late changes are made there, not patched in payroll or on the invoice
- each line carries the client, site, placement and purchase order number
Our post on Deputy to Xero or MYOB and where the standard integration stops explains why the standard payroll connector doesn't send hours to client invoices, and the options for closing that gap. The post on labour hire payroll under Payday Super covers the timing pressure on the same chain.
Step 4: Build the reports that show margin
Once each timesheet line carries pay, charge and on-costs, the reports are straightforward. Start with these:
- Margin by client, by week. Gross bill, direct pay, on-costs and margin for each client. Sort by margin so the thinnest clients sit at the top.
- Margin by placement. The same numbers for each worker at each client. This is where underpriced placements show up, because a client can look fine overall while one or two placements lose money.
- Rate mismatch report. Every timesheet line where the charge rate doesn't match the contract or rate card, or where a pay item has no charge item at all.
- Unbilled hours. Approved hours paid in payroll but not yet on an invoice, by client and age.
- Below-floor placements. Any placement where margin per hour falls below the minimum you've agreed internally.
For example, if your rate card charges a forklift operator's weekend shifts at a weekend rate but the invoice template only has an ordinary-time line, the rate mismatch report flags every weekend shift billed at ordinary rates.
These can run in Power BI or even a spreadsheet fed automatically. What matters is that nobody types the data in.
Step 5: Catch award increases you haven't passed on
Each year the Fair Work Commission's Annual Wage Review changes award minimum rates. The Fair Work Ombudsman says the 2026 increase applies from the first full pay period starting on or after 1 July 2026. Your award interpretation tool will usually update pay rates. Your charge rates don't update themselves.
If the contract lets you pass award increases on, every linked charge rate needs to move at the same time, or margin shrinks quietly from July.
A simple control:
- Keep the award and classification each charge rate is linked to in your rate card or labour hire system.
- When pay rates change, run a report of every active placement where the pay rate went up but the charge rate didn't.
- Send each account manager their list, with the contract clause and the new rate.
- Re-run the report two weeks later and chase anything still open.
The same check works for enterprise agreement increases and classification changes during a placement.
What can be done with existing software
Some labour hire and recruitment platforms already hold pay and charge rates against each placement and produce margin reports. If yours does, the job is mostly set-up: complete the mapping, load on-costs properly and bring timesheets in once.
If the data is split across Deputy or Employment Hero for pay, Xero or MYOB for invoices and a spreadsheet for rates, the gap is usually a connection and a reporting layer, not a new system: read approved timesheets and pay results, join them to the rate card and invoices, and write the result where a dashboard can read it. Our labour hire industry page covers the wider set of systems involved, and the Xero and MYOB integration guide covers the accounting side.
When it's worth getting help
You can do Steps 1, 2 and 5 yourself with a spreadsheet. Help is worth it when:
- the same hours are entered in more than one system each week
- nobody can say, within a day or two, what a given client made last week
- you have several entities, states or awards, and the on-cost rules differ between them
Our Xero and MYOB reporting dashboards service builds the margin reports described here from the systems you already use. If you're not sure where the leaks are, the $5,000 Process & Systems Audit maps your pay-and-bill process end to end and gives you a written report on where margin is being lost and what to fix first. Anything larger is scoped and given a fixed quote after a free initial chat.
Frequently asked questions
How do you calculate labour hire margin?
Take the gross amount billed to the client for the hours worked, subtract the worker's direct pay for those hours, then subtract on-costs such as super, payroll tax, workers compensation and leave. Agree whether you also allocate overheads, and use the same definition everywhere.
What is the difference between a pay rate and a charge rate?
The pay rate is what the worker is paid per hour under their award, agreement or contract. The charge rate is what the host client is billed per hour. The difference, less on-costs, is the labour hire provider's margin.
Do award increases automatically increase our charge rates?
No. Your payroll or rostering tool may update pay rates for the first full pay period on or after 1 July, but charge rates only change if someone updates them, and only if the client contract allows it. Run a report of placements where pay went up and the charge didn't.
Why does our margin look different in payroll and in Xero or MYOB?
Usually the pay run and invoice came from different copies of the timesheet, a pay item has no matching charge item, or on-costs are a single estimated loading.
If you can't see what each client and placement made last week, book a free initial chat. We'll tell you plainly whether a set-up fix will do or a connection and reports are worth building.