Attribution rebuild

Case study · Attribution
Go-to-Market Systems Designer · 2026

Problem

Only 22% of contacts had an original source. Leadership couldn’t tell which purchased lists produced revenue, so buying lists was a habit.

Constraints

Years of imports with inconsistent naming, 300K+ records, no downtime, and a sales team that needed the existing lead source fields to keep working.

What I designed

New Original Lead Source and Original Lead Source Type properties on contacts, companies and deals. A backfill that infers each contact’s source from import history and form data. And an import ROI model that walks every deal back to the import that created the contact.

How it works

Playwright and API scripts run the backfill in phases, each with a dry run and a ledger of what changed. The ROI model is Python over the full deal and import history, and its output is a ranked scoreboard.

Result

  • Source coverage went from 22% to 88% of contacts.
  • 711 imports had ever been run. 80 of them produced a deal, and those 80 account for every won deal traced to an import.
  • The company stopped buying the rest.
nathannoll.com
Member since 1987 · Updated October 12, 2026
visits