Ojol, Not Grab: Self-Driving to E-Hailing Substitution in Jakarta

The Indonesian companion to the Kuala Lumpur analysis. A unit-economics model of the Jakarta switching decision in rupiah, where the private mode is a motorcycle rather than a car, the e-hailing tariff is set by the state rather than the market, and the answer comes out almost exactly inverted.

The Kuala Lumpur analysis concluded that KL commuters are not switching from self-driving to Grab, and that congestion itself is the reason: the platform meters time, the private motorist does not, so a slower city makes e-hailing relatively more expensive.

Running the same model on Jakarta produces a different answer to nearly every question, and it does so because three structural facts are different:

  1. The private mode is a motorcycle, not a car. DKI Jakarta has roughly 19.5 million registered motorcycles against 3.9 million passenger cars — five two-wheelers for every car.
  2. The e-hailing tariff is regulated, and regulated on distance. Indonesia's Ministry of Transportation sets an upper and lower bound per kilometre by zone. There is no per-minute term, so congestion does not enter the passenger's fare at all.
  3. The two-wheeler filters through traffic. In a city averaging 15.5 km/h, that is not a minor convenience. It is the product.

The result is that in Jakarta, e-hailing wins the comparison against the car decisively and loses the comparison against the motorcycle even more decisively — and since the motorcycle is what most people actually own, the aggregate transition looks much like Malaysia's: small, slow, and largely invisible in the fleet. The reasons, however, are almost entirely different, and they lead to different policy conclusions.


Part 1: The Aggregate Picture

Vehicle sales are diverging by mode.

Indicator2025Change
Car wholesales (Gaikindo)803,687 units−7.2% YoY (from 865,723)
Car retail sales833,692 units−6.3% YoY
Motorcycle sales (AISI)6.4 million units+1.3% YoY
Gaikindo's own downgraded target780,000cut from 850,000 mid-year

Set that against Malaysia, which sold a record 820,752 vehicles in 2025. Indonesia, with roughly eight times Malaysia's population, sold fewer cars in absolute terms. Per thousand people that is about 2.8 new cars a year in Indonesia against about 24 in Malaysia — an order-of-magnitude difference in how these two markets motorise, and the single most important thing to hold in mind before interpreting anything else.

Note also that Indonesia's car decline is widely attributed to weak purchasing power and a squeezed middle class, not to modal substitution. That attribution matters: a falling car market is exactly what a real transition would look like, and exactly what a demand recession looks like, and the public data cannot separate them. I return to this in Part 8.

The fleet is overwhelmingly two-wheeled.

IndicatorValue
National registered motor vehicles (Korlantas, Apr 2025)168.3 million
DKI Jakarta total24.5 million (14.6% of national)
— motorcycles19.5 million
— passenger cars3.9 million
— goods vehicles837,000
— buses53,000

Public transport is growing but small relative to the fleet.

ModeRidership
KRL Commuterline~1 million/day; 349.31m in DKI over 2025, +6.45%
TransJakarta (BRT)~1.4 million/day (2025), up from 1.3m in 2024
MRT Jakarta3.99 million in August 2025 (~129,000/day)
LRT Jakarta~3,500/day

Congestion got dramatically worse in 2025.

TomTom Traffic Index, Jakarta2025
Average speed15.5 km/h
Time per 10 km26 min 19 s (from 25 min 31 s in 2024)
Hours lost in rush hour125 (from ~122)
Global congestion rank24th, up from 90th in 2024

For comparison, Kuala Lumpur runs at 22.9 km/h and 84 hours lost. Jakarta is a substantially slower city, and that difference does real work in the model below.

E-hailing is large, and the workforce numbers are a mess.

IndicatorValue
GoTo FY2025 core GTVRp 400 trillion, +49% YoY
GoTo FY2025 net revenueRp 18.3 trillion, +24%
GoTo FY2025 adjusted EBITDARp 2 trillion, +544%
GoTo annual transacting users66 million (~a quarter of Indonesia)
On-Demand Services GTV growth+7.5%
Registered ojol partners~3.7 million
Active monthly (≥1 trip)~700,000–800,000
Receiving 2026 holiday bonus (BHR)~850,000
Per the Coordinating MinistryGrab ~400k, Gojek ~400k, Maxim ~51k, inDrive ~500

