Not affiliated with Cashfree.

The glass box

The judgment, made inspectable.

The defensible part is not the outreach, it is deciding who not to contact and what may be said. Every gate, tier, fix and number is a pure function. Pick a case, or build one.

Decision coverage: pick any case

34 cases · same input, same decision, always
Tier 1 · recover
Channel logic
Tier 2 · lever
Tier 3 · suppress
Gate ordering (edge)

…or build one by hand

Decision trace

Tier 1 · AI voice call
  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 15 < 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 1 · Bank / PSP downtime - Money and intent are present; the rail blipped.
  6. 5  Select fix / lever
    Fresh single-use secure link to the same cart · transactional
  7. 6  Select channel
    AI voice call · ₹6.00 per attempt · Voice eligible: consented, in-hours, high value, economics clear.
  8. 7  Control-group assignment
    Not drawn here, so each case shows its contact decision. In live traffic 15% of eligible events are held out at random - see the control room.
  9. 8  Execute (secure link · policy-checked copy)
    AI voice script (asks permission before sending anything); the link follows on WhatsApp.
  10. 9  Monitor + cancel-on-completion
    Watching for completion on any channel; pending outreach cancels on completion.
  11. 10  Attribute + cost
    Per-attempt cost ₹6.00; recovery measured against the control arm, never counted gross.
The numbers
Modelled completion rate: 68%
Attempt cost: ₹6.00
Voice value-gate margin: ₹370
Voice economics: clears
AI voice call script

Hi, this is the Indie Threads assistant. Your payment of ₹4,500 did not go through - your bank's payment system was briefly unavailable. I can send a fresh secure link to your WhatsApp so you can finish by UPI or card. Shall I send it?

Policy check 8/8 passed

Rules decide

Fraud, consent, opt-out, tier, suppression, fix, channel and holdout are deterministic and auditable. No model decides who is contacted.

A model writes words, inside a check

For WhatsApp and voice, a model may write the copy for the decision the server re-derives. The draft must pass every rule below or it is discarded for the approved template. SMS never uses a model.

The outreach policy check

  • No placeholders or brackets
  • Exactly one secure-link token
  • Voice asks before sending anything
  • 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

Length limits: SMS 160, WhatsApp 320, voice script 420 characters. Watch it run in the control room: generate the message, then open the policy check.

The decision pipeline

Every event runs the gates - suppression happens before any contact
gate 0
Final + unpaid?
pending · already paid
gate 1
Fraud
card-testing?
gate 2
Consent + reach
consent · opt-out · reassigned number
gate 3
Safety + fatigue
sensitive · stock · cap · quiet hours
Left alone, logged: fraud · no consent · opted out · already paid · still pending · sensitive item · serial abandoner · out of stock · frequency cap · quiet hours
Classify → tier
decline reason → T1 / T2
Pick the fix
link · EMI · COD (RTO-gated) · offer (TRAI-gated)
Pick the channel
voice* · WhatsApp utility / marketing · DLT SMS
Hold out
randomized control group
Measure + bill
incremental vs control

* AI voice is gated by value, consent, DND and lawful hours, and ships behind a legal flag. WhatsApp and SMS work without it.

The recoverability taxonomy

The honest answer to “will they still not buy even if we reach them?”

Failure / abandonment event
Tier 1 · Recover
Bank downtimeUPI timeoutSession crashOTP / PIN failedTechnical declineLimit / blocked instrument
Reason-tailored fix, in seconds
Tier 2 · Lever
Insufficient fundsCOD-seekerPrice shock
EMI / Pay-Later · COD (RTO-gated) · clarify, offer only if it pays
Tier 3 · Suppress
FraudNo consentOpted outAlready paidStill pendingSensitive item
Do not contact - logged with a reason

Attribution: incremental, not gross

Gross - “paid after we messaged”₹20,48,790
what a per-recovery invoice counts
− What the control arm says would have paid anyway₹7,23,195
the baseline
= Incremental - the number to report and bill on₹13,25,595
the lift outreach caused

Reference run: 2,400 synthetic events through the live engine (seed 2026). 95% interval on the incremental figure: ₹10,08,368 to ₹16,42,822. The control room computes this live, every tick.

Unit economics: gate the expensive channel

Voice's extra lift over WhatsApp must out-earn its extra cost. In practice the binding gates are the value floor, consent, DND and lawful hours; the economics are the sanity floor.

use_voice  iff  value × extra_lift
                > extra_cost × safety_margin
ChannelCost / attemptWhen
AI voice₹6.00flagged · ≥ ₹2,000
WhatsApp · marketing₹0.86cart reminders, any offer
WhatsApp · utility₹0.12notice about an attempted payment
SMS (DLT)₹0.18fallback, marketing cap

WhatsApp: Meta's India list rates from 1 Jul 2026, excluding GST and BSP markup. Voice and SMS: illustrative pass-through costs.

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.