Work sample 06 / 15Data, Reporting & Dashboards

Finance and operations dashboard over Jobber and Xero, tied back to the books

How I build one monthly dashboard for revenue, margin, quotes, technician load and cash from Jobber and Xero, with every Jobber invoice tied to Xero first.

Area
Data, Reporting & Dashboards
Tools
Jobber · Xero · Looker Studio · Excel
Typical scope
US$2,000–4,000
Timeline
About 4 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

Trades businesses that run jobs in Jobber and books in Xero often pull monthly figures by hand from both. Each report counts revenue its own way, and when an invoice fails to sync or is edited in Xero afterwards, nobody notices until a statement looks wrong.

The work is to agree one definition for each number, tie every Jobber invoice to Xero, and build a dashboard that refreshes from the exports without retyping.

Owners usually notice it as

  1. Revenue on the job system never equals revenue in Xero
  2. Completed jobs that were never invoiced
  3. Quote conversion and technician load tracked in separate spreadsheets
  4. Monthly reporting takes days and still gets questioned

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
Metric definitionsRevenue, gross margin, quote conversion, jobs done, technician load and debtors, each defined in writing
Tie-outEvery Jobber invoice matched to Xero: matched, amount differs, not in Xero, Xero only, voided duplicates
Data modelClients, quotes, jobs, visits, invoices and payments joined on stable keys
DashboardLooker Studio pages for revenue and margin, quotes, technicians, cash and exceptions
ExceptionsNot invoiced, sync failures and overdue debtors listed for action each month
Not includedBAS, payroll and STP; changes to how jobs are priced
Exhibit 2Typical data volumes for this kind of project (log scale)
Visits6,807
Jobs6,330
Xero invoices6,047
Quotes2,778
Customers2,140
Months of history24

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–4
M1 Definitions and exportsMetric definitions agreed, Jobber and Xero exports profiledWeek 120%
M2 Tie-outEvery Jobber invoice tied to Xero, exceptions listedWeek 230%
M3 DashboardLooker Studio pages and the refresh workbookWeeks 2–335%
M4 Review and handoverOwner review, refresh SOP, walkthroughWeek 415%

Typical scope for this kind of project: US$2,000–4,000

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

03How I approach it

Exhibit 4How the work flows, from the first record to sign-off
φ = 1.61801JOBBERjobs + quotes02XEROinvoices03TIE-OUTmatch04MODELone source05CHECKScontrols06DASHBOARDmonthly6 STAGES · ONE PASS FROM FIRST RECORD TO SIGN-OFFi. agree what each number meansii. model the data onceiii. make the refresh boring01JOBBERjobs + quotes02XEROinvoices03TIE-OUTmatch04MODELone source05CHECKScontrols06DASHBOARDmonthly

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

  1. 01

    Agree what each number means

    Revenue is read from Xero; Jobber supplies the operational detail. Every metric gets a one-line definition.

  2. 02

    Tie the systems out first

    No chart is built until every Jobber invoice is matched to Xero or explained.

  3. 03

    Model the data once

    One table per entity, joined on keys, so every page reads from the same source.

  4. 04

    Show exceptions next to the numbers

    Unbilled jobs and sync failures sit beside the revenue they affect.

  5. 05

    Make the refresh boring

    Drop in new exports, run the check, review the exceptions page.

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. Dashboard revenue equals Xero revenue for every month
  2. Every Jobber invoice in exactly one tie-out status
  3. Jobs done equals completed visits rolled up
  4. Gross margin uses the agreed cost definition
  5. Debtor ageing re-adds to the Xero balance
