The cost of getting pay and bill wrong
Small pay and bill errors in UK recruitment agencies compound into wrong margin, overpaid commission and cashflow gaps. Where it goes wrong and how to fix it.

Do you trust your finance controller to notice and fix every single data issue?
That’s no dig at finance controllers. In a lot of agencies they’re the only reason payroll goes out on time. But I’ve spent seven years in recruitment software, and I’ve worked with a lot of agencies where the honest answer is “we hope so”. Data issues get spotted, patched just enough to get the pay run out, and quietly swept under the carpet until next month.
The trouble is that pay and bill errors rarely stay where they started. A wrong rate becomes a wrong margin, which becomes a wrong commission payment, which becomes an awkward conversation three months later. So here’s where I’ve seen it go wrong most often, and what each mistake ends up costing.
Small errors don’t stay small
Pay and bill is a chain. A placement holds the rates, the timesheet holds the hours, and from those you get the pay, the invoice, the margin and the commission. If something is wrong near the start of that chain, every link after it inherits the problem.
Each error looks small on its own. They get expensive because they keep going, week after week, and nothing in the process forces anyone to fix them properly.
Margin and commission: one wrong currency code
Something as simple as an incorrect currency code can make margin dramatically wrong. Here’s an illustrative example with round numbers and an assumed exchange rate, just to show how it plays out.
Say you place a Ltd company contractor with a client in Ireland. You bill the client €60 an hour and pay the contractor £40 an hour. To keep it simple, assume €1 is worth £0.85, so the charge is really worth £51 an hour.
Now someone sets the placement up with the charge rate in GBP instead of EUR. Nothing errors. The record just says £60.
| Illustrative, 40-hour week | Recorded (GBP by mistake) | Actual (EUR) |
|---|---|---|
| Charge | £2,400 | £2,040 (€2,400) |
| Pay | £1,600 | £1,600 |
| Margin | £800 (33%) | £440 (about 22%) |
Your reports now say the placement makes nearly twice what it actually does. If commission is 20% of margin, the consultant is paid £160 a week instead of £88. Over a 12-week contract, that’s £864 of commission paid on margin that never existed, and £4,320 of margin that only exists in a report.
Then there’s the invoice. If it’s raised from the same record, either the client rejects it, or someone fixes the invoice by hand and leaves the placement as it was. Which means next week’s invoice is wrong too.
Clawing back commission is a horrible conversation to have with a consultant, and in my experience most agencies just eat the cost. I covered how margin feeds commission in how to calculate margin on a contract placement.
The timesheet nobody missed
Chasing late timesheets is painful, but at least you know they’re late. The worse problem is a missed timesheet that goes completely unnoticed.
It happens more than you’d think. A contractor comes back from sick leave and forgets to submit the week. A placement gets extended and nobody adds it to the chase list. If the only check is someone working down a spreadsheet of names, a missing week slips through without anyone asking where it went.
You don’t bill the client for hours that were worked, and sooner or later the contractor notices they weren’t paid. By then the hours are weeks old, the client is asking why last month’s invoice has just turned up, and your team is untangling it instead of placing people. I wrote up the process side of this in how to stop chasing contractor timesheets before payroll cut-off.
Cash: forgotten invoices and ending contracts
Cashflow on a contract desk is unforgiving. You pay contractors weekly, but clients pay you on 30 days or more. That gap is fine while the book is steady, and much less fine when it isn’t.
Forgotten invoices are the simplest version of the problem. An invoice for expenses or a backdated rate change sits in someone’s inbox and never goes out. Nobody chases payment for an invoice that doesn’t exist, so the money never arrives.
The bigger version is contracts ending. When a few placements finish around the same time, the income stops but the bills don’t, and I’ve seen agencies end up factoring their invoices to bridge the gap. Factoring has its place, but paying a fee to get your own money sooner because nobody saw the drop coming is a data problem showing up as a finance cost.
Redeployment left too late
Every contractor finishing a placement already knows your agency, has been vetted and is about to be available. That’s the easiest placement you’ll ever make, as long as you act soon enough.
If end dates live in a spreadsheet, or worse in someone’s head, the first anyone hears of it is the contractor emailing to say they finished on Friday. By then they’ve probably been talking to two other agencies for a fortnight. Not acting soon enough on an ending contract costs you the margin you’d have made on the next placement.
Fixing the spreadsheet instead of the data
This is the one I feel most strongly about. In a lot of agencies, month end looks something like this:
- Export the timesheets.
- Fix the rates that are wrong in the export.
- Add the placements that were missed.
- Adjust the splits for the consultant who left.
- Only then calculate commission and run payroll.
That’s hours of skilled time every month before you can even calculate commission and run payroll, and every manual step is another chance to introduce a new mistake.
But the worse part is what it does to the data. When an issue is corrected in the spreadsheet, the source data is never corrected. The placement still has the wrong currency. The split still has no end date. So next month, the same mistakes come back, and someone fixes them again, by hand, from memory. If that person is off sick or leaves, the knowledge of which fixes to make goes with them.
Why messy data can’t be systemised
Every agency I’ve worked with wants to automate more of pay and bill. But you can only systemise a process if the data going into it is right.
If month end depends on a person knowing that placement 412 always needs its rate overriding, that step can’t be handed to a system, or to a new hire, or even to the same person on a bad day. The workarounds become the process. And the longer the issues are swept under the carpet, the harder they are to dig out, because nobody remembers why the fixes were needed in the first place.
What you can do now
None of this needs a big project. This is roughly where I’d begin:
-
Fix data at source. When you find a wrong rate, currency or split, correct the placement itself, not just this month’s export. Make that the rule, even when it’s slower.
-
Validate at set-up. Check currency, rates, engagement type and end date when a placement is created, ideally with a second pair of eyes. A GBP that should be EUR is far cheaper to catch on day one than in month three.
-
Run a cut-off check. Before every payroll run, compare active placements against submitted timesheets, so you know about the missing ones before cut-off rather than after.
-
Set ending-contract alerts. Flag placements ending in the next four to six weeks, so consultants can talk about redeployment early and finance can see the cash impact coming.
-
Keep an invoice register. Every invoice and credit note gets a number, a status and an owner. If it’s been drafted but not sent, someone should know about it.
-
Write down your margin and commission rules. One definition, calculated the same way every time, so nobody is relying on memory at month end.
Where Paid & Billed fits in
I’m building Paid & Billed for small UK contract desks that are tired of fixing the same problems every month. The idea is that the placement is the single source of truth, timesheets drive pay, invoices and margin from there, and things like missing timesheets, ending contracts and unsent invoices are flagged rather than discovered.
It’s still in development, so I’m not going to pretend it does all of that today. But this is exactly the kind of mess I want it to prevent, and I’d much rather build it with agencies who deal with it every week.
So, back to the question. Do you trust your finance controller to notice and fix every single data issue? If the honest answer is “not every time”, that’s normal, and it’s fixable. If you’d like to follow along, or help shape what gets built, join the waitlist.


