Trường Số PRD/15 Chỉ tiêu
Trường Số · Yêu cầu sản phẩm · 09/2026

PRD 15 · Chỉ tiêu và hiệu suất

Chỉ tiêu theo tháng và quý cho trung tâm, chi nhánh và từng cá nhân; giá trị thực tế tính tự động từ dữ liệu tuyển sinh, học phí và điểm danh, không nhập tay. Bảng chỉ tiêu có mục tiêu, thực tế, phần trăm, dự báo về đích, cảnh báo khi chậm và lịch sử sửa đổi có lý do. Quy tắc thưởng chỉ ở mức công thức, chi trả thuộc PRD 06.

Xuất xứ / Prompt / Giới hạn
Trạng thái
Dự thảo v1
Mô-đun phụ trách
Điều hành
Backend
EXISTING 5 CRM dashboard endpoints, tuition stats, sale-profiles · EXTEND funnel, tuition stats, digest · NEW target, target_line, target_snapshot, target_revision, bonus_rule
Giai đoạn
P1 (chỉ tiêu tuyển sinh và doanh thu) / P2 (chỉ tiêu giáo vụ, giáo viên, thưởng)
Phụ thuộc vào
01 Tuyển sinh, 05 Tài chính, 06 Nhân sự, 09 Báo cáo

Tài liệu do trợ lý AI soạn trong một phiên làm việc ngày 16/09/2026, mở rộng bộ PRD theo yêu cầu gốc được trích nguyên văn ở trang mục lục. Đây là bản đề xuất để đội thảo luận, chưa phải quyết định của đội sản phẩm.

Nguồn

  • Nghiên cứu công khai về đối thủ cạnh tranh (PSE ONE, pse4.one), mã nguồn center-crm-frontend và đặc tả OpenAPI /v3 trên staging (182 endpoint), tính đến ngày 10/09/2026.
  • Nhãn existing / extend / new trong trang được xác định bằng cách đối chiếu với đặc tả /v3 trên staging tại thời điểm trên.
  • Đợt quét thứ hai các nguồn công khai của PSE ONE ngày 16/09/2026 (trang tính năng, bảng phí dịch vụ, mục hướng dẫn sử dụng).
  • Tham chiếu đối thủ cạnh tranh: trang chủ pse4.one (khảo sát công khai ngày 16/09/2026) liệt kê mô-đun "Quản lý chỉ tiêu"; mô-đun báo cáo có "Thống kê doanh số tư vấn", "Thống kê giáo viên", "Thống kê buổi học còn lại" trong khoảng 50 loại báo cáo; lương giáo viên tính tự động theo giờ dạy, hệ số, thưởng và phạt. Cách đặt chỉ tiêu không được công bố; thiết kế dưới đây là của Trường Số.

Giới hạn

  • Cần xác minh khi khảo sát trực tiếp trong ứng dụng, vì đăng nhập tự động vào sản phẩm tham chiếu chưa được cấp phép trong phiên soạn:
    • Mô-đun "Quản lý chỉ tiêu" của đối thủ đặt chỉ tiêu theo phạm vi nào (trung tâm, chi nhánh, từng nhân viên) và theo kỳ nào (tháng, quý, năm).
    • Giá trị thực tế của họ được tính tự động hay nhập tay, và có dự báo về đích hay không.
    • "Thống kê doanh số tư vấn" có so sánh với chỉ tiêu và có bảng xếp hạng nhân viên hay không.
    • Thưởng và phạt trong công thức lương giáo viên có gắn với chỉ tiêu hay là khoản nhập tay trong bảng lương.

Thiết kế đề xuất

Bảng chỉ tiêu đặt mục tiêu cạnh thực tế trên cùng một dòng với chip trạng thái theo tốc độ; luồng tạo và phân bổ ba bước chặn xuất bản khi tổng dòng con lệch dòng cha; tư vấn viên chỉ thấy chỉ tiêu và thứ hạng của bản thân, kể cả trên điện thoại.

1 · Bảng chỉ tiêu · tab Chi nhánh

/targets · desktop

Bảng chỉ tiêu · tab Chi nhánh
Bộ chọn kỳ (tháng/quý), bộ lọc chi nhánh và năm tab Trung tâm · Chi nhánh · Cá nhân · Xếp hạng · Lịch sử. Đầu bảng ghi "Số liệu đến hết 15/09/2026 23:30" kèm nút "Tính lại ngay" cho người có quyền quản lý. Mỗi dòng có đủ cột chỉ tiêu, phạm vi, mục tiêu, thực tế (liên kết drill-down), % đạt dạng thanh, tốc độ, dự báo và chip trạng thái; bảng cố ý hiển thị cả bốn trạng thái Đã đạt, Đúng tiến độ, Chậm, Nguy cơ theo ngưỡng 0,95 và 0,80 (TGT-03, quy tắc 5); menu ⋯ mở Sửa mục tiêu, Phân bổ, Xem lịch sử.

