Every messaging dashboard will happily show a revenue number. Most of those numbers are inflated, because they credit the channel for purchases that would have happened anyway.
Why messaging over-attributes
You message people who already know you — recent buyers, engaged contacts, people with items in a basket. That population converts at a higher rate than average regardless of whether you message them. Attributing their purchases to the message credits the channel for pre-existing intent.
It is the same flaw that makes retargeting look extraordinary: target people already close to buying, then take credit when they buy.
Holdout groups are the only honest answer
Randomly exclude a small share of the target audience from each campaign and compare conversion between the two groups. The difference is the incremental effect. Everything else is a correlation you are choosing to believe.
Running a holdout properly
- Hold out 5–10% at random — genuinely random, not the tail of a sorted list.
- Keep the same holdout composition across a campaign series so you can accumulate results.
- Compare conversion rate and revenue per contact, not raw totals.
- Measure over a window that matches your purchase cycle, not just 24 hours.
- Accept that on small lists a single campaign proves little; aggregate across several.
The uncomfortable outcome is common: incremental lift is real but a fraction of what the dashboard claimed. That is still a good result, and it is a number you can plan against.
Tracking mechanics
- Tag links per campaign so sessions are identifiable.
- Use a per-recipient identifier where you can, so a conversion links to a contact rather than a cohort.
- Record the conversation identifier against the order, which is the cleanest link you will get.
- For reply-based conversions with no link at all, have agents tag the conversation outcome.
The reply-driven blind spot
A significant share of WhatsApp-driven revenue involves no click: the customer replies, an agent helps, an order is placed manually. Click-based attribution misses this entirely, which means businesses doing conversational selling well often show the worst attributed numbers.
The fix is operational rather than technical — agents tagging conversations that led to an order — and it is worth the small discipline it requires.
Cross-channel honesty
A customer who sees an ad, gets an email, receives a WhatsApp reminder and then buys has been touched four times. Every channel's report will claim that sale. Rather than arguing about attribution models, use holdouts per channel and accept that the individual numbers will not sum to your total revenue — and should not.
What to report upward
Incremental revenue from holdout comparison, cost per incremental order, and the support-cost reduction from transactional messaging. Three numbers you can defend, rather than one large number you cannot.