Dữ liệu Hệ thống Tự lấy & Tự tính

Bảy tệp đầu vào của một lượt chạy dự báo, từng trường hệ thống tự lấy từ DWH kèm bảng nguồn, và từng phép tính hệ thống tự làm mà không cần người nhập.

1.0 (Draft) ✓ Đã chốt giải pháp & mô hình dự báo

Mọi dữ liệu trên trang này không cần ai nhập. Giao diện chỉ được hiển thị và cho lọc theo chúng, không làm ô sửa: hệ thống đọc DWH bằng tài khoản chỉ đọc, và sửa tay vào đây là làm hỏng dữ liệu gốc. Khi thấy số nguồn sai, người dùng báo cho đội Kho dữ liệu (repo bi-dw).

1. Bảy tệp đầu vào của một lượt chạy

Bộ số chốt đọc 7 tệp Parquet, không truy vấn thẳng DWH trong lúc chạy. Số liệu dưới đây đo trên bộ tệp ngày 26/10/2026.

#TệpHạtPhạm viQuy môNguồn trong DWHDùng để làm gì
1model_lab/out/panel/lich_su_all_202504_202609.parquetCửa hàng × mã hàng × tháng04/2025 – 09/20261.311.486 dòngfact_order_lines, dim_stores, dim_products, dim_account_channelsNhãn: sản lượng thùng để dựng mọi chuỗi kho, chuỗi, cửa hàng
2model_lab/out/panel/lich_su_subinv_202504_202609.parquetKho × kho con × mã hàng × tháng01/2026 – 09/202637.021 dòngNhư trên, kèm kho conDựng chuỗi kho con
3model_lab/out/panel/daily_all_202504_202609.parquetCửa hàng × mã hàng × ngày01/04/2025 – 30/09/20261.857.193 dòngNhư tệp 1Nhịp nửa đầu/nửa cuối tháng, số cửa hàng, số ngày có đơn
4model_lab/out/panel/panel_all_202504_202608_smp1.parquetCửa hàng × mã hàng × tháng05/2025 – 08/20263.934.074 dòng × 72 cột · 20.883 cửa hàng · 495 mã17 bảng qua model_lab/sql/panel_causal.sql, cộng 5 cột khuyến mãi gắn thêm — xem mục 2Thuộc tính cửa hàng và mã hàng, chiết khấu, hàng tặng, tồn kho, viếng thăm, tủ đông, thời tiết
5model_lab/out/panel/revenue_all_202504_202609.parquetKênh × mã hàng × tháng04/2025 – 09/202612.986 dòngfact_order_linesDoanh thu, dùng làm trọng số
6out/export/trade_promotions_full.parquetDòng CTKMTháng bắt đầu 08/2024 – 12/20266.368 dòng × 53 cộtuser_uploads.trade_promotionsLịch CTKM. Đây là dữ liệu người dùng nhập (Trade), hệ thống chỉ đọc lại — xem trang Dữ liệu Người dùng Nhập
7forecast_demo/data/store_lookup.parquetCửa hàng—20.883 dòngdim_storesTên cửa hàng để hiển thị

Tên tệp đang viết cứng trong mã (yearly_3grains.py, hằng PANEL_PATH, HIST_PATH…). Muốn chạy kỳ 11/2026 phải dựng lại tệp đến 10/2026 và sửa tên tệp. Việc tham số hoá kỳ chạy nằm trong danh sách hạng mục kỹ thuật đang làm.

Bộ lọc chung của tệp 1, 3, 4, 5: chỉ lấy mã hàng thành phẩm (mã ORC bắt đầu bằng 11), bỏ dòng có uom = 'VND' (dòng tiền chiết khấu ghi vào cột số lượng), bỏ đơn trả hàng. Chi tiết các bộ lọc ở trang Quy tắc Làm sạch & Xử lý Bẫy Dữ liệu DWH.


2. Trường hệ thống tự lấy từ DWH

