# Prompt template — Báo cáo PDF doanh thu An Nhiên Q1/2026

> Mục đích file này: bạn dùng làm **template prompt** để yêu cầu tạo PDF báo cáo.
> Hãy chỉnh các ô `[ĐIỀN: …]` và mục **Cấu trúc PDF** / **Khuyến nghị** cho phù hợp,
> rồi copy toàn bộ phần "Prompt gửi đi" bên dưới làm tin nhắn tiếp theo.

---

## A. Tham số cần điền trước khi gửi prompt

| Tham số | Giá trị | Ghi chú |
|---|---|---|
| `[KỲ_BÁO_CÁO]` | Q1/2026 (01/01/2026 – 31/03/2026) | Đổi nếu báo cáo Q khác |
| `[NGÀY_PHÁT_HÀNH]` | 02/05/2026 | Hôm nay |
| `[ĐỐI_TƯỢNG]` | Giám đốc vận hành & Ban giám đốc | Quyết định độ sâu commentary |
| `[MỤC_ĐÍCH]` | Tổng kết Q1, xác định CN/SP cần can thiệp, ra quyết định Q2 | Quyết định trọng tâm phần "Khuyến nghị" |
| `[ĐỘ_DÀI]` | 10–14 trang A4 portrait | Tăng/giảm tuỳ nhu cầu |
| `[FILE_NGUỒN]` | `Tuan3_AnNhien_DoanhThu_Q1_2026.xlsx` | Tên file đính kèm |
| `[TÊN_FILE_OUTPUT]` | `BaoCao_AnNhien_Q1_2026.pdf` | Tên PDF cần xuất |
| `[NGÔN_NGỮ]` | Tiếng Việt | Đổi nếu cần song ngữ |
| `[MỨC_BẢO_MẬT]` | CONFIDENTIAL · Internal Use Only | Hiển thị ở footer |

---

## B. Prompt gửi đi (copy từ dòng `---` bên dưới trở xuống)

---

Bạn là **data analyst kiêm thiết kế báo cáo điều hành**. Hãy đọc file Excel `[FILE_NGUỒN]` đính kèm và tạo MỘT file PDF tên `[TÊN_FILE_OUTPUT]` — báo cáo `[KỲ_BÁO_CÁO]` cho chuỗi cà phê An Nhiên, gửi `[ĐỐI_TƯỢNG]`, mục đích `[MỤC_ĐÍCH]`. Ngày phát hành `[NGÀY_PHÁT_HÀNH]`, ngôn ngữ `[NGÔN_NGỮ]`, độ dài `[ĐỘ_DÀI]`.

# 1. Bối cảnh dữ liệu (giống dashboard tuần 3)
File có 5 sheet, chỉ dùng 4 sheet sau (bỏ "Hướng dẫn"):
- **Giao dịch** (~866 dòng) — dữ liệu chính, **DỮ LIỆU BẨN**.
- **Chi nhánh** — bảng tham chiếu, cột "Mã chi nhánh" và "Tên chính thức" là chuẩn.
- **Sản phẩm** — bảng giá chuẩn để đối chiếu giá nhập sai.
- **Mục tiêu KPI** — chỉ tiêu doanh thu / số đơn Q1 cho từng chi nhánh.

**Quy tắc làm sạch (áp dụng đúng như đã thống nhất):**
- Cột "Thời gian" có 5 định dạng. Quy tắc: nếu phần đầu > 12 → `dd/mm`; nếu phần giữa > 12 → `mm/dd`; còn lại default `dd/mm` theo VN. Hỗ trợ Excel serial date.
- "Chi nhánh" có 5–6 cách viết — chuẩn hoá về "Tên chính thức" bằng fuzzy match (bỏ dấu + token overlap).
- "Mã SP" → UPPERCASE không khoảng trắng/gạch.
- "Số lượng": null/text → loại; **giữ giá trị âm** và đánh dấu là refund.
- "Đơn giá": parse `"35,000 VND"` → 35000; nếu thiếu → tra từ sheet Sản phẩm.
- 8 dòng duplicate hoàn toàn → loại; 5 dòng rỗng giữa dữ liệu → loại.
- 3 outlier (qty/price bất thường) → **GIỮ LẠI** và đánh dấu để xuất hiện trong section "Giao dịch bất thường".

# 2. Cấu trúc PDF — `[ĐỘ_DÀI]`, A4 portrait, lề 20mm

