消費者看到的六折貼紙,對門市而言代表一次已經失準的預測。 鮮守不只呈現已經發生的損失,而是在商品還來得及處理的時候主動指出問題, 並把「該怎麼做」直接寫在畫面上。
貼紙只是損失的一半。真正的成本包含賣不掉而報廢的部分, 那些商品從採購、冷鏈到上架的投入,全部歸零。
三個面向:省錢、省時間、減碳。每個數字都可以追溯到計算方式。
兩種估算方式,取較保守者作為承諾值。
| 標竿學習法(保守) | 年省 610 萬 |
| 業界成效法(降 30%) | 年省 1,252 萬 |
| 換算每店每天 | 1,670–3,429 元 |
把「找問題」的時間還給現場。
| 店員巡架找即期品 | 30–45 分/天 |
| 盤點作業 | 2 小時/次 |
| 店長彙整報表 | 3–4 小時/月 |
減少浪費是少數「省錢」與「減碳」一致的行動。
| 目前報廢碳排 | 2,614 噸 |
| 改善 30% 可減少 | 784 噸 |
| 相當於種樹 | 37,340 棵/年 |
多數分析系統只回答「上個月損失多少」。鮮守的設計重心放在營運當下的閉環: 每一個環節都留下紀錄,讓下一個環節有依據。
驗數量、量品溫、記效期,分離供應商與門市責任。
依保鮮天數自動推算到期時間,不需人工計算。
到期前主動排入待辦,附建議折數。
報廢必須選原因,才能區分可預防與否。
帳面與實盤比對,回答「你怎麼知道庫存是對的」。
扣除現有庫存,限制在保鮮期內賣得完的量。
登入後的第一個畫面是「今日總覽」,由系統列出需要處理的事項並排序, 而不是等使用者自己去查。這是報表工具與決策系統的分界。
不只顯示「建議訂 165 件」,而是說明扣除了多少庫存、 為什麼上限是這個數字。使用者能判斷該不該採納,而不是盲從。
一般商品訂多了壓資金,生鮮訂多了直接報廢。因此補貨建議額外限制 「不超過保鮮期內賣得完的量」,避免一開始就註定要丟。
以下皆為系統執行時的真實截圖,非設計稿。點選可放大檢視。
權限採雙層設計:選單只顯示該角色可用的頁面,每個頁面內另有獨立驗證。 即使直接輸入網址也無法繞過。
| 功能頁面 | 店員 | 店長 | 總部採購 | 後台管理員 |
|---|---|---|---|---|
| 今日總覽 | ||||
| 即期品處理台 | ||||
| 收貨驗收 · 盤點 · 補貨 | ||||
| 本店儀表板 | ||||
| 全台營運彙總 | ||||
| 需求預測與進貨建議 | ||||
| 供應商管理 | ||||
| 帳號與權限 · 門市設定 · 稽核 |
「今天哪些要處理?」清單式待辦、建議折數、批次標記。
「本店哪裡在漏錢?」損失排行、員工執行、庫存風險。
「哪家店要介入?」跨店比較、標竿分析、供應商績效。
「系統健康嗎?」帳號權限、門市主檔、資料健檢與稽核。
真實門市的生鮮銷售資料屬於商業機密,無法取得。因此採用機器學習領域 驗證模型能力的標準做法:植入已知規律,再檢驗模型能否獨立學回。
資料生成時植入天氣、節慶、週末、門市規模與管理效率等規律。 模型訓練時完全不被告知這些規律。若能學回,代表模型確實在學習資料中的關係, 而不是碰巧猜對。
誠實揭露: 所有人為設定的參數都在系統內完整列出,不假裝資料是真實的。 方法論的可信度來自透明。
| 模型 | R² | 說明 |
|---|---|---|
| 隨機森林(100 樹) | 0.88 | 能捕捉非線性關係 |
| 線性迴歸(對照組) | 0.60 | 無法處理交互作用 |
對照組很重要:只秀出 R²=0.88,無從判斷這算好還是不好。 有了線性迴歸的 0.60,才能證明選擇隨機森林是有理由的。
每個指標都使用業界通行的定義,讓使用者能把自己的數字拿去跟同業比較。 系統內每個指標都附計算式與基準來源。
| 指標 | 計算方式 | 意義 |
|---|---|---|
| 報廢率 / 損耗率 Shrinkage Rate |
報廢金額 ÷ 總進貨成本 | 可與同業直接比較的核心指標 |
| 總損失率 Total Loss Rate |
(報廢 + 折扣價差) ÷ 總進貨成本 | 反映真實損失,含折扣讓利 |
| 售罄率 Sell-Through Rate |
售出量 ÷ 進貨量 | 進貨量是否符合實際需求 |
| 折扣率 Markdown Rate |
折扣銷售額 ÷ 總銷售額 | 預測失準的直接證據 |
| 庫存周轉天數 DIO |
平均庫存 ÷ 日均銷貨成本 | 生鮮應遠低於一般商品 |
| 毛利投資報酬率 GMROI |
毛利 ÷ 平均庫存成本 | 每一元庫存創造多少毛利 |
分母採「正常售出 + 折扣售出 + 報廢」的成本合計,代表該期間實際投入的採購成本。 若只用已售出成本作分母,會系統性低估損失率。
設計原則:任何一台電腦解壓縮後就能執行,不需安裝資料庫伺服器、不需設定連線字串。
Streamlit(Python)。自訂設計系統:CSS 變數、Material Symbols 單色圖示、 卡片動畫與無障礙降級。Three.js 用於門市×類別的立體交叉分析。
SQLite 單檔資料庫,星狀綱要(Dim_ / Fact_)。由 SQL Server 遷移而來, 移除 pyodbc 相依,達成零安裝。
scikit-learn 隨機森林、pandas 資料處理、Plotly 互動圖表(33 張)、 Open-Meteo 無金鑰天氣 API。
| 模組 | 職責 |
|---|---|
app.py | 入口:資料庫健檢 → 登入 → 依角色組出選單 |
db.py | 唯一的資料庫存取點,路徑相對於專案根目錄 |
auth_helper.py | 登入驗證、權限檢查、鎖定與逾時 |
metrics.py | 營運指標計算(報廢率、排行、即期品、瀑布分析) |
kpi.py | 業界標準 KPI 定義、基準值與評級 |
operations.py | 營運作業(驗收、盤點、報廢歸因、補貨、告警) |
admin.py | 後台管理(帳號、門市、參數、資料健檢、稽核) |
three_viz.py | Three.js 3D 視覺化元件(離線可用) |
ui.py | 設計系統:色票、元件、動畫、品牌識別 |