Skip to Content
How It WorksConnections & Duplicates

Connections & Duplicates

Findings tell you what is in a document. Connections tell you how documents relate to each other. Classifyre builds those from two signals that come from completely different places, and deliberately never blends them into one number.


Signal 1 — shared values

Two assets are linked because they demonstrably contain the same values: the same email address, the same account number, the same IBAN. Values are normalised and hashed, and the overlap is scored, weighted so a shared credit card counts for more than a shared country code.

This signal is deterministic and explainable. There is no black box: for any link you can see exactly which values produced it and how much each contributed.

Signal 2 — semantic similarity

Content is embedded as a vector, and passages whose vectors sit close together are treated as saying the same thing — even when they share no literal values. This is what recognises boilerplate, templates, and the same paragraph rewritten.

This signal is approximate but generalising. It sees what value overlap cannot, and it cannot tell you which specific value made it fire.

Why they aren’t averaged together

Because they fail differently. Averaging two measures that fail in different ways gives a number that is wrong in both directions and can’t be debugged.

Instead each match keeps the family it came from, and each family gets its own kind of fix: a shared-value pattern is fixed by weights and exclusions; a repeated-text pattern is fixed by excluding the boilerplate. Blended, neither fix would be findable.


Signal 3 — lineage, as a cross-check

The two signals above both come from the content of your assets. Lineage comes from somewhere else entirely: connector catalogs, query logs, view SQL, dbt manifests.

That independence is what makes it useful here. When two assets look nearly identical, lineage answers why:

  • There’s a path between them → a derived copy. Expected.
  • There’s no path, and both have lineage → nobody built one from the other, yet they’re nearly the same. Somebody rebuilt something that already existed.

This is the distinction that decides whether duplicate detection is worth reading at all. See Lineage & Relationships and Duplicate Review.


Where this shows up

ScreenUses
Duplicate reviewAll three, as one queue
Asset → similarShared values, annotated with pattern and lineage
Asset → lineageLineage only
CasesClusters promoted to evidence; the case graph groups relationships by class
InquiriesMatch signatures derived from what made a pair match

Reading next

Last updated on