Filter: all
Fail composition</> SQLserver
of total sends β failure is user-side
π‘ INSIGHTNO_VERIFY dominates, not wrong code. Carrier ~100% β fixing drop-off beats switching vendor.
Wasted spend by reason</> SQLserver
$ on sends that never verified
Verify fail rate by vendor</> SQLserver
carrier ~100% on all β gap is completion
π‘ INSIGHT~13 pt spread at equal delivery. Route high-NO_VERIFY traffic off the worst vendor.
Fail rate by country</> SQLserver
top corridors Β· Unknown (=NO_VERIFY) excluded
π― Action levers
P0
Reduce NO_VERIFY drop-off β App/UX + auto-fill, not a vendor switch. Biggest waste.
P0
Route high-NO_VERIFY traffic off the worst vendor toward Etisalat-class delivery.
P1
Trend + anomaly panel needs multi-day β wire to 122-day server history.
β Funnel β send β enter β verify</> SQLclient
trace-deduped Β· 61.8% verify Β· 44.6% never enter
π‘ INSIGHTBiggest leak: "saw page, never typed" (31,478) β input friction, not delivery.
β‘ Verification failure reasons</> SQLclient
n = 14,881 failed traces
π‘ INSIGHT87% = wrong code. Help users mis-type less (auto-fill + clearer UI).
β’ Rate-limit blocks</> SQLclient
89,508 events = 36.4% of requests
π‘ INSIGHT1 in 3 blocked. Number Limit + Others dominate; thresholds look strict.
β£ Send β verified total time</> SQLclient
distribution Β·
π‘ INSIGHT68% within 30s, 91% within 60s; tail ~9% over a minute.
β€ Top-50 countries β input vs verify/retry</> SQLclient
median seconds, sorted by total
π‘ INSIGHTTwo slows: Qatar verify/retry 34s; Iran input 38s.
β₯ Auto-fill coverage β platform Γ version</> SQLclient
auto-fill is iOS-only Β· live-filtered by Platform + Version
π‘ INSIGHTAndroid = 0% (105k entries) β big lever. iOS 31.6%β35.8%.
β¦ Auto-fill vs manual β speed</> SQLclient
send β filled/verified, seconds
π‘ INSIGHT0.7s vs 23s median β saves ~22s. iOS-only.
β§ Timestamp semantics β platform Γ version</> SQLclient
same field, different meaning per platform β a tracking gap
| Platform | Version | total | relative | epoch | null |
|---|---|---|---|---|---|
| iOS | 4.12.0 | 16,428 | 0% | 99% | 1% |
| iOS | 4.11.1 | 8,088 | 0% | 85% | 15% |
| Android | 4.11.3 | 104,913 | 95% | 0% | 5% |
| Android | 4.11.1 | 186 | 82% | 0% | 18% |
| both | β€4.10 | β | 0% | 0% | 100% |
π‘ INSIGHTiOS=epoch, Android=relative β not a version flip (rollout skew). Fix: split into
input_duration_ms + event_ts.β¨ Root causes & tracking gaps
- π Auto-fill only 4% overall, 0% on Android β highest-leverage fix.
- Gap 1 β Block has no identity (no trace_id/uid) β count only.
- Gap 3 β auto-fill orphaned: Entered uses a fresh trace_id β conversion unmeasurable until it reuses the session trace_id.
- Gap 4 β timestamp semantics differ by platform; split the field.
π― Action items
P0
Add Android auto-fill (SMS Retriever + User Consent) β 0% today, saves ~22s/verify.
P0
Fix Gap 3 β reuse session trace_id on auto-fill Entered.
P1
Investigate Qatar delivery & slow corridors (Iran).
P1
Evaluate loosening rate-limit thresholds β 1 in 3 blocked.