Which system pairs have the best and worst match rates?
Your QuickBooks-to-Stripe connection might be solid while your HubSpot-to-Google Ads connection is a mess. Here's how to rank your system pairs and focus cleanup where it matters most.
The short answer
Which connections are strong? A match rate measures how many records in one system can be linked to a record in another. High match rates (80%+) mean the connection is solid. Low match rates (below 50%) mean cross-system metrics involving that pair are unreliable. Knowing which pairs are weakest tells you where to focus your data cleanup.
Your weakest system pair determines the ceiling for cross-system insights
If your Stripe-to-QuickBooks match rate is 92%, your revenue reconciliation is solid. But if your Google Ads-to-Stripe match rate is 34%, any metric that tries to connect ad spend to actual revenue is unreliable. The weakest link in your data chain sets the ceiling.
Most businesses do not know their match rates at all. They assume that because they connected two tools, the data is flowing perfectly. In reality, each system pair has a different quality level, and the differences can be dramatic.
What a match rate tells you (and typical ranges)
A match rate is simple: out of all records in System A, what percentage has a corresponding record in System B? Here are typical ranges for common pairings:
- Stripe to QuickBooks: 80-95%. Usually the strongest because payments and invoices are closely linked. Gaps are often guest checkouts or manual payments outside Stripe.
- CRM to QuickBooks: 50-80%. Depends on whether your sales team creates invoices from the CRM or separately. Higher if you have a good handoff process.
- CRM to Stripe: 40-70%. Often lower because CRMs contain leads who never paid and Stripe contains customers who bypassed the CRM entirely.
- Google Ads to Stripe: 20-40%. Typically the weakest. Ad platforms track clicks and conversions, not people. Matching an ad click to an actual payment requires cross-referencing cookies, form submissions, and payment records.
How to calculate match rates for each system pair manually
You need exports from each system and a spreadsheet. For each pair, the process is the same.
- 1Export contacts from both systems
HubSpot: CRM → Contacts → Export. QuickBooks: Sales → Customers → Export to Excel. Stripe: Customers → Export. Each must include email at minimum.
- 2Pick one system pair
Start with the pair you care about most (usually Stripe to QuickBooks for financial accuracy, or CRM to Stripe for sales attribution).
- 3VLOOKUP emails from System A in System B
Count how many System A records have a matching email in System B. Divide by total System A records. That percentage is your match rate for A → B.
- 4Repeat for every pair
With 4 systems, you have 6 pairs. Each pair needs its own VLOOKUP. Record the match rate for each.
Total time: 2-3 hours if you already have the exports. The math is simple. The tedious part is that email-only matching understates the real match rate (some records match on name or phone but not email), and you cannot easily account for that in a spreadsheet.
Match rates are not static
A cleanup effort might push your CRM-to-QuickBooks rate from 60% to 78%. But a new batch of guest checkouts in Stripe could simultaneously drop your Stripe-to-CRM rate. Without monthly tracking, you will not know which pairs are improving and which are degrading.
Or see every system pair ranked automatically
Bottomline calculates the match rate for every system pair using multi-signal identity resolution (not just email). It ranks them from strongest to weakest so you can see exactly where your data quality stands.
At a glance you can see that your accounting-to-payment connection is solid (92%) while your ads-to-accounting connection is weak (29%). Any metric that crosses the weak pair (like ROAS or cost per acquisition) should be treated with caution until the match rate improves.