What is revenue per recipient (RPR)? The flow-health metric beyond open rate

Plain RPR definition, rough formula, vs opens table, drop checklist, Iran SMS cost context, and pairing with holdouts in Leadara.

Reza Ahmadi

SEO and content strategy for organic traffic and brand visibility in search results.

September 14, 2026 · 9 min read

Also available in فارسی

درآمد به ازای گیرنده (RPR) چیست؟ متریک سلامت فلو فراتر از نرخ باز شدن

What is revenue per recipient (RPR)?

Revenue per recipient (RPR) is attributed revenue for a flow or campaign divided by unique recipients in the same window. Unlike open rate, RPR asks: “For each person who received the message, how much attributable sales did we create?”

One-line answer: RPR = attributed revenue ÷ unique recipients. For flow health (cart, welcome, win-back) it is usually a sharper diagnostic than open rate — especially when SMS costs money and email opens are no longer trustworthy.

If your team celebrates opens and CTR while incremental orders stay flat, you are probably mixing “message reached inbox” with “message created value.” RPR is how you see whether a flow makes money or only inflates send volume. Keep true lift measurement beside what a marketing holdout group is.

Simple formula and recipient definition

Operationally, lock three things before you calculate:

  1. Path boundary: which journey or campaign? (e.g. abandoned cart only, not the whole automation stack)
  2. Recipient definition: unique in-window people who got at least one email or SMS from that path
  3. Attributed revenue: orders in a fixed window (e.g. 7 days after entry) under a clear attribution rule for that path
PiecePractical questionStore example
Attributed revenueWhich sales do you attach to this path?Orders within 7 days of cart-journey entry
Unique recipientsHow many people got at least one touch from this path?12,400 in a month
RPRRevenue ÷ recipientsIf attributed sales are 280M tomans → about 22,600 tomans per recipient
WindowFrom when to when?7 or 14 days; do not move it mid-month

Important: RPR is not revenue per opener or revenue per click. The denominator must be recipients — or you inflate the metric by gaming opens.

Rough math when attribution is incomplete

Many Iranian teams still lack fancy multi-touch models. A workable v1:

  • Pull path entry and order_completed inside a locked window from events
  • Sum those orders (or approximate AOV × order count)
  • Divide by unique recipients
  • Compute flows and campaigns separately

Imperfect — but for scale decisions usually better than opens, if you also keep a holdout or baseline.

Why RPR beats open rate for flow health

MetricWhat it saysWhat it hides
Open rateHow many (roughly) saw the subjectPrivacy prefetch and “seen but no buy”
CTRHow many clickedCuriosity clicks without orders; broken links
Absolute treatment conversionHow many boughtPeople who would have bought with no message
RPRValue per recipientWithout holdout, incremental lift is still incomplete — but flow health direction is clearer
STOP / opt-outRelationship costLooking only at RPR while the list burns

Simple rule: if opens rise and RPR falls, the subject got prettier but the offer or audience weakened. If both fall, do not scale — diagnose first.

For SMS flow vs blast, an RPR mindset usually favors flows because the signal sits closer to purchase; see SMS flow vs SMS campaign.

When RPR drops, what should you check?

A drop is an alarm, not a final diagnosis. Open four layers in order:

1) Audience

  • Did the entry segment loosen? (“all actives” instead of “open cart + consent”)
  • Did a weak acquisition wave enter welcome? Check cohort quality separately: cohort analysis in marketing
  • Are Champions and recent buyers still getting deep discounts?

2) Offer

  • Deeper codes but weaker net RPR after discount cost?
  • Offer mismatched to stock or season?
  • Welcome and cart stacking the same code?

3) Timing

  • Waits longer than the cart signal lifetime?
  • SMS at poor Iran shopping hours?
  • Attribution window changed so periods are no longer comparable?

4) Overlap

  • Multiple journeys hitting one person?
  • Friday blast on someone who got cart SMS yesterday?
  • Broken suppressions and frequency caps?
SignalFirst hypothesisAction
RPR↓ and recipient volume↑Segment got wideNarrow entry
RPR↓ and STOP↑Channel pressure / collisionsSuppress + caps
RPR↓ and opens↑Offer or landingFix offer and conversion path
RPR↓ on one acquisition cohort onlyWave qualityStop scaling the bad channel
Treatment RPR ≈ holdoutNo real liftChange message/priority; do not scale

Iran SMS cost context

In Iran every SMS spends both rials and list trust. Always read RPR next to:

  1. Send cost per recipient (or per recovered order)
  2. STOP rate for the path and channel
  3. Flow + blast overlap in 24–48 hours

