| 1 | UCI dataset used as a B2C proxy | B2B dataset, B2C recommendations | High (disclosed) | Segment dynamics and win-back rates differ for true B2C retailers |
| 2 | RFM scores by quintile binning (1–5) | Standard methodology | High | Thresholds may not reflect true behavioural breaks |
| 3 | CLV proxy formula | (revenue / lifespan_days) × 365 × frequency | Medium | Single-transaction customers inflated; corrected via P99 winsorisation |
| 4 | CLV regression features: R, F, M only | R² = 0.1426 | High (disclosed) | Low explanatory power — geography, category, timing would improve accuracy |
| 5 | Signal thresholds data-driven | P95 CLV; r_score==3 | High | Require recalibration on new datasets |
| 6 | Win-back recovery rate — Conservative | 10% (consumer retail benchmark) | Medium | B2B win-back is typically 5–12% |
| 7 | Win-back recovery rate — Base | 15% (consumer retail benchmark) | Medium | Optimistic for wholesale context |
| 8 | Win-back recovery rate — Optimistic | 20% (consumer retail upper quartile) | Low | Upper bound; requires strong personalisation and offer |
| 9 | Email campaign cost (India) | ₹58,305 total (₹5/send + ₹55K fixed) | Medium | Agency rates vary; premium creative would increase cost |
| 10 | INR/GBP conversion | ₹107 per £1 | Medium (rate as of project date) | Exchange rate fluctuates; figures are indicative only |
| 11 | DMart store count | ~350 stores (2024 annual report) | High | Publicly reported figure; may change |
| 12 | Customers per DMart store (loyalty enrolled) | 5,000 (modelled estimate) | Low | DMart does not publish per-store enrolment — significant uncertainty |
| 13 | Average At-Risk revenue per customer (India) | ₹8,000/year (DMart), ₹6,500/year (Reliance) | Low | Calibrated to FMCG basket data — not validated against actual retailer data |
| 14 | Demand forecast — modelled stock | 4× average weekly demand (full-period baseline) | Low | If actual stock is lower, more SKUs would be flagged as at risk |
| 15 | Reorder risk threshold | < 14 days (wholesale 2-week lead time) | Medium | Lead times vary by supplier — should be calibrated in production |
| 16 | Audit trail stored in browser localStorage | No database — prototype only | High (disclosed) | Data lost on browser clear; not suitable for production |
| 17 | AI recommendations generated at build time | Claude Sonnet, 4 calls, cached system prompt | High | Static recommendations — not dynamically updated with new data |