Nobody loses money in this business by forgetting to bill a customer they can see. They lose it on the unit that was delivered during the busy week in June, written on a whiteboard, placed on a site and serviced every Tuesday since, with no rate card row behind it. The driver knows it is there. The customer knows it is there. The invoice does not.
Here are the five ways it happens on real books, and the audit that catches them.
1. The row with no start date
A rate card row needs a date to bill from. Without one the engine either bills a full cycle (wrong, see proration) or, more often, nothing. A blank Bills From is the single most common cause of a missing first invoice. The audit should list every row created in the last six weeks with no start date and no issued invoice covering it, because once the first invoice is out, every later cycle is a full one and the date no longer matters.
2. The row on the wrong period
The company bills every 28 days; the row says monthly because that was the default. The invoice is a different length from every other invoice, or the amount is scaled, and the customer calls. The cycle post explains why. The audit should flag any row whose period is not its customer's cycle.
3. The paused site that never came back
A site goes seasonal in November. Billing pauses, correctly. In March the units are serviced again, the driver sees them every week, and the site is still paused. Months go by. The audit should show paused sites with completed service in the last cycle.
4. The period billed twice
The opposite failure, and it costs the customer's trust rather than your money. Two drafts for the same site and period usually come from an invoice whose header site differs from the site its lines bill, or a manual invoice typed over a cycle the engine also drafted. The audit should list any two rate card invoices on the same customer with overlapping periods.
5. The credit applied at the wrong price
A customer prepays three months by check. The credit is applied each cycle against the card price instead of the cash price, and every cycle comes up a few dollars short, which looks like an unpaid balance on a customer who paid in full. See how a cash discount program should treat credit. The audit should show a check-funded credit consumed at the card price.
The one report
None of this needs a bookkeeper. It needs one report, run the morning the invoices go out, with one row per live rate card line and a status for the last cycle: billed, draft, not billed, skipped, paused, no rate, starts later. Sort by "not billed" and read down. On a 300-site book it takes ten minutes.
That report is the Rate Card Billing Audit in PortaPro. It is also why Billing Health exists: the same checks run every night, and anything that trips one lands in a list with the fix beside it, so the audit happens whether or not anyone remembers to run it. Operators who have switched from a spreadsheet tell us the first run finds something every time. Not because they were careless; because nothing was checking.
Make the audit a habit
- Put the report on the calendar for the morning after each cycle closes.
- Read "not billed" first, then "no rate", then "paused".
- Fix the rate card row, never the invoice. The invoice is a result.
- Re-run and confirm the row now shows "draft" or "billed".
Thirteen ten-minute audits a year. It is the best hourly rate in the company.