Dữ liệu Người dùng Nhập Trước Kỳ Dự báo

Chín nhóm dữ liệu mà kho dữ liệu không có, phải do Trade, KAM, Sales, Kế hoạch, Mua hàng nhập trước ngày chạy dự báo: từng trường, kiểu dữ liệu, luật kiểm tra, trạng thái hiện nay.

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

Kho dữ liệu chỉ ghi lại những gì đã xảy ra. Những gì sắp xảy ra — khuyến mãi tháng tới, cửa hàng sắp khai trương, mã hàng sắp ra mắt, Tết rơi vào ngày nào — chỉ có trong đầu người làm nghiệp vụ. Nếu không ai nhập, mô hình coi tháng tới giống nhịp mấy tháng gần đây.

1. Tóm tắt chín nhóm

Trạng thái có ba mức:

  • Đang dùng — đã có nơi lưu và mô hình chốt đang đọc.
  • Có nơi lưu — đã có bảng hoặc tệp, nhưng mô hình chốt chưa đọc đủ.
  • Đề xuất — chưa có nơi nhập. Danh sách trường bên dưới là thiết kế đề xuất, chờ nghiệp vụ duyệt.
#NhómAi nhậpNhịp nhậpTrạng tháiThiếu thì sao
1Lịch chương trình khuyến mãiTradeMỗi khi có chương trình mới hoặc đổi, tối thiểu đủ 3 tháng tớiCó nơi lưu — mô hình chỉ đọc CTKM của tháng trướcĐợt khuyến mãi lớn mới bắt đầu bị dự báo thấp
2Cửa hàng mở mới, đóng cửaSales, KAM, Phát triển kênhHằng thángĐề xuấtSản lượng cửa hàng mới không có trong dự báo; cửa hàng đã đóng vẫn được dự báo tới 3 tháng
3Mã hàng mới, ngừng mã, đổi mãMua hàng, Marketing, TradeKhi có quyết địnhĐề xuất — riêng đổi mã TMICC máy tự nốiMã mới không có dự báo; mã đã ngừng vẫn được dự báo
4Danh mục hàng theo chuỗiTrade, KAMKhi chuỗi đổi danh mụcCó tệp Excel, chưa nạpMã mới vào chuỗi không có dự báo ở hạt chuỗi
5Lịch lễ, Tết, sự kiệnKế hoạchMột lần mỗi năm, sửa khi có thay đổiĐề xuất — mã nguồn chỉ có 5 ngày lễ dương lịchTháng có Tết dự báo lệch
6Đơn đặc biệt, đột biếnKAM, SalesKhi biết trướcĐề xuấtĐơn DC lớn, đơn khai trương không có trong dự báo
7Điều chỉnh tay và chỉ tiêuKế hoạchSau mỗi lượt chạyĐề xuất (Giai đoạn 2)Không tách được số máy với số người chỉnh
8Kỳ dữ liệu nhiễmNhóm kỹ thuậtKhi phát hiệnViết cứng trong mã, đang rỗngTháng dữ liệu hỏng lọt vào huấn luyện
9Tham số lượt chạyNhóm kỹ thuật, Kế hoạchMỗi lượt chạyViết cứng trong mãChưa tự chạy được kỳ mới

Hạn chót nhập liệu. Dữ liệu nhóm 1–6 phải có trước ngày chạy dự báo đầu tháng. Ngày cụ thể chưa chốt — cần Kế hoạch và Trade thống nhất cùng câu hỏi “lịch khuyến mãi và lịch đặt hàng của chuỗi cung cấp trước được bao nhiêu ngày”. Dữ liệu nhập sau ngày chạy chỉ có tác dụng từ kỳ sau.

