Skip to content

GoldenMatch

v1.10.0 Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

Published 2mo Data Pipelines & ETL
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

data-cleaning data-engineering data-matching data-quality deduplication entity-resolution
+14 more
fellegi-sunter fuzzy-matching knowledge-graph llm master-data-management mcp-server polars pprl python record-linkage rust splink typescript zero-config

Summary

AI summary

Composite DQbench score improved from 62.87 to 66.91, driven by T2 F1 gain of +10.3 percentage points.

Full changelog

Highlights

  • 5 complexity indicators in core/indicators.py: column priors (identity + corruption scoring), sparse-match estimation, full-population matchkey hits, cross-blocking overlap, corruption score. Cheap two run eagerly; expensive three run lazily via IndicatorContext memoization.
  • IndicatorContext threads indicators through the policy/rule chain. RefitPolicy.propose gains optional ctx kwarg; controller introspects custom-policy signatures via inspect.signature for backward compat.
  • 3 new rules: rule_corruption_normalize adds normalize when blocking column has corruption + identity prior; rule_cross_blocking_disagreement proposes multi-pass when overlap is low; rule_sparse_match_expand lowers threshold + side-channel signal when sample is sparse.
  • GOLDENMATCH_AUTOCONFIG_INDICATOR_BUDGET=fast env var gates the two expensive indicators for users who prefer v1.9 wall-clock.

Benchmarks (zero-config, no LLM)

| Dataset | v1.9.0 | v1.10.0 |
|---|---|---|
| DBLP-ACM | 0.9641 | 0.9641 |
| Febrl3 | 0.9443 | 0.9443 |
| NCVR | 0.9719 | 0.9719 |
| DQbench composite | 62.87 | 66.91 |
| T1 F1 | 89.3% | 88.9% |
| T2 F1 | 58.7% | 69.0% (+10.3pp) |
| T3 F1 | 53.8% | 53.8% |

Composite gain came from T2 recovery via rule_corruption_normalize and rule_cross_blocking_disagreement.

Honest framing

Shipped at fallback target (≥65), not the spec's primary target (≥70). T2 carried the gain. T3 still at 53.8% — needs richer matchkey design (queued for v1.11). T1 slight regression (-0.4pp) within measurement noise.

Breaking changes

None. Adds optional fields with default-None for v1.9 cache compat. RefitPolicy.propose gains optional ctx kwarg (custom 3-arg policies still work via signature introspection).

Full diff: https://github.com/benzsevern/goldenmatch/compare/v1.9.0...v1.10.0

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track GoldenMatch

Get notified when new releases ship.

Sign up free

About GoldenMatch

All releases →

Related context

Related tools

Earlier breaking changes

  • v3.1.0 `GOLDENMATCH_FRAME=polars` now requires the `[polars]` extra; raises error without it.
  • vgoldencheck-v3.0.0 `inferred_type` emits neutral dtype vocabulary (str/int/uint/float/date/datetime/bool/other) instead of raw Polars dtypes.
  • vgoldencheck-v3.0.0 'inferred_type' now emits a neutral dtype vocabulary instead of raw Polars dtype strings.
  • vgoldencheck-v3.0.0 `scan_file`, `scan_dataframe`, and CLI `check` now run without Polars, using Arrow-native pyarrow.Table.
  • v3.0.0 Result frames now return pyarrow.Table instead of Polars DataFrame.

Beta — feedback welcome: [email protected]