Red flags on a contract labor invoice

Red flags on a contract labor invoice: checkable line-item warning signs for AP and procurement reviewing staffing vendor bills against master service.

Twitter LinkedIn WhatsApp
Ask AI: ChatGPT Claude Gemini Grok
Red flags on a contract labor invoice

Margin drift is the gap between what a vendor contract says and what the invoice actually charges. On a contract labor invoice, that gap hides inside timesheets, bill rate tables and markup formulas that look correct on their face and are wrong underneath.

This page is a checklist. Each item below is something you can find on a specific invoice line, this week, without a data project. Pull one staffing invoice and your master service agreement, and check each item against both documents side by side.

Executive Summary

A contract labor invoice fails in a small number of checkable ways: the wrong bill rate for the job title, hours billed without a matching approved timesheet, overtime paid at straight time or the reverse, a markup percentage that does not match the rate card, a worker still billed after termination or after conversion to full-time, and a burden or pass-through cost folded into the bill rate a second time as a separate line.

None of these require a forensic audit to catch. They require the master service agreement's rate card, tier structure and overtime rules open next to the invoice, line by line. The staffing vendor's invoicing system does not enforce your contract.

It enforces whatever rate table someone entered into it, and that table drifts out of sync with amendments, tier changes and role reclassifications unless someone checks it against the source document.

The mechanism is administrative, not adversarial. A vendor's billing team updates one client's rate table when told to, in writing. If a rate change, a volume tier trigger, or a termination notice is not confirmed against the next invoice, it does not reach that invoice.

That is the whole explanation for how a $100M+ manufacturer accumulates contract labor drift, and it is why a line-by-line check finds it faster than any trend analysis.

1. What bill rate errors should you check first?

Check that every invoice line's bill rate matches the rate card cell for that exact job title and tier, not a nearby title that sounds similar. Staffing agreements often set different rates for near-identical titles: "CNC Operator I" against "CNC Operator II," or "General Labor" against "Assembly Labor." A single misclassified title on a recurring weekly invoice repeats every week until someone catches it at the source, not the total.

Open the rate card exhibit in your master service agreement and list every job title with its approved bill rate. Then pull one full invoice and match each line's title, not each line's dollar total, against that list.

Watch for three specific patterns: a title on the invoice that does not appear on the rate card at all, a title that appears but at a rate one tier higher than contracted, and a title that was correct on old invoices but changed after a contract amendment the vendor never applied.

A rate card exhibit is usually a static table. It does not update itself when your company negotiates a new tier or renews at a different rate. If the vendor's system was not updated to match, every invoice since the change carries the old, wrong number forward.

2. How do you confirm hours billed match approved timesheets?

Pull the approved timesheet for every worker on the invoice and confirm the hours match exactly, not just the total. A supervisor's electronic approval covers the hours actually worked; it does not authorize the vendor to round up, bill a canceled shift, or carry a prior week's unapproved hours into the current invoice. Three-way matching against a purchase order does not test this, because timesheets sit outside most PO systems entirely.

Request the underlying timesheet detail, not a summary total, for each worker line. Compare date by date and shift by shift against what the invoice bills.

A common failure is rounding: a worker clocks 7.75 hours and the invoice bills 8. Across one worker and one week that is immaterial. Across a full contract labor program running continuously it compounds every pay period.

Another is carryover: hours disputed or held back on one invoice reappear, unflagged, on the next one without a corresponding approval. If a timesheet was rejected once, confirm it was corrected and re-approved, not simply re-billed.

3. What overtime and shift differential errors are easy to miss?

Confirm the invoice applies overtime and shift differential rules exactly as the master service agreement defines them, including the weekly hour threshold that triggers overtime and which shifts qualify for a differential. A vendor's default payroll rule set is not your contract's rule set, and the two frequently disagree on where overtime starts or which second-shift hours carry a premium.

Your agreement states an overtime trigger, commonly after 40 hours in a week, and a shift differential schedule for second and third shift work. Neither is automatic in a vendor's billing system unless it was configured to your specific terms.

Check for hours billed at a straight-time rate that should have crossed the overtime threshold, and the opposite: overtime charged on hours that were split across two workers to avoid it, which is not overtime at all.

Also check shift differential lines against the actual shift a worker was assigned. A worker moved to first shift mid-contract but still billed at a second-shift differential is a control gap, not a one-time mistake, and it recurs every pay period until corrected.

4. How do you check the markup percentage on a pass-through invoice?

