Envanter tahmini ve talep planlama için bir web uygulaması planlayın ve oluşturun: veri düzeni, tahmin yöntemleri, kullanıcı deneyimi, entegrasyonlar, test ve dağıtım.

Bir envanter tahmini ve talep planlama web uygulaması, bir işletmenin ne alacağına, ne zaman alacağına ve ne kadar alacağına—beklenen gelecekteki talep ve mevcut envanter pozisyonuna dayanarak—karar vermesine yardımcı olur.
Envanter tahmini, her SKU için zaman içinde satışları veya tüketimi tahmin eder. Talep planlama bu tahminleri karar haline çevirir: hizmet hedefleri ve nakit kısıtları ile uyumlu yeniden sipariş noktaları, sipariş miktarları ve zamanlamalar.
Güvenilir bir sistem yoksa ekipler sıklıkla hesap tablolarına ve sezgilere dayanır. Bu genellikle iki maliyetli sonuca yol açar:
İyi tasarlanmış bir envanter tahmini web uygulaması, talep beklentileri ve önerilen eylemler için paylaşılan bir doğruluk kaynağı oluşturur—böylece kararlar lokasyonlar, kanallar ve ekipler arasında tutarlı kalır.
Doğruluk ve güven zamanla inşa edilir. MVP talep planlama uygulamanız şu unsurlarla başlayabilir:
Kullanıcılar iş akışını benimsedikçe, daha iyi veri, segmentasyon, promosyon yönetimi ve daha akıllı modellerle doğruluğu kademeli olarak iyileştirebilirsiniz. Amaç “mükemmel” tahmin değil—her döngüde daha iyi olan tekrarlanabilir bir karar sürecidir.
Tipik kullanıcılar şunlardır:
Uygulamayı şu iş sonuçlarına göre değerlendirin: daha az stok tükenmesi, daha düşük fazla stok ve daha net satın alma kararları—bunların hepsi bir envanter planlama panosunda görünür olmalı ve bir sonraki eylemi belirgin kılmalıdır.
Bir envanter tahmini web uygulamasının başarısı veya başarısızlığı açıklığa bağlıdır: hangi kararları destekleyecek, kim için ve hangi ayrıntı seviyesinde? Modeller ve grafiklerden önce, MVP'nizin geliştirmesi gereken en küçük karar setini tanımlayın.
Onları özellik değil, eylem olarak yazın:
Eğer bir ekranı bu sorulardan birine bağlayamıyorsanız, muhtemelen sonraki faza aittir.
Tedarik süreleri ve satın alma ritmine uyan bir ufuk seçin:
Ardından güncelleme sıklığını seçin: satışlar hızlı değişiyorsa günlük, satın alma belirli döngülerde oluyorsa haftalık. Sıklık, uygulamanın işleri ne sıklıkla çalıştıracağını ve önerileri ne sıklıkta yenileyeceğini de belirler.
“Doğru” seviye, insanların gerçekten satın alıp taşıyabileceği düzeydir:
Başarıyı ölçülebilir kılın: hizmet seviyesi / stok tükenme oranı, envanter devir hızı ve tahmin hatası (örn. MAPE veya WAPE). Metrikleri stok tükenmesini önleme ve fazla stokun azaltılması gibi iş sonuçlarına bağlayın.
MVP: her SKU(-lokasyon) için bir tahmin, bir yeniden sipariş noktası hesaplaması, basit bir onay/dışa aktarma iş akışı.
Sonra: çok katmanlı envanter optimizasyonu, tedarikçi kısıtları, promosyonlar ve senaryo planlama.
Tahminler, arkasındaki girdiler kadar kullanışlıdır. Modelleri veya ekranları seçmeden önce hangi veriye sahip olduğunuzu, nerede durduğunu ve MVP için “yeterince iyi” kalitenin ne anlama geldiğini netleştirin.
En azından envanter tahmini için tutarlı bir görüntü gerekir:
Çoğu ekip karışık sistemlerden çeker:
Uygulamanın ne sıklıkla yenileneceğine karar verin (saatlik, günlük) ve veriler geç geldiğinde veya düzenlendiğinde ne olacağını belirleyin. Pratik bir desen, değiştirilemez işlem geçmişi tutmak ve dünün rakamlarını üzerine yazmak yerine düzeltme kayıtları uygulamaktır.
Her veri kümesi için bir sahibi atayın (ör. envanter: depo operasyonları; tedarik süreleri: satın alma). Kısa bir veri sözlüğü tutun: alanın anlamı, birimleri, zaman dilimi ve izin verilen değerler.
Eksik tedarik süreleri, birim dönüşümleri (adet vs koli), iade ve iptaller, yinelenen SKU'lar ve tutarsız lokasyon kodları gibi sorunlar bekleyin. Bunları erken işaretleyin ki MVP ya düzeltme yapabilsin, varsayılan atayabilsin veya açıkça hariç tutabilsin.
Bir tahmin uygulamasının başarısı, herkesin sayılara güvenip güvenmediğine bağlıdır. O güven, “ne oldu”yu (satışlar, kabul) netleştiren ve “şu anda gerçek olanı” (mevcut stok, siparişler) tutarlı kılan bir veri modeliyle başlar.
Küçük bir varlık seti tanımlayın ve tüm uygulama boyunca onlara sadık kalın:
Ana zaman taneli olarak günlük veya haftalık seçin. Ardından her girdiyi buna zorlayın: siparişler zaman damgalı olabilir, envanter sayımları gün sonu olabilir ve faturalar daha sonra kaydedilebilir. Hizalama kuralınızı açıkça belirtin (örn. “satışlar gönderim tarihle ilişkilendirilir, güne göre kümelenir”).
Eğer satış adet/koli/kg şeklindeyse, hem orijinal birim hem de tahminleme için normalleştirilmiş bir birim (örn. “adet”) saklayın. Gelir tahmin ediyorsanız orijinal para birimini ve bir raporlama para birimini döviz kuru referansıyla tutun.
Her SKU-lokasyon-zaman için bir dizi olay izleyin: mevcut stok anlık görüntüleri, siparişteki miktarlar, kabul edilenler, transferler ve düzeltmeler. Bu, stok tükenmesi açıklamalarını ve denetim izlerini çok daha kolay yapar.
Her önemli metrik (birim satış, mevcut stok, tedarik süresi) için tek bir yetkili kaynak belirleyin ve bunu şemada belgeleyin. İki sistem uyuşmazsa, modeliniz hangi kaynağın kazandığını—ve nedenini—göstermelidir.
Bir tahminleme UI'sı, ona veri sağlayan sistem kadar iyidir. Rakamlar açıklama olmadan değişirse, kullanıcılar envanter planlama panosuna güvenmeyi bırakır—model iyi olsa bile. ETL'iniz veriyi öngörülebilir, hata ayıklanabilir ve izlenebilir yapmalıdır.
Her alan için “gerçek kaynak”ı yazın (siparişler, sevkiyatlar, mevcut stok, tedarik süreleri). Sonra tekrarlanabilir bir akış uygulayın:
İki katman tutun:
Bir planlayıcı “Geçen haftanın talebi neden değişti?” diye sorduğunda, ham kayda ve onu etkileyen dönüşüme işaret edebilmelisiniz.
En azından doğrulayın:
Çalışmayı başarısız sayın (veya etkilenen bölümü karantinaya alın) yerine kötü veriyi sessizce yayınlamayın.
Satın alma haftalık yapılıyorsa günlük partiler genellikle yeterlidir. Aynı gün yeniden ikmal veya hızlı e-ticaret dalgalanmaları gibi operasyonel kararlar gerçek zamanlı gerektirdiğinde, ek karmaşıklık ve uyarı gürültüsü getirdiği için ihtiyaca göre gerçek zamanlı kullanın.
Hata durumunda ne olacağını belgeleyin: hangi adımlar otomatik yeniden dener, kaç kez ve kim bildirilir. Extract'ler bozulduğunda, satır sayıları ani düştüğünde veya doğrulamalar başarısız olduğunda uyarılar gönderin—ve her tahmin girdisini denetleyebilmek için bir çalıştırma günlüğü tutun.
Tahminleme yöntemleri soyut olarak “daha iyi” değildir—verinize, SKU'larınıza ve planlama ritminize daha uygunsa daha iyidir. Harika bir web uygulaması basit başlamayı, sonuçları ölçmeyi, sonra gerçekten fayda sağladığında gelişmiş modellere geçmeyi kolaylaştırır.
Temeller hızlı, açıklanabilir ve mükemmel bir akıl kontrolüdür. En az şu üçü olsun:
Her zaman tahmin doğruluğunu bu temellerle karşılaştırın—karmaşık bir model bunları geçemiyorsa, üretime alınmamalıdır.
MVP stabil olduktan sonra birkaç “adım atma” modeli ekleyin:
Varsayılan bir model ve birkaç parametreyle daha hızlı gönderim yapabilirsiniz. Ancak katalogunuz karışık olduğunda (sürekli satanlar, mevsimlik ürünler, uzun kuyruk) SKU başına model seçimi (geriye dönük testlere göre en iyi model ailesini seçme) genellikle daha iyi sonuç verir.
Birçok SKU çok sayıda sıfıra sahipse, bunu bir öncelik vakası olarak ele alın. Aralıklı talebe uygun yöntemler (örn. Croston benzeri yaklaşımlar) ekleyin ve sıfırları haksız yere cezalandırmayan metrikler kullanın.
Lansmanlar, promosyonlar ve bilinen kesintiler için planlayıcıların geçersiz kılmalara ihtiyacı olacaktır. Sebepler, sona erme tarihleri ve denetim izi içeren bir geçersiz kılma iş akışı oluşturun, böylece manuel düzenlemeler ne olduğunu gizlemeden kararları iyileştirir.
Tahmin doğruluğu genellikle ek bağlamda yükselir veya düşer: satıştaki “geçen hafta” dışında verdiğiniz ek bilgiler. Amaç yüzlerce sinyal eklemek değil—işinizin nasıl davrandığını yansıtan ve planlayıcıların anlayabileceği küçük bir sinyal seti eklemektir.
Talep genellikle bir ritme sahiptir. Aşırı uyum yapmadan ritmi yakalayan birkaç takvim özelliği ekleyin:
Promosyonlar karışıksa, basit bir “promoda” bayrağı ile başlayıp sonra rafine edin.
Envanter tahmini sadece talep değildir—ayrıca bulunabilirliktir. Açıklanabilir, faydalı sinyaller arasında fiyat değişiklikleri, tedarik süresi güncellemeleri ve tedarikçi kısıtları vardır. Düşünün:
Stok tükenmesi gününde sıfır satış sıfır talep anlamına gelmez. Bu sıfırları doğrudan beslerseniz, model talebin kaybolduğunu öğrenir.
Yaygın yaklaşımlar:
Yeni ürünlerin geçmişi olmayacaktır. Net kurallar tanımlayın:
Özellik setini küçük tutun ve uygulama içinde özellikleri iş terimleriyle adlandırın (örn. “Tatil haftası” yerine “x_reg_17”) ki planlayıcılar modelin ne yaptığını güvenle anlayıp sorgulayabilsin.
Bir tahmin, birine ne yapacağını söylediğinde ancak faydalıdır. Web uygulamanız tahmin edilen talebi belirli, gözden geçirilebilir satın alma eylemlerine dönüştürmelidir: ne zaman yeniden sipariş verilecek, ne kadar alınacak ve ne kadar tampon tutulacak.
Her SKU (veya SKU-lokasyon) için üç çıktı ile başlayın:
Pratik bir yapı:
Eğer ölçebiliyorsanız, ortalama tedarik süresinin yanı sıra tedarik süresi değişkenliğini de dahil edin. Basit bir standart sapma bile stok tükenmelerini belirgin şekilde azaltabilir.
Her ürün aynı korunmayı hak etmez. Kullanıcıların hizmet seviyesi hedeflerini ABC sınıfına, marja veya kritikliyine göre seçmesine izin verin:
Öneriler uygulanabilir olmalı. Şunlar için kısıt yönetimi ekleyin:
Her önerilen satın alma için kısa bir açıklama ekleyin: tedarik süresi boyunca tahmin edilen talep, mevcut envanter pozisyonu, seçilen hizmet seviyesi ve uygulanan kısıt ayarlamaları. Bu güven inşa eder ve istisnaları onaylamayı kolaylaştırır.
Bir tahmin uygulamasını yönetmesi daha kolay hale getirmek için onu iki ürün olarak düşünün: insanlar için bir web deneyimi ve arka planda çalışan bir tahmin motoru. Bu ayrım UI'yı hızlı tutar, zaman aşımını önler ve sonuçların yeniden üretilebilir olmasını sağlar.
Dört yapı taşıyla başlayın:
Ana karar: tahmin çalışmaları hiçbir zaman bir UI isteği içinde yürütülmemelidir. Onları bir kuyruğa (veya zamanlanmış işlere) koyun, bir run ID döndürün ve UI'da ilerlemeyi yayın.
MVP inşasını hızlandırmak istiyorsanız, Koder.ai gibi bir prototipleme platformu bu mimari için pratik olabilir: React tabanlı bir UI, Go API ve PostgreSQL şemasını sohbet destekli bir yapı döngüsünden prototipleyebilir—ardından hazır olduğunuzda kaynak kodunu dışa aktarabilirsiniz. (Koder.ai marka adı orijinal şekilde korunmuştur.)
"Kayıt sistemi" tablolarını (tenantlar, SKUlar, lokasyonlar, çalıştırma konfigürasyonları, çalıştırma durumları, onaylar) birincil veritabanınızda tutun. Günlük tahminler, diagnostikler ve dışa aktarımlar gibi büyük çıktıları analitik için optimize edilmiş tablolarda veya nesne depolamada saklayın ve bunlara run ID ile referans verin.
Birden fazla iş birimine veya müşteriye hizmet verecekseniz, API katmanında ve veritabanı şemasında kiracı sınırlarını uygulayın. Basit bir yaklaşım her tabloda tenant_id kullanmak ve UI'da rol tabanlı erişim sağlamaktır. Tek kiracılı bir MVP bile bunu baştan yapmak, ileride veri karışmasını önler.
Küçük, net bir yüzey hedefleyin:
POST /data/upload (veya konektörler), GET /data/validationPOST /forecast-runs (başlat), GET /forecast-runs/:id (durum)GET /forecasts?run_id=... ve GET /recommendations?run_id=...POST /approvals (kabul/geçersiz kıl), GET /audit-logs(Back-end uç noktaları ve tenant_id gibi kod parçaları olduğu gibi bırakıldı.)
Tahminleme pahalı olabilir. Özellikle ağır yeniden eğitimleri sınırlayın: özellikleri önbelleğe alın, konfigürasyon değişmediğinde modelleri yeniden kullanın ve tam yeniden eğitimleri zamanlayın (ör. haftalık) while günlük hafif güncellemeler çalıştırın. Bu hem UI'nın duyarlı kalmasını sağlar hem de bütçenizi kontrol altında tutar.
Bir tahmin modeli, planlayıcıların hızlı ve güvenle hareket edebilmesini sağlamadıkça değerlidir. İyi UX, “tabloda sayılar”ı net kararlar haline getirir: ne satın alınacak, ne zaman alınacak ve şu an neye dikkat edilmeli.
Günlük planlama görevlerine uyan küçük bir ekran setiyle başlayın:
Navigasyonu tutarlı yapın ki kullanıcılar bir istisnadan SKU detayına atlayıp geri dönebilsinler.
Planlayıcılar veriyi sürekli dilimler. Tarih aralığı, lokasyon, tedarikçi ve kategori için filtrelemeyi anında ve öngörülebilir yapın. Mantıklı varsayılanlar kullanın (örn. son 13 hafta, birincil depo) ve kullanıcının son seçimlerini hatırlayın.
Bir tahminin neden değiştiğini göstererek güven inşa edin:
UI'da ağır matematikten kaçının; sade dil ve ipuçlarına odaklanın.
Hafif iş birliği özellikleri ekleyin: satır içi notlar, yüksek etkili siparişler için onay adımı ve değişiklik geçmişi (kim geçersiz kıldı, ne zaman, neden). Bu denetlenebilirliği yavaşlatmadan destekler.
Modern ekipler hala dosya paylaşıyor. Temiz CSV dışa aktarımları ve yazdırılabilir sipariş özeti (ürünler, miktarlar, tedarikçi, toplamlar, istenen teslim tarihi) sağlayın ki satın alma ekipleri yeniden formatlama yapmadan yürütme yapabilsin.
Tahminler, güncellenebilecekleri sistemlerle entegre olabildiği ve insanlara güven oluşturabildiği kadar faydalıdır. Entegrasyonları, erişim kontrollerini ve denetim izini erken planlayın ki uygulamanız “ilginç”ten “operasyonel”e geçebilsin.
Envanter kararlarını yönlendiren temel nesnelerle başlayın:
Hangi alan için hangi sistemin gerçek kaynak olduğunu açıkça belirtin. Örneğin, SKU durumu ve UOM ERP'den, ama tahmin geçersiz kılmaları uygulamanızdan olabilir.
Çoğu ekip için şimdi çalışacak bir yol ve sonra ölçeklenecek bir yol gerekir:
Hangi yolu seçerseniz seçin, içe aktarma günlüklerini (satır sayıları, hatalar, zaman damgaları) saklayın ki kullanıcılar eksik verileri mühendis yardımı olmadan teşhis edebilsin.
İşletmenizin nasıl çalıştığına göre izinleri tanımlayın—genellikle lokasyon ve/veya departmana göre. Yaygın roller Viewer, Planner, Approver ve Admin'dir. Hassas işlemlerin (parametre düzenleme, PO onayı) doğru rolle sınırlandırıldığından emin olun.
Kim neyi, ne zaman ve neden değiştirdiğini kaydedin: tahmin geçersiz kılmaları, yeniden sipariş noktası düzenlemeleri, tedarik süresi ayarları ve onay kararları. Farklar, yorumlar ve etkilenen önerilere bağlantılar saklayın.
Tahmin KPI'larını yayınlıyorsanız, uygulama içinde tanım bağlantıları veya görünür referans metinleri ekleyin (ve kaynak olarak /blog/forecast-accuracy-metrics gibi referanslar görünür olabilir). Rollout planlaması için basit kademeli erişim modeli /pricing ile uyumlu olabilir.
Bir tahmin uygulaması yalnızca performans gösteriyorsa kullanışlıdır—ve performans durduğunda bunu fark edebiliyorsanız. Test etmek sadece “kod çalışıyor mu” değil, “tahminler ve öneriler sonuçları iyileştiriyor mu?” sorusudur.
Herkesin anlayabileceği küçük bir metrik setiyle başlayın:
Bunları SKU, kategori, lokasyon ve tahmin ufku (gelecek hafta vs gelecek ay çok farklı davranabilir) bazında raporlayın.
Geriye dönük testleri uygulamada çalışacak şekilde yansıtın:
Doğruluk ani düştüğünde veya girdiler yanlış göründüğünde uyarılar ekleyin (eksik satışlar, yinelenen siparişler, olağan dışı sıçramalar). Küçük bir izleme panelini /admin alanınıza eklemek, haftalarca kötü satın alma kararlarını önleyebilir.
Tam dağıtımdan önce küçük bir planlayıcı/alıcı grubuyla pilot yürütün. Önerilerin kabul edilip edilmediğini ve nedenini takip edin. Bu geri bildirim, kural ayarları, istisnalar ve daha iyi varsayılanlar için eğitim verisi olur.
Tahmin uygulamaları genellikle en hassas iş parçalarını (satış geçmişi, tedarikçi fiyatlaması, envanter durumları, yaklaşan satın alma planları) etkiler. Güvenlik ve operasyonu birer ürün özelliği olarak ele alın—çünkü bir sızıntı veya bozuk gece işi aylardır kurulmuş güveni yok edebilir.
Duyarlı iş verilerini en düşük ayrıcalıkla koruyun. Viewer, Planner, Approver ve Admin gibi rollerle başlayın ve sayfalar değil, eylemler etrafında izinler uygulayın: maliyetleri görüntüleme, parametre düzenleme, satın alma önerilerini onaylama ve veri dışa aktarma gibi.
SSO gibi bir kimlik sağlayıcıyla entegre olursanız, grupları rollere eşleyin ki kullanıcı hesap kapatma otomatik olsun.
Mümkün olduğunca veri aktarımında ve üzerinde şifreleme kullanın. Her yerde HTTPS kullanın, API anahtarlarını döndürün ve sırları sunucu ortam dosyalarında değil yönetilen bir kasada saklayın. Veritabanları için at-rest şifrelemeyi etkinleştirin ve ağ erişimini sadece uygulamanız ve iş çalıştırıcıları ile sınırlayın.
Erişim ve kritik eylemleri (dışa aktarmalar, düzenlemeler, onaylar) günlüğe kaydedin. Yapılandırılmış günlükler için:
Bu bürokrasi değil—bir envanter planlama panosundaki sürprizleri debug etme yoludur.
Yüklemeler ve geçmiş çalıştırmalar için saklama kurallarını tanımlayın. Birçok ekip ham yüklemeleri kısa süre (örn. 30–90 gün) saklar ve eğilim analizi için toplulaştırılmış sonuçları daha uzun tutar.
Olay müdahalesi ve yedek planı hazırlayın: çağrıda kim var, erişim nasıl iptal edilir ve veritabanı nasıl geri yüklenir. Kurtarma süre hedeflerini API, işler ve depolama için belgeleyin ve düzenli yedek kurtarma testleri yapın ki talep planlama yazılımınız stres altındayken güvenilir kalsın.
Start by defining the decisions it must improve: how much to order, when to order, and where to order for (SKU, location, channel). Then choose a practical planning horizon (e.g., 4–12 weeks) and a single time grain (daily or weekly) that matches how the business buys and replenishes.
A solid MVP usually includes:
Keep everything else (promotions, scenario planning, multi-echelon optimization) for later phases.
At minimum, you need:
Create a data dictionary and enforce consistency in:
In the pipeline, add automated checks for missing keys, negative stock, duplicates, and outliers—and quarantine bad partitions instead of publishing them.
Treat inventory as a set of events and snapshots:
This makes “what happened” auditable and keeps “what is true now” consistent. It also makes it easier to explain stockouts and reconcile disagreements between ERP, WMS, and POS/eCommerce sources.
Start with simple, explainable baselines and keep them forever:
Use backtests to prove any advanced model beats those baselines. Add more complex methods only when you can measure improvement (and when you have enough clean history and drivers).
Don’t feed stockout zeros directly into the training target. Common approaches:
The key is to avoid teaching the model that demand disappeared when the real issue was availability.
Use explicit cold-start rules, such as:
Make these rules visible in the UI so planners know when a forecast is proxy-based vs data-driven.
Convert forecasts into three actionable outputs:
Then apply real-world constraints like MOQ and case packs (rounding), budget caps (prioritization), and capacity limits (space/pallets). Always show the “why” behind each recommendation.
Separate the UI from the forecasting engine:
Never run a forecast inside a UI request—use a queue or scheduler, return a run ID, and show progress/status in the app. Store bulk outputs (forecasts, diagnostics) in analytics-friendly storage referenced by run ID.
If any of these are unreliable, make the gap visible (defaults, flags, exclusions) rather than silently guessing.