Xero Custom Reporting: The 5 Walls Add-Ons Can't Fix

You've set up two tracking categories in Xero — Department and Project. You can pull a P&L filtered by Department. You can pull a P&L filtered by Project. But you can't build a single report that shows revenue by Department and Project at the same time. So you export to Excel. Build a pivot. Paste it into the board deck. Again.
The problem isn't that you're using Xero wrong. It's that you've outgrown what Xero reporting was designed to do.
Here's what you'll learn: Xero reporting works well for standard accounting — P&L, Balance Sheet, GST returns. But it hits hard ceilings at multi-dimensional tracking categories, cross-source data, custom business KPIs, and live dashboards. Add-on tools like Fathom and Spotlight Reporting enhance your financial reporting, but they can't fix these architectural limits. The real solution is connecting Xero alongside your CRM, payments, and operational data into a single platform — so anyone on your team can get the answers they need without exporting to Excel.
What Xero Reporting Actually Gives You
Before we talk about what's missing, let's give Xero its due.
Xero ships with approximately 50 built-in report types across several categories:
| Category | What you get |
|---|---|
| Financial statements | Profit & Loss, Balance Sheet, Statement of Cash Flows |
| Receivables | Aged Receivables Summary & Detail, Invoice Activity |
| Payables | Aged Payables Summary & Detail, Bills Activity |
| Sales | Sales by Item, Sales by Customer |
| Expenses | Expense Claims, Purchase Detail |
| Tax | GST Return, Sales Tax Report |
| Tracking | Tracking Summary (by individual tracking category) |
Xero supports up to two tracking categories — the most common setup is something like Department + Location, or Division + Project. You can filter most reports by one tracking category at a time, and Xero's custom report layouts let you rename headings, add formula rows, and save templates for reuse.
Xero also now includes Analytics by Syft on all plans — giving you visual dashboards and performance snapshots within the Xero ecosystem.
For a small business that needs standard financial statements and basic accounting reports, this is genuinely solid.
The problem starts when you need something Xero wasn't built to do.
The 5 Walls You Hit With Xero Reporting
These aren't edge cases. They're the specific frustrations that send people searching for "Xero custom reporting" — and every one of them is a structural limit, not a settings problem.
Wall 1: Tracking categories don't give you multi-dimensional reports
Xero's two tracking categories are useful for tagging transactions — Department and Project, or Region and Cost Center. But Xero's reporting UI only lets you filter by one tracking category at a time. You can see a P&L for the Sales department. You can see a P&L for Project Alpha. You can't build a P&L that shows departments as rows and projects as columns — the kind of matrix view you'd need to understand which projects are profitable within which departments.
Technically, Xero's API supports filtering by both tracking categories simultaneously. But that requires writing code against the Profit and Loss endpoint — and even then, you get a filtered result, not a pivot table. You're intersecting two categories (Sales + Project Alpha), not building a dimensional view across all combinations.
As one practitioner on r/FPandA put it: "It is the requirement to use multiple tracking categories at once that many programs can't deal with." And that's with only two tracking categories. If your business needs three dimensions of analysis — Department, Region, and Project — Xero's hard limit of two tracking categories per line item means you literally can't tag the data you need.
One finance ops lead we heard from described the routine: every month before the board meeting, they export the P&L, rebuild the pivot table in Excel, manually match departments to projects, and paste it into a slide deck. Their CFO does the same thing in a different spreadsheet. When the board asks about divisional margins, they give two different answers.
Wall 2: Xero only reports on Xero data
This is the wall that matters most — and the one no other article about Xero reporting addresses directly.
Your revenue might be in Stripe. Your customers are in HubSpot. Your product usage data lives in a database. Your ad spend is in Google Ads. And your expenses are in Xero. Xero can only report on what's inside Xero. It has no mechanism to query, join, or visualize data from other sources.
So the board asks: what's our customer acquisition cost this quarter? Revenue is in Xero. Marketing spend is in Google Ads and HubSpot. New customer counts are in your CRM. You pull three exports, paste them into a spreadsheet, and make three assumptions nobody writes down. The number you present is defensible — but the next time someone pulls it, the assumptions are different and the answer changes. Nobody trusts the number, because there isn't one number.
Xero's own apps marketplace handles this by syncing data into Xero — turning Stripe charges into Xero invoices, for example. But the reporting still only sees Xero data. And when you flatten external data into Xero's chart of accounts, you lose the granularity that made it useful. Stripe charge metadata, HubSpot deal stages, product usage events — none of that survives the translation into journal entries.
Even Syft from Xero — Xero's own analytics platform, included on all plans — only operates on Xero data. Xero is making Xero smarter about Xero. It's not making Xero aware of your entire business.
Wall 3: Accounting reports are not business metrics
Xero reports on the chart of accounts. That gives you revenue, expenses, assets, liabilities — the language of accounting.
But growing businesses need metrics that accounting systems don't track:
| What you need | Why Xero can't do it |
|---|---|
| Customer Acquisition Cost (CAC) | Requires marketing spend (Google Ads, HubSpot) / new customers (CRM). Data lives outside Xero. |
| Monthly Recurring Revenue (MRR) | Requires subscription logic. Xero records invoices, not subscription events. You could approximate MRR from recurring invoices, but it misses churned customers, downgrades, and expansions. |
| Customer Lifetime Value (LTV) | Requires cohort analysis across revenue and churn data. |
| Burn rate | Calculable from Xero data, but not a native metric — you'll export and calculate manually. |
| Revenue per employee | Requires headcount data, often in an HRIS, not Xero. |
Xero has no place to define a metric once and have every report use that same formula. Instead, each person builds their own spreadsheet with their own calculation, and you get three different answers to the same question.
Wall 4: The API makes integration harder than it should be
This is the wall that affects every reporting tool that connects to Xero — and the one that explains why so many add-ons struggle with tracking categories.
The Trial Balance endpoint — which many reporting tools build against — has zero tracking category parameters. Tracking data is accessible from the P&L, Balance Sheet, and Journals endpoints, but reconstructing a true multi-dimensional view across them is real engineering work — and most add-ons take the shortcut.
This is why you'll find reporting tools that say they "support tracking categories" in their marketing but waffle when you ask whether you can report across both categories at once. The API makes it expensive, so most tools ship single-category filtering and call it done.
Wall 5: Reports are snapshots, not live answers
When you run a Xero report, you get a point-in-time view. It reflects data as of that moment, but it doesn't update automatically, push alerts, or let someone else interact with it dynamically.
Syft from Xero improves this with interactive dashboards inside the Xero ecosystem. But you still can't set up threshold-based alerts ("notify me when monthly expenses exceed $50K"), schedule automated report delivery to Slack or email, or embed live views in other tools your team uses.
The structural reason: Xero is the system of record for your accounts, not the system of record for your business. A live dashboard of business performance has to sit somewhere that continuously ingests Xero plus everything else — not inside Xero itself. You know the routine: screenshot a Xero report, paste it into Slack, add a note saying "as of Tuesday." That's not reporting — that's copying homework.
Why Add-Ons Don't Actually Fix This
The standard recommendation is to add Fathom, Spotlight Reporting, or a Power BI connector. These tools are useful — but they solve a narrower problem than the one your board is asking about.
Add-ons enhance Xero data — they don't connect it
| Category | Examples | What they solve | What they don't |
|---|---|---|---|
| Financial reporting overlays | Fathom (from ~$55/mo), Spotlight Reporting (from $295/mo), Calxa (from ~AUD$174/mo) | Better visualizations, consolidation, KPI dashboards, board-ready financials — all from Xero accounting data. Calxa specifically handles tracking category grouping and side-by-side reporting. | Cannot join CRM, payment, or operational data. KPIs are accounting-derived only. |
| Spreadsheet connectors | Coefficient (~$59-99/user/mo), LiveFlow | Pull live Xero data into Google Sheets or Excel. Fresher data than CSV export, same analysis surface. | No governed metric definitions. Cross-source "joins" are manual formulas in a spreadsheet — the Excel trap with a nicer sync. |
| Custom analytics tools | Power BI | The one add-on that genuinely solves cross-source analytics — Power BI joins Xero with everything else via custom connectors. | Requires Power Query setup, DAX knowledge, and ongoing maintenance. It's a full analytics project for a finance ops team with one day a week to spend on this. |
If your only need is better financial reporting — visual P&Ls, consolidated dashboards, board decks — Fathom or Spotlight Reporting may be exactly what you need. Calxa in particular handles tracking categories well for budget-vs-actual and multi-entity consolidation. They're good at what they do.
But if your problem is that the board asked about customer acquisition cost and you couldn't answer because your marketing data is in HubSpot and your revenue data is in Xero — no Xero add-on solves that. They enhance Xero data. They don't connect it with everything else.
If multi-dimensional tracking category reporting specifically is your wall, the picture narrows further: Calxa handles both tracking categories as separate dimensions; Fathom and Spotlight Reporting filter by tracking category but don't give you a true pivot across both; Syft from Xero operates at single-category depth. None of them cross-source the analysis with your CRM or payment data.
The coordination cost is the quieter problem. A typical stack — Fathom ($55/mo) + Coefficient ($59-99/user/mo) + a Power BI license — runs $400-500/mo before you've paid a single analyst to keep them synced. That's three vendors, three OAuth grants into your general ledger, three different opinions about what "revenue" means, and three places your numbers can silently diverge. One platform means one vendor to vet, one security review, one data processing agreement.
When Xero Reporting Is Actually Enough
Not every business needs to go beyond Xero. You're probably fine with Xero's native reporting (plus Syft from Xero) if:
- You run a single entity with standard financial reporting needs — P&L, Balance Sheet, Cash Flow
- You use one tracking category or none, with no need for cross-dimensional views
- You don't need to combine Xero with CRM, payments, or operational data
- You aren't facing board or investor reporting beyond standard financials
You've outgrown Xero reporting if:
- You're exporting to Excel every month to build the reports you actually need
- The board asks about metrics that live across multiple systems (CAC, LTV, retention, pipeline)
- You need both tracking categories as separate dimensions in a single report
- Your team gives different answers to the same question depending on who pulls the data
- You've evaluated add-ons and they feel like band-aids on the same wound
If you're in the second group, the path forward isn't a better Xero add-on. It's connecting your data.
What Actually Fixes This
By the time you've hit these walls, you have three realistic options:
- Keep Xero + stack of add-ons. Better visuals, still single-source. Works if your problem is presentation, not data scope.
- Build a full data stack. Fivetran + Snowflake + dbt + Looker is genuine cross-source analytics — but it's six-figure annual cost, a data engineer to maintain it, and months before the first real dashboard lands.
- One unified platform. Xero connected alongside your other sources in a single system — ingestion, modeling, governance, and AI in one place. Days to value, not months. No data engineer required.