Recalculate the markup independently: take the base pay rate stated on the timesheet or pay stub, apply the markup percentage set in your master service agreement, and compare that result to the bill rate the invoice actually charged. A markup applied to the wrong base, or a burden cost folded into the base before the markup is applied, produces a bill rate higher than the contract allows without ever changing the stated percentage.

Most staffing agreements price contract labor as base pay plus a markup percentage covering payroll tax, workers' compensation, and vendor margin. The percentage itself is usually visible and rarely changes without notice.

What drifts is the base it is applied to. If a vendor bundles a benefits surcharge or a workers' compensation adjustment into the base pay figure before applying the markup, the markup compounds on top of a cost it was never meant to touch, and the invoiced rate rises without the stated percentage ever moving.

Ask the vendor for the base pay rate in writing for a sample of workers and do the multiplication yourself. This is arithmetic, not negotiation, and a vendor that cannot produce the base pay rate on request is itself a signal worth escalating.

A. Where the base gets inflated

A burden cost that belongs in the markup percentage sometimes appears twice: once inside a padded base pay figure and again inside the stated markup. Ask for base pay and burden costs as separate line items, not a single blended number, so each can be checked against the agreement independently.

B. Where the percentage itself drifts

A tiered agreement lowers the markup percentage at a defined volume threshold. If the vendor's system was never updated when your spend crossed that threshold, every invoice since keeps billing the earlier, higher percentage. This is a rate card enforcement failure of the same kind covered on this page's linked category guide.

5. What should you check when a worker leaves or converts to full-time?

Confirm the last billed date for any worker who was terminated, resigned, or converted to a full-time employee against your own HR or badge-access records, not the vendor's own notice. A worker billed for even a few days after their actual last day on site is a straightforward overbilling, and a converted employee billed at a contract labor rate after their conversion date charges twice for the same person.

Keep a simple internal log: worker name, last day on site, and reason (termination, resignation, conversion). Cross-check that log against the invoice period covering that date.

Conversion is the case most often missed, because the transition is informal: a hiring manager tells the worker directly and never formally notifies the vendor's billing team in writing. The vendor keeps billing at the contract labor rate because nothing told its system to stop.

A conversion fee, if your agreement includes one, is a separate and legitimate charge. The error is not the fee; it is continuing to bill weekly hours for someone now on your own payroll.

6. How do you spot an off-contract worker on the invoice?

Match every worker name on the invoice against your approved requisition or purchase order for that role. A worker who was never requisitioned, was approved for a different department, or was extended past an authorized end date without a new approval is being billed outside the agreement your signature actually covers, regardless of how routine the invoice line looks.

Staffing programs at a $100M+ manufacturer with dozens of open roles rely on requisition approvals to control headcount and cost. An invoice line for a worker with no matching requisition has bypassed that control entirely, whatever the reason.

This happens through informal extensions: a manager verbally asks a worker to stay past the approved end date, the vendor keeps billing, and no one updates the requisition record. The invoice is technically accurate to hours worked and completely outside the approval that authorized the assignment.

A monthly reconciliation of active invoice lines against open requisitions closes this gap directly, and it is one of the few checks here that catches problems the vendor itself has no reason to flag.

For the wider pattern this sits inside, start with the margin drift guide.

For the wider pattern this sits inside, start with the margin drift guide.

7. Frequently Asked Questions (People Also Ask)

How often should we run this checklist against contract labor invoices?

The checklist works on any single invoice, so run it whenever you want confidence in a vendor relationship: at contract renewal, after a rate amendment, or when a spend increase draws attention to a vendor. It does not require a recurring schedule to be useful the first time.

What documents do we need before we start?

You need the master service agreement including its rate card exhibit and overtime or differential terms, one full invoice period, the approved timesheets underlying that invoice, and an internal record of worker start, end and conversion dates. All four should be checked against each other, not just against the invoice total.

Can our ERP or AP automation tool catch these errors on its own?

An AP system typically matches an invoice against a purchase order and a receipt. It does not test whether the bill rate on that PO matches the current rate card, or whether an overtime threshold was applied correctly, because those rules live in the contract PDF, not the ERP.

Is a markup error usually the vendor's fault?

The mechanism is administrative rather than deliberate: a vendor's billing team updates its rate table when told to in writing, and a base pay change or tier trigger that is never confirmed against the next invoice simply does not reach it. Escalate it as a correction request, not an accusation.

What if the vendor won't provide base pay detail for the markup check?

Most master service agreements include an audit or record-inspection clause that entitles you to this detail. If the vendor resists a reasonable request tied to that clause, that resistance is itself worth flagging to your contract owner, separate from any billing error found.

Does this checklist replace a full contract compliance audit?