2 · Chi tiết dòng chỉ tiêu

/targets/:id · desktop

Chi tiết dòng chỉ tiêu
Trang chi tiết của chỉ tiêu Doanh thu ký mới: bốn ô mục tiêu, thực tế, tốc độ, dự báo; biểu đồ thực tế tích luỹ theo ngày so với đường mục tiêu tuyến tính và đoạn dự báo; cây dòng chỉ tiêu trung tâm → chi nhánh → cá nhân với dòng cha mang cờ ghi đè tổng. Thanh bên hiển thị nguồn thực tế, ảnh chụp gần nhất, ngày chốt kỳ dự kiến và lịch sử sửa đổi có giá trị trước, sau, người sửa, lý do (TGT-05, quy tắc 7 và 8); cảnh báo "cần phân bổ lại" xuất hiện sau khi mục tiêu chi nhánh bị giảm.

3 · Tạo chỉ tiêu · bước 1 Kỳ và chỉ tiêu

/targets/new · desktop

Tạo chỉ tiêu · bước 1 Kỳ và chỉ tiêu
Cột trái chọn loại kỳ, kỳ, tuỳ chọn tính theo ngày làm việc, thời gian chờ đối soát và phạm vi hiển thị xếp hạng. Bảng bên phải liệt kê danh mục cố định theo nhóm; mỗi chỉ tiêu có ô nhập mục tiêu trung tâm và hai cột tham chiếu kỳ liền trước, cùng kỳ năm trước (TGT-01). Chỉ tiêu giáo vụ thuộc P2 hiển thị mờ với nhãn "chưa phát hành" theo quy tắc 1.

4 · Phân bổ chi nhánh · lỗi lệch tổng

/targets/:id/allocate · desktop

Phân bổ chi nhánh · lỗi lệch tổng
Bước 2 chia mục tiêu trung tâm cho ba chi nhánh; nút "Chia đều" và "Chia theo tỷ trọng kỳ trước". Tổng dòng con được so với dòng cha theo thời gian thực: hai dòng lệch (Thiếu 4, Thừa 20.000.000) tô đỏ, nút Xuất bản bị vô hiệu; bảng ghi đè tổng mở ngay dưới dòng lỗi và đòi lý do tối thiểu 10 ký tự (TGT-02, quy tắc 3).

5 · Phân bổ cá nhân · bước 3

/targets/:id/allocate · desktop

Phân bổ cá nhân · bước 3
Chọn chi nhánh rồi chia bốn chỉ tiêu cho tám tư vấn viên lấy từ sale-profiles; ba dòng cuối là tổng cá nhân, chỉ tiêu chi nhánh và chênh lệch, tất cả Khớp nên Xuất bản được mở. Hồ sơ sắp ngừng hoạt động được gắn nhãn vì chỉ tiêu quy theo hồ sơ, không theo tài khoản (quy tắc 9); bước này là tuỳ chọn, quản lý chi nhánh có thể làm sau khi xuất bản.

6 · Xếp hạng tư vấn viên

/targets/ranking · desktop

Xếp hạng tư vấn viên
Bộ chọn kỳ, chi nhánh và chỉ tiêu xếp hạng (mặc định doanh thu ký mới). Bảng xếp theo % đạt, hai người cùng 43% được tách bằng giá trị tuyệt đối (quy tắc 10); ba dòng đầu có nền nhạt, cột thay đổi so với tuần trước dùng mũi tên kèm số. Nhãn ranking_visibility = branch cho biết tư vấn viên nhìn thấy toàn bộ bảng trong chi nhánh.

7 · Chỉ tiêu của tôi · tư vấn viên

/me/targets · desktop

Chỉ tiêu của tôi · tư vấn viên
Trang của tư vấn viên Trần Văn Nam: mỗi chỉ tiêu có thanh tiến độ, thực tế / mục tiêu, "còn thiếu N", tốc độ và chip trạng thái; dòng cuối "Hạng 3/8 trong chi nhánh". Bên dưới là tốc độ theo tuần lấy từ dữ liệu thắng/thua; thanh bên liệt kê các cảnh báo đã nhận, gồm cả thông báo "đã trở lại tiến độ" (TGT-04). Tab Trung tâm và Chi nhánh không hiển thị cho vai trò này.

8 · Chỉ tiêu của tôi · di động

