Freedom251 › Identity Resolution Software
Splink

What Splink is
Splink is a free Python package for linking and deduplicating records when unique identifiers are unavailable. Its probabilistic matching method follows the Fellegi-Sunter model and can be trained without labeled data. Users can apply term-frequency adjustments and define fuzzy matching logic. The package generates SQL for a selected backend, with documented support for DuckDB, Spark, SQLite and PostgreSQL. The maker recommends DuckDB for most users, while Spark is suggested for very large linkages or when a Spark cluster is easier to access. The maker says Splink can handle linkages of 100+ million records on DuckDB or big-data backends such as Spark. It works best with standardized data across multiple columns that are not highly correlated, rather than a single bag-of-words column. Interactive visualizations help users examine and diagnose models, predictions and clusters. Install it with pip or conda; optional backend-specific installation guidance is documented for Spark and PostgreSQL. Users with remaining questions can turn to the GitHub discussion forum.
Who it suits
Splink suits teams and analysts who need to link or deduplicate records without unique identifiers, and can work with Python and a supported SQL backend. It is a poor fit for data represented by only one bag-of-words column.
What it does well
- Can train without labeled data.
- Supports term-frequency adjustments and user-defined fuzzy logic.
- Offers DuckDB, Spark, SQLite and PostgreSQL backends.
- Interactive visualizations help diagnose models and clusters.
- Free to install with pip or conda.
What to know first
- Works best with standardized, multiple-column data.
- Not designed for a single bag-of-words column.
- The team may struggle with Databricks-specific issues.
Limits
The package works best with standardized data across multiple columns that are not highly correlated and is not designed for a single bag-of-words column. The development team says it may struggle to help with Databricks-specific issues.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Splink | Open-source Python package · install via pip or conda | Free |
| Free and open source | Python package · self-hosted execution · DuckDB, Spark, SQLite or PostgreSQL backends | Free |
As moj-analytical-services.github.io lists them, read 29 Sept 2026. The maker's own page has the final word.
Getting started
- Install Splink with pip or conda.
- Choose a documented SQL backend: DuckDB, Spark, SQLite or PostgreSQL.
- Use DuckDB for most cases, or consider Spark for very large linkages or when a Spark cluster is easier to access.
- Prepare standardized data with multiple columns that are not highly correlated.
- Use the interactive visualizations to inspect predictions and clusters.
- Ask remaining questions in the GitHub discussion forum.
Splink is a free Python package for linking and deduplicating records without unique identifiers. It is best suited to teams with well-structured data and the capacity to run a SQL backend. Its strongest case is flexible probabilistic matching that can scale, not a managed service or a way to match a single field of unstructured text.
Overview
Splink uses the Fellegi-Sunter model and can learn matching rules without labeled data. That makes it useful when verified examples are scarce. It generates SQL for a backend chosen by the user—DuckDB, Spark, SQLite or PostgreSQL—so it can fit different data environments, but the team remains responsible for choosing and operating that backend.
Data shape matters: Splink works best with standardized records that have several useful, not highly correlated columns. It is not designed to resolve records from one bag-of-words column, so teams without structured attributes should look elsewhere.
Key features
Flexible matching and scale
Term-frequency adjustments account for how common values are, and user-defined fuzzy matching logic lets teams tailor comparisons. The maker says Splink can handle linkages of 100+ million records on DuckDB or big-data backends such as Spark. DuckDB is recommended for most users; Spark is the better fit for very large linkages or when a Spark cluster is easier to access.
Diagnostics and setup
Interactive visualizations, including dashboards for predictions and clusters, help users inspect and diagnose linkage models rather than treating the output as a black box. Installation is through pip or conda, with optional backend-specific installs documented for Spark and PostgreSQL. Questions that remain after reading the documentation can go to the GitHub discussion forum. Databricks users should factor in a support limitation: the development team says it lacks access to a Databricks environment and may struggle to resolve platform-specific issues.
Pricing
Splink is free: its open-source Python package costs nothing and can be installed with pip or conda. There is no free trial to weigh against a paid plan. The package is the offer; teams still need to select and operate a backend suited to their data and infrastructure.
Platforms
Splink supports Linux, macOS and Windows, and can be self-hosted. It is a Python package that generates SQL for the selected backend, rather than a hosted service.
Who it's for
Splink is a strong fit for analysts and engineering teams in government, academia or other sectors that need probabilistic linkage across structured records and can manage their own data environment. Its maker names the Office for National Statistics, NHS England and the Australian Bureau of Statistics among its users. It is a weaker choice for teams whose data is mainly unstructured text, or who need a managed service or dependable Databricks-specific help.
Pros and cons
- Pros: Unsupervised training can reduce reliance on labeled matches; configurable fuzzy matching and term-frequency adjustments suit varied record sets; multiple SQL backends and diagnostics support both deployment flexibility and model inspection; the package is free.
- Cons: Results depend on standardized, multi-column data; users must choose and operate a backend; Databricks-specific support may be difficult to obtain.
Alternatives
Browse the Identity Resolution Software category to compare options. InterSystems IRIS is a paid product with a free plan and trial, a possible alternative for teams considering a broader platform. Hightouch has a free plan with two active syncs per month and hourly syncs; consider it when those sync limits fit the job. Zingg offers a free open-source community edition for batch probabilistic matching across millions of records, making it another option for that workload.
Open Client Registry (OpenCR) is an alternative developed by IntraHealth International with USAID support through the MEASURE Evaluation project. Senzing Entity Resolution is a paid alternative with a free plan and trial; its listed 10M DSR subscription costs $58,560 a year. Treasure AI Composable CDP is a paid alternative with warehouse credits applying to query execution. NVECTA is another paid option. Precisely Data Matching and Entity Resolution is a paid alternative with custom pricing.
Verdict
Choose Splink if you need free, configurable probabilistic linkage for structured records and can take responsibility for backend setup and operation. Its combination of unsupervised learning, adjustable matching and diagnostics is compelling; look elsewhere if your data is mostly unstructured or you need a managed service with stronger Databricks-specific support.
Verdict
Splink offers a free, configurable approach to probabilistic record linkage, with several SQL backend options and diagnostic visualizations. Data shape and backend setup matter, and Databricks-specific help may be limited.
Questions
Is Splink free?
Yes. The Splink plan is free. It is an open-source Python package.
How do I install Splink?
Install it using pip or conda. Optional backend-specific installation guidance is documented for Spark and PostgreSQL.
Which backends does Splink support?
Documented SQL backends are DuckDB, Spark, SQLite and PostgreSQL. Splink generates SQL for the backend you choose.
Does Splink need labeled examples?
No. Its core algorithm can be trained without labeled data using an unsupervised approach.
What kind of data is Splink suited to?
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.
Where can I get help?
The maker directs users with remaining questions to its GitHub discussion forum. Its development team says it may struggle to help with Databricks-specific issues.
Facts from Splink's own pages
- Accuracy features
- It supports term-frequency adjustments and user-defined fuzzy matching logic. · github.com, 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. · moj-analytical-services.github.io, 29 Sept 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. · moj-analytical-services.github.io, 15 Oct 2026
- Backends
- The documented SQL backends include DuckDB, Spark, SQLite, and PostgreSQL; the library generates SQL for a user-chosen backend. · moj-analytical-services.github.io, 29 Sept 2026
- Custom comparisons
- Users can define custom comparison functions and choose built-in comparison and comparison-level libraries. · gov.uk, 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. · moj-analytical-services.github.io, 29 Sept 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. · moj-analytical-services.github.io, 29 Sept 2026
- Diagnostics
- Interactive visualisations help users understand and diagnose linkage models, including dashboards for examining predictions and clusters. · moj-analytical-services.github.io, 29 Sept 2026
- Documentation depth
- Official documentation includes tutorials, example notebooks with Google Colab links, topic guides, API references, settings references and datasets. · moj-analytical-services.github.io, 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. · gov.uk, 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. · gov.uk, 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. · fcds.med.miami.edu, 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. · fcds.med.miami.edu, 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. · moj-analytical-services.github.io, 15 Oct 2026
- Install
- Splink can be installed using pip or conda, with optional backend-specific installs documented for Spark and PostgreSQL. · moj-analytical-services.github.io, 29 Sept 2026
- Installation
- The getting-started guide supports installation with pip or conda and requires Python 3.10 or newer. · moj-analytical-services.github.io, 15 Oct 2026
- Interactive diagnostics
- Interactive visualisations help users inspect models, predictions and linkage problems. · github.com, 15 Oct 2026
- Large-scale processing
- Linkage can run with DuckDB in Python or with distributed Spark backends for datasets exceeding 100 million records. · github.com, 15 Oct 2026
- Licence
- The PyPI package is marked as MIT licensed and publishes a platform-independent Python wheel. · pypi.org, 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. · github.com, 15 Oct 2026
- Linkage modes
- It supports deduplication within one dataset, linking across datasets, and combined linking plus deduplication. · moj-analytical-services.github.io, 15 Oct 2026
- Maker founded
- LinkedIn lists the UK Ministry of Justice as founded in 2007. · linkedin.com, 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. · linkedin.com, 15 Oct 2026
- Matching
- It supports term frequency adjustments and user-defined fuzzy matching logic. · moj-analytical-services.github.io, 29 Sept 2026
Where Splink stands on Freedom251
- Identity Resolution Software#1 of 25