Skip to content

Switching12 min read

Running two field service systems in parallel for 30 days: a playbook that doesn't double your work

Run old and new field service software in parallel without typing twice: one system of record per record, five daily tie-outs and a cutover on evidence.

TradesWork Field Notes · August 13, 2026

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.

  1. Double entry. The office keys every booking twice. It's slow, it's boring, and the second copy gets the typos.
  2. Silent divergence. A reschedule happens in one system and not the other. Nobody notices until a tech shows up at the wrong time.
  3. Nobody owns the difference. Both systems are "kind of" right, so when they disagree, nobody is responsible for finding out why.
  4. 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

jobs per day × minutes of re-keying per job ÷ 60 × loaded office wage
  • 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 everythingMirror by re-import
Office time per day40 × 6 min = 4 hoursAbout 15 minutes
Cost per day$123$8
Cost over 22 working days$2,707$169
Error exposureEvery keystroke, twiceOne 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.

RecordStage 1: one crew in the new systemStage 2: the office movesStage 3: everyoneHow the other side stays current
Customers and locationsOldNewNewDaily customer export, re-imported
PricebookOld (frozen)NewNewFreeze edits in the old one; one re-import
New bookingsOld, except the lead crew'sNewNewNot mirrored back; old system goes read-only
Jobs already bookedFinish where bornFinish where bornFinish where bornNever moved mid-flight
Dispatch boardOld, lead crew in newNewNewDaily jobs export, re-imported
Invoices and paymentsWhere the job was bornWhere the job was bornNewOne system posts each invoice to accounting
Membership billingOldOldNew, after cutoverNew system holds billing until you start it
Opt-outs (STOP, unsubscribe)Both, same dayBoth, same dayNewExported 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.

CheckCompareToleranceIf it's off
Tomorrow's appointmentsCount by tech, both systemsZero differenceFind the missing job before techs get tomorrow's route
Open A/ROld system's open balance + new system's open balance vs your accounting fileTo the pennyA payment posted twice or not at all; find it today
Active membersCount of active membershipsZero differenceA cancel or renewal landed in one system only
Visits due, next 30 daysCount of maintenance visits dueZero differenceA recurring event didn't import; fix before it's missed
Opt-outs todayNew STOPs and unsubscribesZero differenceRe-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.

TradesWork Accounting: open A/R and the unpaid invoice list. During a parallel run, this total plus the old system's open balance should equal your books. · Real product screenshot, demo company data.
Accounting overview with accounts receivable and invoices

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. 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. 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. 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. 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

  1. How to switch from ServiceTitan: migration guide, Fieldproxy (a competitor), Mar 12, 2026. ↩ ↩2

  2. Customer Service Representatives, Occupational Outlook Handbook, U.S. Bureau of Labor Statistics, 2025 median pay. ↩

  3. Employer Costs for Employee Compensation, June 2026, U.S. Bureau of Labor Statistics, Sep 9, 2026. ↩

  4. QBO error 6140: duplicate document number, ServiceTitan help center, accessed Oct 2026. ↩

  5. 47 CFR 64.1200(a)(10), revocation of consent, Electronic Code of Federal Regulations, current as of Oct 2026. ↩

  6. CAN-SPAM Act: A Compliance Guide for Business, Federal Trade Commission, accessed Oct 2026. ↩

  7. Exporting AR Management to Excel, ServiceTitan help center, accessed Oct 2026. ↩

  8. Schedule reports, ServiceTitan help center, accessed Oct 2026. ↩

  9. Factors Affecting the Cost of Airplanes, T.P. Wright, Journal of the Aeronautical Sciences 3(4), Feb 1936. ↩

  10. Terms of Use, §5(a), ServiceTitan, last updated Sep 16, 2026. ↩