{"id":198426,"date":"2023-10-06T11:48:36","date_gmt":"2023-10-06T03:48:36","guid":{"rendered":"https:\/\/www.grab.com\/sg\/?post_type=editorial&#038;p=198426"},"modified":"2025-12-13T00:34:54","modified_gmt":"2025-12-12T16:34:54","slug":"how-we-got-more-accurate-estimated-time-of-arrivals-in-the-app-while-pushing-down-tech-costs","status":"publish","type":"editorial","link":"https:\/\/www.grab.com\/sg\/inside-grab\/how-we-got-more-accurate-estimated-time-of-arrivals-in-the-app-while-pushing-down-tech-costs\/","title":{"rendered":"How we got more accurate estimated time-of-arrivals in the app, while pushing down tech costs"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"198426\" class=\"elementor elementor-198426\" data-elementor-post-type=\"editorial\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0ebd718 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0ebd718\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c9d3ce2\" data-id=\"c9d3ce2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-821ac02 gr21-boxed-content  editorial-gr21-boxed-content elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"821ac02\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cf464a8\" data-id=\"cf464a8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-583a9c2 elementor-widget elementor-widget-text-editor\" data-id=\"583a9c2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"ltr\">The estimated time-of-arrival number in the app is perhaps often overlooked in its significance to users. It\u2019s one of the metrics that users look at repeatedly as they await a food delivery or a ride.\u00a0<\/p><p dir=\"ltr\">Keeping it accurate is key to helping users know when to be there when their ride arrives, or to manage expectations on a food order.<\/p><p dir=\"ltr\"><strong>(Read more: <a href=\"https:\/\/www.grab.com\/sg\/inside-grab\/stories\/live-activities-grab-lock-screen-ios-apple\/\">Grab now shows users their rides and deliveries happening in real-time on iPhone&#8217;s Live Activities<\/a>)<\/strong><\/p><p dir=\"ltr\">Calculating the ETA is a key backend function and happens for every single booking on Grab (NASDAQ:GRAB). Behind the scenes, many variables influence the calculation, including real-time traffic and weather conditions. And as the variables change, we update the ETA too if there are any changes, so that users stay informed.<\/p><h5 dir=\"ltr\">How we cut down costs by 95 per cent<\/h5><p dir=\"ltr\">Getting the ETA is a resource-heavy function. We calculate it for the millions of trips that happen on Grab every day across eight countries in Southeast Asia.<\/p><p dir=\"ltr\">Previously, we maintained over 200 unique machine learning models, one for each aspect of a ride, which can include time of day, vehicle type, a city\u2019s geography, and so on. Managing so many models was both complicated, requiring manpower to tend to error alerts, and took up expensive server resources to run.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9bf5932 elementor-widget elementor-widget-image\" data-id=\"9bf5932\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"286\" height=\"552\" src=\"https:\/\/assets.grab.com\/wp-content\/uploads\/sites\/4\/2023\/09\/21132423\/Live-activities-small.gif\" class=\"attachment-large size-large wp-image-197248\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85666bb elementor-blockquote--skin-border elementor-blockquote--button-color-official elementor-widget elementor-widget-blockquote\" data-id=\"85666bb\" data-element_type=\"widget\" data-widget_type=\"blockquote.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<blockquote class=\"elementor-blockquote\">\n\t\t\t<p class=\"elementor-blockquote__content\">\n\t\t\t\t<i>Since we deployed Catwalk, it\u2019s driven down the cost of computing by 95 per cent, while even raising accuracy by 5 per cent.<\/i>\t\t\t<\/p>\n\t\t\t\t\t<\/blockquote>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b9b25d7 elementor-widget elementor-widget-text-editor\" data-id=\"b9b25d7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p dir=\"ltr\">To solve this, we ended up consolidating all of those models down to just 16\u2014one for food and delivery each, and for the eight countries Grab is in. We use an internal machine learning platform called <a href=\"https:\/\/engineering.grab.com\/catwalk-serving-machine-learning-models-at-scale\">Catwalk<\/a> as a central place to take in all the data instead of maintaining each model separately.<\/p><p dir=\"ltr\">Since we deployed Catwalk, it\u2019s driven down the cost of computing by 95 per cent, while even raising accuracy by 5 per cent.<\/p><p dir=\"ltr\">A huge advantage of consolidating the information is we can automatically adapt and retrain our models on a weekly cadence. This has allowed us to deal with variances in data coming in, such as changing traffic patterns and <a href=\"https:\/\/www.fiddler.ai\/blog\/drift-in-machine-learning-how-to-identify-issues-before-you-have-a-problem\">feature drift<\/a>\u2014a machine learning concept referring to changes in data that make models inaccurate over time.<\/p><p dir=\"ltr\">This adaptiveness of the model means we\u2019ve also had a sharp drop in the occurrence of system errors. Today, we\u2019re experiencing significant improvement in stability to the overall system.<\/p><h5 dir=\"ltr\">What\u2019s next: Live data, live learning<\/h5><p dir=\"ltr\">To continue to improve the ETA data feeding into our engine, we\u2019ve set our sights on building a pipeline that can provide relevant, up-to-date information from our driver-partners on the road.<\/p><p dir=\"ltr\">While Catwalk is faster than our older ETA backend, our teams are working on having the model adapt and correct itself live as data comes in. This represents a big step up from training it on historical data, and we expect that this will allow our ETA predictions to be more stable, accurate, and nimble with changes in the real world.<\/p><p dir=\"ltr\">This reliability is core to what users have come to expect from the Grab experience.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3fabc15 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3fabc15\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b58be68\" data-id=\"b58be68\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"parent":0,"menu_order":0,"template":"grab21-default","acf":[],"_links":{"self":[{"href":"https:\/\/www.grab.com\/sg\/wp-json\/wp\/v2\/editorial\/198426"}],"collection":[{"href":"https:\/\/www.grab.com\/sg\/wp-json\/wp\/v2\/editorial"}],"about":[{"href":"https:\/\/www.grab.com\/sg\/wp-json\/wp\/v2\/types\/editorial"}],"version-history":[{"count":7,"href":"https:\/\/www.grab.com\/sg\/wp-json\/wp\/v2\/editorial\/198426\/revisions"}],"predecessor-version":[{"id":258247,"href":"https:\/\/www.grab.com\/sg\/wp-json\/wp\/v2\/editorial\/198426\/revisions\/258247"}],"wp:attachment":[{"href":"https:\/\/www.grab.com\/sg\/wp-json\/wp\/v2\/media?parent=198426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}