RideFlow

Ride-hailing marketplace analytics — Kafka → Parquet lakehouse → dbt → DuckDB. Every figure below is generated from the warehouse and verified in CI.

12,150
Trips requested
84.6%
Completion rate
8.7%
Unmet demand
₹5,614,646
Gross bookings
₹1,069,455
Platform commission
212
Quarantined

When supply arrives, and when demand peaks

Each series as a share of its own daily total, so both sit on one axis in the same unit. Levels are not comparable — trips and sessions are different things — but timing is, and timing is the question.

0.0%8.8%17.6%DemandSupply0:00 — Demand 1.0% · Supply 0.6%01:00 — Demand 0.6% · Supply 1.1%2:00 — Demand 0.3% · Supply 0.6%23:00 — Demand 0.2% · Supply 2.1%4:00 — Demand 0.4% · Supply 4.7%45:00 — Demand 0.8% · Supply 12.2%6:00 — Demand 2.1% · Supply 17.6%67:00 — Demand 3.7% · Supply 16.9%8:00 — Demand 16.7% · Supply 11.6%89:00 — Demand 17.1% · Supply 7.1%10:00 — Demand 4.4% · Supply 3.6%1011:00 — Demand 3.9% · Supply 1.6%12:00 — Demand 3.2% · Supply 1.8%1213:00 — Demand 3.3% · Supply 1.8%14:00 — Demand 3.2% · Supply 2.0%1415:00 — Demand 3.4% · Supply 2.7%16:00 — Demand 4.3% · Supply 3.1%1617:00 — Demand 6.4% · Supply 2.9%18:00 — Demand 6.7% · Supply 1.9%1819:00 — Demand 6.4% · Supply 1.3%20:00 — Demand 4.4% · Supply 1.0%2021:00 — Demand 3.5% · Supply 0.9%22:00 — Demand 2.4% · Supply 0.5%2223:00 — Demand 1.6% · Supply 0.6%

Supply peaks at 6:00; demand peaks at 9:00. Drivers come online before the rush and drop off during it — which is what the 8.7% unmet demand is made of.

Show as table
HourTrips requested% of daySessions started% of day
0:001231.0%280.6%
1:00670.6%491.1%
2:00370.3%280.6%
3:00280.2%942.1%
4:00520.4%2124.7%
5:00940.8%55312.2%
6:002532.1%79917.6%
7:004443.7%76716.9%
8:002,02816.7%52511.6%
9:002,07517.1%3217.1%
10:005374.4%1633.6%
11:004753.9%741.6%
12:003913.2%801.8%
13:004063.3%821.8%
14:003843.2%902.0%
15:004193.4%1222.7%
16:005254.3%1403.1%
17:007796.4%1342.9%
18:008096.7%881.9%
19:007726.4%611.3%
20:005404.4%441.0%
21:004253.5%410.9%
22:002912.4%230.5%
23:001961.6%260.6%

Conversion funnel

Trips reaching each stage. Cumulative, so a trip counted at “Started” is also counted at every earlier stage.

Requested: 12,150Requested12,150Matched: 11,093Matched11,093Driver arrived: 10,503Driver arrived10,503Started: 10,314Started10,314Completed: 10,281Completed10,281Paid: 10,256Paid10,256
Show as table
StageTrips% of requests
Requested12,150100.0%
Matched11,09391.3%
Driver arrived10,50386.4%
Started10,31484.9%
Completed10,28184.6%
Paid10,25684.4%

Unmet demand by zone

Share of requests that never matched a driver. Zones with fewer than 50 requests excluded — a percentage over a handful of trips is noise.

Marathahalli: 14.2%Marathahalli14.2%Koramangala: 13.8%Koramangala13.8%Bellandur: 12.7%Bellandur12.7%Whitefield: 12.1%Whitefield12.1%Manyata Tech Park: 11.8%Manyata Tech Park11.8%Sarjapur Road: 11.5%Sarjapur Road11.5%Electronic City: 11.3%Electronic City11.3%Cubbon Park: 11.0%Cubbon Park11.0%MG Road: 10.3%MG Road10.3%Kempegowda Intl - Terminal 2: 9.4%Kempegowda Intl - Terminal 29.4%
Show as table
ZoneUnmet demandRequests
Marathahalli14.2%541
Koramangala13.8%690
Bellandur12.7%502
Whitefield12.1%626
Manyata Tech Park11.8%434
Sarjapur Road11.5%391
Electronic City11.3%559
Cubbon Park11.0%237
MG Road10.3%439
Kempegowda Intl - Terminal 29.4%405

Surge through the day

Revenue-weighted: surge revenue ÷ pre-surge revenue. Not the average of surge_multiplier, which averages ratios and is dominated by cheap trips.

0.019.438.738.7%0: 4.7%01: 11.1%2: 1.1%3: 0.0%34: 0.0%5: 0.0%6: 0.5%67: 3.8%8: 17.6%9: 21.1%910: 6.7%11: 1.8%12: 0.3%1213: 1.9%14: 1.9%15: 2.2%1516: 2.2%17: 26.8%18: 38.7%1819: 37.8%20: 24.9%21: 11.1%2122: 5.5%23: 1.1%
Show as table
HourWeighted surge
04.7%
111.1%
21.1%
30.0%
40.0%
50.0%
60.5%
73.8%
817.6%
921.1%
106.7%
111.8%
120.3%
131.9%
141.9%
152.2%
162.2%
1726.8%
1838.7%
1937.8%
2024.9%
2111.1%
225.5%
231.1%

Where the fare goes

Gross bookings of ₹5,614,646 decompose exactly into these three. The identity is enforced as an error-severity dbt test, so the pipeline refuses to publish if it ever fails.

Driver payout: 4,277,824Driver payout4,277,824Platform commission: 1,069,455Platform commission1,069,455Tax: 267,368Tax267,368
Show as table
ComponentAmount
Driver payout₹4,277,824.24
Platform commission₹1,069,454.56
Tax₹267,367.54
Total₹5,614,646.34

Pipeline health

Known defect counts, published rather than hidden. Duplicates arrive because Kafka guarantees at-least-once delivery; zero surviving is the two-pass deduplication working.

Show the full quality record
Load dateEvents landedDuplicates leftLate arrivalsClock-skewedOrphaned tripsSequence invalidUnexplained revenue
2026-03-161,13900000₹0.00
2026-03-1729,6070002765₹13,937.88
2026-08-052,82705123₹0.00
2026-08-0671,558041113257144₹16,268.09

Weighted surge across the day: 15.29%. 212 trips quarantined and excluded from every figure above; they are exported separately for inspection, because a silent exclusion is indistinguishable from data loss.