8 min read

QuickBooks Alternative for Security Guard Billing: Invoice From Timesheets by Site

Most security companies do not need to replace QuickBooks. They need the step that sits between the schedule and the invoice. QuickBooks is a good ledger.

Published
November 12, 2026
Reading time
8 min
QuickBooks Alternative for Security Guard Billing: Invoice From Timesheets by Site

QuickBooks Alternative for Security Guard Billing: Invoice From Timesheets by Site

Most security companies do not need to replace QuickBooks. They need the step that sits between the schedule and the invoice. QuickBooks is a good ledger. What it does not do well on its own is hold a bill rate for every client, site and post, check worked hours against scheduled hours, and apply each contract's overtime and holiday rules before anything gets invoiced. So the practical setup is to keep QuickBooks for accounting and add a billing layer in front of it. That layer can be a dedicated tool or a disciplined spreadsheet process. It turns approved timesheets into invoice lines priced by site, then sends finished invoices or summaries into QuickBooks.

The rest of this article explains why the gap exists, the workflow that closes it, a worked example, and what to check before you pick a tool.

Why security billing breaks general accounting tools

General accounting software tends to tie a price to a product, a service item or an employee. In contract security, the price comes from the contract, and it often changes by location.

The same guard can work Tuesday at a warehouse billed at one rate and Saturday at a retail site billed at another. One client may pay a higher rate for an armed post than an unarmed post at the same address. Another may pay a premium for extra coverage it requests at short notice. Holiday rates, minimum shift lengths and rounding rules also differ from contract to contract.

On top of that, pay and billing follow different rules. Payroll overtime is calculated per employee. Under federal law that generally means hours over 40 in a workweek, and some states add daily rules. Billable overtime is set by each client contract. A guard can earn overtime because they worked at two sites in one week, while neither client's contract lets you bill overtime for those hours. If your billing simply copies payroll, you will either overbill a client (and damage the relationship) or underbill (and lose margin without noticing).

QuickBooks can be bent to fit this. Teams create a sub-customer for each site and a service item for each rate. That works for a handful of sites. Once you have dozens of posts, rate changes partway through a contract, and supervisors editing hours after the fact, the workaround becomes the job.

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.

The workflow that works: rate, capture, reconcile, price, invoice, post

The steps below hold whatever software you use. If your current process skips one of them, that is usually where the money leaks.

1. Build a rate table keyed to the contract, not the person. Each row should have the client, site, post or role, regular bill rate, overtime bill rate (or multiplier), holiday rate, an effective date, and any minimums. Effective dates matter more than people expect. When a client agrees to a rate increase on the first of the month, the hours worked before that date still need the old rate.

2. Capture hours against posts, not just employees. A timesheet that says "Maria, 38 hours" cannot be billed by site. You need "Maria, Site 2, Front Desk Post, 6:00 to 14:00." Whether the hours come from a guard app, a time clock or supervisor entry, every punch has to carry a post.

3. Reconcile scheduled hours against worked hours before invoicing. This step is where most billing disputes start or stop. Look for:

  • Shifts that were scheduled but have no punches (no-shows or missing clock-ins)
  • Punches with no matching shift (unscheduled coverage, which may or may not be billable)
  • Overlapping punches from early relief or late handoffs
  • Overnight shifts that cross midnight and get split or double counted
  • Overtime that the client never approved

Every exception should be resolved by a person and written down with a reason. Do not let it be silently fixed in the invoice.

4. Apply the contract's billing rules. With clean hours in hand, apply each contract's rate, overtime rule, holiday rule, minimums and rounding. Keep this logic separate from payroll logic, even when both start from the same punches.

5. Generate invoice lines with backup. Group lines the way the client reads them, usually by site and post, with hours and rate shown. Attach or link a timesheet detail report. Many facility and property management clients will not approve an invoice without it, and good backup is the fastest way to get paid on time.

6. Post to accounting. Send the finished invoice, or a summary by customer and site, into QuickBooks for receivables, revenue reporting and collections. QuickBooks stays the system of record for money, and the billing layer stays the system of record for hours and rates.

A worked example (illustrative numbers)

Suppose one guard works 44 hours in a week: 32 hours at Client A's distribution center and 12 hours at Client B's office building. Assume Client A's contract bills a regular rate only and does not allow overtime billing unless the client requested the extra hours. Client B's contract bills time and a half for any hours Client B requests beyond the standing schedule, and Client B did request 4 extra hours that week.

Payroll sees 4 overtime hours for the guard because they passed 40 for the week. Billing sees something else:

  • Client A: 32 hours at the regular rate. No overtime billed, because Client A requested nothing extra.
  • Client B: 8 scheduled hours at the regular rate, plus 4 requested hours at the overtime bill rate.

In this case the hours the client asked for happen to match the payroll overtime. Often they do not. Change one fact, so the extra 4 hours were unrequested coverage at Client A, and the company pays overtime it cannot bill. That is a real margin cost, and it should show up on a report so someone can ask why the schedule produced it. If you only look at QuickBooks, it stays hidden.

Your options, from simplest to most robust

Spreadsheet plus QuickBooks import. A rate table tab, a timesheet export, lookup formulas and an invoice import. This is cheap and workable for a small number of sites. The risks are broken formulas, version confusion and reconciliation that depends on one person's memory.

Heavier use of QuickBooks itself. Sub-customers per site and service items per rate. This is fine when the number of sites and rates is small and does not change much. It gets brittle as rate changes and exceptions pile up.

Guard management platforms with billing modules. These combine scheduling, time capture and invoicing. Coverage and depth vary a lot between products, so test them on your messiest contract, not your simplest.

A dedicated billing and reconciliation layer that feeds your accounting system. This makes sense when your scheduling tool works but billing does not, and you want hours reconciled and priced by site before anything reaches QuickBooks.

What to check before you switch

Ask any vendor, or your own spreadsheet, to show you the following with your real data:

  • Bill rates by client, site and post, with effective dates
  • Billing overtime rules kept separate from payroll overtime rules
  • A scheduled versus worked exception report that has to be cleared before invoicing
  • Correct handling of overnight shifts that cross midnight and of holidays
  • Invoice backup at the post and shift level
  • A clean handoff into QuickBooks without retyping
  • An audit trail showing who changed hours, when and why

If a tool cannot run last month's billing and match what you actually invoiced (or explain the differences), it is not ready to replace your process.

FAQ

Do I need to stop using QuickBooks? Usually not. Most security companies keep QuickBooks for accounting and add a billing layer that does the site-level pricing and reconciliation before invoices reach it.

Can QuickBooks handle different bill rates per site? It can be configured to, usually with sub-customers and separate service items. Whether that holds up depends on how many sites, posts and rate changes you manage. Past a certain point, the upkeep costs more than a purpose-built process.

Should billable overtime match payroll overtime? No. Payroll overtime follows labor law and is calculated per employee. Billable overtime follows each client contract. Treat them as two separate calculations that start from the same hours.

What is the most common cause of billing disputes with clients? Hours that were never reconciled against the schedule, such as unapproved coverage, overlapping shifts or missing punches. A required exception review before invoicing prevents most of them.

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.