// Adds dimensions UUID, Author and Topic into GA4
Wednesday, September 9, 2026
28.8 C
Singapore

Singaporean calls MRT reliability measurements ‘a big joke’

SINGAPORE: A local Reddit user took to the platform in response to a Sep 5 (Friday) article in CNA about how MRT reliability over the past year has fallen to its lowest point since 2020.

In their Sep 6 post on r/Singapore, u/AgileComparison3957 wrote that the Mean Kilometres Between Failure (MKBF) system of the MRT is flawed because its depiction of MRT reliability is overly optimistic.

“The MKBF system has some terrible flaws that make unreliable lines like ours look very reliable on the outside. Even though we are doing well, the problem is that the standards have dropped, but they insist that it is still ok.

“I know it is better than during the signalling change period, where there was always chaos, but after that, we did fine. What happened? Things like distance, average speed, and number of trains significantly influence the numbers, which can skew everything,” the post author wrote.

They added that the official MKBF metric does not reflect passengers’ actual experiences of train delays and suggested a simpler metric that indicates the average number of days between delays that are greater than five minutes would provide commuters with a more accurate sense of reliability.

They provided the following list:

  • NEL: Once in 122 days
  • DTL: Once in 183 days
  • EWL: Once in 46 days
  • SPLRT: Undefined (Welp, that was a good track record)
  • NSL: Once in 37 days
  • CCL: Once in 5 days
  • BPLRT: Once a year
  • TEL: Once in 37 days

The post author’s full explanation may be found here.

Since train disruptions have affected many in Singapore, where public transport is used by around 67% of the population, many cared to weigh in.

“That’s true, but measuring by days is also far more relevant to the average person. It’s just easier for humans to conceptualise X amount of days than Y amount of kilometres,” one agreed.

“Distance travelled contributes to wear and tear, and is an indicator of how well-maintained a system is. It is far more precise than the number of days,” wrote one.

“Engineer uncle here. MKBF is a metric that is useful for engineers. It may be informative for policy planners, but needs to be contextualised,” weighed in another.

“MKBF measures train reliability, but imo what we need to measure is the commuter experience. We need some metric like:

  • trip complete without delay: 1 point
  • trip can complete with <10 min delay: 0.65 points
  • trip can complete with >10 but <30 min delay (taking into account bridging buses): 0.35 points
  • trip cannot complete at all: 0 points

“For every disruption, we have to tally up affected commuters. There might be some math/estimating involved (e.g., EW line disruption for 6 days will have to be 0/0.35 per average ridership of EW line for affected stretches that day (depending on user habits — we need to have very granular data on the station-to-station stats, which the operators definitely have). and overall we can target as close to 100% as possible (e.g., 99%),” wrote another. /TISG

Read also: MRT reliability dips to five-year low, raising questions on system resilience

Hot this week

Singapore heat and haze keep diners away: Hawker centres see drop in crowds due to weather

Hot weather and haze have reduced foot traffic at hawker centers. Stall owners interviewed said business has dropped by about 20%, and some are preparing to wear masks and reduce their food supplie...

Singaporeans agree with property agent who says strangers should not just enter units under renovation

From a TikTok video of a property agent who asked, “Is entering someone’s house during renovation a norm now? Isn’t this trespassing?”

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks