Identity resolution: the join nobody built
Ad platforms, web analytics, call tracking, and the CRM each know a different sliver of the same person. Identity resolution is the warehouse layer that decides those slivers are one customer, deterministically where possible and probabilistically where necessary. It was built twice here: for a regional home-services contractor and for a global enterprise.
48,117 people, five systems, zero joins
A regional home-services contractor ran six years of business across form software, call tracking, a CRM holding 9.4M raw contact rows and 15.2M raw deal rows, Google Ads, and GA4, with no shared key anywhere. The identity graph unified 48,117 distinct identities by resolving on the signals a phone-first business actually produces: phone first, email second, and an email-to-phone bridge that links a web form to the call that closed the deal.
The client's own CRM practices were inconsistent and getting worse, as internal staffing changes left lead-source fields half-filled. Because the warehouse resolved identity from automatically captured signals, it did not depend on hand-entered fields, and the results held up regardless of how carefully the team tagged records.
The unglamorous finding was that ad-platform IDs, the signal most attribution vendors lead with, covered under 1% of identities when the graph was first built, because nothing on the site was capturing them. The graph made that gap visible, and closing it became a two-week engineering project with a before and after you can see from orbit.
What actually resolves an identity
Share of identities carrying each signal. Phone is the workhorse key (red). Ad-platform and analytics IDs, the signals platforms bid on, barely registered until they were deliberately captured.
Click-ID capture, before and after the identity layer
Share of monthly leads (forms and calls) carrying a click ID. Near zero for years, then 52.7% at peak once capture was wired through the graph. The highlighted months (yellow) are after go-live.
121,000 leads against 200M rows of anonymous journeys
The same problem, three orders of magnitude larger. A global enterprise's raw stage spans roughly 200 million rows and hundreds of dimensions across web events, CRM objects, and campaign systems. Enterprise B2B buyers research anonymously for weeks, so deterministic-only matching leaves most of the story dark. The graph layered deterministic matching first, then progressively bolder probabilistic matches on timing, domains, and structured fields, each scored with a confidence the downstream models can weigh.
The probabilistic matches were graded, not guessed. The vast majority resolved at 99% confidence, a smaller tier at 95%, and a remainder at 78% or higher, so a model can trust a high-confidence match and discount a weak one.
Share of leads resolved per join method
Log scale, as a share of all resolved leads. Deterministic click-ID joins (gray) resolve the largest share. The probabilistic layers (red), timing proximity and structured-field matching, add smaller, carefully scored shares.
The inversion: who has the leads vs. who has the money
Deterministic matching wins on lead count; probabilistic matching carries 88.9% of the reconnected pipeline value. The anonymous journeys were the valuable ones.