Two things are worth flagging in that last block.

First, the 20% activation rate. Of 3.7 million registered partners, roughly 750,000 complete even one trip in a month. That is not a workforce, it is a queue — and it is the clearest available evidence of how thin per-driver earnings have become.

Second, the counting itself does not reconcile. GoTo reports around 2 million driver-partners; the Coordinating Ministry's platform-by-platform tally comes to under a million; the "registered" figure is 3.7 million; the bonus programme covers 850,000. These are not contradictory so much as differently defined — registered versus active versus paid — but no public source states which definition it is using. Any analysis that quotes a single ojol driver count without saying which of these it means is guessing.

Third, and most telling: GoTo's core GTV grew 49% while On-Demand Services grew 7.5%. The super-app is growing; the mobility business inside it is close to flat in real terms. Whatever is happening in Indonesian mobility, explosive substitution into e-hailing is not it.


Part 2: The Model

Same structure as the KL analysis. For a private vehicle with fixed monthly cost F and marginal cost per one-way trip m, against an e-hailing fare g over N trips a month:

gN < F + mN     ⟺     N < F / (g − m)  ≡  N*

Below N*, e-hailing is cheaper. Above it, keep the vehicle.

Jakarta requires running this twice, against two different private modes, because the car and the motorcycle are genuinely different products competing against genuinely different e-hailing products (ojol on two wheels, taksi online on four).

Parameters

PERTALITE = 10_000     # Rp/litre — subsidised, unchanged through 2026
PERTAMAX  = 16_000     # Rp/litre
UMP_DKI   = 5_729_876  # DKI Jakarta minimum wage, 2026

# Regulated ojol tariff, Zone II (Jabodetabek), Kepmenhub KP 564/2022
OJOL_PER_KM, OJOL_MIN   = 2_700, 13_500
# Taksi online (angkutan sewa khusus) — local govt sets it; Permenhub 118/2018 default
TAKSI_PER_KM, TAKSI_MIN = 4_500, 20_000

Motorcycle: a Honda BeAT on an observed dealer credit scheme — Rp 4.9 million down, 47 monthly instalments of Rp 793,000 — plus Rp 400,000/year tax and insurance, Rp 1.2 million/year maintenance, 45 km/litre, Rp 2,500/day parking.

