Duplicate user profiles silently kill lifecycle program performance. The four common causes, the math on the cost, and a clean fix.
.png)
Most product-led SaaS companies have a duplicate user problem they do not know they have. The lifecycle program runs as if every profile in Customer.io represents a unique person. In reality, a meaningful fraction — often 8 to 15 percent — represents the same person captured under multiple identities, or multiple people merged into a single profile. The cost is invisible at first because the symptoms look like normal underperformance: lower-than-expected open rates, inflated unsubscribe rates, segment counts that drift from the warehouse. The cause is identity resolution, and the fix is a data engineering problem, not a marketing one.
The four mechanisms, in rough order of frequency:
Identity resolution failures look like marketing problems but they are data architecture problems. The campaign platform is the place where you discover them, not the place to fix them.
Assume a SaaS company with 200,000 active users in Customer.io. Assume 10% are duplicates — 20,000 extra profiles representing 10,000 real users counted twice.
The compounded cost across these is hard to quantify precisely but routinely runs in the high single-digit percentage of total program ROI. For a Series B PLG company spending $30K per month on lifecycle infrastructure plus ad spend and team costs, that is a meaningful number.
Three queries will tell you whether you have a duplicate problem and how bad it is:
Query 1: Count distinct user_ids per email. In your warehouse, group by email and count distinct user_id. Anything greater than 1 is a duplicate. Look at the distribution. If 5% or more of emails have multiple user_ids, you have a meaningful problem.
Query 2: Count orphaned anonymous_ids. In Segment or your CDP, count anonymous profiles with at least 30 days of activity that never received an identify call. These are pre-signup users who either never converted or whose identify call failed.
Query 3: Check cross-device coverage. For users who have engaged on both web and mobile, check whether they appear as one profile or two in Customer.io. If you find two-profile users, mobile and web instrumentation are not unified.
The fix is not in Customer.io. Customer.io can merge profiles after the fact, but the merge logic in the campaign platform is downstream of the cause. The fix is in the schema and the CDP.
Run the three detection queries first. If you find duplicates above 5% of active users, the fix is worth the project. If you find them below 5%, monitor and prioritize other work first.