Merhaba, iyi günler.
Bugün; bir siparişin oluşturulmasından müşteriye teslim edilmesine kadar geçen süreyi, yalnızca depo ile teslimat adresi arasındaki mesafe üzerinden değil; sipariş işleme, ürün toplama-paketleme, sevkiyat bekleme, rota, trafik, stok ve operasyon yoğunluğu gibi farklı değişkenlerle birlikte değerlendiren Son Kilometre Teslimat ETA Modeli üzerine hazırlamış olduğum çalışma ve mimari yaklaşıma yönelik notlarımı paylaşacağım.
Çalışma kapsamında; depo operasyonlarından gelen verilerin tahmin motorunda nasıl işlenebileceğine, rota servisinden alınan sürenin makine öğrenmesi modeliyle nasıl düzeltilebileceğine, tahmin sonucunun tek bir dakika değeri yerine teslimat penceresi biçiminde nasıl sunulabileceğine ve model performansının hangi ölçümler üzerinden takip edilebileceğine değinmeye çalışacağım.
Yanı sıra; Uber, Google Maps Platform, DoorDash ve Amazon tarafından yayımlanan teknik çalışmalar üzerinden, ETA probleminin kurumsal sistemlerde hangi yaklaşımlarla ele alındığını inceleyeceğim.
Şimdiden iyi okumalar.
Makalede Neler Var ?
- Akıllı Depo Yönetiminde ETA (Estimated Time of Arrival) ve Teslimat Süresi Tahmini
- ETA – Estimated Time of Arrival Nedir?
- Son Kilometre Teslimat Sürecinin Yapısı
- Model Akışı
- Model Mimarisi Temel Bileşenleri
- ETA Modelinde Kullanılabilecek Değişkenler
- Sektörde Kullanılan ETA Yaklaşımları
- Kullanılabilecek Model Yaklaşımları
- Akademik Hesaplama ve Değerlendirme Yöntemleri
- Örnek Sipariş Üzerinden ETA Hesaplaması
- Eğitim, Test ve Doğrulama Süreci
- Canlı Sistem ve Model Takibi
- Genel Değerlendirme
Akıllı Depo Yönetiminde ETA (Estimated Time of Arrival) ve Teslimat Süresi Tahmini
ETA – Estimated Time of Arrival Nedir?
ETA – Estimated Time of Arrival; bir aracın, siparişin veya kargonun hedeflenen noktaya ulaşması için hesaplanan tahmini varış zamanını ifade etmektedir.
Klasik rota hesaplama sistemlerinde ETA; başlangıç ve varış noktası arasındaki yol ağı, mesafe, ortalama geçiş süreleri ve trafik koşulları üzerinden hesaplanır.
Fakat, e-ticaret ve depo operasyonlarında müşteriye gösterilen teslimat süresi yalnızca aracın yolda geçireceği zamandan oluşmamaktadır.
- -Sistem tarafından alınması,
- -İlgili depo veya mağazaya atanması,
- -Stok uygunluğunun kontrol edilmesi,
- -Ürünlerin raflardan toplanması,
- -Paketleme işlemlerinin tamamlanması,
- -Sevkiyat alanına aktarılması,
- -Araç çıkışının beklenmesi,
- -Dağıtım rotasına dahil edilmesi,
- -Müşteriye ulaştırılması
gibi birbiriyle bağlantılı farklı operasyon adımları bulunmaktadır.
Dolayısıyla, depo ile müşteri arasındaki mesafe önemli bir değişken olmakla birlikte, toplam teslimat süresini tek başına açıklamak için yeterli değildir.
Aynı teslimat bölgesinde bulunan iki sipariş; stok hazırlık durumu, ürünlerin raf konumu, paketleme ihtiyacı, depo yoğunluğu veya araç çıkış sırası nedeniyle farklı sürelerde tamamlanabilir.
Temel Problem
Rota üzerinde ne kadar süre geçirilecek?”
sorusunun yanında;
Sipariş, mevcut operasyon koşulları altında müşteriye ne zaman teslim edilebilir?
sorusunun da cevaplanması gerekir.
Son Kilometre Teslimat Sürecinin Yapısı
Son Kilometre – Last Mile; ürünün depo, mağaza, aktarma merkezi veya dağıtım noktasından alınarak nihai müşteriye ulaştırıldığı son teslimat aşamasıdır.
Fiziksel mesafe kısa olsa dahi; dağıtım rotasındaki durak sayısı, trafik yoğunluğu, yol çalışmaları, park imkanı, teslimat adresinin erişilebilirliği, apartman veya site girişi, müşterinin adreste bulunması ve teslimat sırasındaki değişiklikler son kilometre süresini etkileyebilir.
Bununla birlikte, son kilometre yolculuğundan önce tamamlanması gereken depo işlemleri de toplam süre içerisinde önemli bir paya sahiptir.
Örneğin; sipariş henüz paketlenmediyse, aracın teslimat adresine olan uzaklığı müşteriye gösterilecek toplam ETA değerini tek başına temsil etmez.
Benzer şekilde, ürünler paketlenmiş olmasına rağmen sevkiyat alanında araç çıkışını bekliyorsa; gecikmenin temel nedeni trafik değil, bekleme ve aktarma sürecidir.
+ Sipariş İşleme
+ Toplama ve Paketleme
+ Bekleme ve Aktarma
+ Yol / Son Kilometre
Model Akışı
Hazırlanan referans süreç, üç temel aşama altında ifade edilebilir;
Operasyon Verisi → Tahmin Motoru → Teslimat Penceresi
Operasyon Verisi alanı; sipariş, stok, depo, rota, yoğunluk ve çevresel koşullara ait model girdilerini temsil etmektedir.
Tahmin Motoru alanı; toplanan verilerin kural tabanlı hesaplamalar, istatistiksel yöntemler veya makine öğrenmesi algoritmaları ile işlendiği bölümdür.
Teslimat Penceresi ise; model tarafından hesaplanan sürenin kullanıcıya tek bir kesin saat yerine, belirli bir alt ve üst zaman aralığı ile sunulduğu çıktı katmanıdır.
Referans alt bölümde yer alan;
• MESAFE
• YOĞUNLUK
• STOK
• HAVA
• TRAFİK
ifadeleri ise, tahmin sürecinde kullanılabilecek temel değişken gruplarını özetlemektedir.
***
Model Mimarisi Temel Bileşenleri
Operasyon Verisi
Modelin ilk aşaması, tahmin anında kullanılabilecek verilerin farklı sistemlerden toplanmasıdır.
- -Sipariş Yönetim Sistemi – OMS,
- -Depo Yönetim Sistemi – WMS,
- -Taşıma Yönetim Sistemi – TMS,
- -Stok tabloları,
- -Rota servisi,
- -Trafik servisi,
- -Hava durumu servisi,
- -Kurye veya araç takip sistemi
Buradaki temel kural; model girdilerinin tahminin oluşturulduğu anda gerçekten erişilebilir olmasıdır.
Teslimat tamamlandıktan sonra oluşan bir bilgi, geçmiş kayıtlar üzerinde yüksek doğruluk sağlasa dahi canlı tahmin sırasında kullanılamıyorsa modele dahil edilmemelidir.
Gerçek Araç Çıkış Zamanı
Gerçek Teslimat Zamanı
Gerçekleşen Toplam Yol Süresi
Bu alanlar hedef değişkenlerin oluşturulmasında kullanılabilir. Ancak tahmin anında bilinmedikleri için doğrudan model girdisi olarak kullanılması veri sızıntısına neden olur.
Tahmin Motoru
Tahmin Motoru; operasyon verileri üzerinden siparişin kalan teslimat süresini hesaplayan katmandır.
Bu katmanda tek bir model kullanılması zorunlu değildir. İlk aşamada geçmiş ortalamalar, bölge medyanları, mesafe tabanlı kurallar ile saat ve yoğunluk düzeltmeleri kullanılarak basit bir referans model oluşturulabilir.
Daha sonra bu referans model; Linear Regression, Random Forest, Gradient Boosting, XGBoost, CatBoost, sinir ağları veya self-attention tabanlı modeller ile karşılaştırılabilir.
Burada dikkat edilmesi gereken nokta; en karmaşık algoritmayı seçmek değil, canlı operasyon içerisinde en düşük ve en dengeli hatayı üreten modeli belirlemektir.
Teslimat Penceresi
Model çıktısının Tahmini Teslimat Süresi: 118 dakika biçiminde tek bir nokta tahmini olarak gösterilmesi mümkündür.
Fakat, operasyon içerisinde her siparişin tam olarak bu sürede tamamlanması beklenemez.
Tahmini Teslimat Süresi : 118 dakika
Teslimat Aralığı : 23:47 – 00:27
Beklenen Sapma : ±26 dakika
Buradaki alt ve üst değerler, sabit bir dakika eklenip çıkarılarak oluşturulmak zorunda değildir. Daha doğru bir yapı için model; alt zaman tahmini, merkez tahmin ve üst zaman tahmini olmak üzere üç farklı değer üretebilir.
ETA Modelinde Kullanılabilecek Değişkenler