No. It is a fast, single-invoice screen you can run yourself this week. A full audit checks every vendor, every category and every invoice in a period systematically, and catches patterns this manual pass on one invoice will not surface.

Who should own this check internally: AP, procurement, or the hiring manager?

AP is best placed to check the invoice against the rate card and timesheets since it already reconciles the invoice. Procurement should own the requisition match, and the hiring manager should confirm terminations and conversions, since that information originates with them.

What counts as general information versus legal advice here?

This checklist describes commercial and billing mechanics, not contract law. Any dispute over interpreting master service agreement language, especially around termination notice or audit rights, should go to counsel. This page is general information, not legal advice.

Executive Summary

A contract labor invoice fails in a small number of checkable ways: the wrong bill rate for the job title, hours billed without a matching approved timesheet, overtime paid at straight time or the reverse, a markup percentage that does not match the rate card, a worker still billed after termination or after conversion to full-time, and a burden or pass-through cost folded into the bill rate a second time as a separate line. None of these require a forensic audit to catch. They require the master service agreement's rate card, tier structure and overtime rules open next to the invoice, line by line. The staffing vendor's invoicing system does not enforce your contract. It enforces whatever rate table someone entered into it, and that table drifts out of sync with amendments, tier changes and role reclassifications unless someone checks it against the source document. The mechanism is administrative, not adversarial. A vendor's billing team updates one client's rate table when told to, in writing. If a rate change, a volume tier trigger, or a termination notice is not confirmed against the next invoice, it does not reach that invoice. That is the whole explanation for how a $100M+ manufacturer accumulates contract labor drift, and it is why a line-by-line check finds it faster than any trend analysis.

1. What bill rate errors should you check first?

Check that every invoice line's bill rate matches the rate card cell for that exact job title and tier, not a nearby title that sounds similar. Staffing agreements often set different rates for near-identical titles: "CNC Operator I" against "CNC Operator II," or "General Labor" against "Assembly Labor." A single misclassified title on a recurring weekly invoice repeats every week until someone catches it at the source, not the total. Open the rate card exhibit in your master service agreement and list every job title with its approved bill rate. Then pull one full invoice and match each line's title, not each line's dollar total, against that list. Watch for three specific patterns: a title on the invoice that does not appear on the rate card at all, a title that appears but at a rate one tier higher than contracted, and a title that was correct on old invoices but changed after a contract amendment the vendor never applied. A rate card exhibit is usually a static table. It does not update itself when your company negotiates a new tier or renews at a different rate. If the vendor's system was not updated to match, every invoice since the change carries the old, wrong number forward.

2. How do you confirm hours billed match approved timesheets?

Pull the approved timesheet for every worker on the invoice and confirm the hours match exactly, not just the total. A supervisor's electronic approval covers the hours actually worked; it does not authorize the vendor to round up, bill a canceled shift, or carry a prior week's unapproved hours into the current invoice. Three-way matching against a purchase order does not test this, because timesheets sit outside most PO systems entirely. Request the underlying timesheet detail, not a summary total, for each worker line. Compare date by date and shift by shift against what the invoice bills. A common failure is rounding: a worker clocks 7.75 hours and the invoice bills 8. Across one worker and one week that is immaterial. Across a full contract labor program running continuously it compounds every pay period. Another is carryover: hours disputed or held back on one invoice reappear, unflagged, on the next one without a corresponding approval. If a timesheet was rejected once, confirm it was corrected and re-approved, not simply re-billed.

3. What overtime and shift differential errors are easy to miss?

Confirm the invoice applies overtime and shift differential rules exactly as the master service agreement defines them, including the weekly hour threshold that triggers overtime and which shifts qualify for a differential. A vendor's default payroll rule set is not your contract's rule set, and the two frequently disagree on where overtime starts or which second-shift hours carry a premium. Your agreement states an overtime trigger, commonly after 40 hours in a week, and a shift differential schedule for second and third shift work. Neither is automatic in a vendor's billing system unless it was configured to your specific terms. Check for hours billed at a straight-time rate that should have crossed the overtime threshold, and the opposite: overtime charged on hours that were split across two workers to avoid it, which is not overtime at all. Also check shift differential lines against the actual shift a worker was assigned. A worker moved to first shift mid-contract but still billed at a second-shift differential is a control gap, not a one-time mistake, and it recurs every pay period until corrected.

4. How do you check the markup percentage on a pass-through invoice?

