NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4307 most downloaded on PyPI
Fast probabilistic data linkage at scale
Last release 7 days ago
28 Sep 2026
Release timing varies
gaps range from 9 days to 4 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
165 releases · first in 2020
One column per quarter.
Splink 5 - Remove implicit cache by Robin Linacre (@RobinL) in #2847
master to Splink 5 by ADBond in #2880linker.misc.query_sql to output SplinkDataFrame by default by ADBond in #2970ty visibility by ADBond in #2971TestHelper.convert frame() by ADBond in #2987max_pairs on EM training by Robin Linacre (@RobinL) in #3050find_matches_to_new_records and better document compare_two_records by Robin Linacre (@RobinL) in #3091predict_between and predict_within, score_pair, score_pairs by Robin Linacre (@RobinL) in #3104splink4_maintenance branch by ADBond in #3112ty by ADBond in #3163Note truncated.
Major release - see our blog. Significant changes as follows. See also comprehensive note of changes.
predict_within() and predict_between() methods score new or selected datasets, while score_pair() and score_pairs() score individual pairs or all pairs between two collections.max_pairs cap; prior estimation and blocking analysis support record sampling. Blocking counts are sampled by default, with exact counts still available.db_api.register() before passing them to Linker; the constructor no longer takes db_api=. query_sql() returns a SplinkDataFrame by default, and as_record_dict() is renamed to as_record_list().splink[igraph] when the is_bridge edge metric is needed.SplinkChart, with native notebook display and HTML export, including offline HTML. Install splink[altair] for Altair customisation and advanced exports; Jinja2 is no longer required for chart or dashboard rendering.bf_ to mw_. bayes_factor_column_prefix is deprecated in favour of match_weight_column_prefix.DateOfBirthComparison uses standard Levenshtein distance on all supported backends. Transposed digits may fall into a different comparison level when rebuilding a model from the template.compare_two_records() and find_matches_to_new_records(), implicit caching and use_cache, salting, the materialise_blocked_pairs argument, and the exploratory similarity-analysis helpers. See the comprehensive note for replacements and migration details..jar (0.2.1) with newer dependency versions #3098For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation .
Source distribution for splink 5.0.0 File Size Uploaded
splink-5.0.0.tar.gz 2.1 MB Sep 28, 2026 Details
Table of built distributions (wheels) for splink 5.0.0 File Interpreter ABI Platform Reset
splink-5.0.0-py3-none-any.whl 2.2 MB Sep 28, 2026 Python 3 none any Details
Total release size: 4.3 MB
Typing conformance with ty by ADBond in #3163
ty by ADBond in #3163Full Changelog: v5.0.0.dev4...v5.0.0.dev5
Remove lycheeverse action from docs workflow by ADBond in #3015
max_pairs on EM training by Robin Linacre (@RobinL) in #3050find_matches_to_new_records and better document compare_two_records by Robin Linacre (@RobinL) in #3091predict_between and predict_within, score_pair, score_pairs by Robin Linacre (@RobinL) in #3104splink4_maintenance branch by ADBond in #3112Full Changelog: v5.0.0.dev3...v5.0.0.dev4
github-actions(deps): Bump github/codeql-action from 4.32.4 to 4.32.6 by Dependabot (@dependabot) [bot] in #2980
TestHelper.convert frame() by ADBond in #2987Full Changelog: v5.0.0.dev2...v5.0.0.dev3
Splink 5 - Remove implicit cache by Robin Linacre (@RobinL) in #2847
master to Splink 5 by ADBond in #2880linker.misc.query_sql to output SplinkDataFrame by default by ADBond in #2970ty visibility by ADBond in #2971Full Changelog: v4.0.16...v5.0.0.dev2
bayes_factor_column_prefix setting is deprecated in favour of match_weight_column_prefix #2851
table_management functions to explicitly manage table caching #2848bayes_factor_column_prefix setting is deprecated in favour of match_weight_column_prefix #2851use_cache parameter from database execution methods #2847materialise_blocked_pairs argument from predict (blocked pairs are now always materialised) #2848Dec 17, 2025 2 files
This release
4.0.17 This release
Sep 3, 2026 2 files
uv(deps-dev): Bump sqlalchemy from 2.0.47 to 2.0.48 by Dependabot (@dependabot) [bot] in #2953
Full Changelog: v4.0.16...v4.0.17
Fast probabilistic data linkage at scale
pip install splink Copy PIP instructions
[!IMPORTANT] 🎉 Splink 4 has been released! Examples of new syntax are here and a release announcement is here .
uv(deps-dev): bump pymdown-extensions from 10.20.1 to 10.21 by Dependabot (@dependabot) [bot] in #2942
Full Changelog: v4.0.15...v4.0.16
Faster two_dataset_link_only joins when joining small table to large in duckdb by Robin Linacre (@RobinL) in #2936
two_dataset_link_only joins when joining small table to large in duckdb by Robin Linacre (@RobinL) in #2936Full Changelog: v4.0.14...v4.0.15
Two dataset link only exploding blocking rule optimisation by Robin Linacre (@RobinL) in #2931
Full Changelog: v4.0.13...v4.0.14
Bump lockfile versions by ADBond in #2871
awswrangler from lockfile resolution by ADBond in #2920Full Changelog: v4.0.12...v4.0.13
Drop python 3 8 by ADBond in #2819
Full Changelog: v4.0.11...v4.0.12
Pre-release to ensure #2844 works correctly
Pre-release to ensure #2844 works correctly
Upgrade lockfile by @ADBond in https://github.com/moj-analytical-services/splink/pull/2811
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.10...v4.0.11
py.typed marker #2815Deprecate python 3.9 by @ADBond in https://github.com/moj-analytical-services/splink/pull/2797
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.9...v4.0.10
debug_mode so that it better aligns with ordinary execution (#2789)cluster_pairwise_predictions_at_thresholds to help Spark optimise it better (#2766)NULL (#2805)3.9.x following end of support for that minor version (#2797)validate_settings_against_schema and corresponding dependency on jsonschema (#2798)2710 comparison viewer performance by @aymonwuolanne in https://github.com/moj-analytical-services/splink/pull/2716
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.8...v4.0.9
Lockfile update by @ADBond in https://github.com/moj-analytical-services/splink/pull/2649
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.7...v4.0.8
unique_id_column_name #2659.jar file, which has updated dependencies #2679Deprecation warning for python 3.8 by @ADBond in https://github.com/moj-analytical-services/splink/pull/2520
ColumnExpression first/last index by @ADBond in https://github.com/moj-analytical-services/splink/pull/2585NULLIF by @ADBond in https://github.com/moj-analytical-services/splink/pull/2586Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.6...v4.0.7
source_datasets) in #2578ColumnExpression now supports accessing first or last element of an array column via method access_extreme_array_element() (#2585), or converting string literals to NULL via nullif() (#2586)PairwiseStringDistanceFunction now works with spark backend (#2546)linker.clustering.compute_graph_metrics() now also computes node centrality (#2618)estimate_u_using_random_sampling() could give different answers between runs even when a seed is set (#2642)compare_records could return the wrong cached SQL when more than one model in memory (#2589)SparkAPI now correctly handles case where database is not a valid SQL identifier (#2577)3.8.x following end of support for that minor version (#2520)Feb 23, 2025 2 files
Feb 23, 2025 2 files
Explicit selection by @ADBond in https://github.com/moj-analytical-services/splink/pull/2484
Settings._columns_used_by_comparisons unquoted by @ADBond in https://github.com/moj-analytical-services/splink/pull/2532Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.5...v4.0.6
PairwiseStringDistanceFunctionLevel and PairwiseStringDistanceFunctionAtThresholds
for comparing array columns using a string similarity on each pair of values (#2517)add EMA use case by @RobinL in https://github.com/moj-analytical-services/splink/pull/2468
neighbours_filtered table by @ADBond in https://github.com/moj-analytical-services/splink/pull/2470pytest-cov in CI by @ADBond in https://github.com/moj-analytical-services/splink/pull/2489Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.4...v4.0.5
compare_two_records, to avoid problems with data typing (because the input data can have an explicit schema) (#2493)Handle threshold_match_probablity 0 in predict() #2420 by @browo097302 in https://github.com/moj-analytical-services/splink/pull/2425
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.3...v4.0.4
cluster_pairwise_predictions_at_multiple_thresholds to more efficiently cluster at multiple thresholds (#2437)profile_columns using latest Altair version (#2466)fix dead links by @RobinL in https://github.com/moj-analytical-services/splink/pull/2430
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.2...v4.0.3
Sep 24, 2024 2 files Pre-release
Sep 24, 2024 2 files
Pre-release
Sep 24, 2024 2 files Pre-release
Sep 24, 2024 2 files
Pre-release
Sep 24, 2024 2 files Pre-release
Sep 24, 2024 2 files
Pre-release
Sep 24, 2024 2 files
Sep 24, 2024 2 files
Fix performance issue with exploding blocking rules by @RobinL in https://github.com/moj-analytical-services/splink/pull/2385
is_in_level and compute_comparison_vector_value testing functions to internals by @RobinL in https://github.com/moj-analytical-services/splink/pull/2396Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.1...v4.0.2
AbsoluteDifferenceLevel comparison level for numerical columns (#2398)CosineSimilarityLevel and CosineSimilarityAtThresholds for comparing array columns using cosine similarity (#2405)ArraySubsetLevel for comparing array columns (#2416)ColumnsReversedLevel required equality on both columns (#2395)Bias blog by @ericakane-moj in https://github.com/moj-analytical-services/splink/pull/2279
Infinity to double for spark backend by @bkitej-rw in https://github.com/moj-analytical-services/splink/pull/2372Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.0...v4.0.1
duckdb.DuckDBPyRelations as input tables to the Linker (#2375)m and u probabilities in the settings such that they are not updated/changed during training. (#2379)source_dataset column (#2323)SQLiteAPI can now be instantiated without error when opting not to register custom UDFs (#2342)Spark (#2372)splink_datasets is now functional in read-only filesystems (#2378)See https://moj-analytical-services.github.io/splink/blog/2024/07/24/splink-400-released.html for release announcement
See https://moj-analytical-services.github.io/splink/blog/2024/07/24/splink-400-released.html for release announcement
Comparison that has tf adjustments = True properly accounts for column expressions by @RobinL in https://github.com/moj-analytical-services/splink/pul
db_api argument name by @ADBond in https://github.com/moj-analytical-services/splink/pull/2278Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.0.dev8...v4.0.0.dev9
Docs links by @RobinL in https://github.com/moj-analytical-services/splink/pull/2237
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.0.dev7...v4.0.0.dev8
Update docs for Splink4 by @RobinL in https://github.com/moj-analytical-services/splink/pull/2203
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.0.dev6...v4.0.0.dev7
Group linker functions thematically by @RobinL in https://github.com/moj-analytical-services/splink/pull/2192
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.0.dev5...v4.0.0.dev6
Further tidying of blocking analysis - better typing by @RobinL in https://github.com/moj-analytical-services/splink/pull/2186
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.0.dev4...v4.0.0.dev5
rm deprecated action and bash scripts by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/2094
_pipeline from linker and refactor CTE pipeline by @RobinL in https://github.com/moj-analytical-services/splink/pull/2069_find_new_matches_mode and _compare_two_records_mode by @RobinL in https://github.com/moj-analytical-services/splink/pull/2111block_using_rules_sqls logic ( _find_new_matches_mode and _compare_two_records_mode etc.) by @RobinL in https://github.com/moj-analytical-services/splink/pull/2129_from_column functions by @RobinL in https://github.com/moj-analytical-services/splink/pull/2150Full Changelog: https://github.com/moj-analytical-services/splink/compare/v4.0.0.dev3...v4.0.0.dev4
Mar 19, 2024 2 files Pre-release
Mar 19, 2024 2 files
Pre-release
Jan 29, 2024 2 files Pre-release
Jan 29, 2024 2 files
Pre-release
Jan 23, 2024 2 files
Jan 23, 2024 2 files
Document first-time developer setup, add conda option by @zmbc in https://github.com/moj-analytical-services/splink/pull/2083
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.14...v3.9.15
rm deprecated action and bash scripts by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/2094
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.13...v3.9.14
Mkdocs preprocess hooks by @ADBond in https://github.com/moj-analytical-services/splink/pull/1913
is_bridge edge metric by @ADBond in https://github.com/moj-analytical-services/splink/pull/1894compute_graph_metrics - compute what we can without igraph by @ADBond in https://github.com/moj-analytical-services/splink/pull/1982Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.12...v3.9.13
Update mkdocs.yml by @RossKen in https://github.com/moj-analytical-services/splink/pull/1858
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.11...v3.9.12
Faster duckdb train u by @RobinL in https://github.com/moj-analytical-services/splink/pull/1800
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.10...v3.9.11
arrays_to_explode in your blocking rule. (#1692)Bump aiohttp from 3.8.5 to 3.8.6 by @dependabot in https://github.com/moj-analytical-services/splink/pull/1741
_source_dataset_col and _source_dataset_input_column by @RobinL in https://github.com/moj-analytical-services/splink/pull/1731pyproject.toml by @ADBond in https://github.com/moj-analytical-services/splink/pull/1779ColumnTreeBuilder to aid in the construction of our column ASTs by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1757Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.9...v3.9.10
fix non-quoted db&catalog issues by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1558
block_using_rules_sql to follow normal pattern and avoid confusion by @RobinL in https://github.com/moj-analytical-services/splink/pull/1695Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.8...v3.9.9
probability_two_random_records_match (#1653)completeness_chart were not being applied (#1662)Add Spellchecker by @zslade in https://github.com/moj-analytical-services/splink/pull/1588
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.7...v3.9.8
to_csv with Spark backend wouldn't overwrite files even when instructed to (#1635).jar file containing UDFs to work correctly for Spark < 3.0 (#1622)damerau_levensthein is now only registered for Spark >= 3.0, as it is not compatible with earlier versions (#1622)Confusion matrix chart by @samnlindsay in https://github.com/moj-analytical-services/splink/pull/1528
exact_match_rule -> block_on by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1553block_on by @RossKen in https://github.com/moj-analytical-services/splink/pull/1546group -> cluster by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1585Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.6...v3.9.7
change deprecation warnings to SplinkDeprecated warnings by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1519
parse_duration by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1498set clause by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1504Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.5...v3.9.6
Splink dataframe docs by @ADBond in https://github.com/moj-analytical-services/splink/pull/1457
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.4...v3.9.5
Add dataset table generation script to docs workflow by @ADBond in https://github.com/moj-analytical-services/splink/pull/1399
_dev branches by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1433Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.3...v3.9.4
Fellegi sunter topic guide by @RossKen in https://github.com/moj-analytical-services/splink/pull/1318
print() statements by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1374Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.2...v3.9.3
Postgres Linker by @hanslemm in https://github.com/moj-analytical-services/splink/pull/1191
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.1...v3.9.2
Update releases.md by @zslade in https://github.com/moj-analytical-services/splink/pull/1273
tmp_path in deterministic link test by @ADBond in https://github.com/moj-analytical-services/splink/pull/1275save_settings_to_json -> save_model_to_json by @RossKen in https://github.com/moj-analytical-services/splink/pull/1283Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.9.0...v3.9.1
Docs upgrades by @RossKen in https://github.com/moj-analytical-services/splink/pull/1222
term_frequency_adjustments_names -> term_frequency_adjustments by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1254Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.8.1...v3.9.0
Releases dev guide by @RossKen in https://github.com/moj-analytical-services/splink/pull/1202
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.8.0...v3.8.1
Make the example notebooks run faster by @RobinL in https://github.com/moj-analytical-services/splink/pull/1160
_register_input_tables method in our main linker class by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1172estimate_u_using_random_sampling by @RossKen in https://github.com/moj-analytical-services/splink/pull/1161truth_space_table_from_labels_with_predictions_sqls to be lowercase by @ThomasHepworth in https://github.com/moj-analytical-services/splink/pull/1183Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.7.3...v3.8.0
Linting update by @ADBond in https://github.com/moj-analytical-services/splink/pull/1131
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.7.2...v3.7.3
Add comparison template library functions for simple name column by @RossKen in https://github.com/moj-analytical-services/splink/pull/1125
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.7.1...v3.7.2
Fix a couple of typos by @ADBond in https://github.com/moj-analytical-services/splink/pull/1123
Full Changelog: https://github.com/moj-analytical-services/splink/compare/v3.7.0...v3.7.1
Your coding agent can read these notes before it upgrades. Set up the MCP server →