Bu değişkenlerin tamamının aynı anda kullanılmasına gerek yoktur. Model geliştirme sürecinde; veri kalitesi, erişilebilirlik, tahmin katkısı ve canlı sistem maliyeti birlikte değerlendirilmelidir.
Sektörde Kullanılan ETA Yaklaşımları
Google Maps Platform – Trafik Duyarlı Rota
Google Maps Platform Routes API; rota oluşturulurken trafik bilgisinin kullanılıp kullanılmayacağını ve hangi trafik yaklaşımının tercih edileceğini belirlemeye imkan sağlamaktadır.
Trafik modeli; geçmiş ve canlı trafik koşullarını rota hesaplamasına dahil ederek hem seçilen rotayı hem de tahmini yolculuk süresini etkileyebilir.
Bu çıktı ETA modeli için önemli bir başlangıç noktasıdır. Ancak rota servisinden alınan süre yalnızca yolculuk aşamasını açıklar.
Kaynak: Google Maps Platform – Available Traffic Options
Uber DeepETA – Rota Tahminini Düzeltme
Uber tarafından yayımlanan DeepETA çalışmasında; klasik rota motorunun yol ağını küçük parçalardan oluşan ağırlıklı bir grafik biçiminde değerlendirdiği, en uygun yolun seçilmesi sonrasında parça geçiş sürelerinin toplanarak başlangıç ETA değerinin üretildiği belirtilmektedir.
Fakat yol grafiği, gerçek dünyadaki tüm koşulları eksiksiz biçimde temsil edemediği için; rota motoru tarafından üretilen ETA değeri, geçmiş veriler ve gerçek zamanlı sinyaller kullanan bir makine öğrenmesi modeliyle düzeltilmektedir.
Burada ETA_rota rota motoru tarafından üretilen temel süreyi, r_tahmin makine öğrenmesi modelinin tahmin ettiği düzeltme değerini, ETA_son ise kullanıcıya sunulacak son tahmini ifade etmektedir.
Örneğin rota servisi 35 dakika, gerçek geçmiş gözlem ise 43 dakika ise; artık süre 8 dakika olacaktır. Model; saat, bölge, trafik, talep tipi ve geçmiş gözlemler üzerinden bu farkı öğrenmeye çalışır.
Rota Servisi Süresi
+ Trafik ve Bölge Düzeltmesi
+ Depo Operasyon Süresi
+ Araç Bekleme Süresi
= Toplam Teslimat ETA
Kaynak: Uber – DeepETA: How Uber Predicts Arrival Times Using Deep Learning
DoorDash – Uzun Kuyruklu Teslimat Süreleri
Teslimat sürelerinin dağılımı çoğu zaman simetrik değildir. Siparişlerin büyük bölümü belirli bir süre aralığında tamamlanırken; az sayıdaki sipariş trafik, hazırlık, kurye bulunabilirliği, park ve adres erişimi gibi nedenlerle çok daha uzun sürebilir.
DoorDash tarafından yayımlanan teknik çalışmada, erken ve geç tahminlerin farklı iş etkileri olduğu belirtilmektedir. Düşük tahmin; siparişin müşteriye söylenenden geç ulaşmasına, yüksek tahmin ise müşterinin sipariş vermemesine veya teslimat gerçekleştiğinde adreste bulunmamasına neden olabilir.
Çalışmada, uzun kuyruklu kayıtların model eğitiminde daha güçlü biçimde temsil edilmesi için teslimat süreleri Gamma dağılımıyla modellenmiş ve düşük sıklıklı örneklere daha yüksek ağırlık veren bir yöntem kullanılmıştır.
Bu ifade, yayımlanan ters yoğunluk ağırlıklandırma yaklaşımının örnek bir uyarlamasıdır; kurumsal sistemin bire bir formülü olarak değerlendirilmemelidir.
Kaynak: DoorDash – Using Gamma Distribution to Improve Long-Tail Event Predictions
Amazon SPEEDY – Dinamik Teslimat Penceresi
Amazon Science tarafından yayımlanan SPEEDY çalışmasında; sabit ve geniş teslimat aralıkları yerine siparişin coğrafi konumu, çevredeki sipariş yoğunluğu ve mekansal-zamansal ilişkiler kullanılarak daha dar teslimat pencerelerinin önerilmesi ele alınmaktadır.
Amazon Science tarafından yayımlanan SPEEDY çalışmasında; sabit ve geniş teslimat aralıkları yerine siparişin coğrafi konumu, çevredeki sipariş yoğunluğu ve mekansal-zamansal ilişkiler kullanılarak daha dar teslimat pencerelerinin önerilmesi ele alınmaktadır.
Her sipariş için sabit ±30 dakika → Düşük belirsizlikte dar, yüksek belirsizlikte geniş pencere
Örneğin, Sipariş-A için;
14:10–14:25, Sipariş-B için 14:00–14:50 aralığı oluşturulması; modelin sipariş bazındaki belirsizlik seviyesini daha doğru biçimde yansıtabilir.
Kaynak: Amazon Science – SPEEDY: Framework for Sharpening Promise Time Estimates
Kullanılabilecek Model Yaklaşımları
1. Referans Model – Baseline
İlk olarak basit bir model oluşturulmalıdır. Bölge medyan süresi, yoğunluk düzeltmesi ve kargo türü düzeltmesi gibi kurallar; daha gelişmiş modellerin gerçekten fayda sağlayıp sağlamadığını görmek için karşılaştırma noktası oluşturur.
2. Gradient Boosting Modelleri
Tablolu veriler üzerinde sayısal, kategorik, zaman, bölge ve yoğunluk değişkenlerinin birlikte kullanıldığı çalışmalarda Gradient Boosting tabanlı modeller değerlendirilebilir. Bu modeller doğrusal olmayan ilişkileri öğrenebilir, değişken önemlerinin incelenmesine imkan verebilir ve canlı sistemlerde düşük tahmin süresi sunabilir.
3. Residual – Düzeltme Modeli
Rota servisinden alınan sürenin başlangıç tahmini olarak kullanıldığı ve modelin yalnızca düzeltme değerini öğrendiği yapıdır. Son ETA = Rota ETA + Model Düzeltmesi biçimindeki bu yaklaşım, fiziksel rota hesabı ile geçmiş operasyon verisini birlikte kullanır.
4. Bileşen Bazlı Model
Sipariş işleme, toplama-paketleme, bekleme-aktarma ve son kilometre için ayrı modeller oluşturulur. Avantajı; toplam süredeki gecikmenin hangi operasyondan kaynaklandığının görülebilmesidir.
5. Uçtan Uca Model
Tüm değişkenler tek modele verilerek sipariş oluşturma ile teslimat arasındaki toplam süre doğrudan tahmin edilir. Büyük ölçekli rota veya kurye verisi oluştuğunda derin öğrenme tabanlı mimariler incelenebilir; ancak ilk kurumsal uygulamada yorumlanabilir Gradient Boosting veya bileşen bazlı modelle başlamak daha yönetilebilir olabilir.
Kaynak: AAAI – When Will You Arrive? Estimating Travel Time Based on Deep Neural Networks
Akademik Hesaplama ve Değerlendirme Yöntemleri
1. Toplam ETA Hesabı
ETA_toplam = 8 + 22 + 45 + 43 = 118 dakika
2. MAE – Mean Absolute Error
Gerçek Süreler : 100, 120, 140
Tahminler : 110, 115, 125
Mutlak Hatalar : 10, 5, 15
MAE : 10 dakika
Kaynak: Scikit-learn – Mean Absolute Error
3. RMSE – Root Mean Squared Error
RMSE, büyük hatalara MAE değerinden daha fazla ağırlık verir. Özellikle az sayıdaki çok geç teslimatın önemli olduğu çalışmalarda MAE ile birlikte takip edilebilir.
4. Tahmin Sapması – Bias
- Pozitif değer: Model genel olarak yüksek süre tahmin ediyor.
- Negatif değer: Model genel olarak düşük süre tahmin ediyor.
- Sıfıra yakın değer: Erken ve geç tahminler genel ortalamada dengeli.
Bias değerinin sıfıra yakın olması tek başına yeterli değildir. Büyük pozitif ve negatif hatalar birbirini dengeleyebilir. Bu nedenle MAE ile birlikte değerlendirilmelidir.
5. Quantile Regression ve Pinball Loss
Teslimat penceresi üretmek için Quantile Regression kullanılabilir. Model q10 için alt sınır, q50 için merkez tahmin ve q90 için üst sınır değerlerini ayrı ayrı tahmin eder.
Kaynak: Scikit-learn – Mean Pinball Loss
6. Teslimat Penceresi Kapsama Oranı
Yüzde 80 hedefli bir pencerenin gerçek siparişlerin yaklaşık yüzde 80’ini kapsaması beklenir. Ancak çok geniş aralıklar yüksek kapsama sağlasa da kullanıcı açısından faydalı olmayabilir.
Amaç; hedeflenen kapsama oranını korurken mümkün olduğu kadar dar bir teslimat penceresi üretmektir.
7. Asimetrik İş Kaybı
Geç teslimatın iş maliyeti, erken teslimat tahmininden daha yüksek olabilir.
C_gec değeri C_erken değerinden yüksek seçilirse model geç teslimatları daha güçlü biçimde cezalandırır. Katsayılar teknik ekip tarafından tek başına belirlenmemeli; müşteri deneyimi, operasyon ve ürün ekipleriyle birlikte ele alınmalıdır.
Örnek Sipariş Üzerinden ETA Hesaplaması
Teslimat Bölgesi : Kadıköy / 14 km
Kargo Türü : Aynı Gün
Sipariş Saati : Öğle / Normal Yoğunluk
Ürün Sayısı : 3
Stok Durumu : Stokta
Hava / Yol : Açık
Sipariş İşleme : 8 dakika
Toplama ve Paketleme : 22 dakika
Bekleme ve Aktarma : 45 dakika
Yol / Son Kilometre : 43 dakika
sureler = {
'siparis_isleme': 8,
'toplama_paketleme': 22,
'bekleme_aktarma': 45,
'son_kilometre': 43
}
toplam_eta = sum(sureler.values())
saat = toplam_eta // 60
dakika = toplam_eta % 60
print('Toplam ETA:', toplam_eta, 'dakika')
print('Tahmini Süre:', saat, 'saat', dakika, 'dakika')
Toplam ETA: 118 dakika
Tahmini Süre: 1 saat 58 dakika
Demo Notu
Referans görsel ve demo ekranında bulunan süreler, model akışını açıklamak amacıyla hazırlanmış örnek değerlerdir. Gerçek bir kurumsal model sonucu olarak yorumlanabilmeleri için geçmiş sipariş verisi üzerinde eğitim, test ve kalibrasyon çalışmalarının tamamlanması gerekir.
Eğitim, Test ve Doğrulama Süreci
ETA verileri zaman içerisinde oluştuğu için rastgele eğitim-test ayrımı her zaman uygun olmayabilir. Gelecek aya ait kayıtların eğitim verisine, geçmiş aya ait kayıtların ise test verisine dahil edilmesi gerçek kullanım düzenini bozabilir.
Eğitim : Ocak – Eylül
Doğrulama : Ekim
Test : Kasım
Yanı sıra; kampanya dönemi, normal dönem, hafta sonu, yağışlı günler, yüksek yoğunluk ve yeni teslimat bölgesi ayrı segmentler halinde incelenmelidir.
Genel MAE : 11 dakika
Yakın Bölge MAE : 7 dakika
Uzak Bölge MAE : 19 dakika
Akşam Yoğunluğu MAE : 23 dakika
Yağmurlu Günler MAE : 26 dakika
Bu tür bir sonuç, modelin genel ortalamada başarılı görünmesine rağmen bazı operasyon koşullarında geliştirilmesi gerektiğini gösterebilir.
Kaynak: Scikit-learn – TimeSeriesSplit
Canlı Sistem ve Model Takibi
Modelin canlı sisteme alınması çalışmanın sonu değildir.
- Sipariş numarası
- Tahmin zamanı
- Model sürümü
- Kullanılan değişkenler
- Rota servisi süresi
- Model düzeltmesi
- Tahmin edilen toplam süre
- Tahmin edilen alt ve üst sınır
- Gerçek teslimat süresi
- Tahmin hatası
Bu kayıtlar üzerinden model hatasının zaman içerisinde artıp artmadığı, belirli bir deponun sürekli geç tahmin edilip edilmediği, yeni bölgelerde yeterli veri bulunup bulunmadığı, hava koşullarının modele doğru yansıyıp yansımadığı ve teslimat pencerelerinin gereğinden fazla geniş olup olmadığı incelenebilir.
MAE
RMSE
Bias
Pencere Kapsama Oranı
Ortalama Pencere Genişliği
±10 Dakika Başarı Oranı
±20 Dakika Başarı Oranı
20 Dakikadan Fazla Gecikme Oranı
Genel Değerlendirme
Genel olarak; son kilometre teslimat süresinin doğru biçimde tahminlenebilmesi için yalnızca depo ile müşteri arasındaki mesafeye odaklanmak yeterli değildir.
Sipariş işleme, ürün toplama-paketleme, sevkiyat bekleme, araç çıkışı, rota, trafik, hava ve teslimat bölgesine ait değişkenler toplam süreyi birlikte oluşturmaktadır.
Bu nedenle ETA modeli; rota servisinden alınan sürenin doğrudan müşteriye gösterildiği bir yapı yerine, rota tahminini depo operasyon verileriyle birleştiren hibrit bir sistem olarak ele alınmalıdır.
Kurumsal örneklerde de benzer biçimde; Google Maps Platform tarafında trafik duyarlı rota hesabı, Uber tarafında rota tahmininin makine öğrenmesi modeliyle düzeltilmesi, DoorDash tarafında uzun kuyruklu teslimatların farklı ağırlıklarla ele alınması ve Amazon tarafında sipariş bazlı daha dar teslimat pencerelerinin oluşturulması gibi farklı fakat birbirini tamamlayan yaklaşımlar kullanılmaktadır.
Hazırlamış olduğum demo çalışmada ise; operasyon verilerinin tahmin motoru üzerinden işlenerek, müşteriye toplam süre ve teslimat penceresi biçiminde sunulabileceği örnek bir mimari oluşturmaya çalıştım.
Github Kaynağı: miracozturk17
Umarım faydalı olur.
İyi çalışmalar.







