This project improves how riders book intercity bus tickets in Malaysia. Previously the flow was fragmented search on one page, pay externally, queue at the counter to print a ticket, and manually ask where the gate is. Some riders missed their bus simply because they could not locate the gate or the bus.
We interviewed riders at TBS (Terminal Bersepadu Selatan) and Kuantan Sentral.
Most complaints were not about the price it was about uncertainty:
• “Where do I board?”
• “Is my ticket confirmed? I didn’t receive TAC.”
• “Can I change my travel date? Even if I pay?”
Insight: passengers fear losing control once they pay.
We watched how people actually booked tickets.
Many went to the counter “just to ask”, then returned to the app and booked again.
Reasons:
• They didn’t trust the ticket was confirmed without a physical print.
• They wanted to choose seats together but apps made it hard.
• TAC (bank one-time password) often fails due to weak telco signal.
Our takeaway: the app must reduce friction, reduce uncertainty, and guarantee seat confirmation instantly even if payment isn’t completed yet.
From app analytics, we noticed:
• 43% drop-off rate happened during payment
• 62% of failed payments were caused by TAC timeout
• 70% of group buyers want to select seats together first
This validated our new model: Reserve seats first → then choose payment.
Farah
Age 27, frequent traveler between KL and Terengganu.
Goal Book fast, avoid uncertainty.
Pain TAC fails, app forces immediate payment, confusing gate navigation.
Success A clear flow: Search → Book → Pay → Scan → Board.
BEFORE:
Search → Pay (TAC fails) → Restart → Queue to print → Ask for gate → Guess the boarding bus
AFTER:
Search → Reserve seats → Pay (multiple options, TAC optional) → Scan QR to enter → Track bus live
We sketched three paths:
A. Standard booking
B. Reserve now, pay later
C. Change trip / cancel with refund
We tested the flows with 8 real users. The winning flow was the one that:
• held seats for a countdown timer,
• allowed “Pay at counter” but booking still confirmed,
• skipped TAC by using tokenized card or FPX auto-login where supported.
• Seat selection first emotional decision, boosts conversion
• Multiple payment options FPX, cards, eWallets, and pay at counter
• No-TAC payment tokenized card or frictionless 3DS
• QR boarding scan at gate, no counter required
• Scan QR to Track Bus track arrival in real-time
• Promo hub early bird, last-minute deal, family pack
• Cross-sell options RM1 insurance, SMS reminder, premium support, pay-to-cancel
Trip protection unlocks flexibility users can change the date/time once.
Cancellation shows refund timeline transparently:
"Refund will be processed within 7–14 days."
After redesign:
• 38% faster booking completion time
• TAC failure drop from 62% → 8% using frictionless payment
• Customer support inquiries dropped by 41% (gate confusion & refund status)
The app unlocked new revenue channels:
• RM1 insurance cross-sell
• Trip protection (paid flexibility)
• SMS / priority boarding add-ons
A ticketing app becomes an ecosystem booking, tracking, promotions, and gate access in one flow.
Riders feel in control. Operators reduce queue and support overhead. The experience shifts from stressful and uncertain to predictable and confident.