Careem Pakistan: ride app design lessons
A case study of Careem Pakistan ride flows: pickup pins, PKR fare estimates, driver coordination, safety states, and screens to generate in floow.design.
careem pakistan shows how a ride-booking app should reduce uncertainty at four moments: confirming a pickup, understanding a PKR fare estimate, finding the assigned driver, and getting help during a trip. Its Pakistan operations, launched in 2016 across cities including Karachi and Lahore, make those states a useful local mobile-app design case study.
Key takeaways
- •Treat pickup confirmation as a separate decision, not just a map pin.
- •Show fare estimates in clearly labelled PKR before booking and on the final receipt.
- •Keep driver identity, vehicle details, call/chat actions, and trip status visible without crowding the map.
- •Design safety and support states as part of the active-trip flow, not as buried account settings.

What's on this page
- •The local ride-booking job to design for
- •Make the price state legible before commitment
- •Driver tracking is a coordination screen, not a decorative map
- •Build the case-study flow in floow.design
The local ride-booking job to design for
Careem launched operations in Pakistan in 2016, and its Pakistan service included ride-hailing across major cities including Karachi and Lahore. That makes careem pakistan a useful case study for a product task that is highly local even when the interface pattern is familiar: a rider must explain where they are, trust an estimated fare, locate a moving vehicle, and know what to do when a trip changes.
Start the flow with intent rather than an oversized map. A ride-request screen should show a plainly editable pickup field, destination field, saved-place shortcut, and a map pin whose meaning is explicit: “Pickup point” rather than an unlabeled marker. When the pin is adjusted, return a readable street or landmark description and ask for confirmation before vehicle selection.
In dense Karachi or Lahore streets, the rider’s practical question is often whether the captain can find the correct side of the road, gate, or entrance. Add an optional pickup note after the location is confirmed, not before. Keep it short and structured: landmark, building entrance, or “call on arrival.” This avoids turning the first screen into a form while giving the driver-coordination screen useful context. Careem documents the company’s consumer mobility service.
Make the price state legible before commitment
Pakistan uses PKR, so local ride estimates and receipts need clear rupee formatting. Put the currency directly beside every important amount: use a consistent form such as PKR 1,250 in the vehicle-selection cards, booking confirmation, active-trip summary, and receipt. Do not show a bare “1,250”; riders should never have to infer whether a number is a fare, a surcharge, or a payment balance.
The estimate card needs three pieces of information in one glance: vehicle option, estimated arrival, and estimated fare. If the fare can vary, label it as an estimate at the point of choice. A compact disclosure below the selected option can explain that the final amount is confirmed after the trip, while the receipt should distinguish the final total from any additional item rather than hiding the difference in a generic total.
For mobile app development, preserve fare state across poor connectivity. Once a rider has seen an estimate and confirmed a request, cache that booking snapshot locally so the next screen does not flash an empty price while the network reconnects. The State Bank of Pakistan identifies the rupee as Pakistan’s currency; its official materials are the appropriate reference for PKR terminology. State Bank of Pakistan
Driver tracking is a coordination screen, not a decorative map
After matching, the map becomes a live coordination tool. Give the rider a stable bottom sheet with the captain’s name, vehicle type, registration details, estimated arrival, and direct actions for calling or messaging. The map should support that information rather than compete with it. A rider needs to answer: Who is coming, when will they arrive, and how do I identify them?
Design explicit status transitions: request sent, captain assigned, captain approaching, captain arrived, trip in progress, and trip completed. Each state changes the next best action. Before arrival, show pickup notes and contact options. At arrival, make the vehicle-identification details prominent and provide a concise “I’m here” response. During the trip, retain destination, route context, support entry, and trip-sharing or emergency actions in reach.
Safety cannot be a single small icon. A safety entry should open a focused sheet with clear options, confirmation before irreversible actions, and a visible return to trip tracking. Avoid presenting a long generic settings menu while a trip is active. For app design, this state-based approach also gives engineering a testable contract: every trip status has required content, available actions, loading behaviour, and an error fallback.
Build the case-study flow in floow.design
Generate a connected ride request, driver-tracking, and trip-receipt flow in floow.design rather than designing isolated screens. Begin with a pickup-and-destination screen, then create vehicle selection with PKR-labelled estimates and a booking confirmation state. Follow it with captain assignment and live tracking, including vehicle identification, arrival state, call or chat controls, pickup instructions, support access, and a clear trip status.
Finish with a receipt screen that shows the completed route context, final amount in PKR, payment method, and a support path for a fare question. Keep the visual hierarchy consistent across the flow: location at the top of the decision, price beside the selected ride option, and safety/support actions available during the trip.
Use realistic but non-promissory interface copy. “Estimated fare” is better than a fixed-price claim when the final price may differ. “Confirm pickup point” is better than assuming a dropped pin is correct. In review, test the prototype with four tasks: move the pickup, compare ride options, identify the arriving vehicle, and understand the final receipt. If any task requires reading dense helper text, simplify the corresponding state.
PKR display rules for a ride-booking flow
| Screen | Recommended amount treatment | Why it matters |
|---|---|---|
| Vehicle selection | Show “Estimated fare: PKR 1,250” beside each option. | Makes the currency and the non-final nature of the amount explicit. |
| Booking confirmation | Repeat the selected estimate as “PKR 1,250 estimated”. | Prevents price ambiguity after the rider commits. |
| Trip receipt | Show “Final total: PKR 1,250” and label any separate items. | Lets riders distinguish the final charge from the earlier estimate. |
Common mistakes
Using an unlabeled map pin as the only pickup confirmation.
Pair the pin with an editable pickup description and an explicit confirmation action.
Showing fares as naked numbers or changing “estimate” to “total” too late.
Use PKR on every monetary state and preserve the estimate/final distinction throughout the flow.
Hiding vehicle identification below a large tracking map.
Keep captain, vehicle, registration details, ETA, and contact actions in a persistent bottom sheet.
Treating safety as an account-setting feature.
Expose support and safety actions from the active-trip state, with clear confirmation and return paths.
Frequently asked questions
What can designers learn from Careem Pakistan?
Designers can learn to frame a ride app around uncertainty reduction: confirm the pickup, label the estimated fare in PKR, make captain and vehicle identification easy, and expose help during an active trip. Careem’s Pakistan operations, launched in 2016 and serving cities including Karachi and Lahore, illustrate why location and driver coordination need dedicated states.
Which screens are essential in a ride-booking app?
A ride-booking app needs pickup and destination entry, pickup confirmation, ride-option selection with fare estimates, booking confirmation, driver assignment, live driver tracking, arrival coordination, active-trip safety/support, and a final receipt. Each screen should state the current trip status and offer the next relevant action instead of relying on one map screen for every task.
How should PKR fare estimates be shown?
PKR fare estimates should show the currency beside the number, for example “Estimated fare: PKR 1,250,” before a rider confirms a booking. Repeat the estimate on confirmation, then show “Final total” on the receipt. Do not use an unlabelled number, and do not present an estimate as a guaranteed final charge.
How can floow.design help prototype a ride-booking app?
floow.design can generate a connected ride request, driver-tracking, and trip-receipt flow for a mobile app concept. Specify editable pickup and destination fields, PKR-labelled estimated fares, captain and vehicle details, arrival coordination, active-trip safety actions, and a receipt with a clearly labelled final total. Review the generated flow as one state sequence, not as separate screens.
Where this leaves you
The strongest lesson from this Careem Pakistan case study is that a ride flow earns trust through clear states. Confirm where the rider will be collected, make PKR pricing understandable, support real driver coordination, and keep safety and receipt details within the trip journey. Generate that complete mobile flow in floow.design, then test each transition against a rider’s next question.
Design the screens first
Describe the app in plain language and floow.design draws the iOS and Android screens for you, ready to refine and hand off.
Sources
Related reading
Design your mobile app with AI.
Generate pixel-perfect iOS and Android screens in seconds, then export to Figma or code.