Data Cleaning Exercises

Module 10 · Entity resolution · 6 min

Human review queues

You'll be able to: Route uncertain matches to people with the evidence they need to decide.

Before this: Merge on evidence, review the rest

The idea

Some pairs can't be decided by rules: same name, different emails; missing email. Put them in a review queue.

Show the reviewer both records, which fields agree, which conflict, and the rule that sent them.

Store decisions so the same pair isn't reviewed again and future runs reuse them.

Worked example

Input: record without email

Visual
Add step → Require a value → email → reason needs_review
SQL (DuckDB)
CASE WHEN email IS NULL THEN 'needs_review' END
pandas
review = df[df["email"].isna()]

Result: The record waits for a reviewer instead of being merged or dropped

Common mistakes

  • Auto-merging uncertain pairs.
  • Dropping unreviewed records.
  • Not storing decisions.

Check yourself

What should a reviewer see?

Both records, agreeing and conflicting fields, and why they were queued.

Practice it

Resolve customer records by normalized email.

Next: Resolve customer records by normalized email