Every failed payment, decided and measured.
The engine leaves the wrong customers alone, sends the right fix to the rest, holds out a control group, and shows what an outcome fee would invoice against what the outreach actually caused.
Incremental revenue recovered · control-measured
Synthetic events · conditional on priorsPay-per-recovery audit
Outcome-priced recovery agents bill on every contacted customer who paid. The control arm says how many would have paid anyway.
- Invoiced on gross
- ₹1,02,440
- Justified by measured lift
- ₹66,280
- Paid for organic completions
- ₹36,160
- 35% of the invoice
- Cost per caused order
- ₹255
- vs ₹165 as invoiced
At 5% of each recovered order, 35% of the invoice pays for completions the outreach did not cause.
How to read this dashboard
Where the numbers come from
The stream is synthetic. Decisions are made by the real engine; outcomes are drawn from hand-set rates you can move under “Stress-test the assumptions”. With simulated events, the measured lift can only converge on the lift those rates encode, so read it as a demonstration of the measurement, not as evidence about any merchant.
The headline and its interval
Incremental revenue is what contacted customers paid, minus what the held-out control arm says they would have paid anyway. The 95% interval uses the delta method, so it carries order-value spread as well as the two completion rates. A result is called significant only when both arms have at least 20 events and the interval excludes ₹0. Negative results are shown as negative.
The invoice view
Outcome-priced recovery agents bill on every contacted customer who paid. The audit applies your fee to that gross figure, then to the incremental figure, and shows the difference: fees paid for customers who would have completed anyway.
Why the guardrails read zero
The gates run before any outreach, so double-charge contacts, fraud recoveries and promotions to DND numbers should never happen. The red-team switches remove a protection so you can watch the counters move: zeros you can falsify are the only zeros worth trusting.
Reproduce and audit this run
Replay rebuilds the stream from the seed and pauses after 2,400 events (seed 2026 is the reference run quoted on the Overview). One JSON line per decision: input hash, every gate, rule version, holdout arm, message class and the copy's policy check. The same seed and event count give a byte-identical file.
Live event stream
Decision trace
- 0 Idempotency · dedup · completion checkNot yet paid on any session; event is unique (idempotency key clean).
- 1 Fraud / risk gateRiskShield score 42 < 78: not a fraud pattern.
- 2 Reachability + consent gateValid, consented contact; not opted out; identity not flagged shared / reassigned.
- 3 Safety + fatigue gateNo sensitivity, fatigue, staleness or quiet-hours conflict.
- 4 Classify failure reason → tierTier 2 · COD-seeker (abandoned prepaid) - They only pay COD; a prepaid link won't convert them.
- 5 Select fix / leverSwitch the order to Cash on Delivery · transactional · COD offered: RTO risk 39 < 64, acceptable.
- 6 Select channelWhatsApp · Meta category: marketing · ₹0.86 per attempt · Tier 2 lever - WhatsApp/SMS, not voice.
- 7 Control-group assignmentIn the contacted arm (holdout 15%).
- 8 Execute (secure link · policy-checked copy)Approved marketing template with a single-use, current-cart link; copy passes the outreach policy check.
- 9 Monitor + cancel-on-completionWatching for completion on any channel; pending outreach cancels on completion.
- 10 Attribute + costPer-attempt cost ₹0.86; recovery measured against the control arm, never counted gross.
What the customer would receive · WhatsApp · marketing template
Approved templateIndie Threads: your order of ₹22,710 is waiting - you left before choosing how to pay. We can switch it to Cash on Delivery - confirm here: pay.indiethreads.example/r/1bitmh
Policy check 8/8 passed
- No placeholders or brackets
- Exactly one secure-link token
- States the order amount
- No Cash on Delivery unless the engine chose COD
- No offer language in a transactional message
- Does not claim a failure that did not happen
- No promises the business did not make
- Fits the channel
What it deliberately left alone
Every suppression is logged with a reason. This is the product's judgment, not inaction.
- Already completed elsewhere121
- Fraud / card-testing risk104
- Sensitive-category product101
- Stale event / out of stock91
- No valid / consented contact91
- Quiet hours / wrong timezone82
- Frequency cap exceeded81
- Serial discount-abandoner80
- Shared / reassigned number62
- Status not final yet55
- Opted out (STOP)44
Per-channel performance
WhatsApp is priced by Meta template category: utility for payment notices, marketing for cart reminders and offers.
- AI voice
- Sent
- 173
- Paid after
- 109
- Revenue (gross)
- ₹7,67,440
- Cost / completion
- ₹9.52
- WhatsApp
- Sent
- 988
- Paid after
- 479
- Revenue (gross)
- ₹12,13,420
- Cost / completion
- ₹0.82
- SMS
- Sent
- 96
- Paid after
- 31
- Revenue (gross)
- ₹67,930
- Cost / completion
- ₹0.56
By failure reason (contacted cohort, gross)
- Bank / PSP downtimeTier 197/166 paid after (58%) · ₹3,31,680
- UPI collect timeoutTier 1103/152 paid after (68%) · ₹3,02,150
- Price / total shockTier 242/148 paid after (28%) · ₹1,23,790
- Insufficient fundsTier 255/145 paid after (38%) · ₹1,95,710
- COD-seeker (abandoned prepaid)Tier 250/135 paid after (37%) · ₹1,47,710
- Session timeout / page crashTier 180/133 paid after (60%) · ₹2,55,660
- Distraction / interruptionTier 151/111 paid after (46%) · ₹1,66,810
- Technical / soft declineTier 149/95 paid after (52%) · ₹1,81,390
- Authentication failed (OTP / PIN)Tier 147/92 paid after (51%) · ₹1,69,550
- Instrument unusable right nowTier 145/80 paid after (56%) · ₹1,74,340
Per-reason rates are gross. Only the headline, measured against the control arm, is causal.
Guardrails
- Double-charge contacts
- 0
- Fraud recovered
- 0
- Promo sent to DND
- 0
Zero because the gates run before any outreach. Switch one off to prove the counters measure.
Stress-test the assumptions
These are the hand-set rates the simulated outcomes are drawn from. Moving one re-scores the same recorded events under the new rate, so you can see how wrong the assumptions can be before the economics fail.
Break-even: net contribution stays positive even at ×0.30 effectiveness: channel costs are small next to order values at this mix.
Holdout planner: how long until the lift is readable
Two-proportion sample size with unequal arms (α = 5%, two-sided). A smaller holdout forgoes fewer recoveries but takes longer to prove anything.
1 day to a significant read: 20 held out and 114 contacted. The holdout forgoes about 7.2 recoveries a day at this lift.
What's real, what's simulated, and the sources
- Decision engineGates, classifier, strategist, TRAI and Meta-category handling - deterministic, traceable per event, replayable by seed.
- Attribution and invoice auditHoldout assignment, incremental vs gross, the delta-method interval, and the outcome-fee audit - the same functions run on uploaded outcomes.
- Your data, in your browserA gateway export is mapped from real NPCI UPI and ISO 8583 card codes to decisions; an outcomes file recomputes the dashboard. Nothing is uploaded.
- Live AI copy, policy-checkedA model writes the words for the decision the server re-derives, inside a budget; a policy check discards any draft that breaks a rule. Shown, never sent.
- Events and outcomesThe stream's merchants, customers, amounts and completion rates are synthetic; the rates are the adjustable assumptions.
- Risk scoresFraud and COD-risk scores are stand-ins for the gateway signals they name (RiskShield and RTO Intelligence at Cashfree).
- DeliveryNo webhook, WhatsApp, SMS or voice delivery is wired, and there is no tenancy or persistence - the production build adds those.
- Cart Recovery · cashfree.com/docs
- RTO Intelligence · cashfree.com/docs
- RiskShield · cashfree.com
- Relay · cashfree.com/relay
- ~70% of online shopping carts are abandoned on average (70.22% aggregate of 50 studies, 2006-2025). · Baymard Institute, Sep 2025
- COD is returned far more than prepaid: ~24-26% RTO on COD vs ~2-10% prepaid; a ₹1,000 RTO order costs a brand ~₹285 while earning nothing. · Unicommerce / Shipway / GoKwik
Relay Recover is an independent concept. It is not a Cashfree product and is not affiliated with Cashfree; Cashfree's public interfaces are used as the reference design because they expose the signals the engine needs.