Work snippet 16 / 34Tracking + reporting

ServiceM8 to Xero with branch and service-line tracking across three entities

How I'd approach tracking categories for a service group with three legal entities and five branches, so ServiceM8 invoices and supplier bills carry the same Branch and Service line everywhere and the group adds up.

Work snippet with example figures.

Area
Tracking + reporting
Tools
ServiceM8 · Xero · Group workbook
Typical scope
US$2,200–3,800
Timeline
About 6 weeks · 4 fixed milestones

01Context

A service group with three legal entities: two trading companies, each with its own ServiceM8 account and Xero organization, and a property company that owns the buildings. Five branches work across the two trading companies. The owners and the finance lead want one view of profit by branch and by service line.

The systems in play

In the example the books are already in Xero and the jobs are already in ServiceM8. The gap is that tracking was added late and unevenly, so the branch reports cannot be trusted and the group cannot be added up.

Table 1Who uses what
SystemWhat it does for the business
ServiceM8Jobs, categories, branches and invoices. Branch coordinators work here.
Xero (three organizations)One ledger per entity, with the same chart of accounts and the same tracking structure.
Tracking categoriesBranch and Service line. Xero allows two active categories per organization, so these two have to be chosen well.
Group reporting workbookTakes each entity’s profit and loss by tracking option and adds them up with an entity column.
AccountantReviews the structure and any history that is re-tagged.

02Problem

What the owner sees

  1. A branch profit report with a large Unallocated column
  2. Branch figures that change depending on who ran the report
  3. Costs that are tagged and revenue that is not, or the other way round
  4. Three entities that cannot be added up without a day of work

Tracking is only as good as the least-tagged transaction. If it reaches Xero on invoices but not on bills, or differs by entity, every branch margin is wrong by an amount nobody can name.

Table 2Where the drift starts
Everyday situationWhat goes wrong
Job category with no mappingThe invoice reaches Xero with no service line
Supplier billsThe job system link covers sales invoices, so bills are tagged by hand or not at all
Branch renamed or mergedOld option names stay in Xero and split a branch in two on reports
Different names per entityEntity A says North and entity B says N, so the workbook cannot add them
Three or more dimensions wantedXero allows two active categories, so a third is squeezed into the names and becomes unreadable
History before tracking existedPrior periods show as Unallocated and break year-on-year comparison

03Approach

Four steps, in this order. Each one ends with a result that is checked.

  1. LookA read-only review of the three organizations, the ServiceM8 categories and branches, and the last 12 months of Unallocated revenue and cost.
  2. Agree the structureThe two categories, their options, the owner of each and the naming rule for every entity are written down.
  3. Set up and connectTracking options are created and mapped from ServiceM8 on sales invoices. Rules for bills are agreed and set up in Xero.
  4. Check and re-tagWeekly checks catch untracked lines. History is re-tagged by rule, with the accountant’s approval.
Table 3Tracking structure agreed in writing (example settings)
ItemExample setting
Category 1: BranchNorth, South, East, West, Central, Head office, Unallocated
Category 2: Service linePlanned maintenance, Reactive repair, Installation, Capital works, Overhead
Same names everywhereIdentical option names and spelling in all three organizations
ServiceM8 to Xero mappingServiceM8 branch maps to Branch. ServiceM8 job category maps to Service line.
BillsBranch and Service line chosen when the bill is coded. A bill rule per supplier sets the usual values.
Head office costsTagged Head office and Overhead, and spread by a stated rule in the workbook only
OwnershipThe finance lead owns the structure. A new option needs a written request.

04What the setup includes

What the setup includes, and why each piece is there. The detail of how it is configured is agreed in the scoping call.

Show the setup, layer by layer
Table 4The setup, layer by layer
LayerWhat is set up and why
Tracking optionsCreated with the same names in all three organizations, so a total by option means the same thing everywhere.
ServiceM8 mapping tableOne row per ServiceM8 branch and job category, with the Xero option it maps to. A job category with no row is listed before it reaches Xero.
Sales invoicesTracking on every invoice line from the job’s branch and category. Checked on a test invoice per branch and per service line.
Supplier billsBill rules per supplier, and a required tracking check before approval, because the job system link does not tag bills.
Intercompany chargesCharges between entities carry the same Branch and Service line on both sides, so they cancel in the workbook.
Group workbookProfit and loss by Branch and Service line for each entity, then combined by option with an entity column and a total that ties to each organization.
Untracked lines reportA weekly list of invoice and bill lines with no value in either category, by entity and by owner.
History re-taggingPrior months assigned by rule on a copy first, then in batches after the accountant approves. Locked periods are listed, not forced.

How the data moves

  1. ServiceM8 job completed
  2. Invoice reaches Xero with Branch and Service line
  3. Supplier bill coded with both
  4. Weekly untracked lines report
  5. Profit and loss by option per entity
  6. Group workbook
  7. Review with the finance lead

05Edge cases

These are agreed with the finance lead and tested on one closed month in each organization.