Quy ước chung cho mọi nhóm:

  • Tên trường là tên kỹ thuật, dùng chung giữa tài liệu, giao diện và máy chủ (định danh tiếng Anh). Cột “Nhãn hiển thị” là chữ hiện trên màn hình.
  • Ngày nhập đủ dd/mm/yyyy, tháng lưu dạng YYYYMM và hiển thị MM/YYYY. Sản lượng tính bằng thùng.
  • Mã hàng phải tồn tại trong dwh.dim_products và bắt đầu bằng 11 (thành phẩm). Mã cửa hàng, mã chuỗi, mã kho, mã địa bàn chọn từ danh mục, không gõ tự do.
  • Mọi bản ghi có submitted_by, submitted_at (tự sinh từ tài khoản đăng nhập) và status. Huỷ thì đổi trạng thái, không xoá dòng, để truy được vì sao con số dự báo đổi.

Nhóm 1. Lịch chương trình khuyến mãi

Nơi lưu hiện tại: bảng user_uploads.trade_promotions, xuất ra out/export/trade_promotions_full.parquet. Lần nạp gần nhất ngày 13/09/2026: 6.368 dòng từ hai tệp Excel của Trade (Kem Wall’s 3.906 dòng, sản phẩm trừ Wall’s 2.462 dòng), chỉ kênh MT. Dòng dày tới 07/2026; từ 08/2026 rất thưa (51, 9, 2, 8, 5 dòng hiệu lực theo tháng bắt đầu 08 → 12/2026).

Cách nhập: tải tệp Excel của Trade lên, hệ thống kiểm tra từng dòng, cho xem trước rồi mới ghi. Bản demo forecast_demo đã có luồng này (POST /api/imports, rồi POST /api/imports/{batch_id}/commit). Mẫu tệp ở docs/05-thi-cong-gd1/MAU-NAP-CTKM_DBNC-v0.1.xlsx.

Tên trườngNhãn hiển thịCột trong tệp Excel của TradeKiểuBắt buộcKiểm traMô hình chốt đọc
promotion_codeSố chương trìnhSỐ CHƯƠNG TRÌNH KHUYẾN MÃIChuỗiCóÔ gộp trong tệp Wall’s phải điền xuống trước khi kiểm tra—
orc_promotion_codeMã chương trình ORCMã Gift ORC / Số CTKM (ORC)ChuỗiKhôngCột nguồn lẫn chữ trạng thái (Done, Cancel…) — tách sang promotion_status—
promotion_nameTên chương trìnhTÊN CHƯƠNG TRÌNH KHUYẾN MÃIChuỗiKhôngTệp sản phẩm trừ Wall’s không có cột này—
promotion_mechanic_codeCơ chế khuyến mãiHình thức KM / Type SchemeDanh mục đóngCóĐang có trong bảng: GIAM_GIA, GIAM_TREN_HD, GIAM_SAU, TANG_HANG, TANG_QUA, MUA_N_TINH_M, CLAIM_BACK, HO_TRO, KHAC. Biến thể chính tả phải ánh xạ về mã, không cho gõ tự do—
product_codeMã sản phẩmMã SP mới / Mã SP ORCChuỗiCóCó trong dim_products, bắt đầu bằng 11Có
channel_level_1_nameKênh áp dụngKÊNH BÁN HÀNG / Mã kênh (level01)Danh mục đóngCóHiện chỉ MT—
chain_codeChuỗi áp dụngPHẠM VI THỰC HIỆN / Hệ thống (party name)Chọn từ danh mục chuỗiCó khi áp theo chuỗiTên chuỗi trùng lặp (Win/WIN, Aeon/AEON, Coop/SAIGON CO.OP) phải ánh xạ về một mãCó (hạt chuỗi)
promotion_allocation_levelMức phân bổHệ thống sinhDanh mục đóngCóTOAN_MT, CHUOI, CUA_HANG. Tệp chỉ tới cấp chuỗi nên giả định “mọi cửa hàng trong chuỗi đều áp dụng” phải được ghi lại—
promotion_buy_qty, promotion_get_qtyMua bao nhiêu, tặng bao nhiêuBóc từ cơ cấu KMSố nguyênVới tặng hàng“3 tặng 1” → 3 và 1—
promotion_discount_pctMức giảm (%)DISCOUNT 1 (%)Số thựcVới giảm giá0 ≤ giá trị ≤ 100Có
promotion_discount_amountMức giảm (đồng)DISCOUNT 2 (VND)SốVới giảm giá≥ 0—
promotion_gift_code, promotion_gift_nameMã và tên quà tặngGift Code / Gift Desc.ChuỗiVới tặng quà——
promotion_sell_in_start_date, promotion_sell_in_end_dateThời gian đặt hàng từ / đếnThời gian đặt hàngNgàyCóNgày đầu ≤ ngày cuối (bảng hiện có dòng ngược chiều tới −336 ngày)—
promotion_sell_out_start_date, promotion_sell_out_end_dateThời gian áp dụng cho người tiêu dùng từ / đếnThời gian áp dụng NTDNgàyCóĐủ dd/mm/yyyy — tệp từng ghi “14/2 - 30/4” thiếu nămCó (qua tháng bắt đầu, kết thúc)
promotion_daysSố ngày chạyHệ thống tínhSố nguyên—= ngày kết thúc − ngày bắt đầu của cửa sổ người tiêu dùngCó
promotion_start_year_month, promotion_end_year_monthTháng bắt đầu, kết thúcHệ thống tínhYYYYMM—Tính từ cửa sổ người tiêu dùngCó
promotion_budgetTổng ngân sáchTỔNG NGÂN SÁCH KHUYẾN MÃISố (đồng)KhôngChỉ tệp Wall’s có—
promotion_forecast_qtySố FCCột FCSốKhôngChưa ai xác nhận cột này là cam kết mua của chuỗi hay ước lượng của Trade — lưu nguyên, chưa đưa vào mô hình—
promotion_statusTrạng tháiHệ thống suy từ ghi chúDanh mục đóngCóHIEU_LUC, HUY, DIEU_CHINH. Chương trình dừng thì đổi trạng thái, không xoáCó (chỉ đọc HIEU_LUC)
promotion_noteGhi chúNoteChuỗiKhông——

