Skip to content

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)

#
1Vào /planner/forecast/reviewBảng queue hiện
2Lọc state ∈ (NEW, SEEN)Số dòng bằng số yêu cầu chờ
3Sort theo target_date ascYêu cầu sớm lên trên

Đọc 1 dòng adjustment

CộtĐọc gìCảnh báo
customer × warehouseCặp KH × Kho
target_dateNgày forecast cần áp🔴 Nếu < 24h → ưu tiên
kam_qtySố KAM gửi
baseline_avgTB lịch sử cùng kỳ
p85Phân vị 85
Δ%(kam_qty − p85) / p85🟡 15–30% · 🔴 >30%
sample_sizen đơn lịch sử🔴 < 10 → fallback warning
noteLý do KAM ghi

Decision tree

mermaid
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 --> Done

Các nút bấm

NútHành độngKết quả DB
Duyệtaccept nguyên kam_qtystate=ACCEPTED, audited_qty=kam_qty
Sửa & duyệtnhập qty khácstate=ACCEPTED, audited_qty=qty-của-bạn
Từ chốirejectstate=REJECTED, audited_qty=baseline
Yêu cầu bổ sunggửi note ngược KAMgiữ 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ímHành động
J / KDi chuyển dòng xuống / lên
ADuyệt nhanh dòng đang chọn (chỉ khi Δ ≤ 15%)
EMở dialog "Sửa & duyệt"
RMở dialog "Từ chối"
EscĐóng dialog

Sau khi duyệt

✅ Audit log tự động ghi 1–2 dòng:

  • STATE_CHANGE: NEW/SEEN → ACCEPTED
  • QTY_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