Table 5Edge cases and how each is handled
SituationHow it is handled
Job done by one branch for anotherRevenue is tagged to the branch that owns the customer. The cost of the helping team stays with the branch that paid it, with a note.
Invoice with two job categoriesEach line keeps its own Service line, so the split is in the report
ServiceM8 job category created after set-upAppears on the mapping list as unmapped and is held until the finance lead assigns it
Supplier bill covering two branchesSplit into lines, each with its own Branch
Branch closed or mergedThe old option is archived in Xero and its history is re-tagged to the surviving branch by a dated rule
Credit noteCarries the same tracking as the invoice it reverses, so the branch figure is net
Entity without ServiceM8Tagged by hand under the same names, and included in the untracked lines report
Third dimension wanted (for example customer type)Kept in the job system and in the workbook, not as a third Xero category
Tracking changed on an approved invoiceAllowed for a named user, and recorded in a change log with the old and new values
Period locked by the accountantNothing is edited. The transactions are listed for the accountant to decide.

06Worked example

The tables below use one month for one entity with example figures. They show the shape of the checks, not a client result.

Table 6Profit and loss by Branch, one month (example data, US$)
BranchRevenueDirect costGross marginMargin %
North61,240.0027,170.0034,070.0055.6%
South54,890.0025,105.0029,785.0054.3%
East30,125.0012,840.0017,285.0057.4%
West27,560.0012,600.0014,960.0054.3%
Central40,285.0018,725.0021,560.0053.5%
Unallocated1,835.00910.00925.0050.4%
Total, ties to the Xero report215,935.0097,350.00118,585.0054.9%
Table 7Revenue by Service line, same month (example data, US$)
Service lineRevenueShare
Planned maintenance84,500.0039.1%
Reactive repair59,730.0027.7%
Installation37,280.0017.3%
Capital works32,695.0015.1%
No service line1,730.000.8%
Total215,935.00100.0%
Table 8Unallocated revenue, before and after (example data, US$)
PeriodMeasureTotal revenueUnallocatedShare
Before: last 12 monthsRevenue2,574,300.00416,350.0016.2%
After set-up: a typical monthRevenue215,935.001,835.000.8%
Table 9Mapping table excerpt (example settings)
ServiceM8 valueTypeXero tracking optionStatus
Branch: NorthBranchNorthMapped
Branch: Head OfficeBranchHead officeMapped
Category: Quarterly serviceJob categoryPlanned maintenanceMapped
Category: Emergency calloutJob categoryReactive repairMapped
Category: New fit-outJob categoryCapital worksMapped
Category: MiscJob categoryNone yetHeld for the finance lead

07How the result is checked

The check is simple: the totals by option must add up to the Xero report with no tracking filter, and the untracked list must be short and owned.

Table 10Checks and pass conditions
CheckHowPass condition
Branch totalsSum of all Branch options compared to the Xero profit and loss with no tracking filterEqual to the cent, with Unallocated shown as its own line
Service line totalsSame test on the second categoryEqual to the cent
Test invoicesOne per branch and per service line, created in each entityEach reaches Xero once with both values
NamesOption names compared across the three organizationsIdentical spelling, no extra options
Untracked linesWeekly list of lines with no valueZero, or each line has an owner and a due date
Group workbookEntity totals compared to each organizationEqual, and intercompany nets to zero
HistoryA spot-check of re-tagged transactions against the rule and the batch logEach change recorded, none in a locked period

08Scope and milestones

A fixed scope agreed in writing before anything starts. Each milestone is paid when you sign off its deliverable.

Table 11Scope: what a project like this covers
AreaIncluded
AuditRead-only review of the three Xero organizations, the ServiceM8 categories and branches, and 12 months of untracked lines, a 45-minute call, written findings and a fixed quote
StructureThe two categories, their options and the naming rule, in writing and signed by the finance lead
Xero set-upTracking options created and checked in all three organizations
ServiceM8 mappingBranch and job category mapping with a held list for anything unmapped
Bill rulesBill rules per main supplier and a coding checklist for the team
Group workbookProfit and loss by Branch and Service line per entity, combined, with a tie-out tab
History re-taggingUp to 18 months re-tagged by rule on a copy first, then in approved batches
HandoverWritten SOPs, a recorded handover video and files you own, plus 14 days of fixes after go-live
Not includedTax filing and statutory returns.
Also outside the scopeChanges to the chart of accounts. Budgeting. Moving the group to a different accounting package. Software subscriptions (billed to you by the vendors).
Table 12Fixed milestones
MilestoneDeliverableTimingShare
M1 Audit and structureFindings, a fixed quote and the tracking structure in writingWeek 120%
M2 Set-up and mappingOptions, mapping and bill rules live, test invoices passWeeks 2 to 330%
M3 Group workbook and checksWorkbook ties out, untracked lines report runningWeek 430%
M4 History and handoverApproved re-tagging, SOPs, handover video, 14 days of fixesWeeks 5 to 620%

Typical scope for this kind of project: US$2,200–3,800

About 6 weeks across 4 fixed milestones. The Systems Audit (US$300, fixed) comes first and confirms the scope.

Describe what is going wrong between your job system and your books, and I'll say where I'd look first.

Send a short note through the form on the home page. I will reply with where I would start, and whether the US$300 Systems Audit is the right first step.

Hire me on Upwork (opens in a new tab)Hire me on Freelancer (opens in a new tab)