Các bảng dưới liệt kê từng trường của panel (tệp 4) và tệp lịch sử. Cột “Mô hình chốt dùng” cho biết trường đi vào đâu:

  • Chronos — chuỗi đầu vào của Chronos-2 và lõi mùa vụ.
  • Cây — 50 biến lịch sử của tầng cây.
  • Ngoại sinh #n — biến thứ n trong 28 biến ngoại sinh (danh mục).
  • Khoá / Hiển thị — chỉ để ghép bảng hoặc in báo cáo.
  • Chưa dùng — có sẵn nhưng bộ số chốt chưa đọc.

2.1. Đơn hàng và sản lượng

Tên trườngÝ nghĩaNguồnMô hình chốt dùng
thungSản lượng thùng (tệp 1, 2, 3)fact_order_linesChronos, Cây — là nhãn
sales_qty_cartonSản lượng thùng (tệp 4)fact_order_linesNgoại sinh #18 (mẫu số doanh thu/thùng)
sales_qtySản lượng theo đơn vị gốcfact_order_linesChưa dùng
net_revenueDoanh thu thuầnfact_order_linesNgoại sinh #18
revenueDoanh thu theo kênh × mã × tháng (tệp 5)fact_order_linesTrọng số, đối chiếu
co_muaCờ có phát sinh muaTính trong truy vấnChưa dùng
so_ngay_co_donSố ngày có đơn trong thángfact_order_linesChưa dùng (đã có grp_odays_l0 tính từ đơn ngày)
order_countSố đơnfact_order_linesNgoại sinh #16 (mẫu số)
so_dong_focSố dòng hàng tặngfact_order_linesNgoại sinh #16
canceled_qtySản lượng bị huỷfact_order_linesChưa dùng
avg_days_to_deliverySố ngày giao bình quânfact_order_linesChưa dùng

2.2. Giá, chiết khấu và khuyến mãi đã áp

Tên trườngÝ nghĩaNguồnMô hình chốt dùng
discount_rateTỷ lệ chiết khấufact_order_linesNgoại sinh #14, #17
discount_amountTiền chiết khấufact_order_linesChưa dùng
total_discount_amountTổng tiền chiết khấu theo mã × thángstaging.ds_report_order_details (gắn thêm vào panel bởi feature_engineering.augment_panel_with_promos)Chưa dùng
promo_applied_ratioTỷ lệ dòng đơn có ghi chương trình KM, theo mã × thángstaging.ds_report_order_details (gắn thêm như trên)Ngoại sinh #15
effective_unit_priceĐơn giá thực sau giảmfact_order_linesChưa dùng
avg_unit_priceĐơn giá bình quânfact_order_linesChưa dùng
discount_pct_stddevĐộ lệch chuẩn tỷ lệ chiết khấufact_order_linesChưa dùng
is_on_promo, promo_days, promo_depthCờ, số ngày và độ sâu CTKM của thánguser_uploads.trade_promotions theo cửa sổ đặt hàng (sell-in) (gắn thêm như trên)Chưa dùng ở bộ số chốt

Trừ ba cột cuối, các trường ở bảng này là số sau khi đã bán — chiết khấu thực tế đã áp lên đơn. Chúng khác lịch CTKM do Trade nhập (kế hoạch trước khi bán).

2.3. Tồn kho và hết hàng

Tên trườngÝ nghĩaNguồnMô hình chốt dùng
stockout_daysSố ngày hết hàngfact_inventory_lot_snapshot, fact_inventory_daily_balances, meta.ml_inv02_daily_stockChronos (khử phần cầu bị hết hàng che), Ngoại sinh #22
stock_tracked_daysSố ngày có theo dõi tồnNhư trênChronos, Ngoại sinh #22 (mẫu số)
in_stock_daysSố ngày còn hàngNhư trênChưa dùng
stock_sourceTồn lấy từ lô (LOT) hay từ số dư (BALANCE)Như trênChưa dùng
has_stock_dataCờ có dữ liệu tồnNhư trênChưa dùng

Dữ liệu tồn theo lô chỉ có từ 09/06/2026. Trước mốc này phần lớn dòng không có số ngày hết hàng.

2.4. Viếng thăm và tài sản tại điểm bán

Tên trườngÝ nghĩaNguồnMô hình chốt dùng
visit_compliance_rateTỷ lệ tuân thủ tuyến viếng thămfact_visits, fact_roadmap_storesNgoại sinh #23
visit_daysSố ngày có viếng thămfact_visitsChưa dùng
has_visit_dataCờ có dữ liệu viếng thămfact_visitsChưa dùng
pjp_routeTuyến bán hàngfact_roadmap_storesChưa dùng
freezer_countSố tủ đông tại cửa hàngfact_asset_inventoryNgoại sinh #24

2.5. Thuộc tính cửa hàng

Tên trườngÝ nghĩaNguồnMô hình chốt dùng
store_key, store_codeKhoá và mã cửa hàngdim_storesKhoá
kenh_l1, kenh_l2, channel_codeKênh cấp 1, cấp 2, mã kênh chi tiếtdim_account_channelsKhoá — chia chuỗi theo kênh; kenh_l1 vào Cây khi tách kênh
serving_warehouse_keyKho phục vụ cửa hàngSuy từ đơn hàngKhoá — xác định cửa hàng thuộc kho nào
store_brand_codeMã chuỗi của cửa hàngdim_storesKhoá — xác định cửa hàng thuộc chuỗi nào
dia_ban_c1, dia_ban_c2, dia_ban_c3, ten_dia_ban_c2, ten_dia_ban_c3, site_domain_levelĐịa bàn các cấpdim_site_domainsKhoá cho cấp gộp vùng, khu vực
city_nameThành phố — để ghép thời tiếtdim_site_domains, dim_weather_locationsKhoá
store_system, store_group_code, is_legal_entity, account_statusHệ thống, nhóm, pháp nhân, trạng tháidim_storesChưa dùng
store_nameTên cửa hàng (tệp 7)dim_storesHiển thị

2.6. Thuộc tính mã hàng

Tên trườngÝ nghĩaNguồnMô hình chốt dùng
product_code, product_nameMã và tên hàngdim_productsKhoá, Hiển thị
brand_id, brand_nameThương hiệudim_products, dim_product_brandsCây (brand_id), Hiển thị
category_id, category_codeNgành hàngdim_productsCây (category_id)
supplier_id, supplier_nameNhà cung cấpdim_products, dim_suppliersCây (supplier_id), Hiển thị
uomĐơn vị tínhdim_productsCây
shelf_lifeHạn sử dụngdim_productsCây
net_weightKhối lượng tịnhdim_productsCây
qty_per_cartonSố đơn vị trên thùngSuy từ đơn hàng (cột trong dim_products trống)Cây

2.7. Lịch và thời tiết

Tên trườngÝ nghĩaNguồnMô hình chốt dùng
ym, tTháng và chỉ số thángTính trong truy vấnKhoá
calendar_days, working_days, weekend_days, thang_trong_namLịch thángdim_dates cho tháng đã qua; tự tính cho tháng tới (mục 3)Cây
avg_tmaxNhiệt độ cao nhất bình quânfact_weather_forecastNgoại sinh #25
rain_daysSố ngày mưafact_weather_forecastNgoại sinh #26
avg_tmin, total_rainfallNhiệt độ thấp nhất, tổng lượng mưafact_weather_forecastChưa dùng

2.8. Cờ chất lượng dữ liệu

Tên trườngÝ nghĩaMô hình chốt dùng
flag_che_do_moiBật từ 01/2026 — mốc đổi quy ước ghi nhận hàng tặng và chiết khấuChưa dùng trực tiếp; mốc 01/2026 được viết cứng ở REGIME_SWITCH
flag_thang_nghi_ngoĐánh dấu tháng 12/2025 để đối chiếuChưa dùng; chỉ để đối chiếu, không dùng để lọc

