Quy tắc Làm sạch & Xử lý Bẫy Dữ liệu DWH
Sáu quy tắc làm sạch bắt buộc khi chuẩn hóa dữ liệu từ DWH sang Parquet: lọc thành phẩm thương mại, loại dòng chiết khấu tiền tệ, tách hàng tặng FOC và làm sạch tồn kho.
Tại sao Cần Bộ Quy tắc Làm sạch Dữ liệu Chuẩn?
Quá trình đối soát dữ liệu thực tế trên Kho dữ liệu (DWH) cho thấy các bảng giao dịch gốc lưu giữ đầy đủ cả bút toán kế toán, vật phẩm trưng bày, hàng khuyến mãi và các kho tạm chờ hủy. Nếu đưa nguyên trạng dữ liệu thô vào mô hình dự báo mà không qua bộ lọc chuẩn, kết quả dự báo sẽ bị sai lệch nghiêm trọng.
Toàn bộ 6 quy tắc làm sạch dưới đây đã được tích hợp tự động vào bước tạo tệp Parquet chuẩn hóa, đảm bảo mọi người dùng và mọi mô hình đều làm việc trên cùng một nền dữ liệu sạch.
Sáu Quy tắc Làm sạch Bắt buộc
Chỉ Giữ Thành phẩm Thương mại
Danh mục hàng hóa trong hệ thống ERP/DWH bao gồm cả hàng hóa bán thương mại lẫn vật tư quảng cáo, quà tặng và mã hạch toán chiết khấu. Nhiều vật phẩm quà tặng (như móc khóa, bình nước, áo mưa) có hệ số quy đổi bằng 1, nên nếu không lọc bỏ thì mỗi cái quà tặng sẽ bị cộng nhầm thành một thùng hàng.
| Nhóm Mã Sản Phẩm | Bản chất Nghiệp vụ | Quy tắc Xử lý trong Dữ liệu Dự báo |
|---|---|---|
| Nhóm mã bắt đầu bằng 11 | Thành phẩm thương mại (Kem, sữa, thực phẩm lạnh kinh doanh chính) | Giữ lại 100% |
| Nhóm mã 19, 20, 21, 30, 50, 51, 60 | Vật phẩm quảng cáo (POSM), bao bì, quà tặng phi thực phẩm | Loại bỏ hoàn toàn |
| Nhóm mã 71 | Dòng bút toán hạch toán chiết khấu kỹ thuật | Loại bỏ hoàn toàn |
| Nhóm mã SD, UN | Thiết bị tủ đông, mã sản phẩm tạm không xác định | Loại bỏ hoàn toàn |
Loại bỏ Dòng Bút toán Tiền tệ Thuần, Đơn Lỗi Nhập liệu, Tràn Doanh thu 100 Triệu, Kênh Thanh lý Nội bộ & Tách riêng Hàng Trả
- Dòng chiết khấu ghi theo đơn vị tiền tệ (VND): Trong dữ liệu đơn hàng gốc, có một tỷ lệ nhỏ (~0,12%) dòng bút toán điều chỉnh tiền chiết khấu sử dụng đơn vị tính là đồng tiền (VND) và ghi số tiền trực tiếp vào cột số lượng. Hệ thống bắt buộc loại bỏ hoàn toàn các dòng đơn vị tiền tệ này trước khi tính sản lượng thùng.
- Đơn lỗi nhập liệu cực đoan, tràn doanh thu
99.999.999,99đồng, doanh thu $\le 0$, kênh thanh lý nội bộ và phiếu giao gõ nhầm năm: Bước làm sạch tự động loại bỏ25.849dòng bất thường trong tập thương mại (đưa bảng dữ liệu từ3.949.821về3.923.972dòng sạch), bao gồm:4dòng đơn lỗi nhập liệu vượt quá5.000thùng/cửa hàng/SKU/ngày trên DWH (Satrafoods Lê Trọng Tấn58.181,5thùng,Satrafoods Trần Văn Mười58.181,0thùng,Co.opMart SCA Goldsilk23.000và18.900thùng).48dòng bị tràn/gán cứng doanh thu thuần ở mức trần99.999.999,99đồng/dòng (làm tròn100.000.000đồng/dòng, hoặc bội số199.999.999,98/1.199.999.999,88đồng khi gộp nhiều dòng, tổng cộng6.542,5thùng và6,40 tỷ đồngdoanh thu ảo — bao gồm đơnSatrafoods Dương Đình Hội 2gõ nhầm23.000cái kem, 3 dòngBách Phúc Phươngvà các đơn lẻ tạiAEON,Lotte,Pharmacity,GS25,SURIO,Labcosbị treoAPPROVEDkhông giao).24.527dòng giao dịch thuộc kênhKhách hàng GT Nội bộ(39.767,7thùng) — bản chất là xuất thanh lý/nội bộ cho nhân viên và văn phòng với đơn giá cực thấp (9.259 – 55.555đồng/thùng, chỉ bằng3% – 16%giá niêm yết), không phải nhu cầu thị trường.495dòng đơn thương mại có sản lượng đặt dương nhưng doanh thu thuần $\le 0$ (45.558,0thùng) và470dòng sản lượng đặt hàng bị âm (-487,6thùng).265dòng ngày tương lai xa (2026-11đến2030-08) chỉ phát sinh từ phiếu giao hàng gõ nhầm năm mà không có đơn đặt hàng (ordered_line_count == 0), cùng60dòng thuộc kho thử nghiệm nội bộ (TEST).- Chuẩn hóa mã quản lý vùng
rsm_codebị thiếu số0('300002'$\to$'3000002').
- Đơn hàng trả lại (Return): Toàn bộ các phiếu trả hàng được tách sang chỉ tiêu hàng trả riêng biệt, tuyệt đối không cộng gộp vào sản lượng nhu cầu đặt hàng.
- Lưu ý về Đứt gãy Cấu trúc (Structural Breaks) giữa Lịch sử Excel (
202101–202503) và DWH (202504+):- Loại kho
NPP(serving_warehouse_type_code == 'NPP'): Giai đoạn Excel gần như không tách mã khoNPP, nhưng từ2025-04trên DWH ghi nhận đầy đủ (25.000 – 49.307,9thùng/tháng). - Kho trung chuyển (DC) của Bách Hóa Xanh (
2000970-00178): Điểm bánKho DC mini đông mát Trần Đại Nghĩa (Kho Tạm)nhận hàng tập trung cho chuỗi BHX (2.106 – 3.838thùng/SKU/tháng), cần lưu ý khi phân tích ở cấp cửa hàng lẻ. - Nhãn hàng của nhà cung cấp
WAL(Wall’s) và phân cấp nhân sự (ASM/SUP/RSM): Cộtbrand_level_1_namehiện đểNULLđối với mã nhà cung cấpWAL, và các cột nhân sự bán hàng chỉ có dữ liệu từ kỳ DWH (202504+).
- Loại kho
Phân tách Minh bạch Hàng Thương mại Có Tính tiền và Hàng Tặng (FOC)
Trong thực tế bán hàng, hàng tặng khuyến mãi có thể xuất hiện dưới hai hình thức: đơn hàng tặng 100% không thu tiền hoặc dòng hàng tặng kèm nằm chung trong một đơn hàng thương mại. Do đó, hệ thống tách bạch hai chỉ tiêu:
- Tổng sản lượng đặt (gồm cả hàng tặng): Dùng cho bài toán tính tải trọng kho vận và điều phối giao hàng.
- Sản lượng đặt thương mại thuần (chỉ tính hàng có doanh thu): Đã bóc tách riêng phần hàng tặng kèm để đánh giá đúng sức mua thực chất của thị trường.
Làm sạch Tồn kho Thương mại Khả dụng
Khi tổng hợp số liệu tồn kho cuối ngày để tính tỷ lệ đứt hàng (Stockout Rate) và cân đối cung ứng:
- Chỉ giữ các kho con (Subinventory) hàng thương mại (bắt đầu bằng ký tự số 1): Loại bỏ hoàn toàn các kho con bắt đầu bằng số 2, 3, 4 (vốn là kho quản lý tài sản, tủ đông, hàng hư hỏng chờ hủy hoặc kho thiết bị).
- Loại bỏ các vị trí lưu kho (Locator) chờ xử lý: Không tính vào tồn kho khả dụng các lô hàng đang nằm tại vị trí Chờ xử lý (CXL) hoặc Chờ xuất trả nhà cung cấp (CXK).
Bảo toàn Đầy đủ Điểm bán trên Cây Kênh Phân phối
Cây phân cấp kênh bán hàng gồm 3 bậc (Kênh cấp 1 $\to$ Kênh cấp 2 $\to$ Kênh chi tiết). Một số điểm bán trên thực tế được gắn trực tiếp vào nút Kênh cấp 1 hoặc Kênh cấp 2 mà không đi qua cấp con thấp hơn. Bộ quy tắc chuẩn hóa tự động điền mã kênh cấp tương ứng cho các điểm bán này để đảm bảo 100% cửa hàng đều được phân loại đầy đủ khi lên báo cáo theo kênh.
Hợp nhất Phiên bản Lịch sử & Nối Mã Sản phẩm Kế thừa
- Quản lý thay đổi thông tin cửa hàng/sản phẩm theo thời gian: Khi một cửa hàng đổi tên hoặc cập nhật thông tin hành chính, hệ thống kho dữ liệu sinh thêm bản ghi lịch sử mới nhưng vẫn giữ nguyên mã định danh tự nhiên của cửa hàng/sản phẩm đó để chuỗi sản lượng không bị chia cắt.
- Nối mã sản phẩm kế thừa về 473 SKU gốc: Các mặt hàng thay đổi mã quản lý qua các năm (nhưng bản chất vẫn là cùng một sản phẩm thương mại) được tự động nối tiếp lịch sử về 473 mã sản phẩm gốc (Root SKU), giúp mô hình nhìn thấy trọn vẹn chu kỳ mùa vụ liên tục hơn 69 tháng.