Skip to content

Controlled cross-ERP entity matching

AI & agentic workflows Internal work sample

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.

  1. 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.

  2. 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.

  3. 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.

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.

Explore the full process (new tab)

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.

Read the supporting detail
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.

Read the supporting detail
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.

Read the supporting detail
Compare the pairWeighted fuzzy matching

Weighted fuzzy matching provides the comparison score used by the decision process. The score and thresholds remain reviewable.

Read the supporting detail

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.

Read the supporting detail
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.

Read the supporting detail

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.

Read the supporting detail
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.

Read the supporting detail
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.

Read the supporting detail

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.

Explore the full process (new tab)

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.

Read the supporting detail
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.

Read the supporting detail
Scores and assessmentDeterministic and model inputs

Weighted comparisons provide scores; the ambiguous residual receives a model assessment. The decision bands remain deterministic and auditable.

Read the supporting detail
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.

Read the supporting detail
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.

Read the supporting detail

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.

Read the supporting detail
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.

Read the supporting detail

Results and evidence

62 → 117 / 144
Reference-set correct matches
2,426
Pairs in recorded sweep
185
Recorded entity scope
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.

Golden-corpus matches, of 144 Δ +89%
62 Baseline scorer

weighted fuzzy scoring only

117 Calibrated bands with LLM referee

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

  1. 01

    Sent only the ambiguous residual to a model referee.

  2. 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

Full skill evidence →

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.

← All case studies · Discuss this work →