Splink
Splink is a free Python package for probabilistic record linkage, used to deduplicate and connect records when unique identifiers are unavailable.
What Splink is
Splink is a free Python package for probabilistic record linkage, used to deduplicate and connect records when unique identifiers are unavailable. Its core method follows the Fellegi-Sunter model and can be trained without labeled examples through an unsupervised approach. Matching can use term-frequency adjustments and custom fuzzy logic. Splink creates SQL for a selected backend, with documented options including DuckDB, Spark, SQLite and PostgreSQL. The project recommends DuckDB for most situations and Spark for very large linkages or when a Spark cluster is easier to access; the maker says it can handle linkages of 100+ million records on DuckDB or big-data backends such as Spark. The package works best with standardized data across multiple, not highly correlated columns, and is not intended for a single bag-of-words column. Interactive visualizations help inspect and diagnose models, predictions and clusters. Install with pip or conda, with additional backend-specific setup documented for Spark and PostgreSQL. The maker points users with remaining questions to its GitHub discussion forum.
Good
- Can train without labeled examples.
- Supports fuzzy logic and term-frequency adjustments.
- Offers four documented SQL backends.
- Includes interactive model and cluster diagnostics.
- Free Python package installable with pip or conda.
Watch out
- Not designed for a single bag-of-words column.
- Databricks-specific support may be difficult to provide.
Who it suits
Splink suits analysts and data teams linking or deduplicating records without unique identifiers, provided their data has multiple standardized columns rather than only bag-of-words text.
Verdict
Splink is aimed at record linkage work where identifiers are missing and data has useful structured columns. Backend choice and data preparation matter, and users working with Databricks-specific issues may have limited support.
Plans and prices
From Splink's own pricing page, checked 15 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Free and open source | Free | Python package · self-hosted execution · DuckDB, Spark, SQLite or PostgreSQL backends |
| Splink | Free | Open-source Python package · install via pip or conda |
The facts
Each one read from Splink's own pages, with the date it was checked.
What it does
- Accuracy features
- It supports term-frequency adjustments and user-defined fuzzy matching logic.checked 15 Oct 2026
- Backend guidance
- DuckDB is recommended for most users except the largest linkages, while Spark is recommended for very large linkages or where a Spark cluster is easier to access.checked 29 Sep 2026
- Backend limitation
- Spark requires more configuration and is often slower than DuckDB; the team says it may struggle with Databricks-specific issues because it lacks a Databricks environment.checked 15 Oct 2026
- Backends
- The documented SQL backends include DuckDB, Spark, SQLite, and PostgreSQL; the library generates SQL for a user-chosen backend.checked 29 Sep 2026
- Custom comparisons
- Users can define custom comparison functions and choose built-in comparison and comparison-level libraries.checked 15 Oct 2026
- Databricks support
- The development team says it lacks access to a Databricks environment and may struggle to help with Databricks-specific issues.checked 29 Sep 2026
- Data requirements
- Splink works best with standardized data containing multiple columns that are not highly correlated, and is not designed for a single bag-of-words column.checked 29 Sep 2026
- Diagnostics
- Interactive visualisations help users understand and diagnose linkage models, including dashboards for examining predictions and clusters.checked 29 Sep 2026
- Documentation depth
- Official documentation includes tutorials, example notebooks with Google Colab links, topic guides, API references, settings references and datasets.checked 15 Oct 2026
- Funding origin
- The Ministry of Justice says ADR UK funded the Data First programme that created the team and work behind Splink.checked 15 Oct 2026
- Government scale result
- A UK Ministry of Justice publication reports Splink processing about 15 million records in under an hour and improving the ROC curve over the department's prior rules-based approach.checked 15 Oct 2026
- Independent study limitation
- A Florida Cancer Registry study found Splink required extra code for deduplication and said large-scale clerical review was uncertain; its waterfall chart was useful for spot checks but not many-record review.checked 15 Oct 2026
- Independent study result
- In a simulated Florida Cancer Registry comparison using SSN, Splink produced 627,315 true-positive links and 4 false positives in the reported confusion table.checked 15 Oct 2026
- Input-data limitation
- The project says performance is best with several standardised, not-highly-correlated columns and that a single bag-of-words column is outside its design.checked 15 Oct 2026
- Install
- Splink can be installed using pip or conda, with optional backend-specific installs documented for Spark and PostgreSQL.checked 29 Sep 2026
- Installation
- The getting-started guide supports installation with pip or conda and requires Python 3.10 or newer.checked 15 Oct 2026
- Interactive diagnostics
- Interactive visualisations help users inspect models, predictions and linkage problems.checked 15 Oct 2026
- Large-scale processing
- Linkage can run with DuckDB in Python or with distributed Spark backends for datasets exceeding 100 million records.checked 15 Oct 2026
- Licence
- The PyPI package is marked as MIT licensed and publishes a platform-independent Python wheel.checked 15 Oct 2026
- Licence complaint
- A GitHub issue opened in August 2026 argues that an unconditional GPL-licensed igraph dependency may create redistribution obligations for commercial products despite Splink's MIT licence.checked 15 Oct 2026
- Linkage modes
- It supports deduplication within one dataset, linking across datasets, and combined linking plus deduplication.checked 15 Oct 2026
- Matching
- It supports term frequency adjustments and user-defined fuzzy matching logic.checked 29 Sep 2026
The company
- Maker founded
- LinkedIn lists the UK Ministry of Justice as founded in 2007.checked 15 Oct 2026
- Maker headquarters and size
- LinkedIn lists the maker context as the UK Ministry of Justice, headquartered in London, with 10,001-plus employees.checked 15 Oct 2026
The full review of Splink
Splink is a free Python package for probabilistic record linkage when records lack unique identifiers. It suits teams with standardized, multi-column data and the skills to choose and run a SQL backend. Its appeal is flexible matching that can scale; it is a poor fit for unstructured text or anyone seeking a managed service.
Overview
Splink applies the Fellegi-Sunter model and can train without labeled examples, a useful advantage when teams cannot assemble verified matches. It generates SQL for a backend selected by the user, including DuckDB, Spark, SQLite, and PostgreSQL. That breadth supports different environments, but leaves backend choice and operation to the team.
Data preparation is central to getting value from the package. Splink works best with standardized records containing several useful columns that are not highly correlated; it is not designed to match records from one bag-of-words field. Teams with inconsistent or largely unstructured data should look elsewhere.
Key features
Probabilistic matching at scale
Term-frequency adjustments help account for how common values are, while user-defined fuzzy matching logic lets teams tailor comparisons to their data. The maker says Splink can handle linkages of 100+ million records on DuckDB or big-data backends such as Spark. DuckDB is the recommended choice for most users; Spark is better suited to very large linkages or teams with easier access to a Spark cluster.
Diagnostics and workflows
Interactive visualisations, including dashboards for examining predictions and clusters, help users understand and diagnose linkage models. Splink supports batch file import and is marked as offering a real-time API and organization matching, though the package's core purpose remains probabilistic linkage and deduplication.
Installation is through pip or conda, with optional backend-specific installs documented for Spark and PostgreSQL. For questions that remain after consulting the documentation, the maker points users to its GitHub discussion forum. The development team says it lacks access to a Databricks environment and may struggle to help with Databricks-specific issues, a meaningful support limitation for teams committed to that setup.
Pricing
Splink — free: The open-source Python package can be installed through pip or conda. There is no paid tier or free trial to weigh; the trade-off is that users must select and operate their own backend rather than buying a managed service.
Platforms
Splink supports Linux, macOS, and Windows, and is self-hosted. Its backend options include DuckDB, Spark, SQLite, and PostgreSQL, with backend-specific installation options documented for Spark and PostgreSQL.
Who it's for
Splink is a strong fit for technical teams in government, academia, and other sectors that need to deduplicate or link structured records without unique identifiers. The maker names the Office for National Statistics, NHS England, and the Australian Bureau of Statistics among its users. It is best for teams that can prepare suitable data and manage their chosen backend; a managed product or a method geared to unstructured text is a better direction for others.
Pros and cons
- Flexible probabilistic matching: Unsupervised training, term-frequency adjustments, and custom fuzzy logic support linkage work without labeled examples.
- Several backend choices: SQL generation for DuckDB, Spark, SQLite, and PostgreSQL gives teams options, with DuckDB recommended for most and Spark for very large jobs or accessible clusters.
- Useful diagnostics: Interactive visualisations and dashboards for predictions and clusters make model examination part of the workflow.
- Data-dependent fit: It is designed for standardized, multi-column records, not a single bag-of-words field.
- Operational and support burden: Users manage their backend, and Databricks-specific questions may be difficult for the development team to support.
Alternatives
For a wider comparison, browse Identity Resolution Software. Choose among these alternatives based on deployment, pricing, and workflow needs:
- InterSystems IRIS has a free Community Edition as well as paid options and a free trial.
- Hightouch offers a web and API-based freemium option; its Free plan includes 2 active syncs per month, hourly sync frequency, and 100,000,000 operations per month.
- Zingg is another free, self-hosted option for Linux, with a community open-source plan for batch probabilistic matching across millions of records.
- Treasure AI Composable CDP is a paid option for Android, iOS, web, and API, with warehouse credits applying to query execution.
- Open Client Registry (OpenCR) is a free option developed by IntraHealth International with USAID support through the MEASURE Evaluation project.
- Precisely Data Matching and Entity Resolution is a paid option for Linux, self-hosted, web, and Windows deployments.
- Senzing Entity Resolution offers free and paid plans, a free trial, and deployment across API, desktop, web, and self-hosted environments.
- Quantexa Entity Resolution is a paid option for API, self-hosted, and web deployments.
Verdict
Choose Splink if your team needs flexible probabilistic linkage for well-structured records, wants an open-source Python package, and can run its own backend. The combination of unsupervised training, configurable matching, and backend choice is compelling for that job.
Getting started
- Open the project documentation at https://moj-analytical-services.github.io/splink/.
- Install Splink using pip or conda.
- Choose a documented SQL backend; DuckDB is recommended for most users, while Spark is recommended for very large linkages or accessible Spark clusters.
- Follow the optional backend-specific installation steps if using Spark or PostgreSQL.
- Use the interactive visualizations to examine linkage models, predictions and clusters.
- Visit the GitHub discussion forum for questions remaining after reading the documentation.
Questions
How much does Splink cost?
Splink is free. Its plan is listed as free.
Is Splink open source?
Yes. It is an open-source Python package.
Which operating systems does Splink support?
The listed platforms are Linux, macOS, Windows and self-hosted use.
Which SQL backends are documented?
Splink documents DuckDB, Spark, SQLite and PostgreSQL. It generates SQL for the backend selected by the user.
Does Splink need labeled examples?
No. Its Fellegi-Sunter-based algorithm can be trained through an unsupervised approach without labeled data.
What kind of data suits Splink?
It works best with standardized data containing multiple columns that are not highly correlated. It is not designed for a single bag-of-words column.
Alternatives to Splink
- 1

Hightouch
Free planAndroidiOSWebAPI8.2From $350 a month - 2

Zingg
Free planOpen sourceAPILinuxmacOSSelf-hosted7.4Free plan - 3
Senzing Entity Resolution
WebAPILinuxmacOS6.7From $58,560 a year - 4
NVECTA
AndroidiOSWebAPI6.2 - 5

AWS Entity Resolution
Free planWebAPI6.1Free plan - 6

DinMo
WebAPI6.0
