Why don't our HubSpot, Xero and Power BI numbers match?
Your systems are each counting something different. Decide which one owns each number, write the definitions down, and check them once a month.
Because each system is counting something different. HubSpot counts deals: what a rep expects to win, dated by the close date. Xero counts invoices and payments: what you billed, dated by the invoice, and what arrived in the bank, dated by the payment. Power BI counts whatever it was built to pull from each of them, with its own rules for joining the two.
Each number is usually right on its own terms. The gap comes from a short list of predictable causes: GST included in one figure and not the other, deals marked won that never get invoiced, credit notes, duplicate customers, different dates, and syncs running on different clocks.
The fix is to decide which system owns which number, write the definitions down, match the IDs across systems, build the reporting dashboard on those definitions, and check it once a month. The table below is where to start.
"No one trusts the data" usually means three systems answering three questions
It is the complaint we hear most on discovery calls this year. Buyers put it plainly: "no one trusts the data", "there is never a match", "getting a count of customers is impossible".
Ask sales, finance and the person who built the Power BI report for September revenue and you get three figures. Sales is quoting won deals, finance is quoting invoices, and the report is quoting whichever field someone mapped two years ago.
So agree what each number means before anyone cleans a record.
The ten reasons HubSpot and Xero disagree
- Deal amount versus invoice versus cash. The HubSpot Amount property is what a rep typed in, or a figure calculated from line items. HubSpot's own help notes that adding or removing line items does not change the Amount property, so someone has to update it by hand.
- GST. GST is 10% on most goods and services sold in Australia. If reps enter deal amounts excluding GST and the report reads Xero invoice totals including GST, a $10,000 deal shows up as an $11,000 invoice. Every taxable sale is 10% apart before anything else goes wrong.
- Three different dates. HubSpot gives a new deal a default close date at the end of the month it was created, and also sets or updates close dates automatically. Xero dates revenue by invoice and cash by payment. A deal closed on 28 June and invoiced on 3 July sits in different Australian financial years, which run from 1 July to 30 June.
- What counts as a customer. HubSpot has companies and contacts. Xero has contacts, which are usually the billing entity. The official integration syncs Xero contacts with HubSpot contacts, and HubSpot's article for it does not mention companies. Count customers in each system and you are counting different objects.
- Currency. The integration supports six currencies: AUD, NZD, USD, CAD, EUR and GBP. If you sell into New Zealand, decide whether reports show NZD as billed or convert to AUD.
- Credit notes. A refund or credit note reduces revenue in Xero. HubSpot's article lists contacts, products, invoices and payments as the objects that sync, and credit notes are not on the list. The deal stays at full value unless someone changes it.
- Duplicates. Two HubSpot companies for one customer, or separate Xero contacts for head office and a branch.
- Won deals that never invoice. Deals signed then cancelled, deals split into several invoices, test deals, and deals someone marked won to clear the board.
- Sync timing. HubSpot says changes from HubSpot reach Xero within a few minutes, and changes in Xero are picked up every 30 minutes. Only payments created after you connect the app sync across. Power BI then refreshes on its own schedule.
- Cash or accrual. Xero can run reports on either basis. An accrual report counts revenue when it is invoiced, a cash report when it is paid. Make sure everyone is reading the same one.
Which system should own each number?
Give every number one owner. The other systems can display it, but nobody recalculates it.
| The number | Which system owns it | Why |
|---|---|---|
| Pipeline value | HubSpot | It is an estimate of future work, and only the CRM holds open deals. |
| Deals won (count and value, excluding GST) | HubSpot | It measures sales performance. Define the close date as the date the customer signed. |
| Revenue (invoiced, excluding GST) | Xero | It is what you billed, and it ties back to your financial reports and your BAS. |
| Cash received | Xero | Payments are reconciled against the bank there. |
| Overdue and outstanding invoices | Xero | Finance chases debt from it. HubSpot can show the status on the record. |
| Number of customers | Xero, matched to HubSpot companies | A paying customer is a billing fact. Agree a rule, such as a Xero contact with a paid invoice in the last 12 months. |
| Products and prices | Xero | Finance invoices from that list, so quotes should use the same items. |
| Where a customer came from | HubSpot | Only the CRM knows which campaign, form or referral brought them in. |
Your answers may differ. A subscription business billing from HubSpot might let HubSpot own invoiced revenue. What matters is one owner per number.
Write the definitions down
One page, shared with sales, finance and whoever builds the reports. For each number, write down:
- the name people actually use for it
- the system that owns it and the exact field
- GST included or excluded
- which date puts it in a month
- what is left out: credit notes, internal deals, test records, intercompany invoices
An example of one entry:
Revenue (monthly)
Owner: Xero
Field: invoice subtotal, excluding GST, AUD
Date: invoice date, accrual basis
Includes: approved invoices, minus credit notes in the same month
Excludes: draft and voided invoices, intercompany invoices
Ten of these covers most businesses. After that, an argument about the numbers becomes a question about which definition someone used.
Which revenue number does your GM quote?
If sales and finance quote different figures, the definitions are the place to start.
Match the IDs, or the reports can never join
A report that combines HubSpot and Xero has to join records on something. Company names break the first time someone types "Pty Ltd". Emails break when the billing contact changes.
HubSpot's help for the integration indicates that invoices match on email: the contact on an invoice needs the same email address as the customer in Xero. That is fine for the sync, and fragile for reporting. Store stable IDs instead:
- the Xero contact ID on the HubSpot company
- the HubSpot deal ID on the Xero invoice, in a field your team agrees on
- one HubSpot company per paying customer, with duplicates merged before you start
Custom field mappings in the official integration need at least Data Hub Starter, so check your subscription before you plan around them. If duplicates are the problem, we wrote up how to merge duplicate companies automatically. If you have not connected the two systems yet, start with our guide to connecting HubSpot and Xero, which covers the setup order.
Build the reporting dashboard on the definitions
Whether the dashboard is in Power BI or in HubSpot, each figure should read straight from its owner and say so in its label: "Revenue (Xero, invoiced, ex GST)" rather than "Revenue".
The common mistake is a Power BI measure that rebuilds revenue from HubSpot deal amounts because that data was easier to reach. It looks official and matches nothing finance will sign. If you are deciding what goes on each screen, these five HubSpot dashboards are a good starting set.
Run a monthly reconciliation check
Once a month, after finance closes the month, sales operations and finance sit down with five lists:
- Deals won this month with no matching invoice.
- Invoices raised this month with no matching HubSpot company or deal.
- Customer count in both systems, using the agreed rule, and the difference.
- Credit notes raised this month, and whether the related deals were updated.
- New duplicate companies or contacts created this month.
Each list should get shorter every month. When one starts growing, a process has changed somewhere, and you find out in weeks instead of at the end of the financial year. If your business lodges BAS quarterly, the third month of each quarter is the one to be strict about.
Why this matters more now HubSpot's AI reads your CRM
HubSpot shipped its Fall 2026 Spotlight at UNBOUND in September. The part HubSpot pushed hardest is Context Home, where you view and manage what HubSpot knows about your business, so that, in HubSpot's words, every team and agent works from the same shared context
. We covered it in what launched at HubSpot's Fall 2026 Spotlight.
Context Home describes your business: your positioning, your ideal customer, how your team works. It does not decide what revenue means. Ask Breeze Assistant or any agent for last quarter's revenue or your customer count, and it can only answer from the records it reads. If those records count deals including GST and finance counts invoices excluding it, the agent will give you the wrong number with full confidence.
Agreed definitions and matched IDs are what make an AI answer about your numbers worth repeating in a meeting. Before you switch agents on, run through the five data checks we run first.
Frequently asked questions
Why doesn't HubSpot revenue match Xero? HubSpot reports deal amounts dated by close date, while Xero reports invoices dated by invoice date and payments dated by payment date. GST, credit notes, deals that never invoice, duplicate customers and sync timing widen the gap. Decide which system owns revenue, usually Xero, and report it from there.
Should HubSpot or Xero be the source of truth for revenue? For invoiced revenue and cash, Xero in most Australian businesses, because it ties to your financial reports and your BAS. HubSpot should own pipeline, deals won and where customers came from. Give each number exactly one owner and write the definition down.
Does the HubSpot Xero integration sync deals and credit notes? HubSpot's help article for the official Xero integration lists contacts, products, invoices and payments. It does not mention deals, companies or credit notes, so a credit note raised in Xero will not change a HubSpot deal unless someone updates it.
Should HubSpot deal amounts include GST? Pick one rule and apply it everywhere. Most finance teams report revenue excluding GST, so recording deal amounts excluding GST keeps HubSpot comparable with Xero. GST is 10% on most goods and services in Australia, so mixing the two puts taxable sales 10% apart.
How often should we reconcile HubSpot and Xero? Monthly, after finance closes the month. Compare deals won with invoices raised, invoices with no matching HubSpot record, customer counts, credit notes and new duplicates. Be strict in the last month of each BAS quarter.
Sources
- Connect HubSpot and Xero (Data Sync), HubSpot Knowledge Base, for the objects that sync, supported currencies, sync timing, payment sync, email matching and the Data Hub Starter requirement.
- Set defaults for creating deals, HubSpot Knowledge Base, for default close dates and how line items relate to the Amount property.
- Goods and services tax (GST), business.gov.au, for the 10% rate and activity statement reporting.
- Important financial dates, business.gov.au, for quarterly and monthly activity statements.
- Tax and superannuation, Study Australia, Australian Government, for the 1 July to 30 June financial year.
- Cash vs accrual accounting, Xero, for reporting on either basis.
- Fall 2026 Spotlight, HubSpot, for Context Home.
Want to know where your HubSpot and Xero numbers split? A HubSpot portal audit maps it. See our RevOps and HubSpot work, or talk to us.
When did your HubSpot and Xero numbers last match?
The gap usually starts in a definition nobody wrote down.