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.

STAGE ONE · BLOCKING

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.

STAGE TWO · STRUCTURAL MATCH

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.

STAGE THREE · EMBEDDINGS (FALLBACK)

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

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.

Weekly
Precision/recall reports

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.

~2,200
Automated tests

Across the matching pipeline, the audit trail, and the review UI. Regressions get caught before they reach your data.

100%
Soft-merge, full audit trail

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

The video lands here shortly

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.

€15,000 €22,000 Founding price

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.
Email us about a pilot

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.

Ready to see it against your own data?

Email us about a pilot