The pattern we see in companies that solve this problem — not patch it — is option 3: architectural, not incremental.
Connect Xero as one data source among many -> store everything in one place -> define governed metrics once -> let anyone query across all sources.
Instead of adding tools on top of Xero, you connect Xero alongside your CRM, payment processor, and operational tools into one place. Then you define your business metrics — customer profitability, CAC, MRR, burn rate — once, in a shared definitions layer that governs every dashboard, report, and AI query.
What changes:
- Cross-source reports become default. Xero revenue + HubSpot deals + Stripe payments in one view. The report the board asked for — the one you couldn't build — works out of the box.
- Metrics are defined once. "MRR" means the same thing whether your CFO looks at a dashboard or an analyst runs a query. No more three-different-answers.
- AI queries across everything. Ask "show me customer profitability combining Xero revenue and HubSpot acquisition cost" in plain English and get a live dashboard. Not AI on one data source — AI on all of them.
- Reports are live, not exported. Dashboards update automatically. Alerts push to Slack. Scheduled reports land in inboxes before the Monday meeting.
- Tracking categories become one dimension among many. Instead of being limited to Xero's two tracking categories, you can analyze by any dimension from any source — department, region, project, customer segment, product line — all at once.
- You own the data, not the platform. Your warehouse, your schema, your models. Export to Parquet anytime, query with any SQL tool, hand the setup to whoever runs it next. No proprietary modeling DSL to get stuck in.
Definite does this. You connect Xero — it pulls journals, invoices, tracking categories, contacts, and bank transactions, not just Xero's reporting layer — connect your other sources, and start building the reports Xero could never produce. Finance teams ask the AI questions in plain English. Technical teams write SQL against the landed data, define metrics once in a semantic layer so every dashboard uses the same definitions, and export their data as Parquet anytime. Ingestion, modeling, governance, and AI in one system — not a stack of five.
What could your data tell you?
Enter your domain and we’ll show you the business questions your tools can already answer — you just can’t ask them yet.
Try it with any company domain — no signup required.
Day One: Connect Xero. Day Two: Build the Report You Couldn't.
Day 1. Connect Xero — journals, invoices, tracking categories, bank transactions all sync automatically. Do the same for HubSpot, Stripe, or whatever else you're running from the connector catalog. Ask the AI "what data do I have?" and it reads your schema back in plain English.
Day 2. Ask the AI to build a P&L broken down by Department and Project — both tracking categories as separate dimensions. It drafts the SQL and the dashboard; you review, refine, and save it as a governed metric. The view you've been rebuilding in Excel every month is now live and automatic. Layer HubSpot acquisition data on top and you've got customer profitability — the number your board has been asking for.
Day 3+. "Top 10 customers by profitability last quarter." "Burn rate trend by department." "Projects where cost overrun exceeds invoiced revenue." The questions your team used to export to Excel for. When the AI isn't sure how to join two sources or which metric definition applies, it asks — it doesn't guess.
None of this is frictionless. Historical journals have messy categorizations. OAuth tokens expire. Xero renames an endpoint once a year. The difference is that the connector maintenance sits on our side of the line, not yours — the finance ops person who's been spending a day a week on manual report assembly gets that day back for actual analysis.
Try Definite free — connect Xero in minutes and see what your data looks like when it's all in one place.
FAQ
Does Xero have analytics?
Xero has reporting and, as of recently, analytics through Syft from Xero (included on all plans). This gives you visual dashboards, trend analysis, and performance snapshots. But Xero doesn't have analytics in the broader sense: no way to join data from other tools, no custom metrics beyond accounting, no shared definitions that keep everyone's numbers consistent, and no AI that can query across your full business data.
Can Xero do custom financial reports?
Yes, within limits. You can customize filters, date ranges, and column layouts on existing report types. Xero's custom report layouts let you rename headings, add formula rows, and save templates. But you can't create entirely new report structures, build cross-source dashboards, or create reports that combine Xero data with data from other tools. "Custom" in Xero means rearranging the building blocks of existing reports — not building from scratch.
What's the best reporting tool for Xero?
There's no universally best tool — there's the tool that solves the problem you actually have. If you need better financial reporting (visual dashboards, consolidation, board decks) and all your data lives in Xero, Fathom (from ~$55/mo) or Calxa are strong choices — Calxa handles tracking categories particularly well. Spotlight Reporting (from $295/mo) is popular with accounting firms managing multiple clients. If you need cross-source analytics — Xero + CRM + payments in one view with shared metric definitions and AI — you need a unified data platform that connects Xero alongside your other sources.
Why don't Xero tracking categories work in most reporting tools?
It comes down to Xero's API architecture. The Trial Balance endpoint — which many reporting tools use as their data source — has zero tracking category parameters. Tools that build from the Trial Balance lose tracking data entirely. The Profit and Loss and Balance Sheet endpoints do support both tracking categories, but reconstructing multi-dimensional views from these endpoints requires significant development work. Many tools advertise "tracking category support" but only implement basic single-category filtering because the full multi-dimensional implementation is technically expensive.
How do I connect Xero to other data sources for reporting?
You need a platform that supports Xero as a data source alongside your other tools. Connect Xero (no API keys or developer setup needed), connect your CRM and payment tools the same way, and the platform joins the data automatically. The Xero connector pulls your full accounting data — journals, invoices, bank transactions, tracking categories, contacts, and more — and makes it queryable alongside every other source you connect.
Do I need a data engineer or dbt to use a unified platform with Xero?
No. The Xero connection is OAuth-based — no API keys, no endpoint mapping, no sync schedule you have to maintain. The AI handles query generation and dashboard building for the questions your finance team actually asks. The semantic layer governs metric definitions so the same MRR, gross margin, or customer-profitability formula powers every report. If your technical team wants SQL, Python, or dbt-style modeling, those are available on top — they're opt-in, not prerequisites. Solo operators and fractional analysts run Definite against client Xero accounts without any data-engineering support.