Xero Tracking Categories: The Two-Limit Problem That Breaks Management Reporting

4 May 2026

5 mins read

Xero Tracking Categories: The Two-Limit Problem That Breaks Management Reporting

If your gut tells you there's a better way of doing this, trust your instincts.

Jarvin Ong

Open any Xero file. Go to Settings → Advanced → Tracking categories. Count the slots.

Two.

That's it. That's the ceiling on how many dimensions of your business you can tag a transaction with. A SaaS company that wants to slice revenue by product, region, channel, and acquisition cohort? Pick your two favourites — and build the rest in Excel.

The Xero tracking categories limit isn't a feature request you file and wait on. It's a structural limit that's been there for years, and it shapes — or quietly deforms — how every mid-market Xero shop does management reporting.

Why the limit exists (and why it's not changing)

Tracking categories in Xero are implemented as two extra tag columns on the general ledger. That's how the reports index them, how the API exposes them, and how the UI renders them in the P&L. Adding a third category isn't a toggle. It's a schema change that ripples through every report and every integration.

Which is why, quietly, Xero has never shipped it.

For small companies with one product line and one location, two is fine. Region × department? Sorted. But the moment you run two entities, three product lines, four channels, or a matrix of cost centres, you've got a reporting problem you can't fix inside Xero.

What hitting the limit actually looks like

A few patterns we see over and over:

The finance manager at a multi-outlet F&B group. They want P&L by outlet (tracking category 1: Location) and by revenue stream — dine-in, delivery, retail (tracking category 2: Channel). Then the CEO asks for gross margin by menu category. There's no third slot. So they start tagging it onto contacts, or they invent "Outlet-Channel" as a concatenated value and try to slice it later. (We've written separately about what good F&B reporting from Xero actually looks like.)

The accounting firm doing client reporting. One tracking category goes to Department, one to Project. The client asks for revenue by salesperson. The bookkeeper shrugs, and it becomes a Friday afternoon Excel job.

The group controller. Three entities, each with their own use of the two slots, none aligned. Consolidation means manually re-mapping tracking values across files because entity A uses Location + Department, entity B uses Project + Cost Centre, and entity C uses all four but only two are visible.

None of these are edge cases. They're the default shape of a business that's grown past "one office, one product".

The workarounds, ranked from bad to worse

1. Concatenating values into one category. "SG-Retail-Online", "SG-Retail-InStore", "MY-Wholesale-Online". Works for flat filtering. Dies the moment you want to aggregate along one dimension. You end up with 40 tracking values and no clean way to roll them up.

2. Abusing the chart of accounts. Spin up "Revenue — Product A — Online", "Revenue — Product A — InStore", and so on. Your P&L goes from 80 accounts to 400. Nobody can read it. And every new product doubles the maintenance.

3. Tagging on contacts or items. You can tag customers or inventory items with custom data, but neither flows into the P&L as a reporting dimension. You'll need something outside Xero to join it back.

4. Exporting to Excel and pivoting by hand. The default. Pull the general ledger, add a VLOOKUP to map entity × product × region, pivot. Works. Takes half a day every month. Breaks the moment someone changes a tracking value.

What good looks like

The fix isn't inside Xero. It's a reporting layer that treats your Xero data as raw material and adds the dimensions you actually need — pulled from contacts, items, invoice line descriptions, branch codes, or a separate mapping table you maintain.

In practice that means:

  • A canonical entity × location × department × project × channel grid, built outside Xero from joined sources
  • Tracking categories used for the two most-queried dimensions only
  • The rest enriched from contacts (customer → region, salesperson), items (SKU → product line), or an external mapping
  • Reports rebuilt from the enriched dataset, not from Xero's native P&L

This is how finance teams with multi-dimensional needs actually operate. They stop trying to make Xero do something it wasn't built for, and they add the layer it's missing. It's the same shape of problem as native budget vs actual reports or proper monthly management accounts — Xero holds the data, but the report lives elsewhere.

A note on the Xero API

If you're thinking "surely the API exposes more dimensions" — it doesn't. Tracking categories come back on journal lines exactly as they're stored: two slots, same cap. What the API is good for is pulling the raw ledger plus contacts, items, and invoice line descriptions together so you can join and enrich them externally. We've covered the gotchas of building directly on the Xero API — read that before you spin up a project.

Where Cheetah fits

Most Cheetah engagements start with a version of this conversation: "We want to slice our P&L by four things, and Xero only lets us do two." We build the enrichment layer — pulling tracking, contacts, and line-level metadata via the Xero API, joining it against whatever mapping you keep, and rendering the report the CFO actually wanted.

If that's the Excel job eating your month-end, Cheetah is worth a look.

The short version

Xero's two-category limit isn't a bug and it isn't going away. But it also isn't a reason to accept flat, single-dimensional P&Ls. The dimensions you need are all sitting in your data — across tracking, contacts, items, and invoices. Getting them into one report is a build-a-layer problem, not a wait-for-Xero problem.

Jarvin
Written by
Jarvin Ong

Jarvin is a product builder who's spent years deep in the worlds of finance and software. From his years of building reports manually, he understands the unique needs of businesses in financial and operational reporting – security, auditability, scalability, and most importantly, customisation.

He has built hundreds of the most complex reports the hard way, figured how to automate them reliably, and is now on a mission to help businesses and advisory firms do the same.

Ready to Hunt at Cheetah Speed?

Stop prowling through generic solutions.
Let us show you a better way to hunt.