Operators put off switching software for the same reason they put off switching banks: not because the new one is worse, but because the move feels like a month of risk. It does not have to be. The import is an afternoon. The risk is entirely in three places, and this plan deals with each of them before you touch the new tool.
Step 1: build one spreadsheet
Whatever you move to, it will import a spreadsheet. Build it now, from the old system's export plus whatever lives on paper. One row per rate card line, with these columns:
- Customer name, billing email, phone, billing address
- Site address (the physical location of the units)
- Unit type and quantity on that site
- Service frequency and the service day
- Rate, and whether it is per 28 days, per month or per week
- The date billing started (Bills From), so the first invoice prorates correctly
- Purchase order number, if the customer needs one on the invoice
- Taxable or exempt
A customer with units on four sites is four rows. A site with two unit types is two rows. This is the single most valuable hour of the switch; a clean list makes every tool look fast.
Step 2: pick the cutover date
Cut over on the first day of a billing cycle. If you bill every 28 days from a fixed anchor, that is the next cycle start; if you bill by calendar month, it is the first. Everything in the old system bills through the day before; everything in the new system bills from that day on. No unit is split across two tools, and no customer gets two invoices for one period.
If you are leaving a contract, line this up with the end date and the notice period. Give notice first, then plan the cutover for the last cycle you are paying for. Our comparison guide lists which vendors publish contract terms.
Step 3: deal with open balances, not open invoices
This is where switches go wrong. The old system has unpaid invoices. The temptation is to recreate them in the new one. Do not. Two systems with the same invoice is how a customer pays twice, or pays the old system after you have written it off in the new one.
Two clean options. Keep the old system open, read-only, until the last invoice is paid, and record those payments there. Or bring each customer's total open balance into the new system as an opening balance, one line, with the old invoice numbers in the note, and close the old system. PortaPro's import takes an opening balance per customer and a prepayment column for the ones who paid ahead, and asks how each prepayment was paid, because a check-funded credit earns a cash price and a card-funded one does not.
Step 4: run the import, and read every row
A good import shows you the rows before it saves. Use that screen. The things to look for: unit types matched to the right equipment (a "std" in your sheet is a Standard unit), service days present on every row, a Bills From date on every row, and the customer's cycle set to what you actually bill. In PortaPro the wizard stops on each of those and asks, and a blank billing frequency is set to the company's cycle rather than guessed.
Step 5: run one cycle in parallel
For the first cycle after cutover, generate the invoices in the new system and compare the totals against what the old system would have produced. Not every invoice; the total, and a sample of ten. If they match, you are done. If they do not, the difference is almost always a Bills From date or a rate period, and it is fixed on the rate card, not the invoice.
Step 6: tell the customers once
One email, from your own address, a week before the first invoice from the new system: the invoice will look different, here is where to pay, nothing about your service changes. If the new tool has a customer portal, that is the moment to send the invitation. The portal post covers what to put in that email.
What you should not have to do
Re-type anything. Pay by the hour for someone to clean your data without seeing it first. Sign before trying it on your own list. If a vendor needs any of those, that is useful information about the next three years.