Car: an LCGC-class vehicle at Rp 175 million on the road, 20% down, 8% flat over five years, Rp 2.5m/year insurance, Rp 2m/year tax, Rp 3m/year maintenance, 12 km/litre, Rp 25,000/day parking (Jakarta's Rp 4,000 first hour plus Rp 3,000 thereafter), Rp 10,000/day toll.

Fixed, financedFixed, paid offm per 12 km trip
MotorcycleRp 926,333Rp 133,333Rp 3,917
Car (LCGC)Rp 3,891,667Rp 625,000Rp 27,500

The car instalment alone is Rp 3,266,667 a month.

The gap that decides everything

ModeMarginal cost per kmRatio to own motorcycle
Ride your own motorcycle (fuel only)Rp 2221.0×
Drive your own car (fuel only)Rp 8333.8×
Ojol (regulated upper tariff)Rp 2,70012.2×
Taksi onlineRp 4,50020.2×

Compare this to Kuala Lumpur, where a Grab fare runs about 2.05× the marginal cost of driving a car you already own. In Jakarta, an ojol costs 8.3× the marginal cost of riding a motorcycle you already own on a 12 km trip. The Malaysian substitution is a close call that usually goes the wrong way. The Indonesian one, against a motorcycle, is not close at all.


Part 3: Results

At N = 74 one-way trips a month, 12 km each:

ComparisonN*OwnE-hailGap
Motorcycle financed vs ojol32.51,216,1672,397,600+1,181,433
Motorcycle paid off vs ojol4.7423,1672,397,600+1,974,433
Car financed vs ojol794.25,926,6672,397,600−3,529,067
Car paid off vs ojol127.62,660,0002,397,600−262,400
Car financed vs taksi online146.95,926,6673,996,000−1,930,667
Car paid off vs taksi online23.62,660,0003,996,000+1,336,000

Negative means e-hailing is cheaper. Read down the N* column and the structure of the Indonesian market falls out in four lines.

Against a motorcycle, ojol never wins. A financed rider would have to make fewer than 33 one-way trips a month; a rider who has paid the bike off, fewer than five. Real usage is 74. The motorcycle wins by Rp 1.2–2.0 million a month, and that is before counting the motorcycle's second seat.

Against a financed car, ojol always wins. N* = 794 is not a threshold anyone reaches; it is the model's way of saying the comparison is not close in the other direction. The financed LCGC costs Rp 5.93 million a month against Rp 2.40 million of ojol — a gap of Rp 3.5 million.

Against a paid-off car, the two converge. Rp 2.66m versus Rp 2.40m. This is the one genuinely contested cell in the table, and it is where behaviour should actually be moving.

Taksi online occupies an awkward middle. It beats a financed car comfortably and loses to a paid-off one, which makes it a product for people between car purchases rather than instead of them.

The affordability frame

Costs mean more against the DKI minimum wage of Rp 5,729,876:

BasketMonthly% of UMP
Motorcycle, paid offRp 423,1677.4%
KRL/TransJakarta + ojol feederRp 625,00010.9%
Motorcycle, financedRp 1,216,16721.2%
Ojol for everythingRp 2,397,60041.8%
Car (LCGC), paid offRp 2,660,00046.4%
Taksi online for everythingRp 3,996,00069.7%
Car (LCGC), financedRp 5,926,667103.4%

A financed entry-level car consumes more than the entire Jakarta minimum wage. This is the number that explains Indonesia's car market better than any modal-shift theory: the car is not a commuting decision that people are re-evaluating against Grab. It is a household-formation purchase available to a thin upper slice of the income distribution, and when that slice's purchasing power weakens — as it did through 2025 — sales fall 7.2% without a single person switching to anything.

Meanwhile the mode that 19.5 million Jakartans actually own costs 7.4% of the minimum wage once paid off. There is no e-hailing price that competes with that, and none is coming: Rp 13,500 is already the regulated minimum ojol fare, and a month of commuting at that floor would cost Rp 594,000 against the paid-off motorcycle's Rp 423,167 all-in.


Part 4: Congestion Runs the Opposite Way to Malaysia

In Kuala Lumpur, congestion is metered into the Grab fare at RM 0.38 a minute while costing the self-driver about RM 0.04 a minute in idling fuel — a 9.5× asymmetry that penalises e-hailing exactly when roads are worst.

Jakarta inverts this for two reasons.

The regulated tariff has no time component. Kepmenhub sets ojol fares as rupiah per kilometre with a minimum, by zone. A trip that takes 40 minutes instead of 20 costs the passenger the same. The cost of congestion is transferred wholesale onto the driver, who absorbs it as unpaid time. That is excellent for the passenger's switching calculus and brutal for driver economics — and it is a direct consequence of a regulatory choice, not a market outcome.

The two-wheeler does not sit in the traffic. At Jakarta's 15.5 km/h car speed against a realistic ~28 km/h for a filtering motorcycle:

ModeSpeed12 km takesMonthly commuting
Car / taksi online15.5 km/h46.5 min34.1 hours
Motorcycle / ojol28.0 km/h25.7 min18.9 hours

That is 15.2 hours a month saved, worth about Rp 504,000 at the UMP hourly rate. Against a car — where ojol already saves Rp 3.5 million a month in cash — the time saving is gravy. Against a motorcycle, it is worth nothing, because the rider already has it.

So the Indonesian product competes on time where the Malaysian one is penalised on time. Ojol is a congestion-beating product in a severely congested city, and that is why it achieved the scale it did. But the congestion advantage is a two-wheeler advantage, not an e-hailing advantage, and the 19.5 million people who already own two wheels captured it years ago for Rp 222 a kilometre.


Part 5: What Ojol Actually Substituted For

Putting Parts 3 and 4 together, ojol's real substitution targets are not motorcycle owners. They are:

SegmentWhy ojol winsFleet effect
Non-owners (no vehicle, no licence, cannot ride)Only motorised option besides transitDeferral, not shedding
Financed-car householdsOjol is Rp 3.5m/month cheaperReal, but a thin, high-income slice
Solo trips by car ownersOjol at Rp 32,400 ≈ car marginal cost of Rp 27,500Zero — the car stays parked, not sold
First/last mile to KRL and TransJakartaRp 13,500 minimum fare for a 2–4 km hopComplementary, supports transit
Trips where you cannot rideRain, formal dress, injury, carrying goodsZero

The third row deserves emphasis, because it is where most of the volume probably sits. A 12 km ojol at Rp 32,400 costs a car owner almost exactly what driving the same trip costs at the margin (Rp 27,500) — and saves 21 minutes. That is an easy, frequent, entirely rational swap that produces no fleet reduction whatsoever. The car is still financed, still insured, still parked downstairs. This is precisely the "trip-level substitution" category from the KL analysis, and in Jakarta the economics make it near-costless, so it should be very common.

The fourth row is the one that compounds. At the Rp 13,500 regulated minimum, an ojol feeder trip to a KRL station is cheap enough that the combined basket — transit pass plus feeders — lands at Rp 625,000/month, 10.9% of UMP. That is the only basket in the entire table that undercuts a financed motorcycle. If Indonesia wants fleet reduction, this is the combination that delivers it, and it depends on rail coverage rather than on anything the platforms control.


Part 6: The Supply Side, and the 8% Rule

Indonesia has just done something Malaysia has not: it cut the platform commission by regulation, hard.

The cap was 20%, with drivers reporting effective deductions of 20–30%. Effective 1 July 2026, the maximum application service fee for passenger transport is 8%, under a Ministry of Transportation decision implementing a policy announced by President Prabowo. A Presidential Regulation covering ojol tariffs for passengers, goods and food was targeted for late August or early September 2026, splitting authority between the Transport Ministry (passengers) and Komdigi (goods and food). The Transport Minister has stated tariffs will not rise to fund it.

What that does to a full-time driver, at 100 km a day over 26 days, working from the regulated Rp 2,700/km:

CommissionNet per kmGross of vehicle costAfter a financed bike% of UMP
30% (reported effective)Rp 1,668Rp 4,336,222Rp 3,409,88959.5%
20% (previous cap)Rp 1,938Rp 5,038,222Rp 4,111,88971.8%
8% (from 1 July 2026)Rp 2,262Rp 5,880,622Rp 4,954,28986.5%

Three observations.

The cut is large and it is real. It moves a full-time driver's post-vehicle earnings up by about 20% against the previous cap, and by 45% against the effective 30% deductions drivers reported. That is a serious intervention, not a gesture.

It still does not reach the minimum wage. At 86.5% of UMP, a driver working 2,600 km a month — which at ojol speeds is roughly 93 hours of driving before waiting time — remains below the wage floor that a Jakarta employee is entitled to. The commission was never the whole problem; the Rp 2,700/km tariff is.

Holding tariffs flat while cutting commission moves the squeeze onto the platform. GoTo's On-Demand Services segment grew GTV 7.5% and improved its adjusted EBITDA margin to 2.1% for FY2025. A 12-point commission reduction against a 2.1% margin is not absorbable out of profit; it has to come out of incentives, marketing spend, or the take on other services. The most likely observable consequences are fewer driver bonuses, fewer passenger promos, and therefore effective fares drifting up toward the regulated ceiling even though the ceiling did not move. That is worth watching in Q3–Q4 2026 data, and it is testable: the regulated band is public, so the gap between the band and realised fares is the whole story.

The structural point mirrors Malaysia's, arrived at from the opposite direction. In Malaysia the market sets fares, and it set them below what sustains drivers. In Indonesia the state sets fares, and it set them below what sustains drivers — then fixed the shortfall by reallocating from the platform rather than by raising the fare. Both markets have concluded that the passenger price cannot go up. Neither has explained how the driver is supposed to earn a wage at that price.


Part 7: Fleet and Capacity Arithmetic

One shed vehicle is 74 one-way trips a month that must be re-sourced.

Taking ~750,000 active partners at ~12 completed trips per active day over 22 days gives roughly 198 million trips a month nationally. (Every multiplier there is an assumption; none is published. Order of magnitude only.)

That volume is equivalent to about 2.68 million vehicles' worth of travel — if every single ojol trip were replacing a trip a shed vehicle would otherwise have made, which it plainly is not. Against DKI Jakarta's motorcycle fleet alone that is 13.7%. Against the national fleet of 168.3 million vehicles it is about 1.6%.

So even under maximally generous accounting, the entire Indonesian ojol sector represents a couple of million vehicles' worth of travel against a fleet approaching 170 million, growing by 6.4 million motorcycles a year. The motorcycle fleet adds more units annually than the entire ojol sector could displace under any realistic substitution rate.


Part 8: What the Data Cannot Tell Us

The identification problem from the KL analysis applies here with one additional twist.

What exists publicly: BPS DKI Jakarta vehicle registration tables by type and municipality; Korlantas ERI national registration totals; Gaikindo and AISI sales; BPS monthly transport bulletins covering TransJakarta, MRT and LRT; KCI ridership statements; GoTo's IDX filings; the Kepmenhub tariff decrees, which usefully make the regulated price public in a way Malaysia's market-set fares are not.

What does not: trip-level platform data; any link between a household's vehicle and its travel; a current Jabodetabek household travel survey with a panel dimension; and a consistent definition of what an "ojol driver" is.

The additional twist: Indonesia's car sales fell 7.2% in 2025. That is the signal a real transition would produce. It is also exactly what a purchasing-power contraction produces, and the contemporaneous evidence — Gaikindo cutting its own target mid-year, motorcycle sales simultaneously rising 1.3%, GIIAS reporting record attendance with weaker sales — points much more strongly at affordability than at substitution. If people were switching from cars to ojol, you would not expect motorcycle sales to rise at the same time; you would expect both to fall. The divergence between four-wheel and two-wheel sales is the strongest available evidence that this is an income story, not a modal-shift story.

Two designs would separate them:

  1. Two-wheel/four-wheel divergence as a natural test. Model motorcycle and car registrations jointly against income, credit conditions and fuel prices at the province-month level. A substitution effect predicts car registrations falling with ojol penetration controlling for income; an affordability effect predicts both modes tracking income with different elasticities. This is runnable today on BPS and Korlantas data.

  2. The 8% commission cut as a supply shock. From 1 July 2026 driver take-home per kilometre jumped ~20% with the passenger tariff unchanged — a clean, sharply-timed shock to supply and not to demand. Trip volumes, waiting times and driver activation rates before and after that date would identify the supply elasticity of the ojol market directly. It is the best natural experiment either country has offered in years, and the window for collecting clean pre-period data has just closed.


Part 9: Malaysia and Indonesia, Side by Side

Kuala LumpurJakarta
Dominant private modeCar (535 vehicles/1,000 people)Motorcycle (19.5m vs 3.9m cars in DKI)
New car sales 2025820,752, record, +0.5%803,687, −7.2%
Cars sold per 1,000 people~24~2.8
E-hailing pricingMarket-set, heavy per-minute componentState-regulated, per-km only
Commission20% cap, GSF pilot to 30%Cut to 8% from 1 July 2026
Fare vs own-vehicle marginal cost2.05× (car)8.3× (motorcycle), 2.0× (car)
Congestion effect on e-hailingRaises fare 9.5× faster than driving costNo fare effect; two-wheeler beats traffic
Average traffic speed22.9 km/h15.5 km/h
Binding constraint on switchingCheap parking, long car loansMotorcycle ownership is simply cheaper
Highest-leverage policyCity-centre parking priceRail coverage + feeder integration
What e-hailing actually displacedThe taxi fleet (120k → 40k)Non-ownership and unlicensed ojek pangkalan

The symmetry worth noting: both markets show e-hailing settling into a complement around a rail spine rather than a substitute for private vehicles, and in both the binding constraint sits with a government rather than a platform. What differs is which government lever matters. Kuala Lumpur's problem is that driving is priced too cheaply at the margin — parking above roughly RM 40 a day would end the argument. Jakarta's problem is that the private alternative is genuinely, structurally cheap: at Rp 222 a kilometre, the motorcycle is not underpriced by policy, it is just an extremely efficient machine, and no pricing instrument short of an outright restriction changes that arithmetic.

Which is presumably why Jakarta has spent two decades reaching for restrictions instead. Ganjil-genap (the odd-even plate scheme) is now openly described by the Jabodetabek transport authority as a temporary measure that people have adapted around. Electronic road pricing has been studied since the 2000s and is currently targeted at 2028–2029, covering four Golden Triangle corridors — Imam Bonjol, Thamrin, Kuningan, Gatot Subroto — at a proposed Rp 5,000–19,000. Parking policy is moving faster: DKI already applies a Rp 7,500/hour disincentive rate to vehicles that have not passed emissions testing against the standard Rp 4,000 first hour, and a floated Rp 60,000/hour rate caused enough political noise in August 2026 that the provincial government publicly walked it back.

That walk-back is the whole problem in miniature. Both cities have identified the correct lever. Neither has been able to pull it.


Part 10: Limitations

The car-versus-ojol comparison is not like-for-like. A car carries a family, luggage and groceries in air-conditioned safety through a tropical downpour; an ojol carries one person and a backpack. The Rp 3.5 million monthly gap in Part 3 is not money households are irrationally wasting — it is the price of a different product. The model prices mobility, not what people actually buy.

Motorcycle safety is unpriced here. Indonesia's road fatality burden falls disproportionately on two-wheelers. A full social cost accounting would narrow the motorcycle's advantage substantially, and nothing in a private-cost model captures it.

The regulated tariff is a ceiling, not a realised price. Platforms discount and run promotions inside the band, so realised fares are typically below Rp 2,700/km. That makes e-hailing look better than modelled here — and makes the 8% commission cut's effect on promotional intensity the thing to watch.

Driver counts are definitionally unstable. The 750,000 active figure drives the Part 7 capacity estimate; using GoTo's ~2 million driver-partners instead would roughly triple it. The conclusion — that ojol volume is small against a 168 million vehicle fleet — survives either way, which is the only reason the estimate is worth stating at all.

Trip counts are assumed. N = 74 is a reasonable central case carried over from the KL model for comparability. No published Jabodetabek travel survey validates it.


Closing

The question was whether Indonesians are transitioning from self-driving to e-hailing. The model's answer is that the question contains a Malaysian assumption — that "self-driving" means a car.

Against a car, Jakarta's e-hailing wins so comprehensively that a financed LCGC costs more than the entire minimum wage while ojol for every trip costs 42% of it. Against a motorcycle, e-hailing loses so comprehensively that no regulated tariff could close the gap: Rp 222 a kilometre against Rp 2,700. Since Jakarta owns five motorcycles for every car, the second comparison is the one that governs the aggregate, and the aggregate therefore looks static — 6.4 million new motorcycles a year, sold into a fleet of 168 million.

What ojol did instead was capture the trips that neither mode served well: the car owner's solo trip across a 15.5 km/h city, the non-owner's only motorised option, and the feeder leg to a KRL station at a regulated Rp 13,500 minimum. That last one is the only combination in the entire model that beats owning a motorcycle. It runs on rail coverage, not on app pricing — and it is where anyone hoping to actually reduce Jakarta's fleet should be looking.


The cost model, tariff calibration and capacity estimates are the author's own, built from published prices, regulated tariffs and reported figures as of September 2026. Scenario outputs are model results, not survey findings; driver-count and trip-frequency multipliers are explicitly labelled assumptions. Reported figures are attributed in-line. This is analysis, not financial or policy advice.

Sources