Work sample 04 / 17Job system + Xero

Jobber to Google Workspace and QuickBooks Online migration, checked wave by wave

How I move a recurring-service business (cleaning, lawn care, pest) out of Jobber without losing a visit, a site note or a dollar of billing.

Area
Job system + Xero
Tools
Jobber · QuickBooks Online · Google Workspace
Typical scope
US$3,000–5,000
Timeline
About 8 weeks · 4 fixed milestones

Work sample: realistic data, built to show how I approach this kind of project. Not a past client job.

01The problem

Moving a recurring-service business between systems is mostly a billing problem. Jobs, visits, rosters and site access notes have to arrive intact, but the real risk is that recurring invoices change, double up or stop when the old system is switched off.

The safe way is to check billing in both systems before anything moves, then migrate in waves, with gates that stay closed until each wave is proven.

Owners usually notice it as

  1. Some clients are invoiced from Jobber and others from QuickBooks Online
  2. Recurring templates in QBO no longer match the agreed rates
  3. Site access codes sit in calendar notes where every cleaner can see them
  4. Nobody is sure which jobs are still active

02Scope

A fixed scope agreed in writing before anything is built. The table shows what a project like this usually covers and what it leaves out.

Exhibit 1Scope: what a project like this covers
AreaIncluded
InventoryClients, properties, recurring jobs, visits and cleaners exported and profiled
Billing checkThree months of Jobber and QBO invoices compared job by job against the agreed rate and frequency
Target set-upGoogle Calendar per cleaner, Drive folders per site, QBO recurring templates per job
Sensitive dataAccess codes moved into a restricted site sheet, never into calendar text
CutoverA pilot, then waves by region, each with go-live gates
Not includedPayroll and rostering pay rules
Exhibit 2Typical data volumes for this kind of project (log scale)
Visits in history7,300
QBO invoices checked880
Recurring jobs360
Sites250
Cleaners60

Typical volumes for a business of this size. The sample files are sized as described in section 05.

Exhibit 3Fixed milestones, each released when you sign off its deliverable
MilestoneDeliverableTimingShareWeeks 1–8
M1 Inventory and billing checkExports, job status list, billing findingsWeeks 1–225%
M2 Target designCalendar, Drive and QBO template design, wave planWeek 320%
M3 PilotTwo clients moved end to end, six gates passedWeek 425%
M4 Waves and close-outRegional waves, Jobber switched off, SOPWeeks 5–830%

Typical scope for this kind of project: US$3,000–5,000

About 8 weeks across 4 fixed milestones. The fixed quote follows a US$300 Systems Health Check, which confirms the volumes and the scope first. Your software subscriptions are billed to you by the vendors.

03What I fixed, and why

Exhibit 4How the work flows, from the first record to sign-off
φ = 1.61801JOBBERjobs + visits02QBOtemplates03CHECKbilling04STATUSper job05PILOT6 gates06WAVESby region6 STAGES · ONE PASS FROM FIRST RECORD TO SIGN-OFFi. give every job a statusii. keep secrets out of calendarsiii. leave an audit trail01JOBBERjobs + visits02QBOtemplates03CHECKbilling04STATUSper job05PILOT6 gates06WAVESby region

Construction drawing. Each stage has its own check before the next one starts.

  1. 01

    Give every job a status

    Each recurring job gets one status from the data: move as is, fix first, confirm with the owner, or leave in the archive.

  2. 02

    Fix billing before moving it

    Templates are corrected in QBO before cutover so the new system starts right.

  3. 03

    Keep secrets out of calendars

    Access codes go to a restricted sheet linked from the event, and a check confirms no code appears in event text.

  4. 04

    Move in waves

    A pilot first, then regions. Each wave has gates: billing agreed, events created, folders shared, codes moved, roster clash-free.

  5. 05

    Leave an audit trail

    Every moved record keeps its Jobber ID so anything can be traced back.

04Checks

Nothing goes live on trust. These checks run before sign-off and stay in the files, so they can be re-run after every change.

  1. Every Jobber job has exactly one migration status
  2. Each QBO template matches the agreed rate and frequency
  3. No access code appears in any calendar event
  4. No cleaner is double-booked after the move
  5. Each wave stays blocked until all its gates pass