Hai quy tắc nghiệp vụ phải giữ khi nhập:

  1. Dự báo nhu cầu dùng cửa sổ người tiêu dùng (sell-out), không dùng cửa sổ đặt hàng (sell-in). Nhầm hai cửa sổ là lệch pha 2–4 tuần. Màn hình nên đặt hai cặp ngày cạnh nhau và ghi rõ cặp nào đi vào mô hình.
  2. Một mã hàng, một chuỗi, một thời điểm chỉ chịu một chương trình. Chồng lấn phải cảnh báo ngay lúc nạp.

Còn thiếu để CTKM tác động lên tháng đang dự báo: (a) Trade nạp đủ lịch 3 tháng tới; (b) mô hình đọc CTKM của tháng đích — chỗ nối đã có sẵn là hệ số promo_adj (đang luôn bằng 1, xem danh mục biến); (c) lịch CTKM kênh GT.


Nhóm 2. Cửa hàng mở mới, đóng cửa

Vì sao cần. Từ 01 đến 08/2026, sản lượng từ cửa hàng lần đầu phát sinh đơn chiếm khoảng 2,4% tổng sản lượng (kênh GT 4,8%, MT 1,8%). Hệ thống không thể biết trước cửa hàng nào sắp khai trương: nó chỉ thấy số cửa hàng có đơn tháng trước tăng hay giảm (biến mv_grp_store_growth). Ngược lại, cửa hàng đã đóng vẫn được dự báo cho tới khi im lặng đủ 3 tháng.

Có hai cách nhập. Cách A khi đã biết từng cửa hàng; cách B khi mới có kế hoạch số lượng.

Cách A — từng cửa hàng (store_change_event)

Tên trườngNhãn hiển thịKiểuBắt buộcKiểm tra và ghi chú
event_typeLoại thay đổiDanh mục đóngCóOPEN khai trương · CLOSE đóng cửa · PAUSE tạm ngừng · REOPEN mở lại · CHANGE_WAREHOUSE đổi kho phục vụ
store_codeMã cửa hàngChọn từ dim_storesCó, trừ khi cửa hàng chưa có mãCửa hàng mới thường chưa có mã DMS — khi đó điền store_name_planned và bổ sung mã sau
store_name_plannedTên cửa hàng dự kiếnChuỗiKhi chưa có store_code—
effective_dateNgày khai trương / đóng cửaNgàyCóKhông được ở quá khứ quá 1 tháng (nhập trễ thì báo)
chain_codeChuỗiChọn từ danh mục chuỗi (42 chuỗi thật)Có với kênh MTTrống = cửa hàng lẻ
channel_level_1_codeKênh cấp 1Danh mục đóngCó30000 MT · 20000 GT · 10000 Horeca · 40000 Bán sỉ · 50000 Thương mại điện tử
channel_codeKênh chi tiếtChọn từ dim_account_channelsKhông—
serving_warehouse_codeKho phục vụ dự kiếnChọn từ dim_warehousesCóQuyết định phần dự báo cộng vào kho nào — sai kho là sai kế hoạch nhập
site_domain_codeĐịa bànChọn từ dim_site_domainsCóDùng cho cấp gộp vùng, khu vực
reference_store_codeCửa hàng tương tựChọn từ dim_storesKhuyến nghị với OPENCửa hàng mới chưa có lịch sử; hệ thống mượn nhịp bán và cơ cấu mã hàng của cửa hàng này
freezer_count_plannedSố tủ đông dự kiếnSố nguyênKhôngRất quan trọng với ngành kem
expected_cartons_monthSản lượng dự kiến khi ổn định (thùng/tháng)SốKhôngNếu có, dùng thay cho mức của cửa hàng tương tự
ramp_up_monthsSố tháng để đạt mức ổn địnhSố nguyênKhôngMặc định đề xuất 3
noteGhi chúChuỗiKhông—
confirmed_byNgười xác nhậnChọn từ danh sách nhân sựCó với OPEN, CLOSE—
statusTrạng tháiDanh mục đóngCóDRAFT · CONFIRMED · CANCELLED. Chỉ CONFIRMED đi vào mô hình

Cách B — số lượng theo kế hoạch (store_count_plan)

Tên trườngNhãn hiển thịKiểuBắt buộcGhi chú
period_ymThángYYYYMMCó—
chain_codeChuỗiChọn từ danh mụcCó với MTTrống với GT
channel_level_1_codeKênh cấp 1Danh mục đóngCó—
serving_warehouse_codeKho phục vụChọn từ danh mụcCó—
planned_open_countSố cửa hàng dự kiến mởSố nguyên ≥ 0Có—
planned_close_countSố cửa hàng dự kiến đóngSố nguyên ≥ 0Có—
expected_cartons_per_storeSản lượng bình quân một cửa hàng mới (thùng/tháng)SốKhôngTrống thì dùng bình quân cửa hàng mới cùng chuỗi, cùng kho trong 6 tháng gần nhất

Mô hình sẽ dùng thế nào (đề xuất): cửa hàng OPEN được thêm vào khung dự báo hạt cửa hàng với hồ sơ mượn từ reference_store_code; cửa hàng CLOSE bị loại khỏi khung từ effective_date; cách B thay biến tăng trưởng độ phủ của tháng trước bằng tăng trưởng theo kế hoạch.


Nhóm 3. Mã hàng mới, ngừng mã, đổi mã (product_change_event)

Hiện trạng: hệ thống tự nối 26 mã mới TMICC của Wall’s về mã cũ theo luật trùng tên (sku_series.successor_map). Nghiệp vụ chưa xác nhận bảng nối này. Mã ra mắt mới (NPD) và mã ngừng bán chưa có nơi nhập.

Tên trườngNhãn hiển thịKiểuBắt buộcKiểm tra và ghi chú
event_typeLoại thay đổiDanh mục đóngCóLAUNCH ra mắt · DISCONTINUE ngừng bán · REPLACE mã mới thay mã cũ
product_codeMã hàngChuỗiCóBắt đầu bằng 11. Với LAUNCH cho phép mã chưa có trong dim_products, đánh dấu chờ đối chiếu
product_nameTên hàngChuỗiVới LAUNCH—
effective_dateNgày hiệu lựcNgàyCóNgày bắt đầu bán, hoặc ngày ngừng nhận đơn
predecessor_codeMã cũ được thayChọn từ dim_productsVới REPLACEGhi đè luật nối tự động. Hệ thống nối lịch sử mã cũ vào mã mới và cộng tồn của cả hai khi lập đơn đặt hàng
analog_product_codeMã tương tựChọn từ dim_productsKhuyến nghị với LAUNCHMượn nhịp bán và mùa vụ
target_channel_codesKênh bánChọn nhiềuVới LAUNCH—
target_chain_codesChuỗi đã listingChọn nhiềuKhôngLiên kết nhóm 4
expected_cartons_m1, expected_cartons_m2, expected_cartons_m3Sản lượng kỳ vọng 3 tháng đầu (thùng)SốKhôngNếu có, dùng làm dự báo cho mã chưa có lịch sử
confirmed_byNgười xác nhậnChọn từ danh sách nhân sựCó—
statusTrạng tháiDanh mục đóngCóDRAFT · CONFIRMED · CANCELLED

Nhóm 4. Danh mục hàng theo chuỗi (chain_assortment)

Hiện trạng: Trade có tệp PHAN_LOAI_SKU_MT_GT_2026_v1.5_TRADE sent to IT.xlsx phân loại mã theo chuỗi. Tệp chưa được nạp vào hệ thống.

Tên trườngNhãn hiển thịKiểuBắt buộcKiểm tra và ghi chú
chain_codeChuỗiChọn từ danh mục chuỗiCó—
product_codeMã hàngChuỗiCóBắt đầu bằng 11
sku_classPhân loạiDanh mục đóngCóCORE · FUTURE_CORE · NPD · NON_CORE
listed_fromNgày bắt đầu bày bánNgàyCó—
delisted_fromNgày rút khỏi chuỗiNgàyKhôngTrống = còn bán
source_file, source_versionTệp và phiên bản nguồnChuỗiCóVí dụ v1.5

Mô hình sẽ dùng thế nào (đề xuất): mã vừa listing được thêm vào khung dự báo hạt chuỗi; mã đã delisting bị loại khỏi khung từ ngày rút.


Nhóm 5. Lịch lễ, Tết, sự kiện (holiday_event)

Hiện trạng: dwh.dim_dates không có cột ngày lễ. Lõi mùa vụ chỉ biết 5 ngày lễ dương lịch viết cứng trong frontier.PUBLIC_HOLIDAYS_MD (01/01, 30/04, 01/05, 01/09, 02/09). Tết Âm lịch và Giỗ Tổ Hùng Vương đổi ngày dương lịch mỗi năm nên không có. Dữ liệu bán hàng mới có đúng một lần Tết (mùng 1 Tết là 17/02/2026), nên mô hình chưa học được dạng sản lượng quanh Tết. Tết 2027 rơi vào 06/02/2027, nằm trong tầm dự báo 12 tháng hiện tại.

Bảng đề nghị tạo mới dwh.dim_holidays, hạt ngày × sự kiện. Khoảng 100–150 dòng lễ quốc gia có thể dựng sẵn; người dùng chỉ cần rà, sửa và thêm lễ địa phương.

Tên trườngNhãn hiển thịKiểuBắt buộcKiểm tra và ghi chú
date_keyNgàyNgàyCóChọn trên lịch
event_codeMã sự kiệnChuỗi chữ hoa, gạch dướiCóVí dụ TET_NGUYEN_DAN. Sinh tự động từ tên rồi cho sửa
event_nameTên sự kiệnChuỗiCóVí dụ “Tết Nguyên đán — mùng 1”
event_typeLoại sự kiệnDanh mục đóngCóLE_QUOC_GIA · LE_TON_GIAO · LE_HOI_DIA_PHUONG · SU_KIEN_CHINH_TRI
scope_levelPhạm viDanh mục đóngCóTOAN_QUOC · TINH · HUYEN
site_domain_codeĐịa bànChọn từ dim_site_domains (137 địa bàn)Khi phạm vi khác toàn quốcKhoá ô này khi chọn toàn quốc
is_day_offLà ngày nghỉ chính thứcĐúng / SaiCóPhân biệt ngày nghỉ với ngày kỷ niệm
intensityMức ảnh hưởng thương mạiSố 0,00 – 1,00CóDo nghiệp vụ ấn định, máy không suy ra được. Lưu lịch sử ai sửa, sửa lúc nào

Mô hình sẽ dùng thế nào (đề xuất): ngày nghỉ nhận trọng số ngày giao dịch thấp như 5 ngày lễ hiện có; working_days của tháng tới trừ thêm ngày nghỉ; riêng Tết dùng hệ số do người ấn định cho tới khi có đủ hai năm dữ liệu.


Nhóm 6. Đơn đặc biệt, sự kiện đột biến (special_demand_event)

Dùng cho các đơn mà nhịp lịch sử không đoán được: đơn nhập DC của chuỗi, đơn trải hàng khi chuỗi khai trương, đơn dự án, đợt xả hàng.

Tên trườngNhãn hiển thịKiểuBắt buộcKiểm tra và ghi chú
event_typeLoạiDanh mục đóngCóDC_ORDER · OPENING_FILL · PROJECT · CLEARANCE · OTHER
chain_code hoặc store_codeChuỗi hoặc cửa hàngChọn từ danh mụcCó một trong hai—
product_codeMã hàngChuỗiCóBắt đầu bằng 11
serving_warehouse_codeKho giaoChọn từ danh mụcCó—
period_ymTháng giaoYYYYMMCó—
qty_cartonsSản lượng (thùng)Số > 0Có—
is_incrementalCộng thêm vào dự báoĐúng / SaiCóĐúng = ngoài nhịp thường, cộng thẳng vào số dự báo. Sai = đã nằm trong nhịp thường, chỉ ghi để theo dõi
noteGhi chúChuỗiCó với OTHER—
confirmed_by, statusNgười xác nhận, trạng thái—CóNhư các nhóm trên

Nhóm 7. Điều chỉnh tay và chỉ tiêu

Ba con số phải lưu tách nhau ngay từ đầu, để báo cáo độ chính xác dự báo không lẫn với báo cáo hoàn thành chỉ tiêu:

Tên trườngNhãn hiển thịAi ghiLàm ô nhậpGhi chú
forecast_modelSố máy dự báo (thùng)Hệ thốngKhôngKhông bao giờ bị ghi đè
forecast_adjustedSố đã rà soát (thùng)Kế hoạch, Sale, ASMCó (Giai đoạn 2)Kèm adjustment_reason bắt buộc
kpi_targetChỉ tiêu được giao (thùng)Kế hoạchCóNhập tay hoặc tải tệp

Điều chỉnh theo hệ số $K$ (công thức $\text{Base} \times (1 + \sum K)$, xem Bài toán Nghiệp vụ & Hệ thống Cấp gộp):

Tên trườngNhãn hiển thịKiểuBắt buộcGhi chú
k_codeHệ sốDanh mục đóng 6 giá trịCóSEASON, WEATHER, EVENT, PROGRAM, MARKET, OTHER. Không cho thêm hệ số ngoài danh mục
k_value_pctGiá trị (%)Số thựcCóPhần trăm thay đổi so với mức nền
period_ymKỳ áp dụngYYYYMMCó—
scope_level, scope_codePhạm viKênh / chuỗi / khu vực / kho / mã hàngCóGhi rõ cấp để cộng dồn không trùng
adjustment_reasonLý doChuỗiCó với MARKET, OTHER—
confirmed_byNgười xác nhậnChọn từ danh sách nhân sựCó với MARKET—

Câu hỏi chưa chốt: người rà soát sửa hệ số hay sửa số lượng. Câu trả lời quyết định màn hình này.


Nhóm 8. Kỳ dữ liệu nhiễm (excluded_period)

Hiện trạng: danh sách nằm ở hằng EXCLUDED_MONTHS trong model_lab/src/model_lab/data/features.py, đang rỗng. Tháng bị đánh dấu sẽ bị loại khỏi huấn luyện, khỏi mốc dự báo và khỏi phần chấm điểm.

Tên trườngNhãn hiển thịKiểuBắt buộcGhi chú
period_ymTháng bị loạiYYYYMMCó—
reasonLý doChuỗi, tối thiểu 20 ký tựCóPhải nêu bằng chứng
marked_by, marked_atNgười và thời điểm đánh dấuTự sinh——
is_activeĐang áp dụngĐúng / SaiCóTắt chứ không xoá

Chỉ hai trường hợp được đánh dấu: đổi quy ước ghi nhận dữ liệu, hoặc nhiễm bẩn đo được ngay trong dữ liệu. Sản lượng cao hay thấp bất thường thì không — đó là dao động thật.


Nhóm 9. Tham số lượt chạy (run_config)

Hiện trạng: các giá trị dưới đây đang viết cứng trong yearly_3grains.py (FUTURE_12_YMS, PANEL_PATH, HIST_PATH…), nên chưa tự chạy được kỳ 11/2026.

Tên trườngNhãn hiển thịKiểuGiá trị hiện tạiGhi chú
origin_ymTháng gốc (tháng cuối đã đóng sổ)YYYYMM202609Không được là tháng đang chạy dở — số của tháng chưa đủ ngày bị hụt mà không có cảnh báo
horizon_monthsSố tháng dự báoSố nguyên12M+1 dùng mô hình đầy đủ; M+2 trở đi kéo dài theo mùa vụ
grainsCấp hạt xuấtChọn nhiềuKho con, Chuỗi, Cửa hàng—
model_nameMô hìnhDanh mụcchronos2_mv_cross—
data_snapshotBộ tệp dữ liệuChọn từ danh sáchBộ tệp 04/2025 – 09/2026Phải khớp origin_ym
regime_switch_ymMốc đổi quy ước ghi nhậnYYYYMM202601Tầng cây chỉ học từ mốc này
random_seedHạt giống ngẫu nhiênSố nguyên20260904Để chạy lại ra đúng số cũ khi cần đối chiếu

Tài liệu gốc

Nội dungNơi lưu
Danh mục dữ liệu đầu vào cho Frontend (bản 07/09/2026, mô tả bàn thử model_lab; dùng tên trường cũ tiếng Việt cho nhóm 7, 8)docs/05-thi-cong-gd1/DANH-MUC-DU-LIEU-DAU-VAO_DBNC-v0.1.md
Đặc tả giao diện nạp dữ liệudocs/05-thi-cong-gd1/DAC-TA-DAU-VAO-GIAO-DIEN_DBNC-v0.1.md
Mẫu tệp nạp CTKMdocs/05-thi-cong-gd1/MAU-NAP-CTKM_DBNC-v0.1.xlsx
Luồng nạp CTKM của bản demoforecast_demo/src/forecast_demo/ingest/ctkm.py, forecast_demo/src/forecast_demo/engine/promo.py
Phần sản lượng ngoài tầm với (cửa hàng mới, mã mới)model_lab/out/error-floor.md, model_lab/out/csv/error-floor.csv