Exhibit 5Controls in the sample files: 19 of 19 pass
CheckWhat it catchesStatus
Months in the seriesTwo full years, so every month has a comparativePASS
Monthly revenue adds up to every Xero invoiceNo invoice falls outside a monthPASS
Revenue = engine (Looker Studio data source)Workbook and dashboard agreePASS
Two 12-month windows add up to 24 monthsYear-on-year uses every month oncePASS
Jobs done = engineSame definition as the calculated fieldPASS
Callbacks = engineCallbacks counted oncePASS
Every Xero invoice: ex GST + GST = total (rows that differ)Clean source dataPASS
Every Xero invoice: amount due = total - paid (rows that differ)Debtors are rightPASS
Debtors ageing buckets add up to debtorsThe ageing chart shows every dollar owedPASS
Debtors = engineSame as Xero aged receivablesPASS
Show all 19 checks
CheckWhat it catchesStatus
Tie-out statuses cover every rowNothing unclassifiedPASS
Amount differs: total difference = engineEdited-in-Xero invoices are measuredPASS
Not invoiced after 14 days = engineUnbilled work is listedPASS
Done jobs with revenue but no invoice numberRevenue on a job always traces to an invoicePASS
Approval rate = engineSame definition as the calculated fieldPASS
Technician-months above the 120% overtime ceilingHours are not double counted; peak months over 100% are overtime and show on the dashboardPASS
Visit hours: technicians tab = jobs tabEvery completed visit belongs to a jobPASS
Gross margin = revenue - labour - materials on every job (rows that differ)Margin is not a plugPASS
Engine regression: tests that disagree with the answer keyRules hold on every rebuildPASS

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

24 months of a heating and cooling business: 6,330 jobs, 6,807 visits and 6,047 Xero invoices, every Jobber invoice tied to Xero, with 19 controls and 10 tests.

  1. Looker Studio dashboard and data sources
  2. Refresh workbook with the tie-out and controls
  3. Metric definitions sheet
  4. Monthly refresh SOP
  5. A recorded walkthrough of each page

06Files in this work sample

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

Jobs and technicians page: utilisation by technician and month, callback rate, quote approval by lead source and revenue per visit hour
Exhibit 6Jobs and technicians page: utilisation by technician and month, callback rate, quote approval by lead source and revenue per visit hour

Looker-Studio-Dashboard.pdf › Jobs and technicians

Cash and data checks page: invoiced against payments by month, debtors ageing, the Jobber-Xero tie-out and jobs not invoiced
Exhibit 7Cash and data checks page: invoiced against payments by month, debtors ageing, the Jobber-Xero tie-out and jobs not invoiced

Looker-Studio-Dashboard.pdf › Cash and data checks

Monthly KPIs tab: 24 months of revenue, jobs, callbacks, margin and quotes, every cell a formula over the data tabs
Exhibit 8Monthly KPIs tab: 24 months of revenue, jobs, callbacks, margin and quotes, every cell a formula over the data tabs

KPI-Dashboard-24-Months.xlsx › Monthly KPIs

Controls tab: 19 formula controls, all PASS
Exhibit 9Controls tab: 19 formula controls, all PASS

KPI-Dashboard-24-Months.xlsx › Controls

Dashboard overview: revenue by month and service line for 24 months against the same month a year earlier, with year-on-year scorecards
Exhibit 10Dashboard overview: revenue by month and service line for 24 months against the same month a year earlier, with year-on-year scorecards

Looker-Studio-Dashboard.pdf › Overview

FilesDownload the work sample
FileWhat it isSize
KPI-Dashboard-24-Months.xlsxWorkbook (13 tabs): dashboard, 24-month KPI series, year on year, the four Looker Studio data source tabs, Jobber-Xero tie-out, not invoiced, field definitions, controls and test log1.6 MB
Looker-Studio-Dashboard.pdfThe three dashboard pages: Overview, Jobs and technicians, Cash and data checks157.9 KB
KPI-Dashboard-Report.pdfReport (10 pages): scope, the dashboard pages, year on year, data checks, controls, tests and handover849.5 KB
Executive-Summary.pdfOne-page executive summary111.7 KB
engine.pyEngine: fact tables, Jobber-Xero tie-out, KPI definitions, 24-month series, year on year and the test against the answer key17.7 KB
KPI-Dashboard-data-and-code.zipInputs as exported from Jobber and Xero (CSV), the Looker Studio data source tables, and the scripts that rebuild the workbook, dashboard and report930.8 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.