/me/targets · mobile 390

Chỉ tiêu của tôi · di động
Cùng dữ liệu trên điện thoại của tư vấn viên: băng cảnh báo tốc độ ở đầu, bốn thẻ tiến độ với chip trạng thái và dòng "còn thiếu · còn 15 ngày · tốc độ", thẻ thứ hạng dẫn sang bảng xếp hạng và hai cảnh báo gần nhất; tab Chỉ tiêu ở thanh điều hướng dưới.

9 · Bảng chỉ tiêu · trạng thái rỗng

/targets · desktop

Bảng chỉ tiêu · trạng thái rỗng
Kỳ chưa có bộ chỉ tiêu: thông báo "Chưa có chỉ tiêu cho kỳ này. Tạo chỉ tiêu để so sánh với số liệu thực tế." kèm hai nút Tạo chỉ tiêu và Sao chép từ kỳ trước, đúng như mục 4 mô tả.

1Mục đích

Chủ trung tâm điều hành bằng vài con số: tháng này cần bao nhiêu học viên mới, bao nhiêu doanh thu, chi nhánh nào đang chậm, tư vấn viên nào dẫn đầu. Hiện nay các con số này nằm trong Excel, còn dashboard của ứng dụng chỉ hiển thị thực tế mà không có mục tiêu để so sánh. Mô-đun này đặt chỉ tiêu cạnh thực tế trên cùng một màn hình: phân bổ từ trung tâm xuống chi nhánh và từng cá nhân, thực tế tính từ bản ghi đã có, mọi thay đổi để lại dấu vết kèm lý do. Nguyên tắc cốt lõi: không có ô nhập tay cho giá trị thực tế, mọi giá trị truy nguyên được đến bản ghi nguồn; con số không tính được từ dữ liệu thì chưa được đưa vào danh mục chỉ tiêu.

Trong phạm vi

Ngoài phạm vi

2Hiện trạng

Không có khái niệm chỉ tiêu trong center-crm-frontend hoặc API /v3; các endpoint dashboard hiện có trả về thực tế theo kỳ và là nguồn cho mô-đun này, được một tiến trình nền tổng hợp thành ảnh chụp hằng ngày.

Năng lực hiện cóEndpointGiữ lại?
Thẻ quản lý: số lượng và giá trị đã thắng, đã thua, tỷ lệ chuyển đổiGET /v3/crm/dashboard/manager-summary existingcó; nguồn cho chuyển đổi, doanh thu ký mới (trung tâm, chi nhánh)
Funnel theo giai đoạn; xu hướng thắng/thua; số lượng và giá trị thắng theo từng tư vấn viên/funnel, /won-lost-trend, /top-sales existingcó; nguồn cho lead mới, đường tốc độ theo tuần và chỉ tiêu cá nhân của tư vấn viên
Số liệu học phí: tổng lập, đã thanh toán, chưa thanh toán, số quá hạnGET /v3/teacher/school-finance/tuitions/stats existingcó; nguồn cho thực thu và thu công nợ quá hạn
Danh sách tư vấn viên; chi nhánh được truy cập/v3/crm/sale-profiles, /lightweight, /v3/crm/me/accessible-schools existingcó; dùng khi phân bổ và lọc
Chỉ tiêu, dòng chỉ tiêu, ảnh chụp, lịch sử sửa đổi, quy tắc thưởngkhông cónew dưới /v3/crm/targets
Chuyên cần, tái ghi danh, học viên nghỉ học, số buổi dạy, đánh giá của phụ huynhthực thể mới của PRD 02, 04, 05, 06, 07nguồn cho nhóm P2, khả dụng khi mô-đun nguồn phát hành

3User story và tiêu chí chấp nhận

TGT-01Đặt chỉ tiêu tháng cho trung tâm
Chủ trung tâm tạo bộ chỉ tiêu cho một tháng.
  • Given Có quyền targets.manage phạm vi tất cả
  • When Chọn Chỉ tiêu → + Tạo chỉ tiêu, chọn kỳ Tháng 10/2026, chọn chỉ tiêu từ danh mục (lead mới 300, học thử 120, chuyển đổi 60, doanh thu ký mới 900.000.000, thực thu 850.000.000) và Lưu nháp
  • Then Một target trạng thái draft được tạo với một dòng cho mỗi chỉ tiêu ở phạm vi trung tâm; cạnh mỗi ô nhập hiển thị thực tế của kỳ liền trước và cùng kỳ năm trước; bản nháp chỉ hiển thị cho người có quyền quản lý.
TGT-02Phân bổ xuống chi nhánh và cá nhân
Chủ trung tâm chia chỉ tiêu cho chi nhánh; quản lý chi nhánh chia tiếp cho tư vấn viên.
  • Given Bản nháp trung tâm có chuyển đổi 60
  • When Mở bước Phân bổ, chọn "Chia theo tỷ trọng kỳ trước" hoặc nhập tay từng chi nhánh
  • Then Mỗi chi nhánh trong accessible-schools nhận một dòng con; tổng dòng con được so với dòng cha theo thời gian thực; khi lệch, nút Xuất bản bị vô hiệu và hiển thị chênh lệch ("Thiếu 4"); "Ghi đè tổng" cần lý do bắt buộc. Quản lý chi nhánh lặp lại bước này cho tư vấn viên (danh sách từ sale-profiles/lightweight); tư vấn viên chỉ thấy chỉ tiêu của bản thân sau khi xuất bản.
TGT-03Xem bảng chỉ tiêu và dự báo về đích
Quản lý chi nhánh theo dõi tiến độ trong kỳ.
  • Given Ngày 18/10/2026, chỉ tiêu tháng 10 đã xuất bản, ảnh chụp hằng ngày đã chạy
  • When Mở Chỉ tiêu → tab Chi nhánh
  • Then Mỗi dòng hiển thị mục tiêu, thực tế đến hết ngày hôm trước, phần trăm đạt, tốc độ, dự báo cuối kỳ và chip Đã đạt / Đúng tiến độ / Chậm / Nguy cơ theo ngưỡng ở mục 5; thời điểm ảnh chụp gần nhất hiển thị ở đầu bảng.
TGT-04Cảnh báo khi tốc độ chậm
Người phụ trách và cấp trên được báo sớm khi một chỉ tiêu có nguy cơ không về đích.
  • Given Đã qua giữa kỳ (ngày 15 của tháng, ngày 45 của quý) và một dòng có tốc độ dưới 0,80
  • When Ảnh chụp hằng ngày hoàn tất
  • Then Thông báo trong ứng dụng "Chỉ tiêu [tên] của [phạm vi] đang ở 62% tốc độ, dự báo đạt 71%" gửi đến chủ sở hữu dòng và cấp quản lý trực tiếp; tối đa một cảnh báo mỗi 7 ngày cho mỗi dòng; khi tốc độ trở lại từ 0,80, gửi thông báo "đã trở lại tiến độ".
TGT-05Sửa chỉ tiêu giữa kỳ có lý do
Chủ trung tâm điều chỉnh chỉ tiêu khi hoàn cảnh thay đổi.
  • Given Chỉ tiêu đã xuất bản
  • When Giảm chuyển đổi của một chi nhánh từ 25 xuống 18 vì chi nhánh đóng cửa sửa chữa hai tuần, nhập lý do
  • Then Một target_revision lưu giá trị trước, sau, người sửa, thời điểm, lý do; các dòng con lệch tổng được đánh dấu cần phân bổ lại; người nhìn thấy dòng đó được thông báo; các ảnh chụp trước vẫn giữ mục tiêu tại thời điểm chụp.
TGT-06Chốt kỳ
Kế toán và chủ trung tâm cần một con số cuối cùng không đổi để tính thưởng.
  • Given Kỳ đã kết thúc và qua thời gian chờ đối soát (mặc định 5 ngày)
  • When Tiến trình nền chạy ảnh chụp cuối cùng
  • Then Chỉ tiêu chuyển sang closed, ảnh chụp cuối mang cờ is_final; ghi nhận muộn không thay đổi số đã chốt; chỉ chủ trung tâm được "Mở lại kỳ" kèm lý do, tạo ảnh chụp cuối mới và một bản ghi sửa đổi.
TGT-07Chỉ tiêu giáo vụ và giáo viên (P2)
Giáo vụ theo dõi chuyên cần và tái ghi danh; giáo viên xem số buổi dạy và đánh giá của phụ huynh.
  • Given PRD 04 và 07 đã phát hành; chỉ tiêu quý có chuyên cần 92%, tái ghi danh 75%, học viên nghỉ học tối đa 12
  • When Mở bảng chỉ tiêu tab Chi nhánh
  • Then Dòng tỷ lệ hiển thị mục tiêu và thực tế theo phần trăm, không có dự báo tuyến tính; dòng "học viên nghỉ học tối đa" có chiều càng thấp càng tốt và chuyển sang Nguy cơ khi thực tế vượt 80% mức tối đa trước giữa kỳ; giáo viên chỉ thấy dòng của bản thân trên trang chủ giáo viên.
TGT-08Quy tắc thưởng dạng công thức (P2)
Chủ trung tâm định nghĩa cách thưởng gắn với chỉ tiêu; kế toán lấy số ước tính vào bảng công.
  • Given Có quyền targets.bonus_rules
  • When Tạo quy tắc tại /settings/targets/bonus-rules: vai trò tư vấn viên, chỉ tiêu doanh thu ký mới, bậc [100% đến dưới 120%: 2% doanh thu ký mới; từ 120%: 3%], hiệu lực từ tháng 1/2027
  • Then Các bậc phải liên tục và không chồng lấn; từ ảnh chụp cuối cùng, mỗi dòng cá nhân có bonus_estimate; PRD 06 đọc giá trị này để tạo dòng điều chỉnh "Thưởng chỉ tiêu tháng MM/YYYY" trong bảng công; phê duyệt và chi trả nằm ở PRD 06.

4Màn hình

Bảng chỉ tiêu /targets

Bộ chọn kỳ (tháng, quý; mặc định kỳ hiện tại), bộ lọc chi nhánh, tab: Trung tâm · Chi nhánh · Cá nhân · Xếp hạng · Lịch sử. Dòng "Số liệu đến hết 17/10/2026 23:30" và nút "Tính lại ngay" cho người có quyền quản lý. Hành động: + Tạo chỉ tiêu, Xuất Excel.

Cột: chỉ tiêu, phạm vi (trung tâm, chi nhánh hoặc cá nhân kèm ảnh đại diện), mục tiêu, thực tế (từ ảnh chụp gần nhất, liên kết drill-down đến báo cáo nguồn của PRD 09), % đạt (thanh tiến độ), tốc độ, dự báo (trống với kiểu tỷ lệ), trạng thái (chip Đã đạt / Đúng tiến độ / Chậm / Nguy cơ / Chưa đủ dữ liệu), thao tác (Sửa mục tiêu, Phân bổ, Xem lịch sử).

Chọn một dòng mở trang chi tiết /targets/:id: cây dòng chỉ tiêu (trung tâm → chi nhánh → cá nhân), biểu đồ thực tế tích luỹ theo ngày so với đường mục tiêu tuyến tính, tab Lịch sử (thời điểm, người sửa, giá trị trước, sau, lý do) và tab Thưởng (P2). Trạng thái rỗng: "Chưa có chỉ tiêu cho kỳ này. Tạo chỉ tiêu để so sánh với số liệu thực tế." kèm nút Tạo chỉ tiêu và "Sao chép từ kỳ trước". Với tư vấn viên và giáo viên, tab Trung tâm và Chi nhánh ẩn đi.

Tạo và phân bổ chỉ tiêu (ba bước) /targets/new · /targets/:id/allocate

Bước 1 Kỳ và chỉ tiêu: chọn loại kỳ, kỳ, đánh dấu chỉ tiêu theo nhóm; mỗi chỉ tiêu có ô nhập mục tiêu trung tâm và hai cột tham chiếu (kỳ liền trước, cùng kỳ năm trước). Bước 2 Chi nhánh: bảng chỉ tiêu × chi nhánh; nút "Chia đều", "Chia theo tỷ trọng kỳ trước"; dòng tổng ở cuối với chênh lệch tô màu theo token trạng thái. Bước 3 Cá nhân (tuỳ chọn, quản lý chi nhánh có thể làm sau): bảng chỉ tiêu × cá nhân theo chi nhánh. Nút Lưu nháp và Xuất bản; xuất bản bị chặn khi còn chênh lệch tổng chưa ghi đè.

Xếp hạng tư vấn viên /targets/ranking

Bộ chọn kỳ, chi nhánh (hoặc toàn trung tâm), chỉ tiêu xếp hạng (mặc định doanh thu ký mới). Cột: hạng, thay đổi so với tuần trước, tư vấn viên, chi nhánh, mục tiêu, thực tế, % đạt, tốc độ; xếp theo phần trăm đạt, không theo giá trị tuyệt đối. Tư vấn viên thấy toàn bộ bảng trong chi nhánh khi ranking_visibility = branch (mặc định) hoặc chỉ thứ hạng của bản thân khi là self. Ba dòng đầu có nền nhạt; dòng của người đang xem được ghim khi cuộn. Trạng thái rỗng: "Chưa có chỉ tiêu cá nhân nào được xuất bản cho kỳ này."

Chỉ tiêu của tôi /me/targets · ô trên trang chủ tuyển sinh và trang chủ giáo viên

Ô trên trang chủ: tối đa năm thanh tiến độ gồm nhãn, thực tế / mục tiêu, phần trăm, "còn thiếu N", số ngày còn lại; dòng cuối "Hạng 3/8 trong chi nhánh" khi được phép xem. Trang đầy đủ: cùng dữ liệu kèm đường tốc độ theo tuần (từ dữ liệu thắng/thua) và danh sách cảnh báo đã nhận. Trạng thái rỗng: "Chưa có chỉ tiêu được giao cho kỳ này."

5Quy tắc nghiệp vụ

metric_keyNhãn (nhóm)KiểuPhạm vi (TT trung tâm, CN chi nhánh)Giá trị thực tế và nguồnGiai đoạn
leads_newLead mới (tuyển sinh)đếmTT, CN, cá nhânlead tạo trong kỳ, trừ lead trùng; nguồn funnelP1
trials_attendedHọc thử (tuyển sinh)đếmTT, CN, cá nhântrial_booking trạng thái attended trong kỳ (PRD 01), quy cho tư vấn viên tạo lượt đặtP1
conversionsChuyển đổi (tuyển sinh)đếmTT, CN, cá nhânlead chuyển sang thắng trong kỳ; nguồn manager-summary, top-salesP1
revenue_signedDoanh thu ký mới (doanh thu)tiềnTT, CN, cá nhântổng giá trị cơ hội của lead thắng trong kỳ; nguồn manager-summary, top-salesP1
revenue_collectedDoanh thu thực thu (doanh thu)tiềnTT, CNtổng thanh toán hợp lệ ghi nhận trong kỳ; nguồn tuitions/statsP1
overdue_collectedThu công nợ quá hạn (doanh thu)tiềnTT, CN, cá nhân (kế toán)thanh toán trong kỳ trên hoá đơn đã quá hạn tại đầu kỳ; nguồn tuitions/stats (mở rộng)P1
attendance_rateTỷ lệ chuyên cần (giáo vụ)tỷ lệTT, CN(có mặt + muộn) / đã điểm danh trên các buổi học trong kỳ (PRD 04)P2
renewal_rateTỷ lệ tái ghi danh (giáo vụ)tỷ lệTT, CNhọc viên có gói kết thúc trong kỳ và có gói mới trong 30 ngày sau / học viên có gói kết thúc trong kỳ (PRD 02, 05)P2
withdrawals_maxHọc viên nghỉ học tối đa (giáo vụ)đếm, càng thấp càng tốtTT, CNhọc viên chuyển sang Đã nghỉ trong kỳ (PRD 02)P2
sessions_taughtSố buổi dạy (giáo viên)đếmcá nhân (giáo viên)buổi học đã diễn ra với vai trò giáo viên chính hoặc dạy thay (PRD 04, 06)P2
parent_ratingĐánh giá của phụ huynh (giáo viên)điểm 1–5cá nhân (giáo viên), CNđiểm trung bình đánh giá của phụ huynh trong kỳ (PRD 07); tối thiểu 5 đánh giáP2
  1. Danh mục chỉ tiêu cố định ở cấp sản phẩm; tenant chọn chỉ tiêu để dùng, không tự định nghĩa công thức; chỉ tiêu có mô-đun nguồn chưa phát hành không hiển thị.
  2. Một target là duy nhất theo (center_id, period_type, period_key); kỳ tháng ghi 2026-10, kỳ quý ghi 2026-Q4. Chỉ tiêu quý và tháng độc lập.
  3. Kiểm tra tổng áp dụng cho kiểu đếm và tiền: tổng dòng con bằng dòng cha, sai số 0. Kiểu tỷ lệ và điểm không kiểm tra tổng; dòng cha dùng thực tế tổng hợp. Ghi đè tổng cần quyền targets.override và lý do tối thiểu 10 ký tự; dòng cha mang cờ sum_overridden.
  4. Phần trăm thời gian đã qua = số ngày đã qua / tổng số ngày của kỳ (múi giờ Asia/Ho_Chi_Minh); tenant có thể bật "tính theo ngày làm việc" để loại chủ nhật và ngày nghỉ lễ của PRD 03. Tốc độ = (thực tế / mục tiêu) / phần trăm thời gian đã qua; dự báo = thực tế / phần trăm thời gian đã qua; chỉ tính từ ngày thứ 3 của kỳ, trước đó hiển thị Chưa đủ dữ liệu.
  5. Ngưỡng trạng thái: Đã đạt khi thực tế lớn hơn hoặc bằng mục tiêu; Đúng tiến độ khi tốc độ từ 0,95; Chậm khi từ 0,80 đến dưới 0,95; Nguy cơ khi dưới 0,80. Với chỉ tiêu càng thấp càng tốt, Nguy cơ khi thực tế / mục tiêu lớn hơn phần trăm thời gian đã qua cộng 0,20. Với kiểu tỷ lệ, so sánh trực tiếp và Chưa đủ dữ liệu khi mẫu số dưới 10.
  6. Cảnh báo tốc độ chỉ gửi từ giữa kỳ, tối đa một lần mỗi 7 ngày cho mỗi dòng; không gửi cho dòng đã đạt hoặc vừa được sửa trong 24 giờ.
  7. Ảnh chụp chạy hằng ngày lúc 23:30 cho mọi kỳ đang mở, kích hoạt tay (quyền quản lý) tối đa 6 lần một giờ; ảnh chụp lưu mục tiêu tại thời điểm chụp nên sửa mục tiêu không thay đổi lịch sử.
  8. Kỳ được chốt tự động sau thời gian chờ đối soát (mặc định 5 ngày, cấu hình 0–15). Sau khi chốt, số liệu không thay đổi; mở lại cần quyền targets.reopen. Sửa mục tiêu sau khi xuất bản luôn cần lý do; xoá chỉ được phép ở trạng thái nháp.
  9. Cá nhân được quy chỉ tiêu theo hồ sơ (sale_profile_id, staff_id), không theo tài khoản đăng nhập; thực tế của cá nhân quy theo người phụ trách chính tại thời điểm sự kiện, không tính lại khi phân công lại.
  10. Xếp hạng luôn theo phần trăm đạt, bằng nhau thì theo giá trị tuyệt đối. Quy tắc thưởng (P2) chỉ tạo bonus_estimate trên ảnh chụp cuối cùng; một cá nhân và một chỉ tiêu áp dụng tối đa một quy tắc trong một kỳ, quy tắc có hiệu lực gần nhất được chọn.

6Mô hình dữ liệu

Thực thểTrườngGhi chú
targetid uuid; center_id; period_type enum(month, quarter); period_key text; status enum(draft, published, closed, archived); working_days bool; grace_days int; ranking_visibility enum(branch, self, all); created_by; published_at; closed_at; version intnew; unique (center_id, period_type, period_key)
target_lineid uuid; target_id; center_id; school_id null; scope enum(center, branch, individual); parent_line_id null; metric_key; owner_type enum(none, sale_profile, staff); owner_id null; goal numeric; direction enum(higher, lower); sum_overridden bool; override_reason null; inactive_owner bool; updated_by; updated_atnew; unique (target_id, metric_key, scope, school_id, owner_id)
target_snapshotid uuid; line_id; center_id; school_id null; snapshot_date; goal_at_snapshot; actual; denominator null; pct; elapsed_pct; pace null; forecast null; status enum(achieved, on_track, behind, at_risk, no_data); is_final bool; computed_atnew; unique (line_id, snapshot_date); denominator cho kiểu tỷ lệ
target_revisionid uuid; target_id; line_id null; action enum(created, published, goal_changed, allocated, overridden, closed, reopened); field; old_value; new_value; reason; actor_id; created_atnew; chi tiết nhật ký, tab Lịch sử
bonus_rule (P2)id uuid; center_id; name; role enum(admissions, teacher, accountant); metric_key; bonus_type enum(pct_of_actual, fixed); tiers [{from_pct, to_pct null, value}]; effective_from period_key; active bool; created_bynew; công thức, không phải khoản chi trả
bonus_estimate (P2)id uuid; line_id; snapshot_id (is_final); rule_id; achieved_pct; tier_index; amount; exported_to_timesheet_at nullnew; PRD 06 đọc để tạo dòng điều chỉnh bảng công

Danh mục chỉ tiêu (metric_key, nhãn vi/en, nhóm, kiểu, phạm vi, chiều, nguồn, mẫu số tối thiểu, giai đoạn) cố định trong mã nguồn. Mọi bảng mang center_id (tenant) và school_id (chi nhánh) khi dòng thuộc một chi nhánh; vai trò phạm vi chi nhánh luôn được lọc theo accessible-schools; dòng phạm vi trung tâm chỉ hiển thị cho vai trò phạm vi tất cả.

7Hợp đồng API

