7 min read

How to Audit Your Security Company Invoices Against Actual Worked Hours

The short answer: build a shift-by-shift comparison of three things, what the contract says you should pay for, what the guard records show was...

Published
October 18, 2026
Reading time
7 min
How to Audit Your Security Company Invoices Against Actual Worked Hours

The short answer: build a shift-by-shift comparison of three things, what the contract says you should pay for, what the guard records show was actually worked, and what the invoice charged. Every difference between those three is either a billing error, a contract term you misread, or a service gap you paid for and did not receive. You do not need special software to start. You need the contract's billing rules, a time record you trust, and a consistent way to match them line by line.

Most disputes are not about fraud. They come from small mismatches that compound: a guard who left early but was billed for the full shift, a holiday rate applied to a day the contract does not treat as a holiday, a replacement guard billed at a supervisor rate. Each one is minor. Over a year, they add up.

Start with the contract, not the invoice

Before you open a single invoice, pull the service agreement and write down the billing rules in plain language. You are looking for:

  • Rates by role and by condition. Unarmed, armed, supervisor, and patrol rates, plus any different rates for nights, weekends, and holidays.
  • How overtime is defined and who pays it. Some agreements pass through overtime only when you requested the extra hours. Others do not.
  • Minimum shift lengths. A four hour minimum changes what a short call-out costs.
  • Holiday definitions. Which days count, and whether the premium applies to the whole day or only the hours inside it.
  • Rounding rules. Rounding to the nearest quarter hour or half hour is common, and it matters at scale.
  • Billable extras. Travel, training, uniforms, equipment, and supervisor visits.
  • Notice terms. How much notice applies to cancelling or adding a shift, and what happens to billing when it is shorter.

If the contract is silent on something, note that too. Silence is where most arguments start, and it is better to find the gap before the dispute than during it.

Decide which record counts as the truth

An audit is only as good as the record you compare against. You will usually have several, and they will not always agree:

  • The schedule. What was planned. Useful for spotting gaps, but it is not proof of work.
  • Time and attendance data. Clock in and out records, if the vendor or your site captures them.
  • Patrol or check-in logs. Timestamped scans or electronic check-ins, which can corroborate presence during a shift.
  • Daily activity reports and post logs. Handwritten or electronic, usually showing arrival and departure times and incidents.
  • Your own records. Front desk sign-in sheets, gate logs, access control entries, or camera timestamps.

Agree on a hierarchy before you start. A reasonable one is: your own independent record first, then the guard's timestamped logs, then the vendor's time data, then the schedule. If your contract names a specific system of record, use that. The point is to decide the order in advance so you are not choosing the evidence that fits the answer you want.

Build the three-way comparison

For each shift in the billing period, capture one row with these columns:

  1. Post and date
  2. Scheduled start and end
  3. Actual start and end (from your chosen record)
  4. Billed start and end, or billed hours
  5. Billed rate and rate type
  6. Variance in hours
  7. Variance in dollars
  8. Reason code

A spreadsheet is enough. The reason code is the part people skip, and it is the part that makes the audit useful. Use a short, fixed list so you can count patterns later: early departure, late arrival, no show, rate mismatch, overtime not authorized, holiday mismatch, rounding, duplicate line, unexplained.

Then compute scheduled versus actual, and actual versus billed, separately. Scheduled versus actual shows you service gaps. Actual versus billed shows you billing errors. They are different conversations with the vendor, and mixing them makes both weaker.

Check the lines that usually go wrong

Once the basic match is done, look specifically at the places errors tend to cluster:

  • Overlaps and doubled coverage. Two guards billed for the same post and the same hours, often during a handover or a replacement.
  • Replacement guards. When the assigned guard calls out, confirm the replacement was billed at the rate for the role actually worked.
  • Rate drift. A rate that was correct in January and quietly changed after a renewal or a wage adjustment you never agreed to.
  • Overtime. Compare billed overtime against the weekly hours of each guard. Be careful here: you often cannot see a guard's hours at other sites, so ask the vendor to show how overtime was calculated rather than assuming.
  • Holiday premiums. Check the date and the contract definition, not the vendor's calendar.
  • Round trips at the edges of a shift. Ten minutes of rounding at each end of every shift is not ten minutes. It is a policy, and you should know whether the contract allows it.

Sample first, then widen

If you have many posts, do not try to audit everything on day one. Pick one or two representative posts and one full billing period. Reconcile every shift. Measure the variance as a share of billed hours. If it is small and explained, move to periodic sampling. If it is large or unexplained, widen the audit to more posts and earlier periods.

Keep your claim proportionate. A handful of unexplained lines is a question for the vendor. A pattern across many weeks with the same reason code is a process problem to fix at the source.

Raise findings the right way

Bring the vendor a clean file, not a complaint. For each disputed line, include the date, post, billed hours, your evidence of actual hours, the contract clause you are relying on, and the credit you are requesting. Lead with the items that are easiest to confirm. Credibility on the first five lines makes the next fifty easier.

Ask for two things beyond the credit: the cause, and what changes so it does not repeat. A vendor who can explain a pattern and fix it is worth keeping. One who cannot explain it is telling you something too.

Make it routine

A one-time audit finds money. A monthly one prevents the problem. Once you have the template and the reason codes, the recurring work is mostly matching new data to the same columns. Review the reason code counts each month. If the same code keeps appearing for the same post, fix the instruction, the contract language, or the record keeping that causes it.

FAQ

How far back can I dispute charges? It depends on your contract and local law. Check the invoice dispute and payment terms in your agreement, and ask counsel if the amount is significant. Do not assume you can reopen old periods.

What if the guard's log and my record disagree? Use the hierarchy you set in advance. If neither record is clearly stronger, treat the line as unresolved and ask the vendor for their supporting evidence rather than guessing.

Is this worth doing for a small contract? Often yes for one cycle, because the first audit shows whether your vendor's billing is clean. If it is, you can sample lightly afterward. If it is not, you have learned that cheaply.

Do I need software for this? Not to start. A spreadsheet and a disciplined reason code list are enough to find most problems. Software becomes useful when the volume of shifts makes manual matching slow or error prone.

Should I accuse the vendor of overbilling? No. Present differences as questions backed by evidence. Most variances have an ordinary explanation, and the ones that do not will stand out on their own.

Early access

Invoice the hours the guard actually worked

We are building the check described above for contract security firms: import the schedule and the timeclock, see every shift where they disagree, and fix it before the client invoice goes out. It is not shipping yet, and early access is open.

See what we are building

Early access. Not shipping yet. No charge.

Prefer it written down? The PDF covers the same thing. No spam, unsubscribe anytime.