| Funnel Stage | Gap Contribution — Regional | Gap by Market | Overall pFR Uplift if fully fixed (SEA) |
Key Insights |
|---|---|---|---|---|
|
Priority Finding
1
JB Post-Allocation
No-Show Problem PAX cancels after allocation, within 30 min of pickup — no-show rate is 2–4× higher in 1–2h vs 2–6h |
17–47%
of FR gap across SEA markets
SEA avg (ex-SG): ~21%
|
🇸🇬 SG 47%
🇵🇭 PH 31%
🇻🇳 VN 20%
🇲🇾 MY 19%
🇮🇩 ID 22%
🇹🇭 TH 17%
Contribution = (NS Rate 1–2h − NS Rate 2–6h)
|
+0.38pp
SEA overall pFR uplift
🇻🇳 VN +0.73pp
🇵🇭 PH +0.68pp 🇸🇬 SG +0.46pp 🇮🇩 ID +0.40pp 🇲🇾 MY +0.39pp 🇹🇭 TH +0.17pp |
SG is the outlier (47%) — supply barely fails in SG; almost all of SG's gap is demand-side abandonment. For all other markets, no-show is a consistent but secondary contributor (~17–22%). No-show rate in 1–2h is 2–4× the 2–6h rate (e.g. MY: 2.5% vs 0.7%) — passengers who book close to their ride time are far more likely to cancel. |
| ⚡ FAILED ALLOCATION — Driver fails the pre-award check 30 min before pickup. A driver always signed up; the failure is at the T−30min broadcast check, not at sign-up. | ||||
| FA: Overall Net FA contribution = FA rate gap × (1 − fallback recovery). Portion of FR gap not rescued by fallback |
4–66%
of FR gap across SEA markets
MY: 5.4pp (49%) | TH: 3.3pp (66%)
|
🇹🇭 TH 66%
🇵🇭 PH 62%
🇲🇾 MY 49%
🇻🇳 VN 31%
🇮🇩 ID 28%
🇸🇬 SG 4%
% of total FR gap attributable to net unrecovered FA failures
|
+0.63pp
SEA overall pFR uplift
🇵🇭 PH +1.04pp
🇻🇳 VN +1.00pp 🇲🇾 MY +0.91pp 🇹🇭 TH +0.50pp 🇮🇩 ID +0.42pp 🇸🇬 SG +0.03pp |
Dominant lever in supply-first markets. TH (66%), PH (62%), and MY (49%) have FA as the biggest single contributor to their FR gap. FA rate in the 1–2h bucket is 2–3× higher than 2–6h: TH 11.7% vs 3.5%; MY 25.2% vs 7.8%; PH 14.0% vs 6.8%. SG is the structural outlier — FA contributes only 4% of SG's gap; the gap is almost entirely PAX No-Show (58%) and Fallback recovery (38%). Vietnam's high FA rate (20.5%) is split evenly between driver unavailability and Too Far — Bangkok/Vietnam geography amplifies TooFar failures more than other markets. |
|
Priority Finding
2
Failed Allocation —
DAX Offline / Invalid State Driver offline, suspended, or system-disqualified after JB acceptance · Morning peak amplifies Invalid State 2× (53% of FAs at 04–07h vs 27% off-peak) |
3–52%
of FR gap across markets
MY: 4.6pp (41%) | TH: 2.6pp (52%)
Offline rate 1–2h vs 2–6h: MY 20.9% vs 6.3% |
🇹🇭 TH 52%
🇵🇭 PH 46%
🇲🇾 MY 41%
🇻🇳 VN 23%
🇮🇩 ID 23%
🇸🇬 SG 3%
80–85% of FA failures in most markets are Offline/Unavailable (excl. VN at 55%)
|
+0.53pp
SEA est. pFR uplift
🇲🇾 MY +0.77pp
🇵🇭 PH +0.78pp 🇻🇳 VN +0.74pp 🇹🇭 TH +0.42pp 🇮🇩 ID +0.34pp 🇸🇬 SG +0.02pp |
Dominant FA sub-category everywhere except Vietnam. 80–85% of all FA failures in MY, ID, PH, TH are from drivers who went offline or entered an invalid state after accepting the JB. FA offline rate is 3–4× higher in 1–2h than 2–6h (MY: 20.9% vs 6.3%). Vietnam anomaly: Only 55% of VN FA failures are Offline/Unavailable; the remaining 45% are Too Far — reflecting greater geographic spread of drivers relative to pickup zones in Vietnam cities. Lever: Validate driver eligibility at JB sign-up; re-alert at T−45min; penalise post-acceptance offline transitions. |
| FA: Too Far Driver moved too far from the pickup zone by the T−30min allocation check |
1–15%
of FR gap across markets
MY: 0.9pp (8%) | VN: 1.2pp (8%)
TooFar rate 1–2h vs 2–6h: VN 9.2% vs 6.7% |
🇵🇭 PH 15%
🇹🇭 TH 14%
🇻🇳 VN 8%
🇲🇾 MY 8%
🇮🇩 ID 6%
🇸🇬 SG 1%
% of total FR gap attributable to Too Far failures
|
+0.10pp
SEA est. pFR uplift
🇻🇳 VN +0.26pp
🇵🇭 PH +0.25pp 🇹🇭 TH +0.08pp 🇲🇾 MY +0.08pp 🇮🇩 ID +0.07pp 🇸🇬 SG +0.01pp |
Secondary lever; geography-driven. Too Far accounts for 15–25% of all FA failures across markets. The share is highest in Vietnam (45% of FA) because driver coverage zones are more spread out; lowest in SG (27%) but SG's overall FA rate is negligible. TooFar rate is relatively flat between 1–2h and 2–6h buckets — it contributes to the FR gap mainly because the overall FA rate is higher in 1–2h. In VN and TH, the TooFar gap is more pronounced (rate: VN 9.2% vs 6.7%; TH 2.8% vs 1.1%). Lever: Geofence enforcement on JB sign-up; progressive unsubscription warnings when driver moves beyond service radius. |
|
Priority Finding
3
Fallback Recovery Gap
Fallback rescues failed JB bookings at a lower rate in 1–2h vs 2–6h · Root cause: DAX post-cancellation after fallback acceptance (17–33% rate vs 1–6% in 2–6h) |
35–60%
of FR gap across SEA markets
MY: 4.1pp (44%) of gap
MY rescue rate: 77.5% vs 92.6% |
🇮🇩 ID 60%
🇸🇬 SG 51%
🇻🇳 VN 47%
🇲🇾 MY 44%
🇹🇭 TH 35%
🇵🇭 PH ~0%
Share of total FR gap explained by fallback rescue gap
|
+0.49pp
SEA overall pFR uplift
🇻🇳 VN +1.45pp
🇮🇩 ID +0.68pp 🇲🇾 MY +0.55pp 🇸🇬 SG +0.30pp 🇹🇭 TH +0.09pp 🇵🇭 PH ~0pp |
Single largest lever — root cause identified. Fallback recovery drops 15pp in MY (77.5% vs 92.6%) and 16pp in ID (69.9% vs 85.3%) for 1–2h bookings. 🔴 Root Cause: Driver post-cancellation after fallback acceptance. Drivers accept the fallback booking but then cancel at 17–33% rates for 1–2h vs only 1–6% for 2–6h. This gap exists at every hour of the day — it is not a morning peak issue. Fallback allocation rate is actually better in 1–2h; PAX behaviour is not the issue. Lever: Fallback commitment enforcement (cancellation penalty), fare uplift on fallback assignment, ETA visibility before acceptance. See Section 6 for full deep-dive. |
Market contribution % = component's pp contribution ÷ total FR gap for that market. Market-level deep-dives in Section 4.
| Market | FR (1–2h) | FR (2–6h) | FR Gap ▼ | FA Rate (1–2h) | FA Rate (2–6h) | FB Recovery (1–2h) | FB Recovery (2–6h) | Archetype |
|---|---|---|---|---|---|---|---|---|
| 🇻🇳 Vietnam | 78.3% | 92.2% | +13.9pp | 20.6% | 8.9% | 60.5% | 65.0% | Fallback + FA |
| 🇲🇾 Malaysia | 87.0% | 96.4% | +9.4pp | 23.6% | 8.0% | 77.5% | 92.6% | FA Supply |
| 🇮🇩 Indonesia | 87.5% | 95.2% | +7.7pp | 10.4% | 5.7% | 69.9% | 85.3% | Fallback dominant |
| 🇸🇬 Singapore | 90.3% | 97.3% | +7.0pp | 2.8% | 2.3% | 72.8% | 90.7% | PAX No-Show |
| 🇰🇭 Cambodia | 88.0% | 94.3% | +6.3pp | 9.0% | 12.1% | — | — | Low volume |
| 🇹🇭 Thailand | 90.4% | 95.2% | +4.8pp | 10.2% | 3.4% | 66.2% | 80.3% | FA Supply |
| 🇵🇭 Philippines | 90.3% | 93.8% | +3.5pp | 21.4% | 7.3% | 82.8% | 93.6% | FA Supply |
JB FA Rate = jb_failed_allocation / total_request | FB Recovery = fallback_completed / fallback_request
The FR gap decomposes into three additive components. Bars below show the proportional contribution of each for every market.
FA Offline/Invalid State is the dominant JB-stage driver. Fixing driver state at the pre-award check directly closes the gap. FA rate in 1–2h is 2–3× the 2–6h rate.
The JB booking itself barely fails differently between buckets. The gap is driven by fallback rescuing at a much lower rate in the 1–2h window. Requires a separate investigation.
All 6 SEA Markets · May 1–25 2026 · Normal AB, Non-Airport | Red = 1–2h · Green = 2–6h · Annotations show the excess gap (pp) for 1–2h over 2–6h
For every failed allocation flagged as InvalidState, we checked whether the signed driver had an active non-AB booking within a 90-minute window around the allocation timestamp. This directly measures OD-trip overlap as a share of all InvalidState failures — including at peak hours.
The OD-busy overlap is negligible and constant across all time slots. Driver suspension/disqualification after JB acceptance (~46%) is the real driver of InvalidState failures. Targeting concurrent OD trips would not materially reduce FA failures.
We computed the FA rate by hour of pickup across all 6 SEA markets, split by 1–2h and 2–6h lead-time buckets. We also measured each market's share of FAs that fall within the 06–08h window and calculated a concentration ratio (1–2h ÷ 2–6h).
All 6 SEA Markets · May 1–25 2026 · Non-airport Normal AB | Red line = 1–2h FA Rate · Blue dashed line = 2–6h FA Rate · Red shading = gap ≥10pp · Amber shading = gap 5–10pp · Yellow band = morning peak (06–08h)
The timing hypothesis is confirmed. 1–2h bookings systematically collide with peak-hour supply constraints because their lead time places pickup squarely in the commute window. The failure sub-type mix is identical at peak and off-peak, confirming this is a structural timing mismatch — not a new failure mode. The primary lever is supply pre-positioning ahead of the 06–08h window for 1–2h bookings.
Malaysia · May 1–25 2026 · 1–2h Non-airport Normal AB | Lines show % share of each reason within that hour's FAs · Grey dashed = overall 1–2h FA rate (right axis) · Yellow = morning peak (04–07h)
| Market | FB Recovery Gap | Unalloc Rate (1–2h / 2–6h) | PAX Pre-Cancel (1–2h / 2–6h) | Alloc Rate (1–2h / 2–6h) | DAX Post-Cancel (1–2h / 2–6h) 🔑 | PAX Post-Cancel (1–2h / 2–6h) | Verdict |
|---|---|---|---|---|---|---|---|
| 🇲🇾 Malaysia | -15.0pp | 1.5% / 2.4% ✅ Not the issue |
1.9% / 4.0% ✅ Better in 1–2h |
97.4% / 94.5% ✅ Better in 1–2h |
18.8% / 1.6% 🔴 +17.2pp gap |
3.4% / 2.2% Minor |
DAX post-cancel |
| 🇮🇩 Indonesia | -13.7pp | 4.3% / 4.7% ✅ Flat |
4.7% / 8.3% ✅ Better in 1–2h |
93.8% / 90.6% ✅ Better |
20.3% / 2.3% 🔴 +18.0pp gap |
8.7% / 8.8% Flat |
DAX post-cancel |
| 🇹🇭 Thailand | -8.1pp | 8.9% / 17.4% ✅ Better in 1–2h |
7.1% / 16.6% ✅ Much better in 1–2h |
90.4% / 77.5% ✅ Better |
26.3% / 5.7% 🔴 +20.6pp gap |
3.1% / 1.7% Minor |
DAX post-cancel |
| 🇵🇭 Philippines | -28.6pp | 1.3% / 2.3% ✅ Minimal |
2.1% / 4.6% ✅ Better in 1–2h |
97.1% / 94.3% ✅ Better |
32.5% / 0.0% 🔴 +32.5pp gap |
2.2% / 2.4% Flat |
DAX post-cancel |
| 🇸🇬 Singapore | -9.2pp | 2.4% / 4.5% ✅ Better in 1–2h |
3.4% / 6.4% ✅ Better in 1–2h |
94.7% / 90.0% ✅ Better |
13.3% / 3.0% 🔴 +10.3pp gap |
6.1% / 2.0% +4.1pp, secondary |
DAX post-cancel |
| 🇻🇳 Vietnam | -2.9pp | 42.8% / 35.6% ⚠️ Supply shortage |
3.2% / 6.2% ✅ Better in 1–2h |
69.7% / 61.8% Better but still low |
13.9% / 1.5% 🔴 +12.4pp gap |
6.2% / 3.6% Minor |
DAX post-cancel + Supply shortage |
Malaysia · May 1–25 2026 · Non-airport Advance Bookings | Shaded area = FR gap between buckets | Amber bands = Morning/Evening peak hours
| Time of Day | MY 1–2h DAX Post-Cancel | MY 2–6h DAX Post-Cancel | MY Gap | TH 1–2h DAX Post-Cancel | TH 2–6h DAX Post-Cancel | TH Gap |
|---|---|---|---|---|---|---|
| Wee Hours (00–05h) | 20.7% | 3.0% | +17.7pp | 31.2% | 11.1% | +20.1pp |
| Morning Peak (06–08h) | 18.3% | 3.9% | +14.4pp | 27.9% | 0.0% | +27.9pp |
| Day Time (09–16h) | 17.3% | 0.0% | +17.3pp | 20.5% | 5.1% | +15.4pp |
| Evening Peak (17–20h) | 18.4% | 1.0% | +17.4pp | 20.2% | 1.5% | +18.7pp |
| Night Time (21–23h) | 17.2% | 0.7% | +16.5pp | 23.6% | 7.5% | +16.1pp |
1–2h fallback fares may be less attractive relative to what drivers can earn from competing bookings at the moment of assignment. 2–6h fallbacks inherit the scheduled booking premium.
Driver accepts, then realises they cannot physically reach pickup in 30 min and cancels rather than arriving late. More prevalent in 1–2h because the booking is near-instant.
2–6h fallbacks inherit a longer-window AB booking context with stronger acceptance norms. 1–2h fallback feels like a short-notice on-demand booking — drivers treat it with lower commitment.
| Action | Mechanism | Gap Addressable | Markets |
|---|---|---|---|
| Fallback commitment enforcement | Cancellation penalty for driver post-accept cancellation on fallback bookings; increase within first 10 min of acceptance | MY: ~4.1pp (44% of total gap) | MY, ID, TH, PH, SG |
| Fare uplift on fallback assignment | Increase driver-side fare for 1–2h fallback to make it competitive with OD alternatives at point of assignment | Reduces 17–33pp dax post-cancel | All supply-driven markets |
| ETA display at fallback accept | Show driver ETA to pickup clearly before acceptance to reduce "accept then cancel" behaviour | Reduces panic cancellations | MY, TH, ID |
| Vietnam supply intervention | Vietnam has structural supply shortage (42.8% unalloc rate) — incentives for drivers to accept AB fallback in low-supply periods | Addresses unallocation separately from post-cancel | VN only |
| Open Question | Why It Matters | Status |
|---|---|---|
| Final Waterfall Sizing UR → JB-stage losses → fallback-stage losses → entirely unrecovered URs, per market |
Quantifies absolute ride count recoverable per lever for business case sizing | Pending |
unique_request_id format: UR-{first}-XXXXXXXXXXXXXXXXXX-{last}) and is the canonical reference used in all funnels and certified tables.
All timestamps are local time unless noted.
Driver was allocated at T−30min, arrived on time, but PAX did not board within the no-show window. Timeline: Booking Created → Allocation Broadcast (T−30min) → Driver Allocated → Driver Arrived → PAX No-Show → Driver Cancelled
| Market | Last Booking Code ✓ | Driver ID | Booking Created | Scheduled Pickup | Lead (min) | Alloc Broadcast (T−30) | Driver Allocated | Driver Arrived (UTC) | Cancel Time | DAX secs post-alloc | Cancel Reason |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 🇮🇩 INDONESIA | |||||||||||
| 🇮🇩 ID | A-9BOTB3PWWAKHAV | 853464 | 2026-05-17 17:47 | 19:15:00 | 87 | 18:45:00 | 18:45:00 | 12:13:42 UTC | 19:30:08 | 2707s (~45min) | PAX_NO_SHOW_V2 |
| 🇮🇩 ID | A-99JN63RWWDU7AV | 6269480 | 2026-04-30 22:43 | 00:00:00 | 76 | 23:05:00 | 23:05:00 | 16:55:41 UTC | 00:18:00 | 4380s (~73min) | PAX_NO_SHOW_V2 |
| 🇮🇩 ID | A-9AEPTQ9GX7GKAV | 7219349 | 2026-05-07 12:30 | 14:00:00 | 89 | 13:15:00 | 13:15:00 | 06:48:03 UTC | 14:15:09 | 3609s (~60min) | PAX_NO_SHOW_V2 |
| 🇮🇩 ID | A-9AWXWNPWWFU6AV | 8224179 | 2026-05-03 22:24 | 23:45:00 | 80 | 22:50:00 | 22:54:40 | 16:16:28 UTC | 00:02:25 | 4065s (~68min) | PAX_NO_SHOW_V2 |
| 🇮🇩 ID | A-99K3QCPWWGXVAV | 4350837 | 2026-05-01 01:01 | 02:30:00 | 88 | 01:45:00 | 01:45:00 | 19:41:07 UTC | 02:56:41 | 4301s (~72min) | PAX_NO_SHOW_V2 |
| 🇲🇾 MALAYSIA | |||||||||||
| 🇲🇾 MY | A-9BXIRI7WXDH7AV | 7657974 | 2026-05-12 02:53 | 04:15:00 | 81 | 03:45:00 | 03:45:00 | 19:58:27 UTC | 04:30:13 | 2712s (~45min) | PAX_NO_SHOW_V2 |
| 🇲🇾 MY | A-9CF7OMDWX3BFAV | 8308383 | 2026-05-23 04:50 | 06:15:00 | 84 | 05:45:00 | 05:45:00 | 22:01:56 UTC | 06:31:07 | 2767s (~46min) | PAX_NO_SHOW_V2 |
| 🇲🇾 MY | A-9CJJ7ELGW39CAV | 3509161 | 2026-05-24 06:14 | 07:30:00 | 75 | 07:00:00 | 07:00:00 | 23:16:19 UTC | 07:45:10 | 2709s (~45min) | PAX_NO_SHOW_V2 |
| 🇲🇾 MY | A-9AOXNMNWXWT9AV | 4512562 | 2026-05-09 19:21 | 20:45:00 | 83 | 20:15:00 | 20:15:00 | 12:54:30 UTC | 21:13:06 | 3485s (~58min) | PAX_NO_SHOW_V2 |
| 🇲🇾 MY | A-99K4TNOWXCUOAV | 2988165 | 2026-05-01 02:13 | 03:30:00 | 76 | 03:00:00 | 03:00:00 | 19:20:22 UTC | 03:45:42 | 2741s (~46min) | PAX_NO_SHOW_V2 |
| 🇵🇭 PHILIPPINES | |||||||||||
| 🇵🇭 PH | A-9C96JE2GW6PRAV | 5336265 | 2026-05-21 17:41 | 19:00:00 | 78 | 18:15:00 | 18:15:10 | 10:42:21 UTC | 19:17:04 | 3713s (~62min) | PAX_NO_SHOW_V2 |
| 🇵🇭 PH | A-9BSI9PJWXALTAV | 6633517 | 2026-05-18 16:05 | 17:30:00 | 84 | 16:45:00 | 16:45:00 | 09:28:08 UTC | 17:46:05 | 3665s (~61min) | PAX_NO_SHOW_V2 |
| 🇵🇭 PH | A-9BP37COWWO2EAV | 1314196 | 2026-05-17 19:51 | 21:15:00 | 83 | 20:30:00 | 20:30:00 | 13:02:28 UTC | 21:30:26 | 3626s (~60min) | PAX_NO_SHOW_V2 |
| 🇵🇭 PH | A-9BNB6DGWX2PPAV | 8938114 | 2026-05-17 09:39 | 11:00:00 | 80 | 10:15:00 | 10:15:00 | 02:45:41 UTC | 11:17:01 | 3721s (~62min) | PAX_NO_SHOW_V2 |
| 🇵🇭 PH | A-9AQJ2FUGWUO9AV | 3964130 | 2026-05-10 10:09 | 12:00:00 | 110 | 11:15:00 | 11:15:00 | 03:57:03 UTC | 12:17:18 | 3738s (~62min) | PAX_NO_SHOW_V2 |
| 🇸🇬 SINGAPORE | |||||||||||
| 🇸🇬 SG | A-99VUSFFGWUD6AV | 932599 | 2026-05-03 23:01 | 00:30:00 | 88 | 00:00:00 | 00:00:00 | 16:21:06 UTC | 00:45:29 | 2728s (~45min) | PAX_NO_SHOW_V2 |
| 🇸🇬 SG | A-9B42PJJGXABSAV | 5960514 | 2026-05-12 17:27 | 18:45:00 | 77 | 18:35:00 | 18:35:00 | 10:42:04 UTC | 18:50:12 | 912s (~15min) | PAX_NO_SHOW_V2 |
| 🇸🇬 SG | A-99TOUKOWWKU2AV | 7425730 | 2026-05-03 10:17 | 12:00:00 | 102 | 11:50:00 | 11:50:00 | 03:56:07 UTC | 12:06:30 | 989s (~16min) | PAX_NO_SHOW_V2 |
| 🇸🇬 SG | A-9CGGN72WXCP4AV | 7406745 | 2026-05-23 12:18 | 13:45:00 | 86 | 13:35:00 | 13:35:00 | 05:41:23 UTC | 13:50:09 | 909s (~15min) | PAX_NO_SHOW_V2 |
| 🇸🇬 SG | A-9BDNHSCWW4TTAV | 319268 | 2026-05-15 01:39 | 03:00:00 | 80 | 02:30:00 | 02:30:00 | 18:51:53 UTC | 03:15:42 | 2742s (~46min) | PAX_NO_SHOW_V2 |
| 🇹🇭 THAILAND | |||||||||||
| 🇹🇭 TH | A-9AUFSM3WWWWGAV | 6363942 | 2026-05-11 07:52 | 09:15:00 | 82 | 08:30:00 | 08:30:00 | 02:09:57 UTC | 09:31:07 | 3667s (~61min) | PAX_NO_SHOW_V2 |
| 🇹🇭 TH | A-9BRV7FLGX3W9AV | 7501075 | 2026-05-18 11:36 | 13:00:00 | 83 | 12:15:00 | 12:15:00 | 05:57:12 UTC | 13:16:09 | 3669s (~61min) | PAX_NO_SHOW_V2 |
| 🇹🇭 TH | A-9A8KUDSW3W7XAV | 7715500 | 2026-05-06 00:38 | 02:30:00 | 111 | 01:45:00 | 01:45:00 | 19:02:45 UTC | 02:45:23 | 3623s (~60min) | PAX_NO_SHOW_V2 |
| 🇹🇭 TH | A-9CDWCE9WX3BFAV | 7088886 | 2026-05-22 14:51 | 16:15:00 | 83 | 15:30:00 | 15:30:00 | 08:57:08 UTC | 16:43:00 | 4379s (~73min) | PAX_NO_SHOW_V2 |
| 🇹🇭 TH | A-9CIO3PJWXWSPAV | 8143349 | 2026-05-24 00:18 | 01:45:00 | 86 | 01:00:00 | 01:00:00 | 18:21:21 UTC | 02:00:17 | 3616s (~60min) | PAX_NO_SHOW_V2 |
| 🇻🇳 VIETNAM | |||||||||||
| 🇻🇳 VN | A-9BPALVNW2G84AV | 3744088 | 2026-05-17 20:13 | 21:30:00 | 76 | 21:00:00 | 21:01:32 | 14:34:55 UTC | 21:51:39 | 3007s (~50min) | PAX_NO_SHOW_V2 |
| 🇻🇳 VN | A-9BXHN5KWX5C6AV | 7735104 | 2026-05-12 01:41 | 03:00:00 | 78 | 02:30:00 | 02:30:00 | 19:34:43 UTC | 03:15:07 | 2706s (~45min) | PAX_NO_SHOW_V2 |
| 🇻🇳 VN | A-99VOL4FGWKU2AV | 9496750 | 2026-05-03 20:53 | 22:15:00 | 81 | 21:45:00 | 21:45:00 | 15:02:30 UTC | 22:34:21 | 2960s (~49min) | PAX_NO_SHOW_V2 |
| 🇻🇳 VN | A-9C6XJ62GWSERAV | 8221902 | 2026-05-20 22:17 | 23:45:00 | 87 | 23:15:00 | 23:15:00 | 16:15:07 UTC | 00:00:06 | 2706s (~45min) | PAX_NO_SHOW_V2 |
| 🇻🇳 VN | A-9AAMOJ5GXDFQAV | 7060874 | 2026-05-06 12:37 | 14:00:00 | 82 | 13:30:00 | 13:30:00 | 06:43:56 UTC | 14:15:10 | 2710s (~45min) | PAX_NO_SHOW_V2 |
⚠️ Driver Arrived is stored in UTC in the raw table. All other timestamps are local time. SG no-show window is noticeably shorter (~15min) vs other markets (~45–73min).
A driver signed up for the JB but was disqualified at the T−30min pre-award check specifically due to Invalid State (PreAwardCheckFailDriverInvalidState). Bookings where Offline/Unavailable or Too Far were also present for any driver are excluded.
Timeline: Booking Created → Driver Signs Up → Allocation Broadcast (T−30min) → Pre-Award Check: Driver Invalid State → Booking fails (no replacement found)
⚠️ This is a very rare failure mode: only MY, TH, VN have booking-level failures with a pure Invalid State signal across Apr–May 2026. ID, PH, SG have zero such cases — when Invalid State fires in those markets, another driver always recovers the booking.
| Market | Last Booking Code ✓ | JB Booking Code | Driver ID | Booking Created | Scheduled Pickup | Lead (min) | Alloc Broadcast (T−30) | Award Failure Reason | State |
|---|---|---|---|---|---|---|---|---|---|
| 🇮🇩 INDONESIA · No pure Invalid State booking failures found in Apr–May 2026 — when Invalid State fires in ID, another driver recovers the booking | |||||||||
| 🇲🇾 MALAYSIA | |||||||||
| 🇲🇾 MY | A-99BE7OAWWGVCAV | same | 6991893 | 2026-04-28 23:29 | 01:30:00 | 120 | 01:00:00 | Invalid State | CANCELLED_PRE_ALLOC |
| 🇲🇾 MY | A-9CH9A46GWDK5AV | same | 8265555 | 2026-05-23 16:46 | 18:15:00 | 88 | 17:45:00 | Invalid State | CANCELLED_PRE_ALLOC |
| 🇵🇭 PHILIPPINES · No pure Invalid State booking failures found in Apr–May 2026 — when Invalid State fires in PH, another driver recovers the booking | |||||||||
| 🇸🇬 SINGAPORE · No pure Invalid State booking failures found in Apr–May 2026 — when Invalid State fires in SG, another driver recovers the booking | |||||||||
| 🇹🇭 THAILAND | |||||||||
| 🇹🇭 TH | A-95QD7SKGWQR7AV | same | 7561360 | 2026-04-01 12:01 | 13:30:00 | 88 | 13:00:00 | Invalid State | UNALLOCATED |
| 🇹🇭 TH | A-95QINTQGW34VAV | same | 8952027 | 2026-04-01 13:01 | 14:30:00 | 88 | 14:00:00 | Invalid State | CANCELLED_PRE_ALLOC |
| 🇻🇳 VIETNAM | |||||||||
| 🇻🇳 VN | A-967COO4WWX3SAV | same | 1500173 | 2026-04-04 15:40 | 17:00:00 | 79 | 16:30:00 | Invalid State | CANCELLED_PRE_ALLOC |
| 🇻🇳 VN | A-9BNPT3DWWMQ8AV | same | 8255052 | 2026-05-17 11:20 | 13:15:00 | 114 | 12:45:00 | Invalid State | UNALLOCATED |
✅ All samples verified against ocd_adw.f_transport_advance_jobboard: award_failure_reason = 'PreAwardCheckFailDriverInvalidState' exclusively, with no Unavailable or TooFar events on the same booking.
Data scope: Apr 1 – May 28 2026. The generic cancel_reason = 'Cancel before allocation' in the raw booking table is the same for all pre-award failure subtypes; the exact sub-reason is only visible in the JB events table.
The original JB driver cancelled → system created a fallback booking → a new driver was allocated to the fallback → that fallback driver also cancelled, often within seconds. Timeline: JB Created → JB Driver Cancels → Fallback Created → Fallback Driver Allocated → Fallback Driver Cancels
ACCEPTED_IN_ERROR_FREE_CR — a penalty-free cancel reason.
This is a strong signal of cancel-penalty evasion: drivers accept then immediately cancel with no financial consequence.
| Market | Fallback Code (Last = ✓) | Original JB Code | JB Created | Sched. Pickup | JB Lead (min) | JB Alloc Check | FB Created | FB Driver Allocated | FB Driver Cancelled | DAX secs post-alloc | JB Cancel → FB Cancel Reason |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 🇮🇩 INDONESIA | |||||||||||
| 🇮🇩 ID | A-9AIRE5AWXFMFAV | A-9AIITQ8GWSM7AV | 2026-05-08 10:31 | 12:30:00 | 118 | 11:35:00 | 12:04:46 | 12:05:24 | 12:22:17 | 1013s (~17min) | ACCEPTED_IN_ERROR → TOO_MANY_PAX |
| 🇮🇩 ID | A-9CO4H7NGWB9NAV | A-9COWIPEWW72DAV | 2026-05-25 06:58 | 08:15:00 | 76 | 07:35:03 | 07:41:23 | 07:41:42 | 07:57:21 | 938s (~16min) | ACCEPTED_IN_ERROR → ACCEPTED_IN_ERROR |
| 🇲🇾 MALAYSIA | |||||||||||
| 🇲🇾 MY | A-9BVVSQPGWBMVAV | A-9BVQSOCGX6XJAV | 2026-05-19 11:07 | 12:30:00 | 82 | 12:00:00 | 12:02:07 | 12:02:39 | 12:05:20 | 161s (~3min) | NOT_ENOUGH_TIME → NOT_ENOUGH_TIME |
| 🇲🇾 MY | A-9B82RR2GW6LRAV | A-9B7TKOFWX72NAV | 2026-05-13 15:48 | 17:15:00 | 86 | 16:45:00 | 16:45:56 | 16:46:06 | 16:46:11 | 4s ⚡ | NOT_ENOUGH_TIME → ACCEPTED_IN_ERROR_FREE_CR |
| 🇵🇭 PHILIPPINES | |||||||||||
| 🇵🇭 PH | A-9AQRC65GX65TAV | A-9AQN4OWWXXFKAV | 2026-05-10 10:54 | 12:15:00 | 80 | 11:40:06 | 11:40:18 | 11:40:51 | 11:40:57 | 5s ⚡ | ACCEPTED_IN_ERROR_FREE_CR → ACCEPTED_IN_ERROR_FREE_CR |
| 🇵🇭 PH | A-9ARPGO3WWI5FAV | A-9ARLTJAWX6JSAV | 2026-05-10 16:30 | 17:45:00 | 74 | 17:00:00 | 17:09:32 | 17:09:35 | 17:09:50 | 15s ⚡ | ACCEPTED_IN_ERROR → ACCEPTED_IN_ERROR_FREE_CR |
| 🇸🇬 SINGAPORE | |||||||||||
| 🇸🇬 SG | A-9BCGUOJGWDU4AV | A-9BC9RJVWX8SDAV | 2026-05-14 17:20 | 18:45:00 | 84 | 18:35:00 | 18:37:57 | 18:38:37 | 18:39:02 | 24s ⚡ | PROBLEM_CONTACT_CUSTOMER → PROBLEM_CONTACT_CUSTOMER |
| 🇸🇬 SG | A-9A2OILBGW6L9AV | A-9A2J9BUGWAOUAV | 2026-05-04 14:23 | 15:30:00 | 66 | 15:20:00 | 15:21:08 | 15:23:49 | 15:25:07 | 77s | PROBLEM_CONTACT_CUSTOMER → PROBLEM_CONTACT_CUSTOMER |
| 🇹🇭 THAILAND | |||||||||||
| 🇹🇭 TH | A-9C774T8GWGF7AV | A-9C6VSAEWX25EAV | 2026-05-21 03:48 | 05:15:00 | 86 | 04:30:00 | 05:08:00 | 05:08:21 | 05:08:28 | 6s ⚡ | ACCEPTED_IN_ERROR → ACCEPTED_IN_ERROR_FREE_CR |
| 🇹🇭 TH | A-99UV67TGXBB9AV | A-99UR8XXGW6TOAV | 2026-05-03 15:32 | 17:00:00 | 87 | 16:15:00 | 16:25:15 | 16:25:20 | 16:25:24 | 3s ⚡ | ACCEPTED_IN_ERROR_FREE_CR → ACCEPTED_IN_ERROR_FREE_CR |
| 🇻🇳 VIETNAM | |||||||||||
| 🇻🇳 VN | A-9CHFGRLWW5JVAV | A-9CH8MU6GXEPVAV | 2026-05-23 15:40 | 17:15:00 | 94 | 16:45:28 | 16:54:43 | 16:55:02 | 16:55:04 | 2s ⚡ | ILLEGAL_PICKUP → ACCEPTED_IN_ERROR_FREE_CR |
| 🇻🇳 VN | A-9AWAQHOWX2SAAV | A-9AW4KX9WWMHLAV | 2026-05-03 23:04 | 00:30:00 | 85 | 00:01:27 | 00:11:52 | 00:16:19 | 00:16:25 | 6s ⚡ | ACCEPTED_IN_ERROR_FREE_CR → ACCEPTED_IN_ERROR_FREE_CR |
⚡ = fallback cancel within 15 seconds of allocation — strong indicator of cancel-penalty evasion via ACCEPTED_IN_ERROR_FREE_CR. All timestamps local time. Scope: 1–2h Non-airport Normal AB, May 1–25 2026.