Home/Blog/How to Measure WhatsApp Marketing ROI: The Funnel, the Costs and the Two Numbers That Matter (2026)

How-to guide

How to Measure WhatsApp Marketing ROI: The Funnel, the Costs and the Two Numbers That Matter (2026)

Measure WhatsApp marketing ROI properly: the delivery funnel per campaign, Meta and platform costs, revenue attribution to conversations and ads.

By Chirag Darji · Updated 26 Aug 2026 · 7 min read

On this page
  1. The inputs
  2. The two numbers that settle decisions
  3. Attribution: choose a rule and keep it
  4. A worked month: coaching institute
  5. Build the dashboard
  6. Inbound revenue: the number that grows
  7. A holdout, when the decision is big
  8. Monthly review, in four questions
  9. Mistakes that distort ROI
  10. What VGraple CRM does here
The VGraple CRM analytics dashboard: messages sent, delivery and read rates, flow performance and revenue attributed to each broadcast

Too long? Read this

  • ROI needs three inputs most teams do not collect: cost per campaign (Meta charges plus platform share), revenue attributed to conversations, and the funnel per campaign (sent, delivered, read, replied, clicked)
  • Two numbers settle budget decisions: cost per reply and revenue per 1,000 sends; read rate is a floor, not a result
  • Attribution works when purchases are logged on the conversation, payment links do it automatically, and ad-driven chats carry the ad id
  • A worked month for a coaching institute, a dashboard layout, and the mistakes that inflate or hide ROI

