Blog · Data quality and reconciliation
Choose customer analytics data sources by the question each export can answer. Check customer identifiers, record uniqueness, dates, and unmatched revenue before combining results.
Customer analytics data sources are useful when their account identifiers, dates, and record definitions support the question you want to answer. Check those fields before combining customer, transaction, CRM, and service exports; otherwise a clean-looking total can hide missing accounts or duplicated revenue.
The job is to establish what each file proves. A service request shows recorded support activity, while an invoice shows a billed sale under the finance team's reporting policy. Matching the customer does not make those events equivalent.
Write the decision first: compare billed revenue by segment, review activity before renewal, or measure support demand by account. Then choose the exports and ask each owner for the reporting definitions.
| Source | Minimum useful fields | Check before use | Business owner |
|---|---|---|---|
| Customer master | Account ID, segment, active status, relevant effective date | One authoritative row per account for the chosen date | Sales operations or master-data owner |
| Transaction export | Transaction or line ID, account ID, posting date, net amount, currency | Unique record key, credits included, period totals tied to finance | Finance |
| CRM export | Opportunity or activity ID, account ID, stage, relevant event date | Stage meanings and whether records are current snapshots or dated history | Sales operations |
| Service export | Ticket ID, account ID, created date, resolved date, category | Reopened cases, missing account links, and status definitions | Service operations |
For context on which commercial questions these files answer together, see sales intelligence from data you already hold. Keep the present exercise focused on whether the sources can be matched reliably.
Keep account IDs as text so leading zeros survive. Preserve the original source ID alongside any approved replacement. If departments use different identifiers, request a mapping owned by those departments rather than guessing from names.
Use replacing client names with IDs when names are unnecessary for the analysis. An account mapping should distinguish a parent company from its billing entities; otherwise separate customers can collapse into one.
For the worked check below, use posted transactions from July 1 through September 30, 2026. Put their actual spreadsheet dates in column C. Test the period in H2 and fill down:
=AND(ISNUMBER(C2),C2>=DATE(2026,7,1),C2<DATE(2026,10,1))
Every included row must return TRUE. A text value that looks like a date needs correction before inclusion. Also record the export cutoff: a later credit can change the quarter's financial comparison even if the original sales file is unchanged.
Suppose a US supplier has these customer-master rows in a worksheet called Master, cells A2:B4:
| Account ID | Segment |
|---|---|
| C01 | Distributor |
| C02 | Service company |
| C03 | Distributor |
Its transaction export has five rows. Columns A through D hold the original fields; E and F are the checks you add.
| Transaction ID | Account ID | Posting date | Net amount (USD) | Master matches | Status |
|---|---|---|---|---|---|
| T01 | C01 | July 15, 2026 | 1,200 | 1 | Matched |
| T02 | C02 | August 10, 2026 | 800 | 1 | Matched |
| T03 | C02 | August 12, 2026 | -100 | 1 | Matched |
| T04 | C99 | September 5, 2026 | 300 | 0 | Unknown ID |
| T05 | — | September 20, 2026 | 200 | — | Missing ID |
The dashes display empty ID or check cells. T03 is a credit and keeps its negative sign. In E2, count master matches, then classify the result in F2:
=IF(B2="","",COUNTIFS(Master!$A$2:$A$4,B2))
=IF(B2="","Missing ID",IF(E2=1,"Matched",IF(E2=0,"Unknown ID","Duplicate master ID")))
Fill both formulas down through row 6. Microsoft confirms that COUNTIFS counts records meeting specified criteria. Counting matches before retrieving attributes prevents an ambiguous master ID from silently receiving whichever segment appears first.
Also test each transaction key in G2 with =COUNTIFS($A$2:$A$6,A2). Every key here returns one. For invoice-line exports, use the true line key, since repeating an invoice number across legitimate product lines is expected.
Summarize F2:F6 by status. The matched revenue formula is:
=SUMIFS($D$2:$D$6,$F$2:$F$6,"Matched")
Microsoft's guide to adding worksheet values covers conditional sums for this kind of grouped total. Covirage is not affiliated with Microsoft.
| Status | Rows | Net amount calculation (USD) | Net amount (USD) |
|---|---|---|---|
| Matched | 3 | 1,200 + 800 - 100 | 1,900 |
| Unknown ID | 1 | 300 | 300 |
| Missing ID | 1 | 200 | 200 |
| All transactions | 5 | 1,900 + 300 + 200 | 2,400 |
Three matched rows divided by five source rows gives a 60.0% row match rate, rounded to one decimal place. The monetary reconciliation is $1,900 plus $300 plus $200 equals $2,400. Both checks matter: a high row match rate could still leave the largest invoice unmatched.
C03 has no transactions in this extract. Retain it when the question concerns all eligible customers, rather than treating absence as evidence that it never buys. Once matching is sound, customer analytics explains how to compare purchase behavior.
Bring a sample of your own customer and transaction exports with the identifiers and dates needed for the question; Covirage maps the columns, and its tools compute and check the comparisons. The external AI model explains the results with every figure traced to its rows. Create a free Covirage account, then set up your business and bring your file.
See Excel analysis for the supporting workflow.
Start with the source closest to the decision. Use posted transactions for recorded revenue, CRM records for opportunity activity, and service records for support history. Bring a customer master when you need a consistent account identifier or grouping across those files.
Names are a review aid, but they are a weak matching key because spelling, punctuation, and legal entities can differ. Use a maintained account ID or an approved mapping between source IDs. Keep unresolved names in an exception list.
Separate missing IDs, unknown IDs, and IDs with multiple customer-master matches. Report their row counts and associated amounts. Ask the source owner to resolve the mapping, and preserve the original export so the corrected result can be reconciled.
No. Invoice date, opportunity close date, and service creation date describe different events. Define the date used for each measure and the period it covers. Do not treat those dates as interchangeable merely because the files share an account ID.