Not affiliated with Cashfree.

Control room · Indie Threads, D2C fashion · average order ₹2,400 engine: live code events: synthetic

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 priors
₹13,25,595
Significant at 95%
₹20,48,790gross “paid after we messaged”minus ₹7,23,195 the control arm suggests would have paid anyway
95% interval: ₹10,08,368 to ₹16,42,822 · lift 31.9% (49% contacted vs 17% control, n = 1,257 / 231)
The interval excludes ₹0: the lift is distinguishable from zero.
Incremental lift
31.9%
contacted minus control
Net contribution
₹13,24,149
after ₹1,446 channel cost
Contacted
1,257
of 2,400 events
Not contacted
38%
912 with a logged reason

Pay-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.

Data source
2,400 events processed
Inject a specific case
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

tap an event to trace it

Decision trace

Tier 2
evt-2400₹22,710fraud 42RTO 3909:007-day contacts 1/3consent yesopt-out noDND offvoice consent yes
  1. 0  Idempotency · dedup · completion check
    Not yet paid on any session; event is unique (idempotency key clean).
  2. 1  Fraud / risk gate
    RiskShield score 42 < 78: not a fraud pattern.
  3. 2  Reachability + consent gate
    Valid, consented contact; not opted out; identity not flagged shared / reassigned.
  4. 3  Safety + fatigue gate
    No sensitivity, fatigue, staleness or quiet-hours conflict.
  5. 4  Classify failure reason → tier
    Tier 2 · COD-seeker (abandoned prepaid) - They only pay COD; a prepaid link won't convert them.
  6. 5  Select fix / lever
    Switch the order to Cash on Delivery · transactional · COD offered: RTO risk 39 < 64, acceptable.
  7. 6  Select channel
    WhatsApp · Meta category: marketing · ₹0.86 per attempt · Tier 2 lever - WhatsApp/SMS, not voice.
  8. 7  Control-group assignment
    In the contacted arm (holdout 15%).
  9. 8  Execute (secure link · policy-checked copy)
    Approved marketing template with a single-use, current-cart link; copy passes the outreach policy check.
  10. 9  Monitor + cancel-on-completion
    Watching for completion on any channel; pending outreach cancels on completion.
  11. 10  Attribute + cost
    Per-attempt cost ₹0.86; recovery measured against the control arm, never counted gross.
OutcomePaid after outreach · ₹22,710

What the customer would receive · WhatsApp · marketing template

Approved template

Indie 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
Preview only · nothing is sent to anyone

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 1
    97/166 paid after (58%) · ₹3,31,680
  • UPI collect timeoutTier 1
    103/152 paid after (68%) · ₹3,02,150
  • Price / total shockTier 2
    42/148 paid after (28%) · ₹1,23,790
  • Insufficient fundsTier 2
    55/145 paid after (38%) · ₹1,95,710
  • COD-seeker (abandoned prepaid)Tier 2
    50/135 paid after (37%) · ₹1,47,710
  • Session timeout / page crashTier 1
    80/133 paid after (60%) · ₹2,55,660
  • Distraction / interruptionTier 1
    51/111 paid after (46%) · ₹1,66,810
  • Technical / soft declineTier 1
    49/95 paid after (52%) · ₹1,81,390
  • Authentication failed (OTP / PIN)Tier 1
    47/92 paid after (51%) · ₹1,69,550
  • Instrument unusable right nowTier 1
    45/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.

Red team: break it on purpose

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.

Power

1 day to a significant read: 20 held out and 114 contacted. The holdout forgoes about 7.2 recoveries a day at this lift.

5% holdout
3 days
10% holdout
2 days
15% holdout
1 day
20% holdout
1 day

What's real, what's simulated, and the sources

Real in this build · live code
  • 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.
Simulated or not built
  • 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.
Public Cashfree interfaces the reference design composes
Benchmarks
  • ~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.