location_on

Map needs a Google Maps key

Planning between Metro stops still works.

Directions for Lanka Metro buses

Sign in

Send feedback

What would make NextHalt better for you?

What is it about?

The trip on screen and your language are sent with your feedback.

About NextHalt

Find your way around Colombo on Lanka Metro buses.

This is a beta

NextHalt was built by Verité Research for its own staff and is now open for anyone to try. It's an independent project, not an official Lanka Metro app. Some information may be incomplete or out of date, and features may change, so use it as a guide rather than a guarantee. Tell us what works and what doesn't.

How to use NextHalt

  1. Enter your journey. Type a starting point and destination, or use your current location.
  2. Compare your options. See the buses you can take, where to get on and change, how much walking there is and the fare for each bus.
  3. Check for live buses. See which tracked buses are heading to your stop, how far away they are and how many stops they have left.
  4. Follow your journey. With location on, NextHalt helps you reach your stop, follows the ride and tells you when to get off.

Routes, stops and fares as of 17 Oct 2026. Routes can change. Check the official map: lankametro.lk/en/smartmetro

Questions and answers

The questions and answers below are in English.

Why is a journey shaded?

At least one route in it has no tracked bus heading to the stop where you'd get on. The tag, such as "No tracked CM06", names the route (or routes), and that bus is striped in the journey's strip.

It doesn't mean the bus isn't running. Not every Lanka Metro bus is tracked, so one may still come.

A bus counts as heading to your stop when it's on the right route and direction and hasn't passed your stop yet, whether it's moving, stopped along the way or waiting at the first stop.

For a change of bus, NextHalt checks that a tracked bus is before your change stop now, not that it will get there after you do. So a journey that isn't shaded doesn't guarantee the connection.

If the live feed isn't available, or Lanka Metro's feed says it isn't updating, nothing is shaded and the app says live buses are unavailable.

Why are there no bus times?

Lanka Metro doesn't publish its timetable or arrival times; they need a login on lankametro.lk and in the LMT GO app. Instead NextHalt shows how far each tracked bus is from your stop along the route, and how many stops away. These aren't arrival times: traffic and stops change how long a bus takes.

Where does the live information come from?

From Lanka Metro's public feed of bus positions, refreshed about every 20 seconds. How far a bus is, and how many stops away, is worked out by NextHalt from those positions.

Tap a bus on the map to see its route. With a journey open, every tracked bus stays on the map; the ones not heading your way are smaller and faded, and the halts along your buses are marked.

What do the bus statuses mean?

The feed gives each bus's position but not what it's doing, so NextHalt works that out from where the bus is and how it has moved. These are estimates, not Lanka Metro's.

  • On the way: moving along its route.
  • Stopped: hasn't moved 75 m in 5 minutes. It isn't shown as the next bus, but it still counts as heading to your stop.
  • Waiting at the first stop or at the last stop.
  • Away from its route: more than 150 m from it. Once it has stayed put for 5 minutes, it's at the depot.

How long a bus has stayed put counts from when the app first saw it there, so "8+ min" means at least 8. Every tracked bus is counted, including those at the depot.

How does NextHalt choose journeys?

It ranks journeys by the distance outside the bus: getting to the first stop, walking between buses and getting from the last stop to your destination, added up (a tuk counts too). Least first.

You see one journey for each number of buses: the one with the least walking. An extra bus is only suggested if it saves at least 100 m. For example, if the best one-bus journey has 500 m of walking, a two-bus journey is shown only if it has 400 m or less.

Going directly is always an option, and a bus journey is only shown if it saves at least 100 m on that too. Ties go to fewer changes, then a shorter ride.

Any stop can be your first or last, and each side of the road is its own stop. Walks between stops when changing are up to 1 km. Where routes share a stop, changing there means waiting, not walking.

How are walking and tuk distances worked out?

From the straight-line distance, plus 30% for the streets, so they're marked "~". A first or last leg over 1 km is shown as a tuk or taxi; tuk fares and times aren't shown. Tap Google Maps on a walk or tuk step for street-by-street directions.

How does NextHalt know I'm on the bus?

Only with location on, which is optional. NextHalt then shows how far you are from your stop, and works out that you've got on when you're on the bus's road, past your stop and moving faster than walking pace, twice in a row. This works for buses that aren't tracked too.

On the bus, it counts the stops left and, where the phone allows (Android), buzzes about 500 m before your stop.

Got on before opening the app? Tap the bus line in your journey (the route number and where it's heading). The list of buses shows, under "Already past your stop", buses that have passed your stop but not yet reached where you get off. Pick yours with "I'm on this bus".

With no journey open, if you move with a tracked bus along its road for two of its reports, NextHalt offers to follow it.

After a refresh, your journey, the option you chose and the bus you're on come back. They're kept in this browser tab only, for 3 hours.

What happens to my location and data?
  • Your location comes from your phone's GPS through the browser, and is only used while the app is open. NextHalt doesn't send it to Lanka Metro, to usage counts or with feedback.
  • Google: the map is Google Maps, so Google sees the area on screen. What you type in the search goes to Google. A Google Maps link on a walk or tuk step includes its start and end, which can be your location.
  • Feedback is saved in Verité's feedback sheet (a Google Sheet, through a Google Form), with your email if you give it. It also notes the screen you were on, your language and the kind of start and destination (a stop, an address, your location), not the places.
  • Usage counts: visits and actions (a trip planned, an option opened, feedback sent) are counted with Umami, without cookies. Only the kind of place and the route are counted, never an address, a position or an email.
  • Saved routes are kept in this browser, on this phone or computer. Signing in to keep them on every device isn't switched on yet.
Where does the data come from?

From Lanka Metro's public data:

  • Routes: official names and colours.
  • Stops and road paths: one file per route direction, with the road the bus takes and a pin for every stop. For CM01 and CM03, whose files have no stop codes, stops come from Lanka Metro's tracker list of 29 Sep 2026.
  • Fares: the fare for every pair of stops. Each bus is a separate fare.
  • Landmarks: each with its nearest stop and walking distance.
  • Live bus positions, every 20 seconds.

Two errors are corrected on CM05: Wattala and Hendala were listed in the wrong order (going north, the bus reaches Hendala first), and Hendala towards Battaramulla had Hekitta Junction's coordinates.

The map and address search are Google Maps.

Technical details
  • Lanka Metro endpoints: lankametro.lk/api/routes, /api/fares, /api/places and /api/telemetry/live.
  • Journey search: round by round, the method OpenTripPlanner uses: one bus, then two, and so on, up to 5 changes.
  • Live buses: each bus is placed on its route's road. One more than 150 m away is away from its route, and one moving against its reported direction is left out.

Powered by Verité Intelligence