Skip to content

feat: add Pointblank + ydata-profiling (Detect) and dedupe (ER reference)#7

Merged
Ben Severn (benzsevern) merged 1 commit into
mainfrom
claude/leaderboard-implementation-5lk8D
May 24, 2026
Merged

feat: add Pointblank + ydata-profiling (Detect) and dedupe (ER reference)#7
Ben Severn (benzsevern) merged 1 commit into
mainfrom
claude/leaderboard-implementation-5lk8D

Conversation

@benzsevern
Copy link
Copy Markdown
Collaborator

Adds the feasible candidate tools to the leaderboard. After digging into each, the six candidates split into "clean fit", "reference-only", and "infeasible".

Added to the gated board (Detect)

Tool Score Notes
Pointblank (best-effort) 30.97 Validate plan (not-null, distinct, in-set, between, regex) keyed on common column names. Pointblank aborts the whole interrogation on a numeric/string dtype mismatch, so rules are dtype-gated before they're added. Rivals cuallee (30.56). Deterministic, dqbench verify'd.
ydata-profiling (auto-profiled) 4.70 It's a profiler, not a validator — only its MISSING alert maps to a planted issue type (nullability); the rest are emitted as non-penalised INFO. minimal-mode profiling (sampling/correlations/duplicates/interactions off) is deterministic. Needs setuptools<81 for pkg_resources. dqbench verify'd.

Added to the ungated reference board (ER)

Tool Score Notes
dedupe ~64 Active-learning matcher. No ground-truth labels, so it's run with deterministic weak supervision (shared email/phone → "match", random → "distinct") via a training file. Its training/blocking isn't reproducible run-to-run, so it lands on the reference board, not the gate.

Also generalised the reference-board heading from "auto-config (not gate-verified)" to just "not gate-verified", since it now holds a non-auto-config non-deterministic tool too.

Not added (reported, not forced)

  • dataprepuninstallable on Python 3.11. Even the latest (0.4.5) pins python-crfsuite==0.9.8, a C extension that won't compile against the 3.11 C API. Since CI gates on 3.11, it can't be added.
  • pyjanitor — no cell-value canonicalizers for the planted Transform issues (phone→E.164, date→ISO, zip, zero-width/smart-quote), so it'd score ~0.0 on the exact-match metric. Skipped as noise.
  • py_entitymatching (Magellan) — heavy + supervised, awkward for unsupervised dedup; not attempted per the agreed pragmatic scope.

Net: Transform gains no new tool (the only viable candidate, dataprep, can't install on 3.11).

Test plan

  • Pointblank + ydata-profiling: dqbench reproduce --write then dqbench verify both reproduce exactly.
  • dedupe: records to leaderboard/reference/er.json (gated:false manifest, skipped by the CI verify matrix).
  • Full suite: 251 passing; ruff clean; dqbench publish --check green.

https://claude.ai/code/session_01KjxRYsnVFPVJ3aUBmNm7vB


Generated by Claude Code

…nce)

New third-party adapters and leaderboard entries:
- Pointblank (Detect, 30.97) — Validate plan with dtype-gated rules so
  interrogation never aborts on a numeric/string mismatch. Gated, verified.
- ydata-profiling (Detect, 4.70) — a profiler, not a validator: only its
  MISSING alerts map to a planted issue type; other statistical alerts are
  emitted as non-penalised INFO. minimal-mode profiling is deterministic.
  Needs setuptools<81 for pkg_resources. Gated, verified.
- dedupe (ER) — active-learning matcher run with deterministic weak
  supervision (shared email/phone -> match, random -> distinct, no ground
  truth) via a training file. Not reproducible run-to-run, so it lands on
  the ungated reference board only (~64 representative run).

Generalise the reference-board heading from "auto-config" to "not
gate-verified" since it now also holds non-deterministic non-auto-config
tools (dedupe's active learning).

Not added: dataprep (uninstallable on Python 3.11 — pins python-crfsuite
0.9.8, which won't build against the 3.11 C API) and pyjanitor (no
cell-value canonicalizers, ~0 on the Transform planted-cell metric).

https://claude.ai/code/session_01KjxRYsnVFPVJ3aUBmNm7vB
@benzsevern Ben Severn (benzsevern) marked this pull request as ready for review May 24, 2026 21:44
@benzsevern Ben Severn (benzsevern) merged commit 9777f44 into main May 24, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants