DHDataHọc
TheoryLesson 5/85 min read+10 XP

Từ câu hỏi mơ hồ đến định nghĩa chỉ số

Bạn sẽ học được

  • Vì sao cùng tên chỉ số vẫn có thể cho nhiều con số khác nhau.
  • Cấu trúc một bản đặc tả chỉ số (metric spec).
  • Cách xác định tử số, mẫu số, bộ lọc và cửa sổ thời gian.
  • Cách xử lý khách mới, khách quay lại và dữ liệu thiếu.
  • Quy trình thống nhất định nghĩa trong nhóm.

Khái niệm cốt lõi

"Tỷ lệ khách quay lại" nghe rõ ràng nhưng có ít nhất bốn cách hiểu:

  • Khách mua lần hai trong 30 ngày kể từ lần đầu?
  • Khách có ít nhất hai đơn trong 90 ngày qua?
  • Khách hoạt động trong tháng này và tháng trước?
  • Khách quay lại sau khi rời đi (reactivation)?

Mỗi định nghĩa cho một con số khác nhau, và cả bốn đều "đúng" theo cách hiểu của người viết. Vấn đề chỉ xuất hiện khi hai báo cáo dùng hai định nghĩa mà không ai biết.

Bản đặc tả chỉ số gồm tám phần:

PhầnCâu hỏi cần trả lời
TênGọi là gì, viết hoa/thường thống nhất
Câu hỏiChỉ số trả lời câu hỏi kinh doanh nào
Công thứcTử số / mẫu số
Bộ lọcTrạng thái, kênh, vùng, loại khách
HạtMỗi dòng đại diện cho gì
Cửa sổ7 ngày, 30 ngày, tháng dương lịch?
NguồnBảng/cột nào
Chủ sở hữuAi chịu trách nhiệm định nghĩa

Ví dụ đặc tả: tỷ lệ khách quay lại 30 ngày

  • Tên: Repeat purchase rate 30d (RPR-30).
  • Câu hỏi: Trong số khách mua lần đầu trong tháng M, bao nhiêu phần trăm mua lại trong vòng 30 ngày?
  • Tử số: số khách có ít nhất một đơn completed thứ hai trong 30 ngày kể từ đơn đầu tiên.
  • Mẫu số: số khách có ít nhất một đơn completed đầu tiên trong tháng M.
  • Bộ lọc: chỉ đơn completed; loại đơn huỷ và hoàn.
  • Hạt: một khách hàng.
  • Cửa sổ: 30 ngày kể từ ngày đơn đầu tiên.
  • Nguồn: orders, customers.
  • Chủ sở hữu: nhóm tăng trưởng.

Viết thành truy vấn:

code
WITH don_dau AS (
  SELECT customer_id, MIN(order_date) AS ngay_dau
  FROM orders
  WHERE status = 'completed'
  GROUP BY customer_id
),
mua_lai AS (
  SELECT d.customer_id
  FROM don_dau d
  JOIN orders o
    ON o.customer_id = d.customer_id
   AND o.status = 'completed'
   AND o.order_date > d.ngay_dau
   AND o.order_date <= d.ngay_dau + INTERVAL '30 days'
  GROUP BY d.customer_id
)
SELECT COUNT(m.customer_id)::numeric / COUNT(d.customer_id) AS ty_le
FROM don_dau d
LEFT JOIN mua_lai m ON m.customer_id = d.customer_id;

Điểm quan trọng: LEFT JOIN giữ cả khách không mua lại trong mẫu số. Nếu dùng JOIN, bạn chỉ còn khách mua lại và tỷ lệ luôn bằng 100%.

Những quyết định nhỏ làm đổi con số

Quyết địnhLựa chọn ALựa chọn BẢnh hưởng
Đơn huỷLoại bỏTính vàoTăng hoặc giảm mẫu số
Khách trùngĐếm theo customer_idĐếm theo emailEmail thiếu làm giảm mẫu
Cửa sổ30 ngày trượtTháng dương lịchSo sánh giữa tháng khó hơn
Đơn đầu tiênToàn bộ lịch sửChỉ trong kỳ phân tíchKhách cũ bị loại khỏi mẫu
Đơn thứ haiBất kỳ đơn nàoĐơn có giá trị tối thiểuLoại đơn nhỏ, tỷ lệ giảm

Không có lựa chọn nào "đúng tuyệt đối". Điều bắt buộc là chọn một, ghi lại, và dùng nhất quán.

Quy trình thống nhất trong nhóm

  1. Viết đặc tả chỉ số vào một tài liệu dùng chung, kèm truy vấn mẫu.
  2. Đặt tên chỉ số kèm cửa sổ thời gian: rpr_30d, không chỉ repeat_rate.
  3. Khi có yêu cầu thay đổi định nghĩa, tạo phiên bản mới thay vì sửa ngầm. Báo cáo cũ vẫn so sánh được.
  4. Kiểm tra chéo: hai người độc lập viết truy vấn từ cùng đặc tả phải ra cùng con số.
  5. Ghi rõ dữ liệu thiếu được xử lý thế nào — bỏ qua, quy về 0, hay tách nhóm riêng.

Thực hành

  1. Viết đặc tả tám phần cho "tỷ lệ huỷ đơn".
  2. Viết hai định nghĩa khác nhau cho "khách hoạt động" và so sánh kết quả.
  3. Sửa truy vấn RPR-30 nếu mẫu số chỉ tính khách đăng ký trong tháng M.
  4. Nêu một quyết định định nghĩa có thể làm con số tăng gấp đôi.

Lỗi thường gặp

Triệu chứngNguyên nhânCách sửa
Hai báo cáo lệch nhauKhác định nghĩaViết đặc tả chung, kiểm tra chéo
Tỷ lệ luôn 100%JOIN thay vì LEFT JOINGiữ toàn bộ mẫu số
Mẫu số thay đổi mỗi thángKhông cố định cửa sổChốt cửa sổ trong đặc tả
Không so sánh được giữa thángDùng tháng dương lịchDùng cửa sổ trượt hoặc chuẩn hoá
Khách trùngĐếm theo email/điện thoạiĐếm theo khóa khách hàng
Chỉ số đổi mà không ai biếtSửa định nghĩa ngầmPhiên bản hoá chỉ số

Tóm tắt

  • Cùng tên chỉ số có thể có nhiều định nghĩa; phải chốt một.
  • Đặc tả gồm: tên, câu hỏi, công thức, bộ lọc, hạt, cửa sổ, nguồn, chủ sở hữu.
  • Tử số và mẫu số phải được viết rõ, kể cả cách xử lý dữ liệu thiếu.
  • LEFT JOIN khi cần giữ mẫu số đầy đủ.
  • Thay đổi định nghĩa là tạo phiên bản mới, không sửa ngầm.

Use ← → to move between lessons