Planner · Phê duyệt forecast
Quick Reference — Trang
/planner/forecast/review→ lọc theo Tier → đọc Δ vs P85 → bấm duyệt/sửa/từ chối → ghi note (bắt buộc nếu Δ > 30%).
Trước khi bắt đầu (mỗi sáng)
| # | ▶ | ✅ |
|---|---|---|
| 1 | Vào /planner/forecast/review | Bảng queue hiện |
| 2 | Lọc state ∈ (NEW, SEEN) | Số dòng bằng số yêu cầu chờ |
| 3 | Sort theo target_date asc | Yêu cầu sớm lên trên |
Đọc 1 dòng adjustment
| Cột | Đọc gì | Cảnh báo |
|---|---|---|
customer × warehouse | Cặp KH × Kho | – |
target_date | Ngày forecast cần áp | 🔴 Nếu < 24h → ưu tiên |
kam_qty | Số KAM gửi | – |
baseline_avg | TB lịch sử cùng kỳ | – |
p85 | Phân vị 85 | – |
Δ% | (kam_qty − p85) / p85 | 🟡 15–30% · 🔴 >30% |
sample_size | n đơn lịch sử | 🔴 < 10 → fallback warning |
note | Lý do KAM ghi | – |
Decision tree
flowchart TD
Read([Đọc 1 dòng]) --> Q1{Δ vs P85?}
Q1 -->|≤15% 🟢| A1[Bấm 'Duyệt' nhanh]
Q1 -->|15–30% 🟡| A2[Bấm 'Duyệt' + note ngắn]
Q1 -->|>30% 🔴| A3{Có note + dẫn chứng?}
A3 -->|Có| A4[Duyệt + note + Δ rationale]
A3 -->|Không| A5[Bấm 'Yêu cầu bổ sung'<br/>state vẫn NEW/SEEN]
A1 --> Done
A2 --> Done
A4 --> DoneCác nút bấm
| Nút | Hành động | Kết quả DB |
|---|---|---|
| Duyệt | accept nguyên kam_qty | state=ACCEPTED, audited_qty=kam_qty |
| Sửa & duyệt | nhập qty khác | state=ACCEPTED, audited_qty=qty-của-bạn |
| Từ chối | reject | state=REJECTED, audited_qty=baseline |
| Yêu cầu bổ sung | gửi note ngược KAM | giữ state, gửi notification |
Bắt buộc ghi note
- Khi
Sửa & duyệt: phải nhập note giải thích vì sao đổi số - Khi
Δ > 30%với quyết định Duyệt: phải có ≥ 1 câu dẫn chứng lịch sử hoặc info từ KAM
Phím tắt
| Phím | Hành động |
|---|---|
J / K | Di chuyển dòng xuống / lên |
A | Duyệt nhanh dòng đang chọn (chỉ khi Δ ≤ 15%) |
E | Mở dialog "Sửa & duyệt" |
R | Mở dialog "Từ chối" |
Esc | Đóng dialog |
Sau khi duyệt
✅ Audit log tự động ghi 1–2 dòng:
STATE_CHANGE: NEW/SEEN → ACCEPTEDQTY_EDIT(nếu có sửa qty): before/after + reason
✅ forecast_result.audited_qty cập nhật ngay → Warehouse Manager đọc thấy số mới ở /planner/forecast/warehouse.
Lỗi thường gặp
"Không thể duyệt: thiếu note"
Δ vượt 30% phải có note. Nhập 1 câu mô tả + ấn duyệt lại.
"State không hợp lệ"
Adjustment đã ở ACCEPTED/REJECTED (ai đó vừa duyệt trước bạn). Refresh trang.
"Sample size quá nhỏ (n < 10) — engine fallback"
Cặp KH × Kho × Event chưa đủ data lịch sử. Engine fallback về event_type=NORMAL. Cân nhắc: duyệt theo kinh nghiệm + ghi note rõ "fallback".
Tip nâng cao
💡 Lọc Tier = KEY trước → xử lý khách lớn ưu tiên 💡 Mỗi sáng nên close hết NEW > 24h để không vi phạm SLA 💡 Note format gợi ý: [Δ%] [event] [evidence] [decision] ví dụ +72% MID_MONTH livestream KOL_A 2/6 → duyệt