Recalculate the markup independently: take the base pay rate stated on the timesheet or pay stub, apply the markup percentage set in your master service agreement, and compare that result to the bill rate the invoice actually charged. A markup applied to the wrong base, or a burden cost folded into the base before the markup is applied, produces a bill rate higher than the contract allows without ever changing the stated percentage. Most staffing agreements price contract labor as base pay plus a markup percentage covering payroll tax, workers' compensation, and vendor margin. The percentage itself is usually visible and rarely changes without notice. What drifts is the base it is applied to. If a vendor bundles a benefits surcharge or a workers' compensation adjustment into the base pay figure before applying the markup, the markup compounds on top of a cost it was never meant to touch, and the invoiced rate rises without the stated percentage ever moving. Ask the vendor for the base pay rate in writing for a sample of workers and do the multiplication yourself. This is arithmetic, not negotiation, and a vendor that cannot produce the base pay rate on request is itself a signal worth escalating. ### A. Where the base gets inflated A burden cost that belongs in the markup percentage sometimes appears twice: once inside a padded base pay figure and again inside the stated markup. Ask for base pay and burden costs as separate line items, not a single blended number, so each can be checked against the agreement independently. ### B. Where the percentage itself drifts A [tiered agreement](/guides/unapplied-volume-rebates-in-staffing-agreements) lowers the markup percentage at a defined volume threshold. If the vendor's system was never updated when your spend crossed that threshold, every invoice since keeps billing the earlier, higher percentage. This is a [rate card enforcement](/guides/rate-card-enforcement-why-approved-timesheets-still-produce) failure of the same kind covered on this page's linked category guide.

5. What should you check when a worker leaves or converts to full-time?

Confirm the last billed date for any worker who was terminated, resigned, or converted to a full-time employee against your own HR or badge-access records, not the vendor's own notice. A worker billed for even a few days after their actual last day on site is a straightforward overbilling, and a converted employee billed at a contract labor rate after their conversion date charges twice for the same person. Keep a simple internal log: worker name, last day on site, and reason (termination, resignation, conversion). Cross-check that log against the invoice period covering that date. Conversion is the case most often missed, because the transition is informal: a hiring manager tells the worker directly and never formally notifies the vendor's billing team in writing. The vendor keeps billing at the contract labor rate because nothing told its system to stop. A conversion fee, if your agreement includes one, is a separate and legitimate charge. The error is not the fee; it is continuing to bill weekly hours for someone now on your own payroll.

6. How do you spot an off-contract worker on the invoice?

Match every worker name on the invoice against your approved requisition or purchase order for that role. A worker who was never requisitioned, was approved for a different department, or was extended past an authorized end date without a new approval is being billed outside the agreement your signature actually covers, regardless of how routine the invoice line looks. Staffing programs at a $100M+ manufacturer with dozens of open roles rely on requisition approvals to control headcount and cost. An invoice line for a worker with no matching requisition has bypassed that control entirely, whatever the reason. This happens through informal extensions: a manager verbally asks a worker to stay past the approved end date, the vendor keeps billing, and no one updates the requisition record. The invoice is technically accurate to hours worked and completely outside the approval that authorized the assignment. A monthly reconciliation of active invoice lines against open requisitions closes this gap directly, and it is one of the few checks here that catches problems the vendor itself has no reason to flag. For the wider pattern this sits inside, start with the [margin drift guide](/guides/indirect-spend-audit-categories). For the wider pattern this sits inside, start with the [margin drift](/guides/indirect-spend-audit-categories) guide.

Questions & Answers

How often should we run this checklist against contract labor invoices?

The checklist works on any single invoice, so run it whenever you want confidence in a vendor relationship: at contract renewal, after a rate amendment, or when a spend increase draws attention to a vendor. It does not require a recurring schedule to be useful the first time.

What documents do we need before we start?

You need the master service agreement including its rate card exhibit and overtime or differential terms, one full invoice period, the approved timesheets underlying that invoice, and an internal record of worker start, end and conversion dates. All four should be checked against each other, not just against the invoice total.

Can our ERP or AP automation tool catch these errors on its own?

An AP system typically matches an invoice against a purchase order and a receipt. It does not test whether the bill rate on that PO matches the current rate card, or whether an overtime threshold was applied correctly, because those rules live in the contract PDF, not the ERP.

Is a markup error usually the vendor's fault?

The mechanism is administrative rather than deliberate: a vendor's billing team updates its rate table when told to in writing, and a base pay change or tier trigger that is never confirmed against the next invoice simply does not reach it. Escalate it as a correction request, not an accusation.

What if the vendor won't provide base pay detail for the markup check?

Most master service agreements include an audit or record-inspection clause that entitles you to this detail. If the vendor resists a reasonable request tied to that clause, that resistance is itself worth flagging to your contract owner, separate from any billing error found.

Margin Drift Resources