RPT Geldi, Mağazada Satış Sıfır
Tekrar sipariş depoya girdi ama mağazaların son dört haftalık satışı sıfır. Gelen mal nasıl dağıtılır ve bütün zincir birlikte ne kazandırır?
Tekrar Sipariş (RPT) · 6 / 6
İlk yazıda Veli bir şey hatırlatmıştı: geçen sezon RPT verdik, geldi; yarısı depoda kaldı, outlet’e gitti. Bir de uyarmıştı: bu sezon da bir tane yolda. Bu yazı o uyarıyla başlıyor ve dizinin bütün parçalarını aynı talep üzerinde bir araya getiriyor.
600 kemer
Beşinci yazıdaki Örgü Kemer’e dönelim. Tedarikçisi Hindistan’da; tekrar siparişi on dört haftada üretiyor ve 600 adetten azını kabul etmiyor. Sezon kapandığında bakınca kemerin gerçek talebi planının 1,81 katıydı. Üçüncü pazartesi kural tetiklenmedi. Dördüncü pazartesi STR %57,8’e çıktı ve Banu’nun kuralı 600 adet RPT verdi. Beşinci yazının hesabı o sabah sipariş verme diyordu.
Sipariş 99 günde geldi; tedarikçi söz verdiği günden bir gün geç kaldı. Kemer indirime 13 gün kala depoya girdi. O hafta kemeri taşıyan 24 mağazanın 17’si boştu ve bunların 15’i son dört haftada tek kemer satmamıştı. Replenishment sistemi her mağazanın son 28 günlük satışına baktı, sıfır gördü ve mal göndermedi. Sonraki haftalarda da aynı şey oldu.
Boş mağazaların arasında kemeri lansmandan beri en çok satanlar da vardı:
| Mağaza | Lansmandan beri satış | Son 28 günde satış | RPT geldiği hafta stok |
|---|---|---|---|
| Erzurum 3 | 160 | 0 | 0 |
| Van 2 | 67 | 0 | 0 |
| İstanbul 18 | 65 | 0 | 0 |
| Samsun 2 | 61 | 7 | 0 |
Erzurum 3 yine Veli’nin mağazası; ceketi de zincirde en çok o satmıştı. Kemerde de ilk dağıtımı alan 24 mağazanın birincisi.
— İlk dağıtımı alan mağazalar içinde bu kemeri lansmandan beri en çok satan benim, diyor Veli. Rafı boş kaldığı için satışı sıfır görünüyor; sistem de bu yüzden göndermiyor.
Kemerin son haftaları, bütün zincirde:
| Lansmandan hafta | Satış | Gerçek talep | Depoda |
|---|---|---|---|
| 18 | 3 | 21 | 0 |
| 19 | 6 | 23 | 599 |
| 20 | 21 | 42 | 592 |
| 21 | 14 | 31 | 580 |
| 22 | 17 | 30 | 569 |
| 23 | 13 | 27 | 559 |
| 24 | 7 | 17 | 553 |
| 25 | 7 | 11 | 548 |
| 26 | 5 | 16 | 544 |
| 27 | 4 | 15 | 546 |
İndirim yirminci haftada başlıyor. Depoda 600’e yakın kemer dururken kemeri isteyenlerin her hafta beşte ikisinden fazlası, on haftanın sekizinde yarısı ya da daha fazlası onu bulamıyor. Gerçek talep sütununu zincir görmüyor; Lumoda sentetik olduğu için biz görüyoruz. Çıkışa kadar depodan 54 kemer çıktı: 12’si mağazalara, gerisi online siparişlere.
Sezon kapandığı sabah gelen 600 kemerin 546’sı, %91,0’ı, hâlâ depodaydı. Depo bir kolinin hangi siparişten geldiğini ayırt etmez; önce giren önce çıkar (FIFO) varsayımıyla sayıyoruz. Bu kemerde varsayım bir şey değiştirmiyor: RPT geldiğinde depoda bu kemerden tek adet yoktu. Depodaki 546 kemer outlet’e gitti.
Veli haklıydı. Ama hikâyenin ikinci yarısı daha öğretici.
Dört dağıtım kuralı
İkinci yazıda üç yol saymıştık. Vakada dört kural var:
- a. Bugünkü kural. Son 28 günün satışına bak; satış sıfırsa gönderme.
- b. Stoklu gün hızı. Mağaza ve bedenin son 28 stoklu gününün satışını al, yaşam eğrisiyle bugüne taşı. Rafta malı varken de satmamış hücre mal almaz.
- c. Yeniden lansman. RPT depoya girdiği ilk pazartesi onu bir ilk sevkiyat gibi dağıt: her mağaza ve bedenin payı, ürünün ilk üç haftasındaki stoklu gün düzeltmeli satış hızından. Sonraki pazartesiler b.
- d. Yeniden lansman + depoda tutma. c’nin aynısı, ama malın %30’u depoda bekler ve bir sonraki pazartesi b kuralıyla dağıtılır.
b, c ve d yalnız RPT’si gelmiş ürünlere dokunuyor. RPT’nin olmadığı bir dünyada dördü de birebir aynı sevkiyatı üretiyor; farklar yalnız RPT’nin nasıl dağıtıldığından geliyor.
Kuralı seçmek için oyun sezonlarına bakmadık. Önceki ilkbahar-yaz sezonunda, Banu’nun gerçekte verdiği RPT’lerle, dört kuralı koşturduk:
| Kural | Collection kârı | Bugünkü kurala göre | Çıkışta depoda kalan RPT |
|---|---|---|---|
| a. bugünkü | 311.438.933 TL | — | %49,8 |
| b. stoklu gün hızı | 320.405.745 TL | 8.966.812 TL | %42,3 |
| c. yeniden lansman | 308.506.539 TL | −2.932.394 TL | %1,3 |
| d. c + depoda tutma | 315.996.476 TL | 4.557.543 TL | %8,4 |
c depoyu neredeyse boşaltıyor ama kârda bugünkü kuralın bile gerisinde kalıyor. Görünen sebep: malı ilk haftaların payına göre bir kerede gönderiyor; satmayacağı mağazaya giden mal orada kalıyor, sonra satan mağazaya gönderecek mal depoda kalmıyor. Karşılanmayan talep c’de a’dakinden bile fazla. b önde. b ile d arasındaki fark 4.409.269 TL, Collection kârının %1,38’i: küçük, ama yok sayılacak kadar değil. Kuralı oyunlardan önce seçtik; oyunlarda b kullanıldı.
Buradan iki ders çıkıyor. Birincisi: gelen RPT’yi “satış sıfırsa gönderme” diyen kurala bırakmayın. İkincisi: “hepsini gönder” de cevap değil; malı mağazaya taşımak, satmak demek değil.
Kemere dönelim
Aynı 600 kemer, dört kuralla; bir de hiç RPT verilmeseydi:
| Kural | Mağazaya | Çıkışta depoda | Tam fiyat satış | Kâr | RPT yoka göre |
|---|---|---|---|---|---|
| RPT yok | — | — | 1.094 | 192.010 TL | — |
| a. bugünkü | 12 | 546 | 1.099 | 179.507 TL | −12.503 TL |
| b. stoklu gün hızı | 137 | 421 | 1.109 | 195.775 TL | 3.765 TL |
| c. yeniden lansman | 599 | 0 | 1.105 | 175.547 TL | −16.463 TL |
| d. c + depoda tutma | 441 | 117 | 1.109 | 188.384 TL | −3.626 TL |
Dört kuralda da tam fiyat satış neredeyse hiç artmıyor. Mal indirime iki hafta kala geldi; kemeri tam fiyattan isteyen müşterinin çoğu çoktan gelip gitmişti. Ek satışın neredeyse tamamı indirim döneminde ve sonrasında; o fiyatlardan 600 kemerin alışı ancak çıkıyor. Yeniden lansman malın tamamını mağazalara yayıyor ve en kötü sonucu veriyor: 599 kemer mağazalara gitti, ama kayıp bugünkü kuralınkinden de büyük. En iyi kural, b, ancak başa baş getiriyor.
Şimdi aynı 600 kemeri iki hafta önce, ikinci pazartesi verelim. Kâhinin yaptığı bu. Mal lansmandan 16,1 hafta sonra, indirime dört haftaya yakın kala geliyor. b kuralıyla dağıtılınca tam fiyat satış 1.169’a çıkıyor ve RPT yoka göre kâr 18.578 TL. Ama bugünkü dağıtımla kâhin bile kaybettiriyor: −3.993 TL.
Depoda kalan mal bir dağıtım hatasıydı. Ama asıl hata o gün değil, on dört hafta önce, sipariş verildiği sabah yapılmıştı. Dağıtım kararın hatasını düzeltmiyor; en fazla başa baş getiriyor. Kâr siparişin zamanındaydı.
Kemerin tutarları küçük: ucuz bir ürün, alışı 125 TL. Büyüklüğü zincirin toplamından okuyalım. Banu’nun Uzak Doğu RPT’leri sonbahar-kışta bugünkü dağıtımla 19.697.766 TL kaybettirdi; b dağıtımıyla kayıp 10.899.477 TL. Dağıtım kaybı yarıya indiriyor, silmiyor. İlkbahar-yazda 5.405.735 TL’lik kayıp 8.661 TL’lik kazanca dönüyor: başa baş. Uzak Doğu’da da kemerde de ders aynı: dağıtım kaybı küçültür, en fazla başa baş getirir.
Banu’nun bütün RPT’lerine bakınca resim değişiyor. Sonbahar-kışta bugünkü dağıtımla toplam 8.688.770 TL kayıp, b dağıtımıyla 4.332.640 TL kazanç. Orada dağıtım sonucu tersine çeviriyor. Menşe satırlarında görünen: yerli RPT’ler zaten kazandırıyordu, bugünkü dağıtımla 15.896.813 TL, b ile 20.473.554 TL. Yerli kazanç büyüyor, Uzak Doğu kaybı yarıya iniyor; ikisi birlikte toplamı artıya geçiriyor. Dağıtım iyi kararı daha iyi, kötü kararı daha az kötü yapıyor. Kötü kararı iyi yapmıyor.
Bütün zincir
Şimdi kolların tamamı. Her kol aynı talebi yaşıyor; fark yalnız RPT kararında ve RPT’nin dağıtımında. Karşılaştırma tabanı hiç RPT verilmeyen sezon.
Buradaki kâr farkları bütün Collection’ı kapsıyor, beşinci yazıdakiler yalnız RPT verilen ürünleri. İkisi aynı sayıya çıkmıyor. Lumoda’da rafı boş bulan müşterinin bir kısmı başka bir ürüne geçiyor ve indirim satışa bakıyor; RPT’li bir ürünün rafta kalması komşu ürünlerin satışını da değiştiriyor. İlkbahar-yazda önerinin RPT vermediği 133 ürünün kârı toplamda 6.654.235 TL düştü.
“Öneri” LightGBM’li aday modeliyle. Lojistik regresyonla sonuç çok yakın: sonbahar-kışta 28.777.732 TL, ilkbahar-yazda 89.382.623 TL.
Sütunlar: çıkışta depoda, sezon kapandığı sabah depoda duran RPT malı (FIFO varsayımıyla); hepsi outlet’e gidiyor. Boşa giden, en sonunda zincirde hâlâ satılmamış kalan mal, en çok gelen RPT kadar. Kurtarılan, RPT yoka göre karşılanmayan talebin azalması: kalıcı kayıptan ve başka bir ürüne geçen müşteriden. Sonbahar-kış:
| Kol | RPT adedi | Çıkışta depoda | Boşa giden | Kurtarılan: kalıcı | Kurtarılan: ikame | Δ brüt kâr |
|---|---|---|---|---|---|---|
| Banu, bugünkü dağıtım | 203.110 | 102.534 | 89.905 | 103.004 | 26.270 | −8.688.770 TL |
| Banu, b | 203.110 | 83.962 | 80.592 | 110.944 | 24.980 | 4.332.640 TL |
| FRR üçüncü pazartesi, b | 34.180 | 4.558 | 4.286 | 23.033 | 7.760 | 8.201.607 TL |
| Öneri, b | 222.230 | 63.444 | 55.045 | 145.471 | 46.659 | 29.325.565 TL |
| Kâhin, b | 265.860 | 31.563 | 34.187 | 206.111 | 58.830 | 60.035.457 TL |
İlkbahar-yaz:
| Kol | RPT adedi | Çıkışta depoda | Boşa giden | Kurtarılan: kalıcı | Kurtarılan: ikame | Δ brüt kâr |
|---|---|---|---|---|---|---|
| Banu, bugünkü dağıtım | 343.680 | 131.685 | 103.608 | 227.207 | 37.578 | 33.712.118 TL |
| Banu, b | 343.680 | 96.106 | 86.541 | 240.781 | 41.070 | 56.132.416 TL |
| FRR üçüncü pazartesi, b | 62.380 | 989 | 876 | 51.531 | 8.287 | 31.538.599 TL |
| Öneri, b | 304.110 | 39.385 | 46.226 | 240.696 | 55.369 | 90.850.820 TL |
| Kâhin, b | 512.600 | 69.107 | 70.080 | 410.411 | 101.352 | 129.496.381 TL |
Bu iki tablodan dizinin üç sonucu çıkıyor.
Birincisi: bugünkü RPT pratiği bir sezon kazandırıyor, bir sezon kaybettiriyor. Sonbahar-kışta hiç RPT vermemek, Banu’nun kuralından, bugünkü dağıtımla, 8.688.770 TL daha kârlı. İlkbahar-yazda kural 33.712.118 TL kazandırıyor. Sonbahar-kıştaki kayıp satışsızlıktan değil: kural o sezon 129.274 adet karşılanmayan talebi kurtarıyor. Kaybı yanlış ürüne, yanlış zamanda, yanlış miktarda verilen siparişler ve depoda kalan mal yaratıyor. 96 RPT’nin 50’si ürünün tam fiyat satışını MOQ’nun yarısı kadar bile artırmadı; gelen malın %51,6’sı sezon kapandığında depodaydı.
İkincisi: dağıtım ile karar ayrı ayrı ölçülebilir; ikisi de önemli ama eşit değil. Banu’nun aynı siparişlerini yalnız b kuralıyla dağıtmak sonbahar-kışta 13.021.410 TL, ilkbahar-yazda 22.420.298 TL kazandırıyor. Aynı dağıtımda kararı değiştirmek, yani Banu’nun kuralından öneriye geçmek, bunun üstüne sırasıyla 24.992.925 ve 34.718.404 TL ekliyor. Kararın payı dağıtımınkinin bir buçuk ile iki katı.
Replenishment dizisinin sonucuna benzer bir oran: orada da politikanın etkisi öngörününkinden büyüktü. İki dizide de kazancın büyüğü bir sayıyı daha iyi tahmin etmekten değil, o sayıyla verilen karardan geliyor.
Üçüncüsü: öneri kâhinin kazancının büyük bir kısmını alıyor. Sonbahar-kışta yarısını, %48,8’ini; ilkbahar-yazda %70,2’sini. Kâhin RPT verilmeseydi gelecek talebi ve tedarikçinin gerçek gecikmesini biliyor; öneri yalnız o pazartesi sabahına kadar olanı. Ama kâhin bir üst sınır değil. Zincir düzeyinde düşünüyor, malın hangi mağazada kalacağını bilmiyor. Sonbahar-kışta 116 RPT’sinin 58’i, ilkbahar-yazda 129’unun 51’i ürünün tam fiyat satışını MOQ’nun yarısı kadar bile artırmıyor. Öneride bu sayı 20 ve 6.
Şans mı?
Aynı dünyayı, aynı mağazaları ve aynı operasyonu koruyup yalnız müşteri akışını değiştirdik: yayımlanan dünya ve dört alternatif, beş yol. Her yolda eğri, belirsizlik ve aday modeli o yolun kendi geçmişinden yeniden öğrenildi. Dağıtım kuralı yollarda yeniden seçilmedi; hepsinde b.
RPT yoka göre kâr farkı, milyon TL; beş yolun en küçüğü · medyanı · en büyüğü:
| Kol | Sonbahar-kış | İlkbahar-yaz |
|---|---|---|
| Banu, bugünkü dağıtım | −8,7 · −8,0 · −7,0 | 32,2 · 34,0 · 34,4 |
| Banu, b | 4,3 · 5,5 · 6,5 | 55,0 · 55,3 · 56,6 |
| FRR üçüncü pazartesi, b | 8,2 · 8,9 · 9,2 | 30,6 · 31,2 · 31,5 |
| Öneri, b | 29,2 · 30,0 · 30,9 | 88,6 · 89,5 · 90,9 |
| Kâhin, b | 60,0 · 60,7 · 61,0 | 128,8 · 129,0 · 129,9 |
Yolların aralığı dar, kolların arası geniş. Öneri iki sezonda da, beş yolun beşinde, hem Banu’nun kuralının iki dağıtımından hem FRR’den önde. Öneri ile b dağıtımı, Banu’nun kuralı ile bugünkü dağıtıma göre sonbahar-kışta medyan 38.014.335 TL (en az 36.253.494 TL), ilkbahar-yazda medyan 56.271.363 TL (en az 54.578.831 TL) daha kârlı. Yalnız dağıtımı değiştirmenin kazancı da beş yolun beşinde pozitif: medyan 13.513.143 ve 22.232.565 TL.
Banu’nun kuralı, bugünkü dağıtımla, sonbahar-kışta beş yolun hiçbirinde RPT vermemekten daha kârlı olmadı; ilkbahar-yazda beşinde de oldu. Bu bir şanssızlık değil. Görünen sebep sezonun kendisi: ilkbahar-yazda gerçekten tutan ürün 57’ydi, sonbahar-kışta 38. Kuralın alarmı tutmayan ürünlerde de çalıyor ve miktarı sabit; tutanın az olduğu sezonda bu siparişlerin ağırlığı artıyor. Sonbahar-kışta 96 RPT’nin 71’i tutmayan ürüne gitti, ilkbahar-yazda 103’ün 64’ü.
Ceket
İlk yazının ceketi, bütün kollarda:
| Kol | Sipariş | Kâr | RPT yoka göre |
|---|---|---|---|
| RPT yok | — | 1.730.747 TL | — |
| Banu, bugünkü dağıtım | üçüncü pazartesi, 930 | 2.410.971 TL | 680.224 TL |
| Banu, b | üçüncü pazartesi, 930 | 2.480.196 TL | 749.449 TL |
| FRR, b | üçüncü pazartesi, 660 | 2.331.639 TL | 600.892 TL |
| Öneri, b | ikinci pazartesi, 2.120 | 3.061.854 TL | 1.331.107 TL |
| Kâhin, b | ikinci pazartesi, 2.160 | 3.083.023 TL | 1.352.276 TL |
FRR’nin siparişi burada 660, beşinci yazıdaki 620 değil: bu kolun dünyasında öteki oyun ürünlerine Banu’nun RPT’leri gitmedi, ceket o sabaha dek 1.091 değil 1.107 adet sattı ve aynı formül biraz büyük çıktı.
Cekette kâhin öneriden az farkla önde. Öneri talebi bilmeden kâhinin siparişine çok yakın bir sipariş vermiş: aynı pazartesi, 2.160’a karşı 2.120. Önerinin Banu’dan farkı zamanda ve miktarda: bir hafta önce ve iki katından fazla.
Banu’nun kuralı bu üründe de para kazandırıyor: tutan bir ürüne verilen RPT, miktarı yanlış olsa da iyidir. Kuralın kaybı başka yerde: tutmayan ürünlere ve Uzak Doğu’ya verilen, geç kalan siparişlerde.
Bu modelin yetmediği yerler
Pencere sonunda kalan stok sıfır sayıldı. Sezon kapanınca depodaki mal outlet’e gidiyor ve outlet satışı gelire giriyor. Yalnız en sonunda hâlâ satılmamış kalan mal 0 TL. Bu varsayım en çok, en fazla mal bırakan kolu cezalandırıyor: ilkbahar-yazda Banu’nun kuralı bugünkü dağıtımla 103.608 adet bıraktı, öneri 46.226. Gerçekte o mal bir sonraki sezona devredilebilir; ama bir sezon depoda beklemenin de bedeli var.
İkame var, ölçmesi zor. Lumoda’da rafı boş bulan müşterinin bir kısmı başka bir ürün alıyor: ilkbahar-yazda karşılanmayan talebin %27,7’si. Kurtarılan talebi bu yüzden iki parçaya ayırdık. Kalıcı kaybı kurtarmak zincire yeni satış getirir. İkameyi kurtarmak ise müşteriyi başka bir üründen bu ürüne geri çeker; kazancı iki ürünün marjı arasındaki fark kadardır. Gerçek bir zincirde ikamenin oranı ürün grubuna, mağazaya ve fiyata göre değişir. Onu ölçmek ayrı bir iş; Satış Kaybı dizisi bu ayrımın neden önemli olduğunu anlatıyor.
Yeniden lansman etkisi yok. Ürün haftalarca raftan kalktıktan sonra geri geldiğinde müşterinin onu yeniden keşfetmesi zaman alabilir. Veri setinde talep rafın geçmişinden bağımsız. Araştırırken bu etkiyi ölçen hakemli bir çalışma bulamadım.
Tek bir zincir, iki oyun sezonu. Beş alternatif talep yolu farkların şans olmadığını gösteriyor, ama hepsi aynı zincirin aynı iki sezonu. Modeller üç yıllık verinin, sonbahar-kış için üç, ilkbahar-yaz için dört kapanmış sezonundan öğrendi. Sizin verinizde bu kadar geçmiş olmayabilir ya da geçmiş bugüne benzemeyebilir.
Belirsizliğin bir kısmı içeriden öğrenildi. Lumoda’nın verisindeki ilk sezonun kendisinden önce bir sezon yok. O sezonun kestirim hatası, kendi verisini de içeren bir eğriyle hesaplandı; bu, belirsizliği biraz iyimser gösterir.
Mağazalar arası transfer yok. Yanlış mağazaya giden RPT’yi bir transferle düzeltmek mümkündü; bu vakada bilerek kapalı tuttuk.
Tedarik koşulları sabit. MOQ, fiyat ve tedarik süresi değişmiyor; yalnız teslim gecikebiliyor, Uzak Doğu’da ortalama 5,8 gün. Kâhin dışındaki kollar planlanan süreyle karar veriyor. Gerçekte hızlı satan bir ürünün tekrar siparişi pazarlıkla kısalabilir, kumaş önceden ayrılabilir. Bu dizinin Uzak Doğu sonucu, RPT’nin orada ancak erken ve küçük verilirse kâr ettiği, en çok bu varsayıma yaslanıyor.
Baştaki soru
Pelin sormuştu: daha olsaydı ne kadar satardı? Banu da: yetişir mi?
Altı yazı sonra ikisinin de cevabı verideydi. Satış talebi göstermez ama karar anında doldurulan talep ve yaşam eğrisiyle talebin büyük kısmı geri kurulabilir. Yetişmek yetmez; asıl soru, geldiğinde eğriden ne kaldığıdır. Gelen malı mağazaya göndermek de “satışı sıfır” diyen bir kuralın sorusu değil, “mal olsaydı ne satardı” diyen bir kuralın sorusudur. Ama hiçbir dağıtım kuralı, eğrinin bittiği yere gelen malı satamaz.
RPT vermemek de bir karardır. Kemerde dördüncü pazartesi doğru karar oydu. Sonbahar-kışta Banu’nun kuralının RPT’leri, bugünkü dağıtımla, toplamda hiç RPT vermemekten kötüydü. Ama iyi bir sistem az RPT veren değil. Öneri Banu’dan daha az ürüne RPT veriyor, iki sezonda 72’ye karşı 96 ve 77’ye karşı 103, ama daha erken ve ortalamada daha büyük. Kâhin ise en çok RPT veren kol. İyi bir sistem RPT’yi doğru ürüne, erken ve doğru miktarda verir; vermeyeceği ürünü de aynı hesapla bilir.