Exhibit 5Controls in the sample files: 32 of 32 pass
CheckWhat it catchesStatus
Rate Reconciliation job rows = Jobber jobsEvery job is reconciled oncePASS
Active templates on Rate Reconciliation = active QBO templatesEvery live template is accounted for, including QBO-only onesPASS
Formula status = engine status (rows that differ)The workbook logic and the engine agree on every rowPASS
Rows with no next actionEvery status has an action and an ownerPASS
Actions tab rows = Rate Reconciliation rowsNothing falls outside the action listPASS
QBO parents with no Jobber clientEvery customer has a homePASS
QBO parents in Customer Match = parents in QBONo customer skippedPASS
QBO sub-customers with no Jobber propertyEvery location has a homePASS
Templates pointing at a job that does not existNo broken template linksPASS
Jobber invoices total = Billing Check Jobber columnEvery Jobber invoice is in the checkPASS
Show all 32 checks
CheckWhat it catchesStatus
QBO invoices total = Billing Check QBO columnEvery QBO invoice is in the checkPASS
Should-bill (weekly + monthly active jobs) = 3 x monthly basisBilling policy applied the same way everywherePASS
Gap total = billed (both systems) - should billGaps add upPASS
Billing Check gap = engine gap (rows that differ)Workbook and engine agree on every job-monthPASS
Double-billed jobs: over-billing = their QBO billingThe QBO invoices are the duplicatePASS
Not-billed jobs: anything billedThey really were missedPASS
Archived jobs: should billEnded work is never expectedPASS
Roster clashes where Jobber shows a different cleanerClashes are realPASS
Calendar events marked as clashing = 2 x clashesEvery clash is visible on the rosterPASS
Calendar events = active jobsEvery live job is on a calendar, nothing ended isPASS
Codes found = codes moved to 02 Site AccessEvery code is kept, just not in the calendarPASS
Calendar events with an access code in the textCodes never reach a phone calendarPASS
Drive folders = customers + 6 x locationsFolder plan is completePASS
Active jobs with no waveEvery job has a cutover datePASS
Active jobs across waves = active jobsWaves cover everything oncePASS
Gate open items: formula = engine (cells that differ)Gate logic agrees with the enginePASS
Pilot gates passedThe pilot can go livePASS
Rostered hours = active jobs' weekly hoursLoad covers every jobPASS
Rostered hours: workbook = engine (cleaners that differ)Same load either wayPASS
Exceptions: billing rows = rows needing a fixEvery billing fix is on the registerPASS
Exceptions: roster rows = clashesEvery clash is on the registerPASS
Engine regression: job status disagreementsEngine matches the answer key on every jobPASS

Status read from the sample workbook. Each check is a formula, not a typed value.

05Handover

Everything is handed over in editable files you own, with the steps written down so your team is not dependent on me.

In this work sample

A commercial cleaning business: 7,313 visits, 363 recurring jobs, 884 QBO invoices and 60 cleaners, in a 27-tab workbook with 16,894 formulas and 32 controls.

  1. QBO recurring templates corrected and documented
  2. Calendars, Drive folders and the restricted access sheet
  3. Migration workbook with the job status list and gates
  4. Migration SOP in Word and PDF
  5. Jobber archive export kept for reference

06Files in this work sample

Screens from the sample files. Select one to open it full size.

Dashboard tab: scope, matching, rates, billing, roster, calendar, Drive, cutover and controls, every figure a formula
Exhibit 6Dashboard tab: scope, matching, rates, billing, roster, calendar, Drive, cutover and controls, every figure a formula

Jobber-to-Google-and-QBO-Migration.xlsx › Dashboard

Rate Reconciliation tab: each Jobber job against its QBO templates, with the status worked out by formula, next action and owner
Exhibit 7Rate Reconciliation tab: each Jobber job against its QBO templates, with the status worked out by formula, next action and owner

Jobber-to-Google-and-QBO-Migration.xlsx › Rate reconciliation

Billing Check tab: what each job should have been billed each month against Jobber and QBO invoices
Exhibit 8Billing Check tab: what each job should have been billed each month against Jobber and QBO invoices

Jobber-to-Google-and-QBO-Migration.xlsx › Billing check

Calendar Build tab: one recurring Google Calendar event per active job, by cleaner and wave
Exhibit 9Calendar Build tab: one recurring Google Calendar event per active job, by cleaner and wave

Jobber-to-Google-and-QBO-Migration.xlsx › Calendar build

Cutover Waves tab: the pilot passes all six gates; each regional wave stays BLOCKED until its open items reach zero
Exhibit 10Cutover Waves tab: the pilot passes all six gates; each regional wave stays BLOCKED until its open items reach zero

Jobber-to-Google-and-QBO-Migration.xlsx › Cutover waves

Controls tab: 32 formula controls, all PASS
Exhibit 11Controls tab: 32 formula controls, all PASS

Jobber-to-Google-and-QBO-Migration.xlsx › Controls

Report page: target process across the office, Google Calendar, the cleaner, Google Drive and QBO
Exhibit 12Report page: target process across the office, Google Calendar, the cleaner, Google Drive and QBO

Jobber-Migration-Report.pdf · page 7

SOP-01: moving a site from Jobber and every change after
Exhibit 13SOP-01: moving a site from Jobber and every change after

Jobber-Migration-Report.pdf

Overview of the Jobber migration work sample: jobs reconciled, over- and under-billing for August to October, calendar events and controls
Exhibit 14Overview of the Jobber migration work sample: jobs reconciled, over- and under-billing for August to October, calendar events and controls

PREVIEW.png · one-page overview

FilesDownload the work sample
FileWhat it isSize
Jobber-to-Google-and-QBO-Migration.xlsxWorkbook: Jobber and QBO exports, customer, site and template matching, rate reconciliation, three-month billing check, roster clashes, cleaner load, access notes, calendar build, Drive plan, cutover waves and gates, controls and test log654.1 KB
Jobber-Migration-Report.pdfReport (19 pages): data profile, findings, options, target design, matching, reconciliation, billing check, roster, calendar, Drive, waves and gates, controls, tests, cutover plan, risks, SOP750.4 KB
Executive-Summary.pdfOne-page executive summary132.6 KB
Migration-SOP.pdfSOP-01: moving a site and every change after (PDF)56.6 KB
Migration-SOP.docxSOP-01, editable Word file37.6 KB

Tell me what’s bugging you and I’ll tell you where I’d look first.

Send a short note on Upwork about what is slowing the business down. I’ll reply with where I’d start, and whether the US$300 Systems Health Check is the right first step.