NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4431 most downloaded on PyPI
Fast probabilistic data linkage at scale
Last release 14 days ago
03 Sep 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
163 releases · first in 2020
One column per quarter.
Conda install in readme by @ADBond in https://github.com/moj-analytical-services/splink/pull/1002
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.5.4...v3.6.0
threshold_actual parameter in precision-recall charts by @James-Osmond in https://github.com/moj-analytical-services/splink/pull/968
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.5.3...v3.5.4
Lint SparkLinker by @RobinL in https://github.com/moj-analytical-services/splink/pull/955
add_l_or_r_to_identifier now has case for type exp.Lambda by @James-Osmond in https://github.com/moj-analytical-services/splink/pull/979datediff comparison levels by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/972find_matches_to_new_records to automatically generate our tf tables by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/983Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.5.2...v3.5.3
Table exists in database update by @robertwhiffin in https://github.com/moj-analytical-services/splink/pull/948
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.5.1...v3.5.2
fix to allow for explictly setting catalog. by @robertwhiffin in https://github.com/moj-analytical-services/splink/pull/945
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.5.0...v3.5.1
Splink now should work much more easily in databricks due to the following PR by roberwhiffin: Splink databricks by @robertwhiffin in https://github.c
Splink now should work much more easily in databricks due to the following PR by roberwhiffin: Splink databricks by @robertwhiffin in https://github.com/moj-analytical-services/splink/pull/915
estimate_m_from_pairwise_labels by @kylebutts in https://github.com/moj-analytical-services/splink/pull/938Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.4.5...v3.5.0
Dec 12, 2022 2 files
Dec 12, 2022 2 files
Ensure input tables are overwritten for real time linkage to prevent 'table already exists' errors by @RobinL in https://github.com/moj-analytical-ser
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.4.4...v3.4.5
Return settings dict from save_settings_to_json() by @NickCrews in https://github.com/moj-analytical-services/splink/pull/907
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.4.3...v3.4.4
Changed distance function name in jaro_winkler_level to mutable_params by @zslade in https://github.com/moj-analytical-services/splink/pull/868
estimate_probability_two_random_records_match by @ADBond in https://github.com/moj-analytical-services/splink/pull/877Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.4.2...v3.4.3
[DOCS] updated regrading register_table by @rapidAmbakar in https://github.com/moj-analytical-services/splink/pull/851
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.4.1...v3.4.2
Adjust cumulative_blocking_rule_comparisons_generated chart def by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/833
cumulative_blocking_rule_comparisons_generated chart def by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/833register_table function by @ThomasHepworth https://github.com/moj-analytical-services/splink/commit/ba464d08e4e01aa2643c3605fd111afc33b2bf95Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.4.0...v3.4.1
Fix cumulative br bug by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/816
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.9...v3.4.0
[FIX] Correct variable name in training warning message by @ADBond in https://github.com/moj-analytical-services/splink/pull/813
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.8...v3.3.9
[FEAT] Add F1 score to ROC and precision/recall charts by @NickCrews in https://github.com/moj-analytical-services/splink/pull/807
[FEAT] Add F1 score to ROC and precision/recall charts by @NickCrews in https://github.com/moj-analytical-services/splink/pull/807
[MAINT] Add test from discussion 799 by @RobinL in https://github.com/moj-analytical-services/splink/pull/803
[FIX] Add preceding blocking rules to eliminate dupes in find_matches_to_new_records by @RobinL in https://github.com/moj-analytical-services/splink/pull/810
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.7...v3.3.8
[FIX] Improve poor performance of linker.prediction_errors_from_labels_table in Spark by @RobinL in https://github.com/moj-analytical-services/splink/
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.6...v3.3.7
[FIX] fix predict and match weight parts by @RobinL in https://github.com/moj-analytical-services/splink/pull/797
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.5...v3.3.6
[fix] 795 too many tf columns selected by splink by @RobinL in https://github.com/moj-analytical-services/splink/pull/796
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.4...v3.3.5
[FIX] Fix errors from missing columns when calling ROC/Precision recall chart from labels table by @RobinL in https://github.com/moj-analytical-servic
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.3...v3.3.4
[DOCS] Add febrl3 example to docs by @RobinL in https://github.com/moj-analytical-services/splink/pull/790
_is_exact_match rules by @RobinL in https://github.com/moj-analytical-services/splink/pull/791Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.2...v3.3.3
[MAINT] Remove print statement by @RobinL in https://github.com/moj-analytical-services/splink/pull/789
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.1...v3.3.2
[FIX] Ensure pipeline resets by @RobinL in https://github.com/moj-analytical-services/splink/pull/787
[FIX] Ensure pipeline resets by @RobinL in https://github.com/moj-analytical-services/splink/pull/787
[DOCS] Remove realtime from tutorial by @RobinL in https://github.com/moj-analytical-services/splink/pull/782
[DOCS] 50k example by @RobinL in https://github.com/moj-analytical-services/splink/pull/783
[DOCS] Add examples index by @RobinL in https://github.com/moj-analytical-services/splink/pull/784
[MAINT] Bump version to v3.3.1 by @RobinL in https://github.com/moj-analytical-services/splink/pull/788
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.0...v3.3.1
Note there's a small backwards incompatible change to the API where previous earlier names for accuracy functions have been replaced with the followin…
Note there's a small backwards incompatible change to the API where previous earlier names for accuracy functions have been replaced with the following:
The underlying data table for ROC/precision recall analysis
linker.truth_space_table_from_labels_column()
linker.truth_space_table_from_labels_table()
ROC charts
linker.roc_chart_from_labels_column()
linker.roc_chart_from_labels_table()
Precision recall charts
linker.precision_recall_chart_from_labels_column()
linker.precision_recall_chart_from_labels_table()
Individual predictions which are either false positives or false negatives, to plot in waterfall chart
linker.prediction_errors_from_labels_column()
linker.prediction_errors_from_labels_table()
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.2.1...v3.3.0
[FIX] Jaro spark fix by @RobinL in https://github.com/moj-analytical-services/splink/pull/776
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.0.dev02...v3.3.0.dev03
[DOCS] Add examples to docs by @RobinL in https://github.com/moj-analytical-services/splink/pull/774
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.3.0.dev01...v3.3.0.dev02
[DOCS] Add links to videos into main readme by @RobinL in https://github.com/moj-analytical-services/splink/pull/765
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.2.1...v3.3.0.dev01
Sep 13, 2022 2 files
Sep 13, 2022 2 files
[MAINT] Make Splink compatible with duckdb v0.5.0 release by @RobinL in https://github.com/moj-analytical-services/splink/pull/750
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.2.0...v3.2.1
There are two minor breaking changes:
There are two minor breaking changes:
(1). settings must now always be provided to instantiate the linker object. The most minimal settings object is {"link_type": your_link_type}
(2). By default, EM training sessions no longer estimate the probability_two_random_records_match. This can be enables by passing an argument explicitly.
[DOCS] Update main readme to include clustering by @RobinL in https://github.com/moj-analytical-services/splink/pull/696
add version tag by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/695
add a custom translation for cast(<val> as double) -> <val>D by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/697
add duckdb helper functions to a separate script by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/700
[docs] fix minor typo in docs by @Thomas-Hirsch in https://github.com/moj-analytical-services/splink/pull/708
[Docs] Dev guide to transpilation by @RobinL in https://github.com/moj-analytical-services/splink/pull/711
[MAINT] Log SQL statements before, not after, they are executed in Spark by @RobinL in https://github.com/moj-analytical-services/splink/pull/714
[DOCS] Update binder link in readme by @RobinL in https://github.com/moj-analytical-services/splink/pull/716
Adjust input col sql logic by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/725
lint black external contribution by @RobinL in https://github.com/moj-analytical-services/splink/pull/728
[Docs] Update dev guide to sqlglot and transpilation by @RobinL in https://github.com/moj-analytical-services/splink/pull/729
better quote unquote by @RobinL in https://github.com/moj-analytical-services/splink/pull/731
[MAINT] Don't return html by default, it crashes jupyter by @RobinL in https://github.com/moj-analytical-services/splink/pull/735
Update sqlglot v5 by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/736
Athena fixes by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/738
[DOCS] Add developers guide to building docs locally by @RobinL in https://github.com/moj-analytical-services/splink/pull/740
[MAINT] Improve implementation of InputColumn and remove transpile by @RobinL in https://github.com/moj-analytical-services/splink/pull/727
Document save_offline_chart and ensure it works if passed a vega lite chart by @RobinL in https://github.com/moj-analytical-services/splink/pull/742
[MAINT] Improve analyse blocking by @RobinL in https://github.com/moj-analytical-services/splink/pull/743
[MAINT] Bump version for prerelease by @RobinL in https://github.com/moj-analytical-services/splink/pull/744
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.1.0...v3.2.0.dev01
[FEAT] Add support for pairwise format of clusters by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/707
[DOCS] Update main readme to include clustering by @RobinL in https://github.com/moj-analytical-services/splink/pull/696
add version tag by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/695
add a custom translation for cast(<val> as double) -> <val>D by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/697
add duckdb helper functions to a separate script by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/700
[docs] fix minor typo in docs by @Thomas-Hirsch in https://github.com/moj-analytical-services/splink/pull/708
[Docs] Dev guide to transpilation by @RobinL in https://github.com/moj-analytical-services/splink/pull/711
[MAINT] Log SQL statements before, not after, they are executed in Spark by @RobinL in https://github.com/moj-analytical-services/splink/pull/714
[DOCS] Update binder link in readme by @RobinL in https://github.com/moj-analytical-services/splink/pull/716
Adjust input col sql logic by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/725
lint black external contribution by @RobinL in https://github.com/moj-analytical-services/splink/pull/728
[Docs] Update dev guide to sqlglot and transpilation by @RobinL in https://github.com/moj-analytical-services/splink/pull/729
better quote unquote by @RobinL in https://github.com/moj-analytical-services/splink/pull/731
[MAINT] Don't return html by default, it crashes jupyter by @RobinL in https://github.com/moj-analytical-services/splink/pull/735
Update sqlglot v5 by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/736
Athena fixes by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/738
[DOCS] Add developers guide to building docs locally by @RobinL in https://github.com/moj-analytical-services/splink/pull/740
[MAINT] Improve implementation of InputColumn and remove transpile by @RobinL in https://github.com/moj-analytical-services/splink/pull/727
Document save_offline_chart and ensure it works if passed a vega lite chart by @RobinL in https://github.com/moj-analytical-services/splink/pull/742
[MAINT] Improve analyse blocking by @RobinL in https://github.com/moj-analytical-services/splink/pull/743
[MAINT] Bump version for prerelease by @RobinL in https://github.com/moj-analytical-services/splink/pull/744
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.1.0...v3.2.0.dev01
Warning In version 3.1.0 there's a small API change to the SparkLinker that’s backwards incompatible. i.e. it’s a minor violation of semver
Warning In version 3.1.0 there's a small API change to the SparkLinker that’s backwards incompatible. i.e. it’s a minor violation of semver
The changes affect the SparkLinker only:
break_lineage_method will change to parquetbreak_lineage_after_blocking param is renamed to repartition_after_blocking for clarityfind_matches_to_new_records to take table name as input, in addition to rows by @RobinL in https://github.com/moj-analytical-services/splink/pull/659count_num_comparisons_from_blocking_rules_for_prediction by @RobinL in https://github.com/moj-analytical-services/splink/pull/661Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.1...v3.1.0
Improve the performance of our training steps by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/648
estimate_u_using_random_sampling by @RobinL in https://github.com/moj-analytical-services/splink/pull/641splink_demos for Splink3 are now on the master branch by @RobinL in https://github.com/moj-analytical-services/splink/pull/637
Topic guide for salting by @RobinL in https://github.com/moj-analytical-services/splink/pull/638
Add topic guide to documentation covering different execution backends by @RobinL in https://github.com/moj-analytical-services/splink/pull/643
Fix __repr__ of EMTrainingSession by @RobinL in https://github.com/moj-analytical-services/splink/pull/645
Version and download numbers badges in readme by @samnlindsay in https://github.com/moj-analytical-services/splink/pull/650
Add acknowledgement for academic advisors by @RobinL in https://github.com/moj-analytical-services/splink/pull/652
Update README badges by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/651
Bump sqlglot version and 3.0.1 by @RobinL in https://github.com/moj-analytical-services/splink/pull/653
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0...v3.0.1
splink version 3.0.0 is a complete re-write. The major new features are:
splink version 3.0.0 is a complete re-write. The major new features are:
Splink no longer requires Spark. It can now run against multiple backends, including DuckDB, Spark, and AWS Athena.
Term frequency adjustments can be applied more flexibly, with more options - see here
Using the DuckDB backend, close to real time linkage of new records is possible, enabling Splink to be embedded in search services, see here
Many Splink operations are faster across all backends. The most dramatic speedups are for smaller linkages of less than around 1m records, whereby using DuckDB rather than Spark can result in runtimes that are 10x faster or better.
A more comprehensive documentation website is available here
The cluster studio and comparison viewer dashboards are now bundled with Splink rather than being separate packages, making them simpler to use and preventing issues with version incompatibilities
We recommend re-training models. However, we do provide a Splink 2 to 3 converter that attempts to convert a Splink 2 settings dictionary into the Splink 3 equivalent.
This works on a 'best efforts' basis, so is not guaranteed to work for every model
adjust filepath parquet files are output along by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/628
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev24...v3.0.0.dev25
Athena cluster studio fix for release by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/626
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev23...v3.0.0.dev24
logging fix by @RobinL in https://github.com/moj-analytical-services/splink/pull/625
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev22...v3.0.0.dev23
shorter names by @RobinL in https://github.com/moj-analytical-services/splink/pull/615
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev21...v3.0.0.dev22
Correctness test by @RobinL in https://github.com/moj-analytical-services/splink/pull/569
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev20...v3.0.0.dev21
Add quickstart to main readme by @RobinL in https://github.com/moj-analytical-services/splink/pull/563
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev19...v3.0.0.dev20
Fix issue 523 by @RobinL in https://github.com/moj-analytical-services/splink/pull/542
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev18...v3.0.0.dev19
Fix compare two records by @RobinL in https://github.com/moj-analytical-services/splink/pull/540
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev17...v3.0.0.dev18
Update comparison_level.py by @mamonu in https://github.com/moj-analytical-services/splink/pull/537
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev16...v3.0.0.dev17
Splink3 athena test by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/498
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev15...v3.0.0.dev16
Load and save model by @RobinL in https://github.com/moj-analytical-services/splink/pull/506
Load and save model by @RobinL in https://github.com/moj-analytical-services/splink/pull/506
Raise appropriate errors if waterfall chart or dashboard are called without correct columns retained by @RobinL in https://github.com/moj-analytical-services/splink/pull/509
Refactor to be more consitent with other link_types by @RobinL in https://github.com/moj-analytical-services/splink/pull/497
2 to 3 settings converter by @RobinL in https://github.com/moj-analytical-services/splink/pull/469
Splink3 unlinkables by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/489
concatenate by @RobinL in https://github.com/moj-analytical-services/splink/pull/507
code clarity by @RobinL in https://github.com/moj-analytical-services/splink/pull/508
fix issue where we were trying to inner join both of our input dfs by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/510
add more explicit ID checks by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/511
bump to dev15 by @RobinL in https://github.com/moj-analytical-services/splink/pull/512
better docs by @RobinL in https://github.com/moj-analytical-services/splink/pull/499
estimate not train by @RobinL in https://github.com/moj-analytical-services/splink/pull/502
further tidying and docs by @RobinL in https://github.com/moj-analytical-services/splink/pull/503
Comparison level docs by @RobinL in https://github.com/moj-analytical-services/splink/pull/504
completed dict private by @RobinL in https://github.com/moj-analytical-services/splink/pull/505 Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev14...v3.0.0.dev15
Better splink dataframe docs by @RobinL in https://github.com/moj-analytical-services/splink/pull/488
input_column rather than strings by @RobinL in https://github.com/moj-analytical-services/splink/pull/492Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev13...v3.0.0.dev14
add docs to linker by @RobinL in https://github.com/moj-analytical-services/splink/pull/476
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev12...v3.0.0.dev13
improve m u value chart by @RobinL in https://github.com/moj-analytical-services/splink/pull/435
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev11...v3.0.0.dev12
update readme by @RobinL in https://github.com/moj-analytical-services/splink/pull/422
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev10...v3.0.0.dev11
reuse delete_table_from_database method in our duckdbframe by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/415
delete_table_from_database method in our duckdbframe by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/415Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev09...v3.0.0.dev10
remove greatest from sqlite by @RobinL in https://github.com/moj-analytical-services/splink/pull/413
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev08...v3.0.0.dev09
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev07...v3.0.0.dev08
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev07...v3.0.0.dev08
improve escaping by @RobinL in https://github.com/moj-analytical-services/splink/pull/403
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev06...v3.0.0.dev07
Splink3 schemas by @Th368MoJ in https://github.com/moj-analytical-services/splink/pull/373
v3.0.0.dev06
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.0.0.dev05...v3.0.0.dev06
Apr 15, 2022 2 files Pre-release
Apr 15, 2022 2 files
Pre-release
Apr 1, 2022 2 files Pre-release
Apr 1, 2022 2 files
Pre-release
Mar 30, 2022 2 files Pre-release
Mar 30, 2022 2 files
Pre-release
Mar 15, 2022 2 files Pre-release
Mar 15, 2022 2 files
Pre-release
Early Splink3 release See here for demos
Early Splink3 release
See here for demos
Jun 7, 2022 2 files
Jun 7, 2022 2 files
Update case_statements.py by @zslade in https://github.com/moj-analytical-services/splink/pull/390
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v2.1.12...v2.1.13
Your coding agent can read these notes before it upgrades. Set up the MCP server →