WhatsApp marketing ROI is revenue attributed to campaigns minus what they cost, divided by what they cost. Simple to define, rarely measured, because three inputs are usually missing: the exact cost of each campaign (Meta's charges plus a share of the platform fee), the revenue that each conversation produced, and a per-campaign funnel that separates delivered from read from replied. This guide sets up all three, names the two numbers that actually settle budget decisions (cost per reply and revenue per 1,000 sends), walks through a month for a coaching institute, and lists the mistakes that make ROI look better or worse than it is.

The inputs

1. Cost per campaign

Meta bills per delivered template message at the recipient country's rate: India, April 2026, Rs 0.8631 marketing, Rs 0.115 utility, free replies inside a customer's 24-hour window. Suppressed and failed rows are not billed. The platform fee is monthly; apportion it across campaigns by sends, or hold it as a fixed cost against total WhatsApp revenue. VGraple CRM shows the estimated Meta cost on the review screen and the actual on the campaign page.

2. Revenue per conversation

Revenue has to land on the conversation to be attributable. Three ways: payment links sent in chat attribute automatically when paid; agents log revenue on a conversation when a sale closes elsewhere; an order system posts the order to the contact through the API or Zapier. Each logged amount carries the contact, the conversation, the agent, and the campaign, sequence step or ad that touched the contact within the window.

3. The funnel per campaign

Sent, delivered, read, replied, clicked, failed and suppressed, per recipient, per campaign, with the Meta reason on failures. Without per-recipient data the funnel is a guess.

The two numbers that settle decisions

Cost per reply = campaign cost / replies (or button clicks). It tells you whether the segment and the message worked, and it is comparable across campaigns, channels and months. Rs 5 to Rs 30 is typical for opted-in Indian consumer lists.

A WhatsApp broadcast report in VGraple CRM with the delivery funnel from audience to read, the reason each send failed, attributed revenue and cost

Revenue per 1,000 sends = attributed revenue / (sends / 1,000). It tells you what a campaign is worth and whether to send it again. It is also the number that stops arguments about read rates.

Everything else diagnoses: delivered rate (list health, caps, tiers), read rate (timing, first line), block rate (consent, frequency).

Attribution: choose a rule and keep it

RuleUse whenWindow
Last touchPromotions with a clear ask7 days
First touchAd-driven conversations (click-to-WhatsApp, lead ads)30 days
Sequence stepNurture and recovery sequencesUntil the sequence ends
ConversationAny revenue logged on a chat the campaign startedLife of the conversation

Pick one per campaign type, document it, and do not change it between months. Ad-driven chats carry the ad, ad set and campaign ids from Meta; purchase events sent back through the Conversions API give Ads Manager the same view.

A worked month: coaching institute

Apex Academy, 4,000 opted-in enquirers, Growth plan (Rs 3,499).

CampaignSendsDeliveredReadRepliedMeta costRevenueCost per replyRevenue per 1,000
Batch launch (marketing)4,0003,7202,680310Rs 3,211Rs 2,40,000 (16 enrolments)Rs 10.4Rs 60,000
Fee deadline (utility, enrolled)42041538060Rs 48Rs 1,80,000 (12 instalments on time)Rs 0.8Rs 4,28,571
Counsellor follow-up sequence (3 steps)930890640140Rs 505Rs 1,05,000 (7 enrolments)Rs 3.6Rs 1,12,903
Result-story retarget (marketing, readers only)2,0001,9401,50090Rs 1,674Rs 45,000 (3 enrolments)Rs 18.6Rs 22,500

Meta charges Rs 5,438; platform Rs 3,499; total cost Rs 8,937; attributed revenue Rs 5,70,000; ROI about 63 times. The fee deadline campaign, a utility message, produced the highest revenue per 1,000 sends at a fraction of the cost; the retarget campaign was the weakest and would be cut or reworded next month. That is what the two numbers are for.

Build the dashboard

One table per month, one row per campaign or sequence, the columns above, plus blocks and 131049 failures for diagnosis. Group by type (marketing, utility, sequence, ad-driven). Add three totals: WhatsApp revenue, WhatsApp cost, and revenue from conversations that customers started (inbound), which is the number that grows as the channel matures. VGraple CRM's analytics has campaign, agent and revenue views; export to a sheet for the month-over-month comparison.

Inbound revenue: the number that grows

Campaign ROI is the visible half. The other half is revenue from conversations customers start themselves after seeing a QR code, a click-to-chat link, an ad or the username on packaging: no template cost, a free 24-hour window, and usually higher intent than any broadcast. Tag the source on every inbound conversation (QR, website, ad, referral) and report inbound revenue by source next to campaign revenue. Over a year the inbound line typically overtakes campaigns for service businesses, and it is the strongest argument for putting the WhatsApp entry points everywhere.

A holdout, when the decision is big

For a campaign that will decide a budget, skip a random 10 percent of the segment and compare revenue between the sent and skipped groups over the attribution window. The difference is the campaign's real lift; last-touch attribution alone overstates it for customers who were going to buy anyway. VGraple CRM's A/B testing can hold back a slice of the audience for this purpose.

Monthly review, in four questions

  1. Which campaigns had the lowest cost per reply, and what did they have in common (segment, first line, hour)?
  2. Which had the highest revenue per 1,000 sends, and can they run again to the same cohort next month?
  3. Where did delivery fall (131049 share, tier, quality), and which segment caused it?
  4. What did inbound conversations earn by source, and which entry point deserves more visibility?

Mistakes that distort ROI

  • Counting reads as results. Read is a floor and undercounts; it never enters the ROI formula.
  • Attributing all revenue to WhatsApp. A customer who was going to buy anyway and received a reminder is partly WhatsApp's; use a consistent window and, for big decisions, a holdout group the campaign skips.
  • Ignoring the platform fee (ROI too high) or charging it entirely to one campaign (too low).
  • Forgetting inbound revenue. Conversations customers start after seeing a QR code or an ad are WhatsApp revenue with near-zero message cost; tag the source.
  • Changing attribution rules between months. Trends vanish.
  • No revenue logging discipline. If agents do not log sales, payment links are the only attributable revenue and the number is wrong.

What VGraple CRM does here

Per-recipient funnels and Meta cost per campaign, revenue attribution to conversations, campaigns, sequence steps, agents and ads, automatic attribution for payment links, Meta Conversions API events for ad-driven revenue, and analytics views by campaign and agent are on the Starter plan and above (revenue logging itself is on every plan). Exports feed the monthly sheet.

Frequently asked questions

How do I calculate WhatsApp marketing ROI?
(Revenue attributed to WhatsApp campaigns minus their cost) divided by cost. Cost is Meta's per-message charges for the campaign plus the share of the platform fee you assign to it. Revenue is orders, bookings or payments logged on conversations that the campaign started or touched within your attribution window.
What is a good ROI for WhatsApp marketing?
Businesses with opted-in lists and attributable revenue commonly see 5 to 20 times cost on promotional campaigns and far higher on utility sequences (reminders that prevent no-shows, cart recovery). Anything under 2 times usually means a cold list or a weak offer, not a channel problem.
Which metrics matter most?
Cost per reply and revenue per 1,000 sends. Delivered and read rates diagnose problems; replies, clicks and revenue measure results.
How do I attribute revenue to a WhatsApp campaign?
Log the order or payment on the conversation (VGraple CRM does this automatically for payment links and lets agents log revenue manually) and attribute it to the last campaign, sequence step or ad that touched the contact within your window, typically 7 days for promotions and 30 for nurture.
Do I include the platform fee in the cost?
Yes, apportioned. Divide the monthly platform fee across campaigns by sends, or treat it as a fixed cost against total WhatsApp revenue. Meta's charges are per campaign and exact.
Why is my read rate high but revenue low?
Read is not intent. The campaign lacked a clear ask, the follow-up on replies was slow, or the offer was wrong for the segment. Look at reply rate and time to human reply before blaming the channel.
Can I compare WhatsApp ROI to email and ads?
Yes, on the same two numbers: cost per reply (or per lead) and revenue per 1,000 sends (or per Rs 1,000 spend). Keep attribution windows identical across channels or the comparison is meaningless.
How does the Conversions API help ROI?
Sending purchase events back to Meta lets click-to-WhatsApp and lead campaigns optimise for buyers rather than clickers, lowering cost per sale over time. It also gives you the same revenue-by-ad view inside Ads Manager.

Chirag Darji

Founder, VGraple CRM

Founder of VGraple CRM and of the VGraple digital agency (Ahmedabad, est. 2011). Builds and operates the platform, runs WhatsApp Business API onboarding for customers, and writes the guides here from first-hand support and product work.

Run your WhatsApp on VGraple CRM

Free forever plan, official Meta WhatsApp Business API, set up in 15 minutes. No card needed.