Billing

Nothing gets invoiced without a person looking at it

A completed job becomes a billing candidate automatically, gets classified, and waits for a person to review it. A three-way price comparison catches drift before a customer ever sees it, and the overdue queue is the screen the office actually watches.

Billing is one of the two things a recurring-service business cannot afford to get wrong - the other is the route. A completed job becomes a billing candidate on its own, but nothing gets invoiced or charged until a person has looked at it.

Completion creates a billing candidate

The moment a technician dispositions a job complete, it becomes a billing candidate automatically. No one has to remember to flag it, and no completed work sits unclassified waiting for someone to notice it. The classification happens the same way every time, which is what makes the review step that follows fast instead of a hunt.

A person reviews before anything is charged

Every billing candidate waits in a review queue before it becomes an invoice or a charge. This step is deliberate: the classification is automatic, but the decision to invoice or collect is not, because a completed job is not always a job that should be billed exactly as classified. A person checks the queue on a daily basis, and nothing moves past that checkpoint without them.

That review step exists because fully automating collection past this point is exactly where billing systems tend to earn distrust - a mis-classified job or a stale price turns into a wrong invoice, and a wrong invoice turns into a customer who no longer trusts the statement they're getting. Keeping a human checkpoint here is a deliberate trade: slightly slower than a fully automatic pipeline, and far less likely to send a customer a charge nobody meant to send.

Review isn't limited to approving or rejecting. A billing candidate can be re-evaluated if something about the job changes, linked to a missing work order if the completion record is incomplete, marked as already prepaid so it resolves without generating a duplicate invoice, or excluded from invoicing entirely when that's the right call - each action leaves its own trail rather than just disappearing from the queue.

The three-way price comparison

The review screen for each billing candidate lines up three things side by side: the price on the signed agreement, the pricing currently in effect, and the invoice preview that would actually go out. When those three don't match, the drift shows up right there, before the invoice is sent - not as a customer complaint three weeks later. A mismatch here is also what drives an automatic commission adjustment, so a pricing error doesn't quietly overpay or underpay a rep either.

The overdue queue is the money screen

Instead of hiding past-due accounts behind a general dashboard, the overdue queue is built to be the screen the office actually watches. A decline shows in red and rises straight to the top, and a decline fires an automatic text to the customer telling them the charge failed - nobody has to notice the decline manually before the customer hears about it.

Behind the queue sits an escalating, time-boxed follow-up sequence rather than a single reminder that either works or doesn't: a failed charge, a follow-up reminder, a call, another text, another call, and finally an email if none of the earlier steps resolved it. Documented exceptions - a customer who moved out of the service area, or a documented hardship - can waive a step without the whole sequence being thrown out for every other account.

Two ledgers

One-time invoices and recurring agreement billing are tracked as two separate ledgers rather than one blended list. That separation is what makes it possible to look at "everything owed on standing agreements" and "everything owed on one-off work" as two different questions, because they usually need two different answers.

Service cadence and billing cadence are separate fields

How often a property gets serviced and how often a customer gets billed are two independent fields on the agreement, not one setting doing double duty. A customer serviced on one rhythm can be billed on a completely different one without either field having to bend to accommodate the other.

One charge for one day, even with multiple jobs

When a customer has more than one completed job on the same day, those jobs combine into a single charge instead of arriving as several separate ones. Fewer, clearer charges on a statement means fewer questions from a customer trying to reconcile their card activity.

Service hold on an outstanding balance

An account with an outstanding balance gets a service hold automatically, and that hold releases automatically the moment the balance is paid. Nobody has to remember to apply or lift it by hand.

QuickBooks export

Invoices and payments export in the column layout QuickBooks Online's own import screens already expect, so a bookkeeper brings the numbers in without reshaping them first. It's a file-based bridge today rather than a live, credential-based connection - and it is a real export a bookkeeper can use this month, not a promise for later.

QuickBooks stays the system of record for accounting - the export pushes revenue and commission data out, it does not try to replace the books your accountant already trusts. When a direct, credential-based connection to QuickBooks becomes available, it reads from the exact same underlying data as the file export does today; nothing about how a job gets billed changes underneath it.

Red flags, not silent gaps

A job that's still marked on-route or in-progress at the end of the day, but was never dispositioned complete, gets its own red flag rather than quietly sitting there. This is usually a missed tap on a busy day or a sync that hasn't caught up yet - either way, it surfaces to the office instead of waiting to be discovered when a customer asks why they were never billed, or billed for a visit that never happened.

Billing candidate
Delgado residence - quarterly clean
Signed agreement On file
Current pricing Mismatch flagged
Invoice preview Ready for review
Re-evaluate
Approve

Frequently asked questions

How do I make sure a completed job actually triggers an invoice instead of getting forgotten?

Completion does the work automatically: the moment a job is dispositioned complete, it becomes a billing candidate on its own. Nothing has to be remembered or manually flagged. The remaining risk is a job that never gets dispositioned at all, which is why undispositioned jobs get their own red flag rather than silently falling through.

Can a customer's card get declined and quietly stop billing without anyone noticing?

No. A decline is shown in red and rises straight to the top of the overdue queue, and it fires a charge-failed text to the customer on its own. It is built to be the loudest thing in the queue, not the easiest thing to miss.

How do I see an aging or overdue report without exporting to a spreadsheet myself?

The overdue queue is a live screen, not a report you have to build. It is designed to be the one place the office checks every day, not a dashboard hidden behind a generic reporting tab.

Is a processing or setup fee disclosed anywhere before a customer gets charged?

Commercial terms, including any fee structure, are not finalized or published yet - we will not describe a number here before it exists. What is already true: the billing-candidate review shows a three-way comparison of the signed agreement, current pricing, and the invoice preview specifically so a fee or price mismatch is caught before a customer is charged, not after.

If I dispute a charge, is there a real person to talk to, or just a support ticket?

A person reviews every invoice before it goes out, so many disputes are questions about a decision someone already made, not a black box. For anything that needs follow-up after the fact, the support email is the channel today; we have not published a separate billing-department contact.

Make it your best route day yet

Request a demo