Controlled cross-ERP entity matching
I help teams recognise the same business across accounting systems and identify records that need review. In the recorded 144-case reference set, correct matches increased from 62 to 117.
-
The problem
The same business appeared under different names in different systems. Without a reliable shared identity, teams could join the wrong records or miss a genuine match.
-
My role
I built the matching pipeline and calibrated its decision bands. Normalising names and filtering candidates reduces the set that needs a closer comparison.
-
Where it stands
The recorded reference-set evaluation improved from 62 to 117 correct matches out of 144, with no hard-negative auto-accepts. A recorded production sweep classified 2,426 pairs for review; these results are not a current accuracy guarantee.
Find the match. Keep the doubt visible.
Follow the matching decisions, then inspect the evidence and controls behind each result.
Select a layer or play the walkthrough.
Follow the highlighted route through each layer. Select any box to explore its other connections.
How do uncertain names become reviewable matches?
Normalisation and candidate filtering narrow the comparison. Clear pairs use the decision bands; ambiguous pairs get an additional model check.
Automatic accept is a match classification, not permission to merge or change source records. The recorded reference-set result is not a guarantee for every future population.
The full view includes search, connected paths, presentation mode and export tools.
Read the map in plain English
Choose a part to see its purpose, its connections and supporting detail.
Prepare and compare records
Source recordsNames from different systems
The same business can appear under different spellings and legal forms. Records enter the matching process without assuming that inconsistent names identify different businesses.
- To Normalise namesPrepare
Normalise namesReduce legal-form noise
Normalisation reduces spelling and legal-form noise before the candidate comparison. It helps the comparison without authorising a change to the source name.
- From Source recordsPrepare
- To Select candidatesFind candidates
Select candidatesTF-IDF pre-filter
TF-IDF pre-filtering selects plausible candidates so the pipeline can focus its closer comparisons. Candidate selection is not a final identity decision.
- From Normalise namesFind candidates
- To Compare the pairCompare
Compare the pairWeighted fuzzy matching
Weighted fuzzy matching provides the comparison score used by the decision process. The score and thresholds remain reviewable.
- From Select candidatesCompare
- To Apply decision bandsClear pair
- To Check ambiguityAmbiguous residual
Check ambiguous candidates
Check ambiguityModel referee for the residual
Only the ambiguous residual goes to the model referee. The model supports the comparison; deterministic scoring and thresholds retain control of the decision bands.
- From Compare the pairAmbiguous residual
- To Apply decision bandsAdditional assessment
No matchNo accepted identity link
A no-match result does not establish an accepted link between the records. It remains distinct from both the review queue and accepted classifications.
- From Apply decision bandsNo-match band
Classify the result
Apply decision bandsDeterministic classification
Scores and thresholds classify each pair as automatic accept, human review or no match. The automatic-accept band was calibrated against the labelled reference set.
- From Compare the pairClear pair
- From Check ambiguityAdditional assessment
- To Accept classificationAccept band
- To Human reviewReview band
- To No matchNo-match band
Accept classificationCandidate match meets the band
This classification records that the pair meets the automatic-accept criteria. It does not itself change master data or authorise a source-system merge.
- From Apply decision bandsAccept band
Human reviewUncertainty stays visible
Pairs in the review band need a person to assess the available evidence. More review is preferable to silently accepting the wrong identity.
- From Apply decision bandsReview band
What makes a classification reviewable?
Compared pairs, scores and explicit bands lead to reviewable classifications. The labelled reference set helps calibrate the thresholds without replacing review of real records.
The published benchmark covers its recorded 144-case reference set. Classified pairs and later master-data changes are separate; no automatic source-system update is shown here.
The full view includes search, connected paths, presentation mode and export tools.
Read the map in plain English
Choose a part to see its purpose, its connections and supporting detail.
Pair evidence and classification
Input recordsThe original identity evidence
Original records are the basis for comparing business identities. Normalised names are comparison inputs rather than replacements for the source records.
- To Candidate pairsNormalise and filter
Candidate pairsPlausible records to compare
Candidate selection produces the pairs for closer comparison. Each pair carries an identity question that still needs a classified answer.
- From Input recordsNormalise and filter
- To Scores and assessmentCompare
Scores and assessmentDeterministic and model inputs
Weighted comparisons provide scores; the ambiguous residual receives a model assessment. The decision bands remain deterministic and auditable.
- From Candidate pairsCompare
- To Classified pairsApply bands
Classified pairsAccept, review or no match
Each pair receives an explicit band. Classification makes uncertainty visible rather than hiding it inside a single master-data output.
- From Scores and assessmentApply bands
- To Reviewable resultsReview results
- From Calibrated thresholdsDecision thresholds
Reviewable resultsA basis for follow-up
Teams can see which pairs need attention and what master-data clean-up remains. The result supports review before any separately authorised change.
- From Classified pairsReview results
Reference-set calibration
Labelled reference setKnown matches and hard negatives
The recorded reference set includes labelled examples used to assess matching accuracy and hard-negative behaviour. It is bounded evidence, not a current census of every record.
- To Calibrated thresholdsEvaluate and calibrate
Calibrated thresholdsProtect the accept band
Thresholds were calibrated so the recorded evaluation had no hard-negative auto-accepts. That observed result describes the reference set and does not eliminate the need for later review.
- From Labelled reference setEvaluate and calibrate
- To Classified pairsDecision thresholds
Results and evidence
Explore the detail: my role, approach and source notes
What the work involves
Find plausible matches
I normalise names and legal-form noise, use TF-IDF to select plausible candidates and compare them with weighted fuzzy matching. Only the ambiguous residual goes to a model referee.
Make uncertainty visible
Deterministic scores and thresholds classify pairs as automatic accept, human review or no match. I calibrated the automatic-accept band against a labelled reference set, with no hard-negative auto-accepts in that recorded evaluation. Classification and any later change to master data are separate decisions.
Source notes
Made cross-system record matches and review needs explicit.
Matched entities across ERPs and quantified the master-data clean-up required before launch.
weighted fuzzy scoring only
zero hard-negative auto-accepts
Scores from the documented golden-corpus evaluation (144 labelled pairs), 2026.
Business impact
Made a reliable cross-ERP master achievable and identified the master-data clean-up required before a group CRM go-live.
How I did it
- 01
Sent only the ambiguous residual to a model referee.
- 02
Banded every pair into automatic accept, human review or no match.
Tools and working context
Entity records across heterogeneous ERP systems with inconsistent names, spellings and legal forms.
- Tools
- Python · rapidfuzz · scikit-learn (TF-IDF) · LLM referee · Pydantic · AI coding assistants (Claude Code, Codex)
- Business area
- Master data · ERP consolidation
- Skill type
- AI · Data & Reporting
Why I made these choices
- Set the automatic-accept threshold for zero hard-negative false accepts, accepting more review to avoid silent wrong merges.
- Kept scores, thresholds and final merge decisions deterministic and auditable.
Skills used
- AI coding and implementation assistants AI & Automation Applied
- Master-data reconciliation / entity resolution Data & Reporting Strong
What I learned
- Calibrated bands and a review lane protect control integrity better than a higher raw match rate with silent errors.
What comes next
- Expand the labelled corpus and track precision and recall by band as a regression control.