[{"snapshot_date": "2026-09-23", "channel": "booking", "properties": "7", "rows": "77", "metrics": "12", "source_pages": "reviews.html; statistics/sales_insights.html; showrank.html", "tool": "scripts/chrome-grab.mjs", "raw_dir": "_raw/2026-09-23-booking", "note": "Lần cào đầu tiên của lớp metrics. 7/7 căn có số; thiếu nhóm: alacarte404=12m (revenue/room_nights/adr). _raw hụt: chỉ 1/6 payload sales (alacarte305) và 5/7 payload rank còn lại — soát lại 23/09 sau khi đổi lược đồ tên file."}, {"snapshot_date": "2026-09-23", "channel": "booking", "properties": "0", "rows": "0", "metrics": "0", "source_pages": "statistics/sales_insights.html", "tool": "scripts/ota-metrics-crawl.py", "raw_dir": "", "note": "CÀO BÙ alacarte404 (khối 12m) — THẤT BẠI: extranet đá sang account.booking.com/sign-in, phiên Chrome hết hạn. 13311503 cũng bị đá nên không phải lỗi riêng của căn. Không nạp dòng nào. Cào lại sau khi đăng nhập lại Chrome."}, {"snapshot_date": "2026-09-23", "channel": "booking", "properties": "7", "rows": "77", "metrics": "12", "source_pages": "reviews.html; statistics/sales_insights.html; showrank.html", "tool": "scripts/ota-metrics-crawl.py", "raw_dir": "_raw/2026-09-23-booking", "note": "Cào lại trọn 7 căn sau khi user đăng nhập lại; 21/21 trang. 7/7 căn có số. alacarte404 trống khối 12m là ĐÚNG SỰ THẬT, không phải cào hụt: extranet trả salesInsightsTotal roomNights/totalTransactionValue/averageDailyRate = -1 (sentinel 'không có dữ liệu') và salesInsightsBreakdown.rooms = [] — bằng chứng ở _raw/alacarte404__sales__006-*.gz. _raw lần này đủ: 7/7 căn có cả sales+rank+reviews (missing = {}). BUG đã sửa trong cùng lượt: RANK.period_start để trống làm hỏng khoá tự nhiên → 49 dòng 90d nạp thành dòng mới thay vì thay giá trị; đã đặt lại period_start = ngày cào − 90 ngày và bỏ 49 dòng khoá hỏng vừa ghi (giá trị + peer trùng khớp 49/49 với dòng cũ, không mất phép đo nào)."}, {"snapshot_date": "2026-09-23", "channel": "booking", "properties": "7", "rows": "858", "metrics": "3", "source_pages": "statistics/sales_insights.html?granularity=MONTHLY", "tool": "scripts/ota-metrics-crawl.py", "raw_dir": "_raw/2026-09-23-booking-history", "note": "LỊCH SỬ từ 2015-01-01: 7/7 căn; chuỗi theo tháng (window=1m, 40 tháng/căn) + tổng trọn khoảng (window=alltime). Booking cắt về mốc sàn 2023-06 CHO CẢ BẢY CĂN — là mốc của tài khoản hoặc giới hạn lưu trữ, KHÔNG phải ngày mở từng listing; tháng trước lần ở đầu tiên được đệm 0. Kết quả: alacarte305 lộ thêm 71 đêm / 97.552.400 ₫ nằm ngoài cửa sổ 12 tháng; alacarte404 xác nhận CHƯA TỪNG có đêm ở nào kể từ 2023-06, khớp với sentinel -1 của khối 12m."}, {"snapshot_date": "2026-09-24", "channel": "booking", "properties": "7", "rows": "77", "metrics": "12", "source_pages": "reviews.html; statistics/sales_insights.html; showrank.html", "tool": "scripts/ota-metrics-crawl.py", "raw_dir": "_raw/2026-09-24-booking", "note": "7/7 căn có số; thiếu nhóm: alacarte404=12m"}, {"snapshot_date": "2026-09-24", "channel": "booking", "properties": "7", "rows": "858", "metrics": "3", "source_pages": "statistics/sales_insights.html?granularity=MONTHLY", "tool": "scripts/ota-metrics-crawl.py", "raw_dir": "_raw/2026-09-24-booking-history", "note": "LỊCH SỬ từ 2015-01-01: 7/7 căn; chuỗi theo tháng (window=1m) + tổng trọn đời (window=alltime). Booking tự cắt khoảng về ngày mở listing."}]