Lý thuyếtBài 5/85 phút đọc+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ần | Câu hỏi cần trả lời |
|---|---|
| Tên | Gọi là gì, viết hoa/thường thống nhất |
| Câu hỏi | Chỉ số trả lời câu hỏi kinh doanh nào |
| Công thức | Tử số / mẫu số |
| Bộ lọc | Trạng thái, kênh, vùng, loại khách |
| Hạt | Mỗi dòng đại diện cho gì |
| Cửa sổ | 7 ngày, 30 ngày, tháng dương lịch? |
| Nguồn | Bảng/cột nào |
| Chủ sở hữu | Ai 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
completedthứ 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 định | Lựa chọn A | Lựa chọn B | Ảnh hưởng |
|---|---|---|---|
| Đơn huỷ | Loại bỏ | Tính vào | Tăng hoặc giảm mẫu số |
| Khách trùng | Đếm theo customer_id | Đếm theo email | Email thiếu làm giảm mẫu |
| Cửa sổ | 30 ngày trượt | Tháng dương lịch | So sánh giữa tháng khó hơn |
| Đơn đầu tiên | Toàn bộ lịch sử | Chỉ trong kỳ phân tích | Khách cũ bị loại khỏi mẫu |
| Đơn thứ hai | Bất kỳ đơn nào | Đơn có giá trị tối thiểu | Loạ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
- Viết đặc tả chỉ số vào một tài liệu dùng chung, kèm truy vấn mẫu.
- Đặt tên chỉ số kèm cửa sổ thời gian:
rpr_30d, không chỉrepeat_rate. - 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.
- 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ố.
- 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
- Viết đặc tả tám phần cho "tỷ lệ huỷ đơn".
- Viết hai định nghĩa khác nhau cho "khách hoạt động" và so sánh kết quả.
- Sửa truy vấn RPR-30 nếu mẫu số chỉ tính khách đăng ký trong tháng M.
- 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ứng | Nguyên nhân | Cách sửa |
|---|---|---|
| Hai báo cáo lệch nhau | Khác định nghĩa | Viết đặc tả chung, kiểm tra chéo |
| Tỷ lệ luôn 100% | JOIN thay vì LEFT JOIN | Giữ toàn bộ mẫu số |
| Mẫu số thay đổi mỗi tháng | Không cố định cửa sổ | Chốt cửa sổ trong đặc tả |
| Không so sánh được giữa tháng | Dùng tháng dương lịch | Dù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ết | Sửa định nghĩa ngầm | Phiê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 JOINkhi 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.
Dùng ← → để chuyển bài