Master-data deduplication for SAP
Your Business Partner and Material duplicates aren't a fuzzy-matching problem. Most of them are a structural one.
Blocking narrows the field. Structural tax-ID and EAN matching resolve what's exact. Vector embeddings step in only for the name/address comparisons that are genuinely fuzzy. When a tax ID or EAN actively disagrees, the pair is flagged as a conflict and never merged silently.
No forms. No cookies. This page doesn't track you either, see the footer.
The problem
MDG match profiles plateau. Cross-role overlap doesn't get fixed on its own.
Every SAP shop with more than one legacy system carries duplicate Business Partners and Materials: the same company entered twice under different account groups, the same part re-created because nobody could find the original. MDG match profiles catch the obvious cases and then plateau: fuzzy-text rules that flag "Müller GmbH" against "Mueller GmbH" also flag hundreds of unrelated near-misses, so review queues fill with noise nobody works through.
The cross-role case is worse. The same legal entity sits in KNA1 as a customer and LFA1 as a vendor, unresolved indefinitely, because nothing forces the two records back together. The result: broken spend visibility, duplicate vendor payments, and a master-data team that has stopped trusting its own queue.
The approach
Three deliberate stages, not one black-box score.
Structural evidence leads. Embeddings only handle what's left after that.
Narrow the field
Country and postal-code proximity narrow the comparison set before anything else runs. The engine only compares records that could plausibly be the same.
Check what's exact
Tax ID for Business Partners, EAN for Materials. An exact structural match is strong, deterministic evidence, and it's scored accordingly.
Only then, the fuzzy part
Name/address embeddings step in for the genuinely fuzzy comparison. When a tax ID or EAN actively disagrees, the pair is flagged as a conflict and never merged silently.
The workflow
Queue, compare, audited soft-merge.
Candidates land in a ranked review queue, with conflicts called out separately from ordinary duplicates. A reviewer opens Compare: source record, match record, and the score behind each field, then chooses merge, review fields, or ignore.
Queue
Ranked, scored, conflicts separated from ordinary duplicates.
Compare
Source vs. match, field-by-field, score behind every field.
Soft-merge
Losing record flagged and pointed at the survivor, never deleted. Row count in equals row count out.
Survivorship is optional. Which value wins per field is reviewable before it's applied, never automatic. Every decision, merge or ignore, writes an auditable record, so a governance team can reconstruct exactly who decided what, and when, after the fact.
Proof
Claims here are checked, not asserted.
A harness runs against a labelled gold set; false-positive and false-negative patterns are broken down by score band before a reviewer ever sees them.
Across the matching pipeline, the audit trail, and the review UI. Regressions get caught before they reach your data.
Every merge or ignore decision writes an auditable MergeDecision record. Nothing is ever hard-deleted.
Hosting: runs on your own SAP BTP/HANA tenant, or on a fully isolated, single-tenant instance we host by arrangement, never a shared or multi-tenant database. A live walkthrough is available on request.
See it run
90-second walkthrough
Ranked queue, Compare, and an audited soft-merge, recorded end to end, no third-party player.
In the meantime, a live walkthrough is available on request. Email us below.
The pilot
Eight weeks, your own data, binary success criteria.
An eight-week paid pilot runs the engine against your own anonymized extract: calibration, a reviewed candidate queue, and a final report with precision/recall numbers tuned to your data. Success is binary and agreed at kickoff, so there's no ambiguity about whether it worked. If the pilot doesn't meet its criteria, there's no further obligation on either side.
Fixed, payable on kickoff. 100% creditable toward year-one production fees if you sign within 60 days of the final report.
- 8 weeks: kickoff to final report.
- Binary criteria: precision/recall thresholds, review-completion rate, and zero data loss, agreed up front.
- Founding pricing: for our first two pilot engagements; list price €22,000 thereafter.
Data handling
Every claim here matches the pilot code as shipped.
Not marketing language: this is what the software actually does.
Anonymized extract only
You anonymize before transfer; minimum fields are id, name, street, city, postalCode, country, taxId, sourceTable. We never receive raw production data.
One isolated instance per customer
No shared database, no multi-tenant pooling. Matching runs on embeddings computed locally, in-process. Nothing leaves the instance, no third-party AI API is called, and nothing is used to train any model.
Nothing is deleted
Merging is soft: losing records are flagged, not removed. Every decision creates an auditable MergeDecision record, and your full audit trail is exported to you before the pilot instance is destroyed.