One record per real-world entity.
Link records that refer to the same company, person, court or place across sources and within a single dataset — with the evidence and confidence for every link.
How resolution works
- 1
Normalize
Bring names, identifiers, dates and places into comparable form first, keeping the raw values for display and audit.
- 2
Block
Group candidate records cheaply — by a shared identifier, a name key or a place — so we only compare plausible pairs.
- 3
Score
Compare names, identifiers, addresses and dates with rules and models. Each comparison contributes evidence that is stored with the pair.
- 4
Cluster
Form entities from scored pairs, with thresholds you approve. Transitive links that would join clearly different records are broken.
- 5
Review
Send borderline clusters to a review queue instead of auto-merging. Reviewer decisions are logged and reused on the next run.
Links, not merges.
Resolution assigns a stable entity id and records why each record belongs to it. Source records are not merged or rewritten, so a wrong link can be undone without data loss.
Entity ids are kept stable across runs wherever the membership of a cluster is substantially the same. When a cluster splits or two clusters join, the change is logged with the old and new ids, so systems that stored an entity id can follow it.
What a resolution link records
| Field | Meaning |
|---|---|
| entity_id | The stable id of the resolved entity. |
| record_ref | Dataset slug and record id of the member record, with the dataset version it came from. |
| evidence | Which comparisons agreed and disagreed: identifier, name, address, date, relationship. |
| score | The combined score and the threshold in force for this run. |
| decision | auto-linked, reviewer-linked, reviewer-rejected, or pending review. |
| run_id + rule_version | The resolution run and the version of the rules and model used. |
Common entity types
Organizations
Companies, agencies and courts across naming variants, renamings and abbreviations.
People
Judges, parties and officers — subject to your privacy rules and the data's license.
Places
Addresses, parcels and jurisdictions, including historical names.
Documents
The same case or filing imported under different ids, as found in parts of the LAW.co corpus.
Blocking, thresholds and privacy
Blocking decides which pairs are ever compared, so it decides what can be found. Blocking only on exact names misses abbreviations; blocking too loosely makes runs slow and noisy. We choose keys from the data profile and report how many true matches in the labeled sample each blocking strategy would have missed.
Thresholds trade precision against recall, and the right trade depends on the cost of a wrong link in your use. A research index can tolerate more suggested links routed to review; a system that bills or notifies people should not auto-link anything uncertain. We set two thresholds — auto-link and review — and leave everything below the second unresolved.
For people, resolution is limited to the fields and purposes agreed in scope. Evidence stores which comparisons agreed, not copies of extra personal data, and person resolution can run entirely inside your environment.
How we measure a resolution run
We do not quote accuracy figures in advance. Each run is measured on your data and reported to you.
- A labeled sample reviewed with you before thresholds are set
- Precision and recall estimated on that sample, with the method stated
- Counts of auto-linked, reviewed and unresolved records
- Largest clusters listed for inspection
- Changes since the previous run, by entity
- Reviewer agreement tracked on the queue
Questions buyers ask
Do you resolve personal data?
Only where you have a lawful basis and the data's license allows it. Person resolution is scoped and documented case by case.
Can we tune thresholds?
Yes. Thresholds and review rules are agreed with you and versioned with each run.
How is entity resolution different from matching?
Resolution groups every record that refers to the same entity, across and within sources. Matching answers a narrower question — which external record corresponds to each of yours — and produces a join table.
What if a provider later fixes its own duplicates?
The next run picks that up. Clusters that become single records are logged as changes, and entity ids stay resolvable.
Can resolution run in our environment?
Yes, as part of a custom pipeline or private deployment, so records and decisions stay within your boundary.
What do we receive at the end of a run?
The entity table with stable ids, the link table with evidence and decisions, the review queue, and a run report comparing the run with the previous one.
Duplicate entities across sources?
Describe the entity types and sources involved, and we will scope a resolution approach.