MethodPathMục đíchTrạng thái
GET/v3/crm/dashboard/manager-summaryperiod → conversions, revenue_signed (trung tâm, chi nhánh)existing
GET/v3/crm/dashboard/top-salesperiod → conversions, revenue_signed theo tư vấn viênexisting
GET/v3/crm/dashboard/funnelperiod → leads_new; thêm school_id, assignee_idextend
GET/v3/crm/dashboard/won-lost-trend · /sale-summaryđường tốc độ theo tuần; thẻ hiện có cạnh ô Chỉ tiêu của tôiexisting
GET/v3/teacher/school-finance/tuitions/statsrevenue_collected; thêm overdue_collected_amount, tham số from, to, school_idextend
GET/v3/crm/sale-profiles/lightweight · /v3/crm/me/accessible-schoolsdanh sách cá nhân và chi nhánh khi phân bổexisting
GET · POST/v3/crm/targetsGET period_type, period_key, status → Target[]; POST {period_type, period_key, working_days?, grace_days?, lines: [{metric_key, goal}]} → Target (draft); 409 PERIOD_EXISTSnew
GET/v3/crm/targets/{id}→ Target kèm cây dòng và ảnh chụp gần nhất; as_of để xem tại một ngàynew
PATCH/v3/crm/targets/{id}{working_days?, grace_days?, ranking_visibility?, version}; 409 STALE_VERSIONnew
PUT/v3/crm/targets/{id}/lines{lines: [{id?, metric_key, scope, school_id?, owner_type?, owner_id?, goal, parent_line_id?}], override?: {reason}, reason?} → dòng đã lưu; 422 SUM_MISMATCH kèm chênh lệch theo dòng cha; reason bắt buộc sau xuất bảnnew
POST/v3/crm/targets/{id}/allocate{line_id, method: even | last_period_share, children: [{school_id | owner_id}]} → đề xuất phân bổ, không lưunew
POST/v3/crm/targets/{id}/publish · /close · /reopenreopen cần {reason}; publish trả 422 SUM_MISMATCH khi còn chênh lệch chưa ghi đènew
GET · POST/v3/crm/targets/{id}/snapshots · /revisions · /snapshot→ TargetSnapshot[] (line_id, from, to); TargetRevision[]; POST /snapshot chạy ảnh chụp tay, 429 khi vượt 6 lần một giờnew
GET/v3/crm/targets/boardperiod_type, period_key, scope, school_id?, metric_key? → dòng kèm ảnh chụp gần nhất, lọc theo quyền; format=xlsxnew
GET/v3/crm/targets/rankingperiod_type, period_key, metric_key, school_id? → [{rank, rank_delta, owner, school, goal, actual, pct, pace}]new
GET/v3/crm/targets/me→ dòng cá nhân của người dùng hiện tại kèm thứ hạngnew
GET/POST/PATCH/v3/crm/targets/bonus-rules · /{id}{name, role, metric_key, bonus_type, tiers, effective_from, active}; 422 TIER_OVERLAP; GET /targets/{id}/bonus-estimates → BonusEstimate[] sau chốt kỳ, PRD 06 đọcnew
GET/PUT/v3/school/digest-settingsthêm khối targets: {enabled, metrics[]} cho bản tổng hợp hằng tuần (PRD 09)extend

8Phân quyền

Mã quyềnownerbranch_manageradmissionsacademic_adminaccountantteacher
targets.viewtất cảchi nhánhbản thânchi nhánh (nhóm giáo vụ)chi nhánh (nhóm doanh thu)bản thân
targets.manage (tạo, sửa, xuất bản)códòng cá nhân trong chi nhánhkhôngkhôngkhôngkhông
targets.override, targets.reopencókhôngkhôngkhôngkhôngkhông
targets.ranking.viewtất cảchi nhánhchi nhánh hoặc bản thân (theo cấu hình)khôngkhôngkhông
targets.exporttất cảchi nhánhkhôngkhôngchi nhánhkhông
targets.bonus_rules (P2)cókhôngkhôngkhôngchỉ xemkhông
targets.bonus_estimates.view (P2)tất cảchi nhánhbản thânkhôngtất cảbản thân

Phụ huynh không có quyền nào trong mô-đun này. Phạm vi "bản thân" chỉ trả về dòng có owner_id trùng hồ sơ của người dùng và dòng cha chi nhánh ở dạng chỉ đọc.

9Sự kiện phân tích

Sự kiệnThuộc tính
target_createdperiod_type, metrics_count, copied_from_previous
target_allocatedlevel (branch|individual), method (manual|even|last_period_share), children_count, overridden
target_publishedperiod_type, branch_lines, individual_lines, days_before_period_start
target_goal_changedmetric_key, scope, old, new, days_into_period, by_role
target_board_viewedrole, scope_tab, snapshot_age_hours
target_pace_alert_sentmetric_key, scope, pace, forecast_pct, kind (at_risk|recovered)
target_closed / target_reopenedgrace_days, late_records_after_close
bonus_rule_saved / bonus_estimate_exportedrole, metric_key, tiers_count / lines, total_amount

10Trường hợp biên

11Câu hỏi còn mở

Trường Số (truongso.net) · Nội bộ FLYER