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…or build one by hand
Decision trace
Tier 1 · AI voice call- 0 Idempotency · dedup · completion checkNot yet paid on any session; event is unique (idempotency key clean).
- 1 Fraud / risk gateRiskShield score 15 < 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 1 · Bank / PSP downtime - Money and intent are present; the rail blipped.
- 5 Select fix / leverFresh single-use secure link to the same cart · transactional
- 6 Select channelAI voice call · ₹6.00 per attempt · Voice eligible: consented, in-hours, high value, economics clear.
- 7 Control-group assignmentNot 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.
- 8 Execute (secure link · policy-checked copy)AI voice script (asks permission before sending anything); the link follows on WhatsApp.
- 9 Monitor + cancel-on-completionWatching for completion on any channel; pending outreach cancels on completion.
- 10 Attribute + costPer-attempt cost ₹6.00; recovery measured against the control arm, never counted gross.
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?
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
* 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?”
Attribution: incremental, not gross
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| Channel | Cost / attempt | When |
|---|---|---|
| AI voice | ₹6.00 | flagged · ≥ ₹2,000 |
| WhatsApp · marketing | ₹0.86 | cart reminders, any offer |
| WhatsApp · utility | ₹0.12 | notice about an attempted payment |
| SMS (DLT) | ₹0.18 | fallback, 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
- 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.