選取區間 · 以下所有數字都只用這段期間內的訂單計算
Layer 1
開頁第一眼。六個數字,回答「生意的留客體質好不好」。
Layer 2
把顧客分成五群。關鍵差異:判定「睡著了沒」用的是 每個人自己的回購節奏,不是全站統一天數。 只買過一次、還沒有自己節奏的人,用區間內的全站中位數代入; 沉睡天數從區間結束日起算。表中「平均買幾次」=平均不同購買日數, 同一天下的多筆訂單算一次。
Layer 3
R(多久沒買)× F(買過幾次)的 3×3 矩陣。M(金額)不進矩陣 —— 三維表格在螢幕上讀不動,改用背景深淺表示客均價值。
格內:人數 / 客均價值。背景越深=客均價值越高。
要撈某一格的名單,跑 python3 crm/export_list.py rfm 單次 久遠。
Charts
前三頁看的是「現在長什麼樣」,這三張看的是「正在往哪裡去」。
成長是靠一直買新客,還是老客回來?如果柱子總高度在漲、
但深綠(回購)那截沒變厚,代表我們在用廣告費填一個漏水的桶子。
兩個讀圖前提:只畫完整月份(區間頭尾沒走完的月份不列,
半個月的柱子跟滿月並排會被讀成暴跌);區間第一個月的人一律算新客
——在這段期間內他們確實是第一次出現,所以第一根柱子沒有深綠那截。
當月新客 當月回購客 回購客佔當月購買人數(右軸)
以每月月底往前推 12 個月,窗內有買的人裡有多少人買了 ≥2 次。 單月數字會跳,看滾動窗才準。這張圖固定看全期,不隨上方區間變動 —— 12 個月滾動窗本來就要跨區間才算得出來;你選的區間以灰底標在圖上。
縱軸=首購月份,橫軸=之後第 1、2、3… 個月, 格內=該批人還有多少 % 在買。只列首購人數 ≥100 的月份, 還沒走完的月份留白(不是 0%)。
Method
Teachify payment_state = paid。排除三類:
manual_enrolled —— 教育部數位精進方案的批次授權,
20.0 萬筆、6.3 萬個學校帳號。那是 B2G 授權不是消費行為,
混進來顧客數會膨脹近 3 倍、客單價崩掉。not_paid / failed)——
同一個人重試會各算一筆。user.id,不是 email ——
用 email 當主鍵的話,同一個人換過信箱就會被算成兩個人。
這也是這裡不用後台匯出 CSV 的原因(匯出檔只有 email)。crm/data/identity.jsonl(權限 600、已 gitignore)。
要撈名單跑 python3 crm/export_list.py nes S1 或
python3 crm/export_list.py rfm 高頻 近期,輸出到 crm/out/。source ~/twb-dashboard/.env 之後跑
python3 crm/fetch_payments.py 2023-01-01 <今天>(約 3 分鐘),
再跑 python3 crm/build.py。程式在 ~/twb-dashboard/crm/,
口徑改動看 analyze.py 與 app.js 的 compute()。