Splink – Fast, accurate and scalable probabilistic data linkage

rzk3 pts0 comments

Splink

Skip to content

Initializing search

GitHub

Examples

PySpark

Athena

SQLite

API Docs

Comparisons Library

Other

In-build datasets

Splink Settings

User Guide

Linkage Models in Splink

Data Preparation

Blocking

Comparing Records

Training

Evaluation

Clusters

Performance

DuckDB Performance

Charts Gallery

Blocking

Similarity analysis

Model Training

Clustering

Model Evaluation

LLM prompts

Contributing

How Splink works

Charts

User-Defined Functions

Dependency Compatibility Policy

Blog

Fast, accurate and scalable probabilistic data linkage¶

Splink is a Python package for probabilistic record linkage (entity resolution) that allows you to deduplicate and link records from datasets without unique identifiers.

Get Started with Splink

Key Features¶

⚡ Speed: Capable of linking a million records on a laptop in approximately one minute.

🎯 Accuracy: Full support for term frequency adjustments and user-defined fuzzy matching logic.

🌐 Scalability: Execute linkage jobs in Python (using DuckDB) or big-data backends like AWS Athena or Spark for 100+ million records.

🎓 Unsupervised Learning: No training data is required, as models can be trained using an unsupervised approach.

📊 Interactive Outputs: Provides a wide range of interactive outputs to help users understand their model and diagnose linkage problems.

Splink's core linkage algorithm is based on Fellegi-Sunter's model of record linkage, with various customizations to improve accuracy.

What does Splink do?¶

Consider the following records that lack a unique person identifier:

Splink predicts which rows link together:

and clusters these links to produce an estimated person ID:

What data does Splink work best with?¶

Before using Splink, input data should be standardised, with consistent column names and formatting (e.g., lowercased, punctuation cleaned up, etc.).

Splink performs best with input data containing multiple columns that are not highly correlated . For instance, if the entity type is persons, you may have columns for full name, date of birth, and city. If the entity type is companies, you could have columns for name, turnover, sector, and telephone number.

High correlation occurs when the value of a column is highly constrained (predictable) from the value of another column. For example, a 'city' field is almost perfectly correlated with 'postcode'. Gender is highly correlated with 'first name'. Correlation is particularly problematic if all of your input columns are highly correlated.

Splink is not designed for linking a single column containing a 'bag of words'. For example, a table with a single 'company name' column, and no other details.

Videos¶

Our PyData Global 2024 talk provides a brief introduction to Splink and is available on YouTube here.

Support¶

If after reading the documentation you still have questions, please feel free to post on our discussion forum.

Use Cases¶

Here is a list of some of our known users and their use cases:

Public Sector (UK)Public Sector (International)AcademiaOther

Office for National Statistics's Business Index (formerly the Inter Departmental Business Register), Demographic Index and the 2021 Census. See also this article and 2021 Census to PDS linkage report.

NHS England is working on developing an alternative data linkage model using splink as the core engine for a new probabilistic data linkage service. This is in order to improve linkage and linkage explainability across NHS datasets. Code now available on github.

Ministry of Defence launched their Veteran's Card system which uses Splink to verify applicants against historic records. This project was shortlisted for the Civil Service Awards

Ministry of Justice created linked datasets (combining courts, prisons and probation data) for use by researchers as part of the Data First programme

Ministry of Justice and the BOLD programme used Splink to power the North Essex Probation Delivery Unit Case Information Dashboard, which won the 2025 Civil Service Award for Excellence in Delivery.

UK Health Security Agency used Splink to link HIV testing data to national health records to evaluate the impact of emergency department opt-out bloodborne virus testing.

The Department for Education uses Splink to match records from certain data providers to existing learners and reduce the volume of clerical work required for corrections

SAIL Databank, in collaboration with Secure eResearch Platform (SeRP), uses Splink to produce linked cohorts for a wide range of population-level research applications

Lewisham Council (London) identified and auto-enrolled over 500 additional eligible families to receive Free School Meals

Leicestershire County Council use Splink to match individuals across their Education and Social Care systems. This ensures triage and front-line practitioners have a complete picture of those individuals.

Integrated Corporate Services have used Splink to match address data in historical...

splink data linkage records model column

Related Articles