1. **Trang bìa** — logo An Nhiên (placeholder text nếu chưa có file logo), tiêu đề "Báo cáo doanh thu `[KỲ_BÁO_CÁO]`", phụ đề "Chuỗi cà phê An Nhiên · 5 chi nhánh", ngày phát hành, mã báo cáo `AN-Q1-2026-EXEC`, dải màu pastel chủ đạo. Không header/footer.
2. **Mục lục tự động** — clickable, hiển thị số trang.
3. **Tóm tắt điều hành (Executive Summary)** — đúng 1 trang. Mở đầu bằng 4 KPI lớn dạng card (Doanh thu Q1 / Số đơn / AOV / % đạt KPI). Sau đó **5 bullet** quan trọng nhất theo cấu trúc *"Phát hiện → Ý nghĩa → Hành động đề xuất"*. Kết thúc bằng 1 câu kết luận tổng.
4. **Bối cảnh & chất lượng dữ liệu** — bảng tóm tắt: dòng gốc / dòng loại theo từng nguyên nhân (duplicate, rỗng, qty/date/branch lỗi) / dòng đã sửa (giá, tên CN) / dòng nghi ngờ giữ lại / dòng sạch cuối cùng. Ghi chú giới hạn dữ liệu (vd: thiếu Mã đơn → AOV tính theo dòng GD).
5. **Tổng quan kết quả `[KỲ_BÁO_CÁO]`** — 4 KPI lớn + so sánh với mục tiêu Q1 tổng (đạt / vượt / thiếu bao nhiêu %, bao nhiêu ₫).
6. **Doanh thu theo chi nhánh** — bar chart có overlay đường KPI (xanh = đạt, đỏ = chưa) + bảng chi tiết: Doanh thu / KPI / %đạt / Gap (₫) / Số đơn / AOV. Commentary 3–4 câu: ai dẫn đầu, ai cần can thiệp, gap lớn nhất là bao nhiêu.
7. **Xu hướng theo ngày & tháng** — line chart đa-chi-nhánh theo tuần (smoothed), bảng tóm tắt theo tháng (T1/T2/T3) — DT từng tháng, growth MoM. Commentary: đỉnh/đáy, có pattern thứ trong tuần không.
8. **Phân tích sản phẩm** — top 10 SP theo doanh thu (horizontal bar) + donut Đồ uống vs Đồ ăn vs Khác + 5 SP bán chậm nhất. Commentary tập trung vào **mix sản phẩm**: tỷ lệ đồ uống/đồ ăn có cân không, top 3 SP đóng góp bao nhiêu % tổng DT.
9. **Giao dịch bất thường** — bảng outlier (tối đa 25 dòng đại diện, sort theo độ nghi ngờ giảm dần) gồm cột: Thời gian / Chi nhánh / Mã SP / Tên SP / SL / Đơn giá / Thành tiền / **Lý do nghi ngờ** (chips: refund / SL > P99 / giá lệch >20% / Mã SP không có trong bảng giá). Tổng số refund (₫) + tổng số GD nghi ngờ ở đầu section.
10. **Phát hiện & khuyến nghị cho Q2** — `[3–5]` đề xuất hành động, mỗi đề xuất có cấu trúc:
    - **Vấn đề** (1 câu, kèm số liệu)
    - **Đề xuất** (việc cụ thể, không chung chung)
    - **Owner** (placeholder vai trò: Quản lý CN / Marketing / Vận hành)
    - **KPI đo lường thành công** (số cụ thể)
    - **Deadline đề xuất**
11. **Phụ lục A — Phương pháp luận** — quy tắc làm sạch chi tiết, công thức AOV, định nghĩa "giao dịch nghi ngờ".
12. **Phụ lục B — Bảng dữ liệu KPI từng chi nhánh** — số đầy đủ.

# 3. Yêu cầu trình bày & branding

- **Palette pastel chuyên nghiệp**: `#2E75B6` chủ đạo, `#ED7D31` nhấn, `#16A34A` đạt KPI, `#DC2626` cảnh báo, nền `#F6F8FB`, line `#E5E7EB`.
- **Font**: Inter hoặc Be Vietnam Pro cho heading + body. Fallback: system-ui / DejaVu Sans (nếu engine không có Inter, dùng font có sẵn nhưng đảm bảo render được tiếng Việt có dấu).
- **Header mỗi trang** (trừ bìa & mục lục): "An Nhiên · Báo cáo `[KỲ_BÁO_CÁO]`" bên trái, tên section bên phải.
- **Footer mỗi trang**: số trang `n / tổng`, tên file, dòng `[MỨC_BẢO_MẬT]`.
- **Số tiền VN**: `1.234.567 ₫` (chấm phân nhóm, ký tự ₫ ở sau).
- **Phần trăm**: `12,3%` (dấu phẩy thập phân).
- **Bảng zebra** (xen kẽ nền `#FAFBFD`), header bảng nền `#EAF2FB`, viền `#E5E7EB`.
- **Charts**: vector (SVG) hoặc PNG ≥ 150 DPI. Mỗi chart có **tiêu đề** trên + **caption nguồn** dưới (`Nguồn: Sheet Giao dịch sau làm sạch, n=...`). Không dùng background 3D, không gradient cầu kỳ. Label trên cột nếu giá trị quan trọng. Đảm bảo đọc được khi in đen-trắng (dùng pattern hoặc đậm-nhạt hỗ trợ màu).
- **Khoảng trắng**: section mới bắt đầu trang mới (page break trước mỗi heading H1).

