Running two systems in parallel sounds like the safe way to switch field service software. In practice, most parallel runs fail in the second week, and for the same reason: the office ends up typing every booking, status change and payment into both systems, falls behind by Thursday, and quietly stops updating one of them. From then on you have two systems that disagree and no idea which one is right.
A parallel run that works looks different. Each kind of record has one system of record on any given day. The other system is a mirror, kept current by re-importing exports, not by retyping. Every afternoon someone spends ten minutes checking five numbers. And you cut over when the evidence says you're ready, not when the calendar says so.
Why most parallel runs fail
When a side-by-side run goes badly, the cause is rarely the new software. It's usually one of four habits.
- Double entry. The office keys every booking twice. It's slow, it's boring, and the second copy gets the typos.
- Silent divergence. A reschedule happens in one system and not the other. Nobody notices until a tech shows up at the wrong time.
- Nobody owns the difference. Both systems are "kind of" right, so when they disagree, nobody is responsible for finding out why.
- No end date. Without written exit criteria, the run drifts from two weeks to two months, and you pay for both systems the whole time.
One competitor's switching guide puts a typical ServiceTitan exit at 6 to 10 weeks with 2 to 4 weeks of running both systems.1 That's a reasonable range. The point of this playbook is to make those weeks cheap.
The double-entry tax, in dollars
It's worth putting a number on double entry, because it's the cost owners underestimate most. Here's a worked example for a 10-tech shop running 40 jobs a day.
Daily double-entry cost
- Minutes per job: booking (2), one reschedule or status change (1), invoice (2), payment (1). Call it 6 minutes across a job's life.
- Loaded office wage: the median customer service rep earned $21.53 an hour in 2025.2 Private employers spend $46.89 an hour on total compensation for every $32.82 in wages, so wages are 70% of the total.3 Multiply by about 1.43 and you get $30.76 an hour.
| Re-key everything | Mirror by re-import | |
|---|---|---|
| Office time per day | 40 × 6 min = 4 hours | About 15 minutes |
| Cost per day | $123 | $8 |
| Cost over 22 working days | $2,707 | $169 |
| Error exposure | Every keystroke, twice | One export, checked by the tie-out |
That table is an example, not a benchmark; use your own job count and wages. The larger cost doesn't show in it: four hours a day of retyping comes out of the CSR's time on the phones, during the month you most need them answering.
Give every record one system of record
The fix for double entry is a simple matrix. For each type of record, write down which system owns it at each stage of the run, and how the other system stays current. Pin it next to the dispatch board.
| Record | Stage 1: one crew in the new system | Stage 2: the office moves | Stage 3: everyone | How the other side stays current |
|---|---|---|---|---|
| Customers and locations | Old | New | New | Daily customer export, re-imported |
| Pricebook | Old (frozen) | New | New | Freeze edits in the old one; one re-import |
| New bookings | Old, except the lead crew's | New | New | Not mirrored back; old system goes read-only |
| Jobs already booked | Finish where born | Finish where born | Finish where born | Never moved mid-flight |
| Dispatch board | Old, lead crew in new | New | New | Daily jobs export, re-imported |
| Invoices and payments | Where the job was born | Where the job was born | New | One system posts each invoice to accounting |
| Membership billing | Old | Old | New, after cutover | New system holds billing until you start it |
| Opt-outs (STOP, unsubscribe) | Both, same day | Both, same day | New | Exported and re-imported daily |
Two rules in that matrix do most of the work.
Jobs live where they're born. A job booked in the old system gets dispatched, invoiced and paid in the old system, even after the office moves. Moving a job mid-flight is how you get a tech at the door with no history and an invoice that exists twice. Within two or three weeks, the old system's open jobs simply run out.
One system posts each invoice to accounting. If both systems sync to the same QuickBooks Online file, you'll eventually hit a duplicate document number. QuickBooks rejects an invoice whose number already exists, and ServiceTitan's own help center walks through the error and the renumbering fix.4 Agree a cutover date with your bookkeeper: invoices dated before it post from the old system, after it from the new one. Make sure the new system's job numbers start above the old system's highest. See how QuickBooks reconciliation works during a switch.
The daily ten-minute tie-out
The mirror only works if somebody checks it. Pick one person, usually the office manager, and give them a fixed time, say 3:30 p.m. They compare five numbers between the two systems and write down the difference.
| Check | Compare | Tolerance | If it's off |
|---|---|---|---|
| Tomorrow's appointments | Count by tech, both systems | Zero difference | Find the missing job before techs get tomorrow's route |
| Open A/R | Old system's open balance + new system's open balance vs your accounting file | To the penny | A payment posted twice or not at all; find it today |
| Active members | Count of active memberships | Zero difference | A cancel or renewal landed in one system only |
| Visits due, next 30 days | Count of maintenance visits due | Zero difference | A recurring event didn't import; fix before it's missed |
| Opt-outs today | New STOPs and unsubscribes | Zero difference | Re-import the suppression list now |
Open A/R is the one to be strict about. The AR Management screen in ServiceTitan can't be exported; ServiceTitan points you to the AR Transactions By Customer report instead,7 and that's the report to tie against. If you want the background on why A/R is the number that has to be exact, see our glossary entry on accounts receivable.
Keeping the mirror current without retyping
The mirror is fed by exports. With ServiceTitan, you have two ways to do that.
Re-drop the exports by hand. Once a day, run the customer, jobs and A/R exports and load them into the new system. This only works if the new system updates the records it imported last time instead of adding duplicates, so ask any vendor exactly how it matches a re-imported row to an existing one. The answer you want is "by the old system's ID."
Schedule them. ServiceTitan can email a report as an XLSX file on a schedule, but only to employees or technicians who have an email address in their profile.8 Schedule the reports you need to a staff member's address and forward them on, and the mirror updates itself each morning.
TradesWork supports both. Imported records keep their ServiceTitan IDs, so a re-dropped export updates what's there, and scheduled reports forwarded to your TradesWork import address are picked up daily, with a log of each file and a Cut over: stop mirroring button for the end of the run. The honest caveat: several of its ServiceTitan file layouts were built from ServiceTitan's screens and help docs and are still being checked against real exports. The daily tie-out is how you'd catch a file that didn't map the way you expected, whatever you're moving to.
A 30-day run, week by week
- 1
Days 1 to 7: one crew, everything else stays put
Import customers, locations, equipment and pricebook. Freeze pricebook edits in the old system. Your lead crew works its jobs in the new system; the office still books in the old one, and the lead crew's jobs come over by daily re-import. Start the daily tie-out on day 1, even though the numbers are small.
- 2
Days 8 to 14: the office moves
New bookings and dispatch move to the new system. Old jobs finish where they were born. Agree the accounting cutover date and set the new system's first job number above the old system's highest. Submit the phone port if you haven't.
- 3
Days 15 to 21: everyone moves
All crews in the new system. The old system has only its leftover open jobs and A/R. Re-import memberships and visits due, then check them against the old system's lists.
- 4
Days 22 to 30: drain and cut over
Collect or transfer the last old-system balances. When the gates below are met, stop the mirror, run a final export set as your archive, and set the old system to read-only for anyone who still has a login.
Cut over on gates, not on a date
The best evidence that a crew is ready is repetition. In 1936, aeronautical engineer T.P. Wright showed that labor per airplane fell by a roughly constant share each time cumulative output doubled.9 It's reasonable to expect the same shape when a crew learns a new app: the early jobs are slow, each doubling of experience helps a bit less than the last, and a few dozen jobs in, most of the gain is in. So set gates in repetitions, not days.
Cut-over gates (all must be true)
- The lead crew has completed at least 30 real jobs in the new system with no paper workaround
- Every pricebook item they used existed, at the right price, on the first try
- The dispatcher has planned and re-planned three full days in the new board
- Open A/R tied out to the penny for five working days in a row
- Members and visits due matched for five working days in a row
- The bookkeeper has closed two weeks of invoices and payments from the new system
- Opt-outs matched every day of the run
If a gate isn't met by day 30, don't extend the run by default. Ask which gate is failing and fix that one thing. A run that drifts past six weeks usually means a setup problem, like missing job types or forms, not a training problem.
When not to run two systems at all
A parallel run isn't always worth it.
- One to three trucks. If one person books, dispatches and invoices, a clean weekend cutover with a full export archive is often less risky than a month of mirroring.
- Your peak season. Don't start a run in the week your phones double. Either finish before peak or wait for the shoulder season.
- Days before your renewal. ServiceTitan's Terms say your access ends at termination.10 Some guides suggest keeping the old system read-only for 60 to 90 days after cutover,1 which only works if your cutover lands that far before your renewal date. Plan backward from it with our 90-day exit calendar.
For the rest of the switch, including the files to pull before you start, see our ServiceTitan to TradesWork migration guide and the list of things owners forget to export.
Footnotes
-
How to switch from ServiceTitan: migration guide, Fieldproxy (a competitor), Mar 12, 2026. ↩ ↩2
-
Customer Service Representatives, Occupational Outlook Handbook, U.S. Bureau of Labor Statistics, 2025 median pay. ↩
-
Employer Costs for Employee Compensation, June 2026, U.S. Bureau of Labor Statistics, Sep 9, 2026. ↩
-
QBO error 6140: duplicate document number, ServiceTitan help center, accessed Oct 2026. ↩
-
47 CFR 64.1200(a)(10), revocation of consent, Electronic Code of Federal Regulations, current as of Oct 2026. ↩
-
CAN-SPAM Act: A Compliance Guide for Business, Federal Trade Commission, accessed Oct 2026. ↩
-
Exporting AR Management to Excel, ServiceTitan help center, accessed Oct 2026. ↩
-
Schedule reports, ServiceTitan help center, accessed Oct 2026. ↩
-
Factors Affecting the Cost of Airplanes, T.P. Wright, Journal of the Aeronautical Sciences 3(4), Feb 1936. ↩
-
Terms of Use, §5(a), ServiceTitan, last updated Sep 16, 2026. ↩