3. Phép tính hệ thống tự làm

Không trường nào ở bảng này do người nhập. Cột “Có thể bị ghi đè bởi dữ liệu người nhập” cho biết chỗ nào nên mở cho nghiệp vụ xác nhận hoặc thay thế.

Phép tínhLàm gìỞ đâu trong mãCó thể bị ghi đè bởi dữ liệu người nhập
Nối mã kế thừaMã mới có hậu tố TMICC được nối về mã cũ trùng tên (26 cặp, khớp 26/26 ngày 17/09/2026). Mã khớp 0 hoặc nhiều mã cũ thì không nốisku_series.successor_map, to_rootCó — bảng nối mã do nghiệp vụ xác nhận (nhóm 3 trang người dùng nhập)
Lịch tháng tớiSố ngày, ngày cuối tuần, ngày làm việc (= ngày không phải thứ Bảy, Chủ nhật)skeleton.calendar_ofCó — lịch lễ Tết người nhập sẽ trừ thêm ngày nghỉ
Trọng số ngày giao dịchTrọng số theo thứ trong tuần và 5 ngày lễ dương lịch cố địnhfrontier.DOW_WEIGHTS, PUBLIC_HOLIDAYS_MDCó — Tết Âm lịch và lễ khác cần lấy từ lịch người nhập
Khử phần cầu bị hết hàng cheNâng mức nền theo tỷ lệ ngày hết hàng của mã hàngfrontier._load_sku_oosKhông
Tỷ số chuyển mùa cùng kỳSo tốc độ bán $t-12$ với $t-13$ trên rổ mã có bán cả hai nămfrontier.compute_seasonal_multKhông
Lịch sử kho con năm 2025Năm 2025 chưa có kho con, nên lịch sử kho được chia xuống kho con theo tỷ trọng kho con của 2026yearly_3grains.build_subinv_historyKhông
Gán cửa hàng vào kho và chuỗiMỗi cửa hàng lấy kho phục vụ, chuỗi, kênh, địa bàn ở panel; cửa hàng có đơn nhưng chưa có trong panel gom vào rổ (chưa vào panel)sku_series.store_attributes, attachCó — cửa hàng mở mới người nhập sẽ có sẵn kho, chuỗi
28 biến ngoại sinh và 50 biến lịch sửXem danh mục biếnfeatures.build_features, attach_multivariate_featuresKhông
Khung cặp còn hoạt độngHạt cửa hàng: chỉ dự báo cho cửa hàng có đơn trong 3 tháng tính tới gốc dự báo (ALIVE_MONTHS = 3)skeleton.alive_pairsCó — cửa hàng đóng cửa người nhập sẽ bị loại sớm hơn; cửa hàng mở mới sẽ được thêm
Đồng bộ SteinTrộn dự báo trực tiếp ở kho con, chuỗi với phân bổ từ tổng 473 mã: 0,65 × trực tiếp + 0,35 × phân bổyearly_3grains.mainKhông
Phân bổ xuống cửa hàngChia dự báo kho × mã xuống cửa hàng theo trọng số 6 tháng: (0,55·y_{t−1} + 0,30·TB3 + 0,15·TB6) × (số tháng có mua trong 3 tháng / 3)^1,2yearly_3grains.mainCó — cửa hàng mở mới chưa có lịch sử nên trọng số bằng 0
Kéo dài 12 thángTừ số M+1 nhân chỉ số mùa vụ, trọng số ngày giao dịch và hình dạng Chronos-Boltcompute_12m_sku_warehouse_trajectoryKhông
Thời tiết tháng tới (chỉ bản demo forecast_demo)Trung bình cùng tháng dương lịch trong lịch sử theo thành phố; thiếu thì lấy trung bình 3 tháng gần nhấtskeleton._weather_tableKhông