
Case Profitability Reports in Xero: Why Matters, Jobs and Cases Don't Show Up (And What To Do Instead)
The matter number made it into the invoice description. Nobody ever pulls it back out.
The managing partner at a law firm asks which matters made money this year. Fee earners know instinctively — the litigation file that ran three times its estimate, the conveyancing job that was profitable before anyone opened the file. But asking Xero to prove it produces a P&L, an aged debtor list, and silence on the one number that was actually asked for.
A case profitability report — revenue and real cost, tied to a specific matter, reconciled to the ledger — is the number every law firm assumes exists somewhere in its accounting stack. It doesn't. Xero has no concept of a case, a matter or a job. What it has is a generic Projects module built for agencies, and two tracking category slots that are usually already spent on something else. The same gap catches consultancies and engineering practices that bill by case or job rather than by month, but it shows up first — and worst — in a law firm's numbers, because a matter also carries client money Xero was never built to see.
This post is about that specific gap, anchored in a law firm's numbers — not the general project-profitability problem we've covered separately, which is the version of the same gap agencies and studios hit. Most of what follows carries over directly to any firm billing by case or job through a practice management system of its own.
Where native Xero stops
Xero has no native concept of a matter. "Project" is the closest primitive, and it's the wrong shape for most professional services work — a matter isn't a fixed-scope deliverable with a start and end date, it's an open file that accrues time, disbursements and fee arrangements over months or years, sometimes with several distinct engagements running under one client relationship.
Xero Projects wasn't built for this economics. Staff cost comes from a manually entered rate per person rather than payroll, so the moment a salary changes or a rate is never updated, every margin figure understates or overstates. There's no overhead allocation, so a file that "makes" 45% before rent, insurance and support staff looks nothing like the number partners actually split at year-end.
Tracking categories are usually already spent. A firm running multiple practice areas or offices has typically already committed its two active slots to Practice Area and Entity — there's no third slot left for Matter. And even where a slot is free, Xero caps categories at 100 recommended options and firms running hundreds of matters a year have to archive closed ones to stay under it, which quietly breaks year-on-year comparison. We've written about the two-slot ceiling in detail — this is one of its most common casualties.
Projects and tracking don't talk to each other. Even a firm using both — Projects for time, tracking for practice area — can't filter one by the other in a native report. It's a live, unresolved request on Xero's own product board, not an edge case anyone's missed.
The practice management system doesn't hand the reference across. Most firms of any size run Clio, LEAP, Actionstep or something similar alongside Xero, and it's the practice management system, not Xero, that owns the matter number, the time entries and — critically — trust accounting. Client trust funds are held in a separate ledger for compliance reasons, kept apart from the firm's operating accounts by rule rather than convenience, and that ledger doesn't reach Xero at all — nor should it, since a profitability report needs billed and collected revenue, not funds the firm is only holding. But even the parts that should reach Xero often don't cleanly: Clio's own documentation confirms the client reference number isn't a field that syncs automatically, and the recommended workaround is to type it into the invoice ID or line description by hand so it survives the sync. Firms have been doing exactly that for years — the matter number is sitting right there in thousands of invoice descriptions. Almost nobody has built the report that reads it back out.
What hitting the wall looks like
The managing partner at a 20-partner law firm. Matters are billed through the practice management system, which syncs invoices to Xero with the matter number buried in a free-text description. At year-end, "which practice area is actually profitable" means exporting every invoice, regex-ing the matter number back out of the description column, and joining it to a separate payroll cost extract nobody has automated. It happens once a year, badly, under deadline. It's the same shape of problem as reconstructing management accounts that were never built to reconcile in the first place.
The partner at a boutique advisory firm. Cases are billed as fixed fees against milestones, and one of the firm's two tracking slots went to "Client Type" a year before anyone thought to ask about case-level margin. Now there's no slot left, and the workaround is a "Case" note in the invoice reference that three different admin staff format three different ways, so nothing rolls up cleanly.
The ops lead at a mid-size engineering consultancy. Job numbers have been prefixed onto every invoice line since the firm's first year on Xero — "J-4471: Site survey" — purely as a habit, never with a downstream report in mind. The data has been sitting there the whole time. Building on top of the Xero API directly to pull it back out has its own pitfalls worth knowing first.
None of these are unusual firms. They're the default shape of any professional services business that bills by matter, case or job and runs its accounts in Xero.
What a working case profitability report actually looks like
A case profitability report worth trusting has a handful of specific properties, on top of the general ones any segment report needs:
- A stable reference that survives every system it passes through. Because Xero has no dedicated matter field, the reference has to be carried deliberately — in the invoice reference, or a disciplined prefix in the line description — and parsed back out downstream by code, not by whoever happens to be doing month-end.
- Real labour cost, reconciled to actual payroll, not a cost-rate guess entered once and never revisited.
- Overhead allocated on a stated, consistent policy, so a file's headline margin and its true margin aren't two different numbers depending on who's asking.
- Revenue that reflects work done, not just invoices raised. Fixed-fee and milestone matters need WIP and unbilled disbursements visible, the same way SaaS deferred revenue needs recognition separated from billing events.
- A clean boundary around trust money. Trust ledgers stay in the practice management system where compliance requires them; the report draws only on billed and collected revenue from the operating side.
- A tie-out to the firm P&L, so matter profits sum to firm profit and nobody has to explain a gap at partner meeting.
The workarounds, ranked
1. The practice management system's own reports. Clio and LEAP both ship matter-level profitability views. They're accurate for what they hold — time, fees, trust — but don't reconcile to the Xero P&L, because payroll, overheads and other operating costs live in Xero and never make it back into the practice management system's numbers.
2. A dedicated tracking category. Clean for as long as a slot is free and matter counts stay under the option cap. Most firms outgrow both within a couple of years.
3. Parsing the reference out of invoice descriptions. The most durable option, because the reference is already there — it just needs a consistent format going forward and a join built once against payroll and overhead data. It's real engineering work, not a report toggle.
4. The spreadsheet. Export the practice management system's billing data, export Xero's ledger, VLOOKUP them together by matter number, every quarter, by hand. Works until the person who built it leaves.
Where Cheetah fits
Case and matter profitability is a recurring build for us — usually for a law firm, advisory practice or engineering consultancy that's outgrown its two tracking slots or its practice management dashboard, and wants one number that ties out to the accounts. We pull invoices, bills and payroll from Xero, join them to the matter or case reference wherever it's been recorded, encode the firm's overhead policy, and produce a per-matter P&L that updates itself.
If working out which files actually paid for themselves still means an annual spreadsheet exercise, Cheetah is worth a look.
The short version
Xero can tell you what a matter was invoiced and, if the reference survived the sync, which client it belongs to. It can't tell you what the matter cost in real labour, what share of overheads it carried, or how that sits against trust money it was never meant to see — and those are the things "case profitability" actually means. The data isn't missing. It's scattered across a practice management system, a payroll run and a description field nobody parses. Joining it once is a solvable build, and cheaper than pricing next year's fee arrangements off margins nobody actually measured. For the same problem outside professional services — agencies, studios, project-based firms — see our piece on project profitability, and for the reporting layer underneath both, what a custom Xero report actually takes to build.
Frequently asked questions
- Does Xero support case or matter profitability natively?
- No. Xero has no concept of a case, matter or job. The closest native tools are the Projects module, which relies on manually entered cost rates and doesn't allocate overhead, and tracking categories, which are capped at two active slots and are usually already spoken for by department, practice area or entity.
- Can I track matter profitability if I already use Clio, LEAP or Actionstep alongside Xero?
- Practice management systems handle billing and trust accounting for the matter and typically sync invoices and bills through to Xero, but the matter or client reference number isn't a field that carries across automatically. It has to be carried by hand, usually in the invoice reference or a line item description, for it to reach Xero at all.
- What's the difference between job costing and matter or case profitability?
- They're the same underlying problem — attributing revenue and cost to a unit of work smaller than the whole P&L — with different vocabulary attached. Trades and construction firms call it job costing, law firms call it matter profitability, consultancies and insurers call it case profitability. The gaps in Xero are identical regardless of what the unit is called.
- Where does trust accounting fit into a matter profitability report?
- It doesn't, by design. Client trust funds are held in a separate ledger from the firm's operating accounts for compliance reasons, and that ledger usually lives in the practice management system, not Xero. A matter profitability report should draw on billed and collected revenue from the operating side, never on trust balances.

A finance professional turned product builder, Jarvin has built hundreds of reports by hand and knows what financial and operational reporting demands: customisability, auditability, scalability, and security. Having automated that work reliably, he's now helping advisory firms and finance teams do the same.