A staffing agency wins a light-industrial placement at a 28 dollar bill rate against a 20 dollar pay rate, books the spread, and moves on. By December that placement earns half what the bid assumed, and nobody ever decided to give the margin away. It leaked a few points at a time, in the places the agency was not watching.
Where the bill rate comes from
Most bill rates are set by gut. The agency matches what the incumbent charged, or names a number the client will accept, and backs into a markup from the pay rate. What usually does not happen is a full cost model. The real cost of an hour is the pay rate plus burden: payroll taxes, workers comp, unemployment, and any benefits the agency carries. Burden runs fifteen to twenty-five points depending on the state and the comp class.
Price off the pay rate alone and the margin looks healthier than it is from day one. An agency that thinks it is making eight dollars on a placement is making closer to four after burden, and that is before anything goes wrong.
Overtime quietly resets the math
When a worker crosses forty hours, the pay rate goes to time and a half. The bill rate is supposed to follow, but the contract may cap the overtime multiplier, or the agency never set one, so OT hours run at a thinner spread than straight time. On a placement that runs heavy overtime, the hours that should be the most profitable are the ones losing the margin.
Nobody watches this in the moment, because OT happens at the worksite and shows up on a timesheet days later. By the time payroll runs, the expensive hours are already worked and the margin is already gone.
The rate increase that never happens
Pay rates climb over a placement's life. Minimum wage moves up, or the market tightens and the worker asks for more to stay. The bill rate does not move with it, because it is locked in the contract until someone reopens the conversation with the client, and that conversation is uncomfortable, so it waits.
The longer a placement runs, the thinner it gets. An agency can have a worker it has given two raises sitting on a bill rate set eighteen months ago, and the spread that justified the placement is mostly gone. Nobody flagged it, because no system was tracking the gap between what the placement costs now and what it bills.
Hours worked versus hours billed
The last leak is the one the reconciliation already chases. Hours land on the worker's timesheet that never make it onto the client invoice, or land there and get disputed because the client's record says something different. Every hour worked and not billed is a full loss, not a margin loss, because the agency already paid the worker for it.
In a shop placing dozens of workers across several clients, a one-in-nine mismatch rate is real money walking out every Friday. The fix is the same record feeding both payroll and the invoice, so an hour cannot be paid without being billed.
What a system changes, and what to check first
A margin system prices each placement off loaded cost, not a gut markup, and then watches the spread for the rest of the placement's life. It flags the placements running heavy overtime and the ones where a pay raise has outrun the bill rate. It surfaces the clients whose blended margin has drifted below the line the agency will accept, so the owner sees which accounts are thin before the renewal instead of after the year closes.
Two things have to be real before building it. An accurate burden number per comp class, because a margin model built on a guessed burden just guesses with more confidence, and the willingness to reopen a bill rate with a client when the data says a placement has gone underwater. Map one month first: pull every active placement, load the true cost, and compare it to what it bills. That alone usually finds three or four placements quietly running at a loss.
