跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

同期群分析(Cohort Analysis)

三月新客的回購率是不是在下降?這個問題用總體數字看不出來,因為每個月加入的新客「起跑線」不同。你需要的是同期群分析 — 按「首次購買月份」分群,追蹤每群人在之後每個月的回購率。

  • 同期群(Cohort) = 同一時期加入的一群人
  • Retention = 這群人在後續某個月還有回來消費的比例
  • Cohort 矩陣 = 橫軸是加入月份,縱軸是經過幾個月,格子裡是回購率

第一步:找出每個客戶的首次購買月份

第二步:計算每個客戶的每次消費距首購幾個月

重點:

  • months_since_first = 0 代表首購月(M+0)
  • months_since_first = 1 代表首購後第一個月(M+1)

第三步:建立 Cohort Retention 矩陣

解讀:

  • M+0 的 retention 一定是 100%(首購月本身)
  • M+1 如果是 30%,代表首購後一個月有 30% 的人回來買
  • 如果你看到某個 cohort 的 M+1 特別低,可能那批客戶是靠促銷拉進來的

用 CASE WHEN 做橫式矩陣

如果想要每個 cohort 一列、M+0 到 M+3 各一欄的格式:

AI 協作:學了這個,跟 AI 怎麼配合?

Cohort 分析的 SQL 很長、CTE 很多層,這正是 AI 最擅長幫你寫的。但你要會看結果。

你的人類優勢:

  • 你知道哪個月有做大促、哪個月換了行銷策略
  • 你能判斷 retention 下降是自然衰退還是異常
  • 你能把 cohort 數字跟行銷活動對照,找出因果關係

可以這樣跟 AI 說:

幫我做月度 cohort retention 分析,用 orders 表,只算 completed 訂單。輸出格式是每個 cohort 一列,顯示 M+0 到 M+6 的回購人數和 retention 百分比。

練習題

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩
DEMO 4可以修改程式碼試玩

挑戰任務

Task 1

找出每個客戶的首次購買月份(顯示 customer_id、first_purchase_month),只算 completed 訂單

Task 2

統計每個首購月份(cohort)有多少客戶(顯示 cohort_month、cohort_size),按月份排序

Task 3

做橫式 cohort 矩陣:每個 cohort_month 一列,顯示 m0(首購月人數)和 m1(首購後一個月回購人數),按 cohort_month 排序

BackNext Lesson →