COUNT DISTINCT learner_profile_id WHERE submitted_at >= NOW()-1d. Lưu ý: chỉ đếm hoạt động "có dữ liệu" (submitted_at), không tính người vào ứng dụng mà không làm gì.DAU / MAU × 100%. Benchmark: 20% = trung bình, 30%+ = tốt, 50%+ = excellent (như WhatsApp). FLYER ~15% là khá ổn cho edu vertical.WAU / MAU × 100%.signups_with_attempt_in_7d / total_signups. Cảnh báo: ~25-30% nghĩa là 70-75% đăng ký rồi "biến mất" — đây là điểm rò rỉ lớn nhất trong funnel học sinh.attempts_30d / MAU. Cao = engagement sâu; thấp = user vào nhưng không làm nhiều.learner_profiles — bao gồm tất cả tài khoản từng tạo, kể cả không hoạt động. Cảnh báo: con số này KHÔNG đại diện cho user thực, mà chỉ là tổng đăng ký lũy kế. Để vào hàng cuối vì không actionable cho retention.| Ngày | Active | Lượt làm | Lượt/HS |
|---|
| Tháng | Active | Lượt làm | Lượt/HS |
|---|
users.teacher_verified = true — đã xác thực là giáo viên. Cảnh báo: đây CHỈ là đăng ký + xác minh, không phản ánh có dùng sản phẩm hay không. Đa số là free-funnel từ Teado.teacher_profile_id trong school_teacher_profiles. GV thuộc một trung tâm/trường có quản lý qua FLYER LMS — khả năng giữ chân và monetize cao hơn nhiều so với GV cá nhân.teacher_profile_id trong assign_tests — GV đã giao ít nhất 1 bài cho HS. Đây là cột mốc "activation" thực sự của GV (vs chỉ đăng ký).ever_assigned / verified. Cực kỳ thấp = funnel rò rỉ ở bước "thử dùng". 96% GV đã verified KHÔNG bao giờ giao bài. Có thể vì: (1) đăng ký xong không biết làm gì tiếp; (2) UX assign khó; (3) chưa có học sinh; (4) đăng ký chỉ để xem giáo trình.| Ngày | Active | Lượt giao | Lượt/GV |
|---|
| Tháng | Active | Lượt giao | Lượt/GV |
|---|
Học sinh. Active = số learner_profile_id_bigint distinct trong user_attempts có submitted_at khác null. Tổng = số dòng learner_profiles. HS mới = learner_profiles.created_at trong cửa sổ.
Retention. Tính bằng JOIN giữa các tháng. Tháng hiện tại (2026-05) chưa đủ → retention tới tháng 6 sẽ là 0 trong snapshot này.