Recovery report · seed 20260903 · 270-day horizon
One seeded run over 3,116 failed debits worth ₹20,87,484. Every number regenerates from the seed; CI fails if any of them moves.
Why payments are failing
| Cause | Payments | At risk | Attributed correctly |
|---|---|---|---|
| C1Execution window | 605 | ₹3,65,895 | 97% |
| C2Notification failure | 333 | ₹2,31,017 | 95% |
| C3Balance shortfall | 1,418 | ₹10,28,832 | 88% |
| C4Cancellation | 400 | ₹2,27,850 | 77% |
| ?Human review | 360 | ₹2,33,890 | — |
Recovery by policy · same failures, same retry budget
| Policy | Recovered | Retries / failure | Δ vs WhyDunit | Verdict |
|---|---|---|---|---|
| Do nothing | 0.0% | 0.00 | — | baseline |
| Naive retry | 33.3% | 2.67 | -29.8pp | loses |
| Window-aware retry | 49.9% | 2.31 | -13.1pp | loses |
| Expert rule | 62.9% | 1.95 | -0.1pp | ties |
| WhyDunit | 63.1% | 1.79 | — | baseline |
| Oracle ceiling | 64.8% | 1.43 | +1.7pp | loses |
What needed a human
| Too little history to judge | 227 |
| Conflicting evidence | 88 |
| Two causes equally likely | 71 |
Model quality
| macro-F1, auto-classified | 0.881 |
| macro-F1, all failures | 0.863 |
| Calibration error (ECE) | 0.093 |
| vs expert rule, out-of-fold | +0.181 |
Stop-threshold sweep · the operating point was chosen, not tuned
| P(C4) ≥ | Recovered | Retries | Net of retry cost |
|---|---|---|---|
| 0.50 | 61.5% | 4,902 | ₹11.19L |
| 0.55 | 61.7% | 4,957 | ₹11.21L |
| 0.60 | 61.8% | 5,040 | ₹11.21L |
| 0.65 | 61.9% | 5,110 | ₹11.22L |
| 0.70 | 62.0% | 5,166 | ₹11.21L |
| 0.75 | 62.2% | 5,229 | ₹11.24L |
| 0.80 | 62.4% | 5,283 | ₹11.26L |
| 0.85 | 62.6% | 5,360 | ₹11.28L |
| 0.90 | 62.9% | 5,441 | ₹11.30L |
| 0.95 | 63.1% | 5,581 | ₹11.29L |