The full working documents behind the
overview — the Grab teardown, the Maldives market study with every flagged
uncertainty, the PRD, the architecture text, the roadmap, and the raw Bright Data
scrape digests. Long by design; the overview page is the summary.
Compiled 2026-08-28 from grab.com pages, investor releases, engineering.grab.com, and
secondary sources (research agent + Bright Data scrapes). Companion raw digests in
research/.
0. Company snapshot (FY2025 — first full-year net profit)
GrabFood (delivery + Pickup + Group Orders + Saver batched tier + Priority tier —
Saver = 1/3 and Priority = 9% of delivery transactions by Q4 2024); GrabMart
(on-demand grocery; Grab even bought supermarkets in MY — Jaya Grocer); GrabExpress
(Instant bike/car/van 500g–50kg, Same-Day, insured, up to 10 concurrent); Grab
DineOut (reservations, prepaid deal vouchers, loyalty); GrabAssistant (errands, some
markets).
Financial services (GrabFin + digibanks)
GrabPay wallet — licensed e-money: QR in-store, online checkout by mobile
number, P2P, top-up via bank/PayNow/agents, 0.3–0.5% back in points.
PayLater — BNPL: next-month settle or 4/8/12 instalments (fee on 8/12),
behaviourally underwritten from Grab history (≥6-month users, 18+); late = suspend
S$15 fee; 0.5% back. Run by GFin Services, BNPL Code accredited, not MAS-regulated.
Lending — consumer cash loans, driver working-capital advances, merchant
financing (incl. Shariah-compliant in MY). Loan book $1B+ exiting 2025.
Digital banks — GXS (SG, with Singtel), GXBank (MY), Superbank (ID; 6M+
customers, IPO Dec 2025, consolidated May 2026; ~60% of its customers hold
Grab/OVO accounts). Deposits $1.5–1.6B. ~90% of OVO owned.
Loyalty, subscription, gifting
GrabRewards → GrabCoins (earn on ~every action, redeem from 50 coins, partner
catalogue, historical tiering Member→Platinum); GrabUnlimited S$5.99/mo — up to
$3 off every delivery + partner perks; TH revamp: 3x subscribers, ~90% renewal;
GrabGifts consumer + corporate vouchers.
GrabAds
Retail-media on first-party behaviour: masthead takeover, native feed image/video,
rewarded video/lead-gen, sponsored search + home listings, car wraps/bike boards,
O2O sampling. Self-serve Ad Manager ("launch in 3 minutes") — 228k quarterly active
self-serve advertisers (Q4 2025). Revenue $176M FY2024 (+60%), ~1.7% of Deliveries GMV.
Enterprise & platform
Grab for Business (corporate rides/meals, central billing, policy, reporting);
GrabExpress for Business (API/portal bulk); GrabDefence (fraud stack sold B2B);
GrabMaps (map data/APIs, AWS Location provider); GrabFinance (SME lending).
Partner Apps (Oct 2025): third-party mini-apps inside Grab — Firsty eSIMs,
HelloRide bike-share, Jolibox games, redBus intercity/ferry, DriveLah car share.
2. Three-sided ecosystem
One backend marketplace, three apps. 2024: partners earned $12.8B (+16%); 99%+ of
drivers ≥ local hourly minimum wage.
Driver app
One app, multi-earn across rides/food/parcels. Jobs + in-app nav (GrabMaps),
auto-accept, back-to-back chaining; chat with vulgarity filter + masking.
Earnings: Cash + Credit wallets; Instant Cash Out (S$50–5,000, 2×/24h, seconds
via bank APIs). Demand Heat Map for repositioning. Emerald Circle gamification
(Emerald→Ruby→Sapphire→Diamond, quarterly; XP/ride + time-window boosters; gated on
acceptance/cancel/rating; perks: 25–29% Caltex fuel discounts, priority support,
tier protection during pregnancy, bonus XP for safety training). Incentives ~10% of
on-demand GMV platform-wide ($2.3B in 2025). GrabBenefits marketplace (fuel,
servicing, insurance, phone plans, GrabAcademy). Supply finance: GrabRentals leasing,
fuel cards, loans, auto-excess insurance. Safety/compliance: per-session selfie
facial auth, speeding alerts, telematics scoring. SG driver eligibility: 30+, Class
3/3A, 1yr, <18 demerit points, PDVL/TDVL, commercial-classified insured vehicle;
delivery partners 18+, walker/bicycle/PAB/motorbike/car tracks, e-learning gate,
thermal bag required (gear purchase no longer mandatory since May 2025); WICA + TPL
insurance during jobs, income cover >5 days off work.
Merchant app + portal
Onboard in ~3 days; SG fees: activation S$100 (own device) / S$300 (Grab device),
offset against earnings; 30% service fee Food/Mart (regional 15–30%, negotiable
~2–5pp at 200+ orders/mo). Operations: order flow, menu/hours management, own-rider
optional. Money: instant cash-out, QR acceptance, PayLater at no merchant risk,
24h fraud engine, settlement ≤48h after first payout. Growth: self-serve promos,
Ad Manager, insights dashboards, DineOut deals + table management (waitlist, deposits,
no-show reminders). Capital: order-flow-underwritten loans/cash advances.
Design doctrine (from Grab's published redesign case study):
- Two-step booking (destination first, then tier+fare) — small/old devices killed the
one-map-screen layout.
- Follow the mental model: destination → tier → preferences.
- Tiers surfaced on home to drive cross-vertical discovery.
- "LEGOlized" modular booking scaffolds — new verticals reuse the same components.
Ride flow: GPS+POI pickup snap → destination → tier list with upfront fares +
per-tier ETA + payment/voucher picker → match → driver card (photo/plate/rating) →
live tracking, masked chat → on-trip safety (route-deviation monitoring, Share My
Ride, SOS to responders, opt-in AudioProtect encrypted trip audio auto-deleted after
5 days, Women Passengers Preferred in MY beta) → fixed-fare receipt → 5-star rating
+ tags + tips → coins earned.
Food flow: personalized browse → menu with modifiers → basket → checkout (speed
tier Saver/Standard/Priority, Pickup, vouchers + coins stack) → status timeline
(accepted → preparing → courier → en route) with courier on map → rate meal and
courier separately. Group Orders multi-account baskets.
Wallet flow: balance + coins → top-up (bank/PayNow/card/OTC agents) → QR pay,
online pay by mobile number, P2P. Known friction to avoid (external audit): payment
method locked once order active; buried challenges; no clean closed-restaurant
cancellation; inconsistent promo hierarchy.
4. Business model & unit economics
Stream
Mechanics
Numbers
Mobility commission
% of fare from driver payout
16–25% by market; SG 20.18% → dynamic (Nov 2024)
Deliveries
merchant service fee + consumer fees
30% SG standard; 15–30% regional
Advertising
retail media
$176M FY2024, +60% YoY
Fintech
MDR ~1–2%, lending spread, insurance, BNPL
FS rev $347M FY2025
Subscription
GrabUnlimited
S$5.99/mo, ~90% renewal (TH)
B2B
Ads enterprise, GFB, Defence, Maps
—
Net take rates after incentives: Mobility ~15.4% of GMV, Deliveries ~11.8%.
Incentives run ~10% of on-demand GMV — the structural gap between gross commission
and net revenue. Segment EBITDA: Mobility 8.7% of GMV (the profit engine);
Deliveries ~1.8–2% (carried by ads + Saver batching); FS loss-making until ~2H2026
(fintech J-curve funded by the marketplace).
Path to profit: (1) operating leverage; (2) incentive discipline once driver
supply hit records (surge share fell 12pp); (3) mix shift to ads + fintech.
Flywheel: multi-service users spend 2–3x more; mobility = cheap acquisition for
deliveries + fintech; platform data (driver earnings, merchant order flow) = the
credit-underwriting moat.
Backend: Go microservices on Kubernetes, hundreds of services, AWS+GCP dual
cloud, service mesh; Grab-Kit scaffolding; resilience doctrine (circuit breakers,
chaos, Marionette booking-simulation platform); heavy Redis.
Geo: driver GPS every few seconds → Kafka → spatial store; Pharos = K-nearest
drivers on the ROAD NETWORK (not haversine); geohash cell indexing + neighbour
expansion; dispatch = scoring (pickup ETA, acceptance prob, cancel risk, balance)
with batching windows; DispatchGym RL research framework.
Pricing: upfront fare = routing distance/time + per-cell demand multipliers;
fare store is event-sourced (auditable mutations); dynamic supply-side
commission too.
Maps: GrabMaps on OpenStreetMap — fleet GPS probes + KartaView imagery +
KartaCam hardware + gamified contributions; 900k km roads + 50M POIs added to OSM;
kills Google Maps unit costs and became a sellable product.
Payments/fraud: ledger + event sourcing; instant payouts via direct bank APIs;
GrabDefence: Kafka Streams + Flink real-time features, device fingerprinting,
graph service for fraud rings → 0.2% fraud rate vs 1.6% regional.
Data/ML: lake via Coban, Flink windowed personalization, Pinot, model serving
(Catwalk), experimentation platform.
Mobile: one superapp = platform-of-mini-apps; Bazel monorepo; start-time cut
60% with regression gates; shared design system + identity/payment/session kernels.
Minimum clone architecture
Go (or similar) microservices + k8s; API gateway; gRPC internal.
Kafka event backbone from day one; booking state machines as events.
Geo: GPS → Redis GEO/geohash index → candidate retrieval → road-network ETA via
OSRM/Valhalla on OSM (Grab proves OSM is production-grade for SEA-like geos).
Timeline: 2011 HBS prize → 2012 MyTeksi KL (street taxis, safety) → 2013 GrabTaxi
PH/SG/TH → 2014 ID + SoftBank $250M → 2016 rebrand Grab → Nov 2017 GrabPay opens to
merchants → Mar 2018 acquires Uber SEA (Uber takes 27.5%) + Uber Eats → GrabFood
regional May 2018, GrabExpress Oct 2018 → Jul 2018 GrabPlatform → Dec 2020 SG digital
bank licence → Dec 2021 Nasdaq $40B SPAC → 2022–24 banks launch, cost discipline →
FY2025 first full-year profit; Partner Apps Oct 2025.
The sequencing playbook:
1. Start with incumbent supply, not against it — digitize existing taxis first
(instant supply, regulator goodwill), layer private-hire later, merge queues
(JustGrab).
2. Solve the local problem — cash from day one, bikes for gridlock, hyperlocal
maps, local language, empowered country teams (why Grab beat Uber).
3. Frequency ladder — taxi (weekly) → food (daily) → payments (multiple daily) →
banking (ambient); each rung drops the next vertical's CAC to ~zero.
4. Payments is the keystone, not an add-on — wallet BEFORE food; float +
transaction data → underwriting → banks.
5. Buy the endgame when war is unwinnable (Uber deal).
6. Safety as brand — founding story + continuous safety drumbeat = regulator trust.
7. Own your cost curves at scale — maps, fraud → then sell them.
8. Regional density beats global sprawl.
The Maldives as a Launch Market for a Grab-Style Super App
Market & regulatory study — compiled 2026-08-28. MVR at pegged ~15.4/USD.
Unverified items flagged inline; consolidated flag list at end.
1. Geography & Demographics
Census 2022: resident population 515,132 (382,639 Maldivians + 132,493 foreigners).
41% (~212k) in Greater Malé; 46% other islands; 10% resorts. Malé share rising
27%→41% (2000–22). Hulhumalé +16.8%/yr 2014–22; Villimalé shrinking (−2.1%/yr).
2026 projections (indicative): Malé City ~249k, Hulhumalé ~80k.
Households: 94,424 national, 42,571 in Malé (avg 4.5).
Expatriates: census 132,493 but Economic Minister cited 281,000+ records; FLAG — no
reliable single figure. Expats = large share of rider labour pool AND customers.
Bridges: Sinamalé (2018) makes Malé–airport–Hulhumalé one drivable zone. Thilamalé
Bridge ~76% complete Jul 2026, Malé–Villimalé link ~Oct 2026, realistic completion
2027 — merges Malé–Villimalé–Gulhifalhu–Thilafushi. Villimalé stays non-motorised
(buggy/bicycle courier zone).
Digital: internet 84.7%, mobile connections 162% of pop, median mobile ~95.6 Mbps,
nationwide 4G, 85%+ fibre. Telcos: Dhiraagu + Ooredoo. (DataReportal 2025)
Tourism: 2.25M arrivals 2025 (+9.8%); ~22% guesthouse (~500k on local islands DO use
local transport/ferries); 58k hotel guests Malé/HM; all transit Velana Intl Airport.
2. Transport & Mobility
Government-fixed taxi fares (effective 20 May 2024, in force Mar 2026)
Overcharging up to ~10x documented; Ministry QR complaint system + police monitoring.
Airport-trip and destination refusals (prohibited but common).
Meters "coming soon" per Ministry — FLAG: rollout unverified.
Persistent shortage in rain/peak — the standing public complaint.
Taxi centres
Taxis must operate under registered centres with dispatch. Min fleet to register a
centre cut 100 → 50 vehicles (2025-26). FLAG: total taxi count not public
(~6,470 cars total in Malé area vs ~96,400 motorcycles, Mar 2024).
State entrant: Malé Taxi Line (Apr 2026)
MTCC-operated, launched 2 Apr 2026: 24/7, 150 EVs (Changan/Deepal), hotline 1655,
mandated fares. 13k+ trips month one (~430/day per 150 cars = low utilisation).
App launched Jun 2026 iOS-ONLY, under parliamentary corruption inquiry (MVR 13M app
contract). Addu expansion planned; Villimalé buggy service launched. Minister:
private taxis "will continue without disruption."
NOT operating/unverifiable: PickMe MV, Cabey, EHee, Uber, Bolt, Grab, inDrive.
Motorcycles
~96,400 registered in Malé area vs ~6,470 cars. Bike-taxi: FLAG — no legal framework;
Taxi Regulation standards are car-only → treat commercial bike-taxi as unavailable
until Ministry confirms. Motorcycles ARE the de-facto delivery fleet.
Sea ticketing is contested (2 startups + state RTL) → partnership/aggregation
vertical, not greenfield.
3. Food Delivery & E-commerce
Foodies (foodies.mv): clearest Malé leader — 100+ vendors, loyalty, AI recs, and
"Jeebu" own top-up wallet (payments-loop moat in progress; licensing unverified).
Gaadiya Eats: priority/standard tiers; ferry drop-off. Avas App: food+parcels.
Raadiya: small. Marrybrown own app.
Dominant volume still UNDIGITISED: phone/Viber/Instagram + in-house riders (qualitative).
NOT present: foodpanda, Deliveroo, Talabat. "Bileiyaa" unverifiable.
Courier: Red Box Maldives — largest private courier, claims all 22 atolls / 189+
islands (~99% pop reach incl. resorts). Informal ferry-crew cargo = default channel.
4. Payments
Rails
Favara (MMA instant payments, live 26 Aug 2023): ISO-20022, 24/7, alias IDs,
Favara Request (merchant collection), Recall. All banks onboard Jan 2025 +
Dhiraagu Fintech first non-bank PSP.
Payment Maldives Pvt Ltd (2025 spin-out) runs Favara + ACH + PayMV QR (national QR
standard). Late 2025: 7 banks + 1 fintech. Direct super-app enabler.
FLAG: Favara–UPI India corridor reported Jul–Aug 2026 by Indian outlets only.
BML: dominant; only local 3-D Secure gateway (Mastercard MPGS); POS Visa/MC/Amex/
UnionPay + Apple/Google Pay; mPOS + Merchant Portal + payment links, free setup.
FLAG: consumer "BML MobilePay" status unclear — rely on gateway + Favara.
Cash reality: >90% banked but street commerce = cash + BML transfer screenshot as
proof (the habit to kill). Airport taxis: cash, card not guaranteed.
Regulation — the critical gate
National Payment System Act (17/2021) + Regulation on Payment Services (2022): MMA
exclusively licenses PSPs and e-money issuers. Any in-app wallet/stored value/
merchant collection needs an MMA licence.
Known licensees: Dhiraagu, Ooredoo (first, 2022), VTT Finance, Global Payments APAC
Maldives, Payer Pvt Ltd, Fahipay (Mar 2022), TechFin Maldives (Sep 2024).
FLAG: no consolidated public register.
Practical path: launch on BML gateway + Favara Request/PayMV QR while applying for
PSP/e-money licence; or partner/acquire an under-utilised licensee (Fahipay, Payer,
VTT, TechFin).
Taxi Regulation R-132/2022 (Min. of Transport & Civil Aviation): licensed vehicle
standards — roof TAXI sign, interior+exterior cameras, 4–6 doors, luggage
compartment, AC, displayed fares/permit/hotline, link to licensed taxi centre.
(trade.gov.mv Taxi-Standard.pdf)
TAXI APPS DIRECTLY REGULATED — "Standard Requirements for Taxi Service Applications"
(Clause 35(b)): prior written Ministry approval; mandatory real-time tracking,
driver details on confirm, emergency alerts, ratings, e-receipts, multi-payment,
LIVE MINISTRY DASHBOARD (trips, km, 6-month driver histories, meter-based fare
control); non-compliance → suspension. (trade.gov.mv Taxi-Application-requirement.pdf)
→ Budget a government data-sharing integration from day one.
Private-car hailing tolerated in practice but fares state-fixed; NO deregulated
segment; surge effectively illegal. FLAG: legal status ambiguous.
Food businesses: MED registration + food premises/health permits (HPA/council).
FLAG: instrument number not pinned — verify locally.
Courier: no dedicated licensing regime — ordinary business registration. Low barrier.
Foreign investment: FI Act (11/2024, in force 3 Dec 2024): application → No-Objection
→ registration (Companies Act 7/2023) → FI licence → FI agreement.
Data protection: NO law in force. PDP Bill submitted May 2026 (GDPR-style), not
passed as of Aug 2026 — build GDPR-grade now.
Parcel: smaller, sticky, bolt-on (Red Box proves the lane).
Payments changes the math: Favara + PayMV QR make a wallet viable nationally
(515k, 90%+ banked); remittances to 130–280k expats = licensed adjacency.
Verified pain
Taxis: overcharging, refusals, rain/peak shortages, no meters — unresolved
2022→2026 even after the state fleet.
Fragmentation: 8+ taxi apps, none with liquidity for reliable hailing.
Food: Foodies leads but majority volume still phone/Viber/Instagram, untracked.
Street payments: cash + transfer screenshots; patchy card acceptance.
SOE competitor politically protected but weak product execution.
Where a super app wins
Reliability arbitrage: fares fixed by law → ONLY competitive dimensions are pickup
reliability, coverage, payment convenience. Aggregate existing taxi centres
(50-vehicle threshold = many partners) instead of price war.
One wallet across verticals (Favara ID + PayMV QR + MMA licence) kills the
cash/screenshot habit. Foodies' Jeebu is crawling there first.
The ferry seam: ferry drop-off parcels + Odiapp/Dhathuru/RTL aggregation reaches
the 46% atoll population without owning boats.
Timing: Thilamalé bridge (2027) expands the drivable market as a 2026-27 entrant scales.
Structural risks: fixed fares cap ride margins; Ministry app approval + live
dashboard = real compliance build; MMA licensing gates wallet; politically backed
SOE; small pools → case only closes as a BUNDLE.
Consolidated unverified list
Bileiyaa / Cabey / EHee / PickMe MV / keyol / Aatoll.com (no evidence); taxi count;
meter rollout; full MMA PSP register; wallet user numbers; BML MobilePay status;
Favara-UPI corridor (Indian media only); food-permit instrument; Viber volumes;
all TAM modelling.
03 · Product requirements (PRD)
Product Requirements Document — Maldives Super App
Working title: "MVGO" (placeholder — naming pending registry check, see §1.3)
Rev 0.1 · 2026-08-28 · Status: DRAFT for owner review
Grounded in: 01-grab-platform-study.md (what Grab is), 02-maldives-market-study.md
(what the Maldives allows and needs), research/grab-app-store-intel.md (what Grab's
users hate — our better-than list).
1. Vision & positioning
1.1 One-liner
The everyday app for the Maldives: a reliable ride in minutes, food and groceries to
your door, parcels across the city and onto the ferry, and one way to pay for all of
it — built Dhivehi-first for how Malé actually works.
1.2 Why this wins (from the market study)
Taxi fares are fixed by law → competition is purely on reliability, coverage,
payment convenience. Aggregating existing taxi centres beats any price war.
8+ fragmented taxi apps, none with liquidity; food delivery majority still
phone/Viber/Instagram; payments = cash + BML-transfer screenshots.
Favara + PayMV QR (national instant-payment + QR rails) have just made a wallet
loop viable; nobody has built the cross-vertical bundle on them yet.
Grab's own P&L proves no single vertical closes the case in a small market —
the bundle is the business; multi-service users spend 2–3x more.
1.3 Naming & brand (open)
Placeholder MVGO. Naming process: shortlist Dhivehi-rooted names →
business-registry search (business.egov.mv POST SearchBusinessRegistry, field
query) → domain RDAP checks (.com/.app/.mv) → register. IP rule: we clone the
playbook and feature set, never the Grab name, logo, brand colours (Grab green),
or copy. All UI, artwork and copy must be original.
1.4 Boats vertical
Sea transport enters in Phase 3 as an aggregation vertical: partner APIs with the
existing operators (RTL, Odiapp, Dhathuru) surfaced behind a Boats tile — the app
sells the seat, the operator runs the vessel. The booking scaffold stays modular so
a deeper boats product can slot in later if the venture chooses to build one.
2. Users & personas
Aishath, 27, Hulhumalé office worker — commutes to Malé, orders lunch to the
office, hates calling taxi hotlines in rain. Pays by card/BML. Bilingual, prefers
Dhivehi UI.
Ali, 24, expatriate delivery rider — rides a motorcycle, works for a café's
in-house delivery now; wants multi-earn (food + parcels) and clear daily earnings.
Limited Dhivehi; needs English/Bangla-friendly driver UX.
Mariyam, 34, café owner in Malé — takes orders on Viber/Instagram, own rider;
wants more orders without 30% fees, same-day settlement, and control of her menu.
Ibrahim, 51, Thinadhoo shop owner — sends/receives cargo via ferry crews with
cash; wants trackable inter-island parcels.
Tourist couple, guesthouse island — need airport transfer, speedboat seats,
and food on a local island; pay by foreign card; English/Chinese/Russian.
Explicitly OUT (all phases until regulation changes): motorcycle ride-hailing
(no legal framework — car-only taxi regs), surge pricing (fares fixed), own banking.
4. Functional requirements — Consumer app
4.1 Shell
Home = top bar (search, payment shortcut, coins later) + service tile grid
(Rides · Food · Mart · Express · Boats · More) + active-order cards + promo feed.
One account (+960 phone OTP), one identity, one payment surface across verticals.
Modular "LEGO" booking scaffold shared by all verticals (Grab's proven pattern).
Language: Dhivehi (Thaana, RTL) and English at parity from day one; rider-
facing strings also in Bangla/Hindi where drivers need them. Full RTL layout
support is a launch gate, not a nice-to-have.
Local calendar awareness: Friday/Saturday weekend, prayer-time windows (merchant
auto-pause option), Ramadan mode (iftar pre-orders, adjusted hours, demand pins).
4.2 Rides
Pickup: GPS + building-name addressing (Malé has named buildings, not street
numbers — searchable building/POI index is a core asset), saved places, map pin.
Fare display: statutory fare table by zone pair (Malé/HM P1/HM P2/Airport/
Villimalé-none) shown UPFRONT with breakdown (base + terminal + luggage). No
surge — say so ("Government fare. No surge, ever.").
Tiers: Taxi (4-seat), Van (7–10 seat), Airport (flight number field, luggage
count), Scheduled (≥30 min ahead). Later: accessibility tier, hourly hire.
Matching: nearest-available with taxi-centre pooling; honest ETA (p50/p90 shown);
no-far-dispatch rule (cap pickup radius; batch if none).
Safety (Ministry-mandated + Grab-proven): live tracking, driver ID card, two-way
number masking, Share-my-trip link, SOS button with emergency contacts, e-receipts,
post-trip 5★ + tags, route-deviation alerts.
Cancellation: free until driver is en route ≥2 min; no dark-pattern countdown.
Live status: confirmed by restaurant (REQUIRED before charge — kills Grab's
closed-restaurant trap), preparing, rider assigned, en route, delivered.
Cancellation: free until restaurant confirms; auto-cancel + auto-refund if no
confirmation in 10 min.
Ratings: meal and rider rated separately; photo reviews.
4.4 Express (Phase 2)
Tiers: Bike (≤5kg docs/food), Car (fragile/bulk ≤50kg); multi-stop; scheduled.
Ferry drop-off: hand-off to named ferry/speedboat + recipient island + boat
contact — tracked to jetty hand-off with photo proof (the local killer feature).
Cancel windows as above; never a countdown trap; no popup over the cancel button.
Human support: in-app chat reaching a person < 5 min in operating hours;
phone line free. (Small market = our structural advantage.)
Honest ETAs: show p90 not fantasy p10; ETA updates pushed when late + auto-voucher
if >15 min beyond promise.
No interstitial ads during booking. Feed promos only.
Battery-sane tracking (server-push, no wake-locks).
Vouchers: plain rules, visible expiry, no disappearing offers.
5. Functional requirements — Driver app
Onboarding: licence + vehicle/taxi-centre verification, Ministry-compliant driver
profile (6-month history retention), e-learning module + quiz, selfie face-check
per session.
Jobs: card with pickup distance + fare BEFORE accept; auto-accept option;
back-to-back chaining; multi-earn toggle (rides / food / parcels) per licence class
(car drivers: rides+parcels; motorcycle riders: food+parcels only — no bike-taxi).
Navigation: OSM-based turn-by-turn tuned for Malé one-ways; building-name search;
no popups over the map (Grab's #1 driver complaint).
Earnings: live daily/weekly dashboard, per-job breakdown, instant payout to any
Favara-reachable bank account (min MVR 100), weekly auto-settlement fallback;
transparent commission line on every job.
Incentives: weekly quests (e.g., 40 jobs → MVR 300 bonus), peak-hour multipliers
ON OUR MARGIN (not passenger fares — those are fixed), rain bonus (it always
rains); tier programme later (Emerald-Circle-style, fuel partner discounts).
Support: human chat + Driver Room at the hub office (physical desk — Driver
Centre pattern); appeal flow for ratings/complaints with human review.
Fairness: no exclusivity; multi-apping allowed; no false device-integrity blocks.
Self-serve onboarding: business registration no. + food permit upload → verified
in ≤3 working days; menu via sheet upload or in-app editor with photos.
Orders: loud + reliable new-order alerts, one-tap accept, prep-time control,
busy/pause self-service (never auto-pause without human contact — anti-Grab),
own-rider toggle (merchant fleet allowed at lower fee).
Money: same-day/next-day settlement via Favara, itemised statements, VAT export.
Fees (proposal, see roadmap doc): 15% standard delivery commission + delivery fee
passthrough; 8% with own riders; 0% on pickup (traffic driver); no activation fee
at launch. (Grab charges 30% + activation — headroom is our merchant-acquisition
weapon; Foodies undercut similarly.)
Ops: live map of all jobs, manual dispatch override, refund/credit issuance with
audit log, driver/merchant verification queues, complaint SLA tracking, fraud
review queue.
Ministry of Transport dashboard (regulatory requirement): real-time trip feed,
km travelled, driver histories (6 months), fare-compliance reporting, incident
log export. Build as a read-only scoped portal + signed API. This is a launch
blocker by law (Taxi App Standard, Clause 35(b)) — treat as first-class product.
8. Compliance requirements (gates)
Gate
Instrument
When
Company + FI structuring (if foreign capital)
FI Act 11/2024, Companies Act 7/2023
Phase 0
Taxi app written approval
Taxi Reg R-132/2022 + App Standard 35(b)
Phase 0, before rides launch
Partnered taxi centres registered
centre licensing (min 50 vehicles)
Phase 0
Food vendor permit verification flow
MED registration + health permits (verify instrument locally)
Phase 1
Card acquiring
BML merchant agreement (MPGS 3-DS)
Phase 1
Favara Request / PayMV QR participation
via bank/PSP partner
Phase 1
E-money / PSP licence (wallet)
NPS Act 17/2021 + 2022 Regulation (MMA)
Phase 2 gate
Data protection readiness
PDP Bill (pending) — build GDPR-grade now
continuous
FX handling for tourist cards
Foreign Currency Act 32/2024
Phase 3
9. Non-functional requirements
Availability 99.9% during 06:00–02:00 Maldives time; graceful degradation to
hotline dispatch.
Booking round-trip (request→driver assigned) p50 < 20s in Greater Malé at launch
density; ETA error p50 < 2 min.
Offline resilience: driver app queues status updates through dead zones; consumer
app read-only cache.
Security: OWASP ASVS L2; PCI-DSS SAQ-A via gateway tokenisation (never store PANs);
session keys in platform keystores (Keychain/StrongBox); TLS
pinning; per-session driver face-check.
Privacy: data minimisation, in-country hosting preference or SG region + DPA,
deletion on request, GDPR-grade consent — ahead of the PDP bill.
Accessibility: Thaana font rendering at all sizes, TalkBack/VoiceOver, large-text.
04 · Technical architecture (text)
Technical Architecture — Maldives Super App
Rev 0.1 · 2026-08-28 · companion to 03-product-requirements.md
Design principle: Grab's patterns, Malé's scale. Grab runs hundreds of Go
microservices because it serves 50M MTUs across 900 cities. We serve one conurbation
of ~250k people at launch. Copy the shapes (event-driven bookings, event-sourced
money, road-network matching, modular mobile shell) — not the headcount.
1. Stack recommendation
Layer
Choice
Rationale
Mobile
Flutter (consumer, driver, merchant from one codebase)
3 apps × 2 platforms with a small team force cross-platform. Android-first market (driver phones), iOS strong on consumer side.
Backend
Go modular monolith → split later
One deployable, module boundaries = future services: identity, orders, dispatch, payments, merchant, notifications, authority-feed. Grab-style k8s microservices only when team >10 eng.
DB
PostgreSQL (+ PostGIS)
bookings, ledger, geo queries in one proven store.
Cache/geo
Redis (GEO sets for live driver positions, job offers, rate limits)
Events
NATS JetStream at launch (Kafka-shaped, ops-light) → Kafka if volume demands
Booking lifecycle as an event log from day one — Grab's core lesson.
Maps
OpenStreetMap + self-hosted OSRM/Valhalla (Maldives extract is tiny) + own POI/building-name gazetteer
Grab proved OSM production-grade for SEA; Google Maps per-request pricing is poison for a thin-margin market. Maps tiles via Protomaps/self-hosted tileserver.
Search
Postgres FTS → Meilisearch for menu/POI search
Thaana + Latin dual-script indexing.
Infra
Managed k8s or plain VMs on AWS ap-south-1 (Mumbai, ~35ms) or SG; IaC via Terraform; single region + warm standby
No in-country cloud; latency to Mumbai/SG both fine.
Observability
OpenTelemetry + Grafana stack; booking-funnel dashboards day one
Every transition = immutable event (JetStream + Postgres event table). Projections
build consumer status screens, driver job cards, ops live map, Ministry feed,
and the analytics lake from the same log. This is the single non-negotiable
Grab pattern.
FOOD requires MERCHANT_CONFIRMED before payment capture (PRD §4.3 — the
anti-Grab cancellation fix). Auth-then-capture on cards; Favara Request fires at
confirmation; cash marked at delivery.
Malé is ~8 km²; Greater Malé ≈ 3 islands + bridge. Zone graph beats geohash
cleverness at this scale: zones = {Malé blocks, HM P1, HM P2, Airport, Industrial
Village…}; candidate set = same zone + adjacent; rank by road-network ETA
(OSRM) not haversine (one-way maze of Malé makes haversine badly wrong — same
reason Grab built Pharos).
Offer loop: top candidate gets 12s exclusive offer → next; batch mode in rain
peaks (collect 10s of requests, solve assignment — simple Hungarian/greedy is
plenty at our volumes).
Honest-ETA rule: display p90 of recent actual pickup times per zone-pair, not
optimistic routing output.
No-far-dispatch: hard cap pickup ETA (e.g. 12 min) — queue the rider with
transparency instead (fixes Grab complaint #7 / driver complaint #3).
5. Pricing
RIDE: statutory zone-pair fare table (versioned config, Ministry-auditable;
+terminal/luggage line items). No surge anywhere. Commission computed on our
margin side only.
FOOD/MART: delivery fee = base + per-km (OSRM distance) with small-basket fee;
merchant commission per contract tier; promo engine as vouchers with plain rules
(PRD §4.6.6).
EXPRESS: tier base + per-km + ferry-handoff flat fee.
All money math in integer laari; MVR only at launch (Foreign Currency Act).
6. Payments architecture
Ledger first: double-entry accounts (consumer, driver, merchant, platform,
gateway suspense, cash-in-transit) — every rupee movement is a journal entry tied
to an order event. (Grab's event-sourced fare store lesson; also what MMA will
audit for the licence.)
Phase 1 rails: BML MPGS tokenised cards (SAQ-A, never store PANs), Favara
Request push-collection via partner bank/PSP API, cash with driver float
tracking + daily reconciliation.
Phase 2 wallet: stored-value accounts on the same ledger behind an MMA
PSP/e-money licence (partner or own); top-up via Favara/cards; P2P; refunds land
as instant balance.
Fraud: rules first (velocity, device, GPS-teleport, cash-COD abuse, promo abuse,
collusion pairs), device fingerprinting; ML later. Target Grab's 0.2% not the
1.6% regional norm.
Building-name gazetteer is a strategic asset: Malé addresses are building
names (e.g. "Gulchanpaa Aage"), not numbers. Sources: city council lists, manual
survey, driver crowdsourcing with rewards. Dual-script (Thaana + Latin) search
with fuzzy translit matching.
Thaana/RTL: Flutter first-class RTL; all strings externalised day one; Dhivehi
copy reviewed by native speaker (not machine translated).
Time/calendar: Indian/Maldives TZ pinned everywhere (never the device-default
calendar); prayer-time service for merchant windows; Ramadan config.
8. Ministry authority feed (launch blocker by law)
Scoped read-only portal + signed pull API: live trips (id, plate, driver licence
ref, origin/destination zone, fare), km aggregates, 6-month driver histories,
complaint log. Data-minimised (no passenger PII beyond what the standard demands),
audit-logged access, IP-allowlisted. Build week 1, demo at approval application.
9. Security & privacy baseline
OWASP ASVS L2; secrets in cloud KMS; tokens in Keychain/StrongBox
(WhenUnlockedThisDeviceOnly); cert pinning; per-session
driver selfie face-check; RBAC + full audit in ops console; GDPR-grade consent,
retention schedule, deletion flows ahead of the PDP bill; DPA with cloud + SMS
providers; backups encrypted, restore-tested.
10. Delivery plan (engineering)
M0 (4–6 wks): monolith skeleton, identity/OTP, order state machine + events,
Redis GEO, OSRM MV extract, fare tables, ops console shell, Ministry feed stub.
Merchants: target the Viber/Instagram long tail Foodies hasn't digitised:
0 activation fee, 15%/8%/0% (delivery/own-rider/pickup) vs Grab's 30%+activation,
next-day Favara settlement, free menu photoshoot for first 100, self-serve promos.
3. Demand & brand
Wedge message: "Taxi in the rain." Solve the one thing every Malé resident
complains about; reliability guarantee (no driver in 10 min → MVR 15 voucher).
Airport corridor: fixed MVR 70 fare + flight tracking + luggage declared — attack
refusals/overcharging where pain (and tourist visibility) is highest.
Launch offers funded ≤10% of GMV (Grab's own discipline line), sunset on a plan.
Dhivehi-first campaign; media via nx Discord ecosystem, local influencers, taxi
wraps (GrabAds OOH pattern).
4. Unit economics model (Greater Malé, modelled — revisit with pilot data)
Rides (statutory fares, 12.5% blended take):
- Year-1 target: 3,000 trips/day avg × MVR 50 blended = MVR 54.8M GMV/yr
→ commission ≈ MVR 6.8M (~USD 445k).
Food (15% + MVR 7 avg consumer fee margin):
- Year-1 target: 1,500 orders/day × MVR 180 basket = MVR 98.6M GMV/yr
→ revenue ≈ MVR 18.6M (~USD 1.2M).
Express/Mart P2 adds ≈ MVR 3–5M. Year-2 bundle potential ≈ MVR 40–60M
revenue (~USD 2.6–3.9M) at 25–35% share of the modelled pools (02 study §6).
Cost side yr-1: team 6–8 eng+ops ≈ MVR 8–12M, incentives ≤10% GMV ≈ MVR 15M,
infra ≈ MVR 1–1.5M, marketing MVR 4–6M → expect yr-1 burn MVR 25–35M
(USD 1.6–2.3M); breakeven credible yr-3 on bundle + wallet attach. (Compare
Grab: mobility EBITDA 8.7% of GMV at maturity; SEAT-2018 model lost MVR 2M/yr on
boats alone — the bundle is what changed since.)
5. Regulatory checklist (owner-gated)
#
Action
Owner
Blocker for
R1
Company formation / FI structuring
NaXief + counsel
everything
R2
Taxi App Standard approval (35(b)) incl. Ministry dashboard demo
tech + counsel
rides launch
R3
Taxi-centre partnership contracts
BD
rides supply
R4
BML merchant/gateway agreement
finance
card payments
R5
Favara Request via partner bank/PSP
finance
push payments
R6
Food-permit verification SOP (confirm instrument with HPA/council)
Tools: order management + fulfilment tracking, VoIP calls to customer/courier
with full-screen incoming-call alerts, menu/catalogue self-service, promos +
in-app ads, store-performance insights, GrabAcademy (merchant e-learning),
employee sub-profiles with roles, cashless settlement.
4. Review-mined pain points (what a clone must do BETTER)
Consumer app complaints (recurring, 2024–2026)
Cancellation trap: ~5s cancel window, popup ads land on top of it; orders
from closed/sold-out restaurants can't be cancelled; waits up to 1.5–2h for
system cancel. → Clone: generous cancel window, restaurant-confirm gate, live
stock sync, human-reachable support.
Bot-only support: chatbot loops, no live agent, paid phone line. → small
market = human support is a differentiator.
ETA dishonesty: ETA doesn't update when late; "2-4 min away" drivers taking 15.
Ad spam at booking moment (interstitials during "search for a ride").
Grab's own map stack: KartaView / KartaDashcam apps feed street imagery (their
OSM-based GrabMaps play) — evidence that owning map data became strategic.
App Store "you might also like": Gojek, TADA, Lalamove, Move It, 12Go — the
competitive set app-store shoppers see.
R2 · grab.com service-page digest (scrape)
Grab.com Service-Page Digest (Bright Data scrape, 2026-08-28)
Enterprise: Grab for Business, GrabAds, GrabGifts B2B, GrabFinance, GrabExpress
for business, GrabDefence (anti-fraud SaaS), GrabMaps (licensing hyperlocal maps).
Distribution: App Store, Google Play, Huawei AppGallery. Tagline "Forward Together".
Transport
Value props: upfront pricing (excl. tolls/surcharges) · live tracking + trip history ·
cashless (GrabPay/card) — cash also accepted.
Tiers: Standard car-or-taxi / 4-seater / metered taxi / fixed-fare taxi; Premium /
Premium Executive / Limo Executive (book 4h–90d ahead); Share (wait up to 7 min to
pool) / Hitch (non-commercial carpool); Kid (child restraints, LTA <1.35m compliance
marketed); Pet (insurance + seat cover + trained drivers); 3 wheelchair tiers
(storage / +assistance / ramp); Advance Booking; Rent-by-the-hour.
Safety: SOS emergency button, two-way number masking, Share-my-ride live GPS,
GrabChat (history deleted post-ride).
Cross-sell: Ride Cover per-ride insurance upsell.
GrabFood
Modes: delivery (Standard / Priority / Saver speeds), scheduled up to 2 days ahead,
Pickup (no fee), Dine Out Deals (vouchers, 100% refund guarantee).
Fees: menu price + distance-based delivery fee. Hours 7am–2am.
Payments: cards, GrabPay, PayPal, cash (cash only < S$50, GrabChat to warn about
change). Order-for-someone-else supported. GrabUnlimited subscription for savings.
GrabMart
Groceries/pharmacy/beauty/flowers/pets from "thousands of stores". Instant (within
the hour) or scheduled (same/next day). Hours 8am–2am. Min order per store with
small-order fee below it. Up to 4 simultaneous store orders. CASHLESS ONLY.
Out-of-stock flow: contact customer → cancel → rebook.
GrabExpress
500g–50kg across Bike (7am–11pm, 1-hour door-to-door) / Car (fragile: cakes,
flowers; 8am–10pm) / Large (furniture; 8am–9pm) / 4-hour economy tier (book
9am–6pm). Upfront fixed fares, live GPS, PHOTO PROOF OF DELIVERY, auto insurance
S$500 + paid top-up to S$2,000. Up to 10 concurrent bookings, stackable with ride +
food orders. Prohibited list: IDs/passports, cash, raw/frozen food, hazardous incl.
power banks, live animals/plants, >S$500 value, letters ≤500g, etc.
Merchant (fees — the money page)
Delivery merchant: live in ~3 days; docs = business reg (ACRA/NRIC), food licence,
halal/liquor if applicable, photos 1:1 + 9:5, menu via Excel/photo/site/template.
FEES: one-time activation S$100/outlet (own Android) or S$300 (Grab device with
printer), offset against earnings. SERVICE FEE 30% + GST on ALL Food/Mart orders
including self-pickup. First settlement ≤10 working days, then ≤48h.
QR pay: approval ~5 days; auto cash-out daily/at limit.
Online gateway: cards 3.4% + S$0.50/txn; GrabPay wallet 3.3%; daily settlement;
24h fraud engine; PayLater at no merchant risk.
DineOut: proximity-first discovery, next-day settlement, co-funding + trial
commissions for new merchants.