# 4. Tiêu chuẩn nội dung định tính (commentary)

Với mỗi chart/bảng, viết **2–4 câu nhận xét** theo công thức **OBSERVATION → CAUSE (nếu suy được) → ACTION**. Tránh:
- Ngôn ngữ marketing ("tuyệt vời", "ấn tượng", "bùng nổ").
- Phát biểu không có số liệu hỗ trợ.
- Lặp lại con số đã có trong chart — thay bằng *so sánh, ratio, gap*.

Ví dụ tốt: *"CN Hoàn Kiếm dẫn đầu với 215M ₫ (vượt KPI 7,5%), trong khi CN Phú Nhuận chỉ đạt 78% KPI — gap 33M ₫. Phần lớn chênh lệch tập trung tháng 2; đề xuất rà soát nhân sự ca chiều CN Phú Nhuận."*

# 5. Tech approach

Dùng Python theo hướng dẫn trong skill `pdf` (đọc `SKILL.md` trước khi code). Hai phương án ưu tiên:
- **ReportLab + matplotlib** — chart vector trực tiếp, layout chính xác, font tiếng Việt cần config rõ.
- **HTML + WeasyPrint** — layout linh hoạt hơn (CSS giống dashboard), font tiếng Việt dễ hơn.

Chọn cái nào tuỳ skill khuyến nghị; ghi rõ trong response chọn vì sao.

**Không** dùng pypdf để tạo nội dung từ đầu (chỉ dùng nếu cần hậu kỳ merge / watermark).

# 6. Tiêu chuẩn chất lượng (acceptance criteria)

Trước khi giao file, tự kiểm tra:
- [ ] PDF mở được trên Preview (macOS) / Adobe / Chrome không lỗi font tiếng Việt.
- [ ] Tất cả số liệu trong **Tóm tắt điều hành** **trùng khớp** với số trong các section chi tiết.
- [ ] Mục lục clickable, dẫn đúng trang.
- [ ] Mỗi chart có tiêu đề + caption nguồn, không có chart "trần".
- [ ] Bảng giao dịch nghi ngờ có **ít nhất 3 outlier** (vì spec dữ liệu có 3) và mỗi dòng có lý do.
- [ ] Header/footer xuất hiện đúng từ trang 2 trở đi, KHÔNG có ở trang bìa.
- [ ] Không còn placeholder "Lorem ipsum" / `[ĐIỀN: ...]` / TODO trong PDF cuối.
- [ ] File ≤ 5 MB.

# 7. Output mong đợi

1. File PDF tại đường dẫn workspace folder, đặt tên `[TÊN_FILE_OUTPUT]`.
2. Một báo cáo ngắn (≤ 10 dòng) trong chat: chọn engine gì & vì sao, KPI tổng, chi nhánh đạt/không đạt, số GD nghi ngờ, link mở file.
3. **Không** in toàn bộ nội dung PDF ra chat.

---

## C. Checklist trước khi gửi prompt

- [ ] Đã thay tất cả `[ĐIỀN: ...]` và các tham số trong bảng A
- [ ] Đã quyết định độ dài (mục `[ĐỘ_DÀI]`) và số khuyến nghị Q2 (mục 10)
- [ ] Đã đính kèm file Excel nguồn vào tin nhắn
- [ ] (Tùy chọn) Đính kèm file logo nếu có, ngược lại bỏ qua — prompt đã cho phép placeholder

---

## D. Biến thể nhanh

Nếu muốn rút gọn / mở rộng, đổi nguyên khối Cấu trúc PDF (mục 2) bằng một trong các preset sau:

**Preset "1-pager"** (1 trang, dán email):
> Bỏ tất cả section ngoài: Tóm tắt điều hành (4 KPI + 3 bullet) + bảng chi nhánh (DT/KPI/%đạt) + 3 khuyến nghị.

**Preset "Deep dive"** (20+ trang):
> Thêm section "Phân tích cohort khách hàng theo CN", "So sánh giờ cao điểm", "Phân tích basket — SP đi cùng nhau".

**Preset "Board pack"** (gửi HĐQT):
> Bổ sung section "Tài chính tổng — Doanh thu vs ngân sách", "Rủi ro & kế hoạch ứng phó Q2", và phần trang bìa có chữ ký Giám đốc vận hành.