Email can feel “cheap”; SMS does not. If SMS-flow RPR cannot clear message cost plus discount liability, scaling volume burns margin. Keep channel consent separate: email opt-in is not SMS permission.

Practical pattern: stabilize RPR and STOP on high-risk paths (discounted cart, win-back) before you raise volume — not the other way around.

Pair RPR with holdout thinking

RPR without a control says “how much did treated recipients buy.” A holdout says “how much of that was incremental.”

Healthy combo:

  1. Watch treatment RPR weekly (operational health)
  2. Keep a stable 10–20% holdout on discounted paths
  3. Scale only when uplift vs holdout is meaningful and RPR is acceptable and STOP is controlled
  4. If treatment RPR looks high but matches holdout, you are subsidizing natural buyers

Without that pair, teams can scale a pretty-open, pretty-RPR flow that adds zero lift.

Mapping to Leadara: events, segments, journeys

Leadara runs on events, segments, journeys, email, and SMS. You do not need a branded “RPR engine” feature to run the metric:

  1. Clean events: path entry, email_sent / sms_sent, order_completed with amount, channel consent
  2. Recipient segment for the path in a fixed window (unique)
  3. Journey exit on conversion so you stop messaging after purchase
  4. Weekly report: in-window order revenue ÷ recipient segment size — separately per flow/campaign
  5. Stable holdout segment on high-risk paths beside RPR
  6. Caps and suppressions across journeys and blasts so overlap does not fake the story

Advanced attribution matrices usually live outside automation; keeping the recipient denominator clean and acting on it is segment/journey work.

Worked scenario: home-goods ecommerce

“Aftabkhaneh” runs a cart journey at 15% off, a welcome with the same code, and a Friday SMS to “all opt-ins.” Cart email opens sit at 28% and the team is happy; incremental orders are not growing.

Diagnosis with RPR

PathUnique recipients (month)Attributed revenueApprox. RPRRead
Cart email+SMS8,200180M tomans~21,900 tomansMid; welcome overlap
Welcome6,50095M tomans~14,600 tomansDeep code on everyone
Friday SMS blast22,00070M tomans~3,200 tomansHigh volume, low value, STOP↑

Fix

  • Narrow cart entry to “cart≥X + no order + consent”
  • Split welcome vs cart codes; remove Champions from deep Friday discounts
  • Narrow the blast and suppress 24h flow recipients
  • 10% holdout on discounted cart
  • Weekly success = path RPR + SMS cost + STOP + uplift vs holdout

Common mistakes

  • Celebrating opens while RPR and orders are flat
  • Using openers as the denominator and still calling it RPR
  • Attaching all site revenue to one path
  • Comparing flow vs campaign RPR without the same recipient/window definition
  • Scaling SMS after a one-week RPR spike without reading STOP
  • Ignoring multi-journey overlap
  • Moving the attribution window after a weak result

Checklist for this month

  1. For one high-risk flow, write the recipient definition + 7-day window
  2. Compute approximate RPR for that flow and one campaign separately
  3. Put SMS cost and STOP next to RPR
  4. Stable 10% holdout on the discounted path
  5. One suppress rule for flow/blast collisions
  6. Weekly review: RPR, uplift, STOP — not opens alone

FAQ

What exactly is RPR in marketing automation?

Attributed revenue for a flow or campaign divided by unique recipients in the same window. It is a path-health metric, not a full substitute for lift tests.

How is RPR different from open rate?

Opens say roughly who saw the subject; RPR says how much attributable sales you created per recipient. For flow scale decisions, RPR is usually more useful.

How should we define a recipient?

Usually a unique person with at least one successful email or SMS send from that path in the window. Do not substitute openers or clickers unless you build a separate metric.

Is RPR useless without perfect attribution?

No. A rough entry-event + in-window order version is enough to prioritize paths; refine the model later.

When RPR drops, where do we look first?

Audience, offer, timing, overlap — in that order. Do not change three things at once.

Is RPR more important for SMS than email?

Often yes, because unit cost and STOP risk are higher. Read RPR next to send cost and opt-outs.

How do RPR and holdouts relate?

RPR shows per-recipient treatment health; holdouts show how much is incremental. For scaling discounts you want both.

How does Leadara help with RPR?

Events, recipient segments, email/SMS journeys with exits, and operational holdouts. You sum and divide in the weekly report; data hygiene and action live in automation.

Bottom line and next step

RPR means moving from open vanity to value per recipient: path revenue ÷ unique recipients, separately for flows and campaigns, with a locked window and preferably beside holdout and SMS cost. This month, measure one high-risk flow with a clear recipient definition; if RPR drops, check audience/offer/timing/overlap before you raise send volume.

Keep reading