HKTV Daily Sales Dashboard

HKTVmall · Pretties HK × WAGAYA · Two-Store Sales Overview
Date Range:
Generated:
Showing: All Stores
Store
Date to
HK$

VIP Day Snapshot Wed–Fri onlyi

Daily GMV Trend Per-store · VIP days marked with amber ring

Daily Orders & ATV Orders (blue = normal, amber = VIP) + ATV line

Weekly GMV Week starting Monday

Weekly Orders & ATV Per-week combined

GMV Share by Store Share of GMV

Hourly Orders 0–23h

Top 10 Brands by GMV

Top 10 Delivery Districts by Orders

Promo Performance Snapshot Mix & Match + Add-on promotions · Current filter

Top 10 Promos by GMV · dynamic to filter

Top 10 Subcategories by GMV · dynamic to filter

Promo Detail Rank / Name / Store split / Orders / GMV / Disc%

#PromoStore SplitOrdersGMV ($)Disc%

Subcategory Detail Rank / Subcategory / Store split / Qty / GMV

#SubcategoryStore SplitQtyGMV ($)

Top 10 SKUs by GMV

#SKU IDSKU NameStoreSales (HK$)Qty

Store × Date Breakdown Daily per store

DateDayStoreOrdersGMVATVQtySub-orders

Daily Combined Both stores

DateDayOrdersGMVATVQtySub-ordersItems/Order

Weekly Summary Per-store + combined + VIP-only slice

Week Starting (Mon)RangeDaysStore OrdersGMVATVQtySub-orders
系統更新 · 最後更新 2026-04-26 20:42
2026-04-26 20:44 修復
  • Top 10 Brands Qty metric 現已完全跟隨日期篩選(之前仍用全期 fallback)
  • Backend 新增 brand_daily_qty per-date qty breakdown(需 Rebuild data.json 生效)
  • 切換 7D / 30D / 自訂日期時,GMV 與 Qty 兩個 metric 均從 activeDates 精確聚合,語義完全一致
2026-04-26 20:42 優化
  • P2/P3 收尾 Jira:輸出 3 張工程債票:Top Brands Qty period-aware(P2)、deprecated saveAllowedEmails 路徑清理(P2)、CSP nonce rollout 替換 unsafe-inline(P3)
2026-04-26 19:08 優化
  • 全面 re-audit:typecheck + vitest 全綠(6 files / 118 tests),上輪 P1 核心項基本收斂
  • 交付 `AUDIT_RECHECK_2026-04-26.md`,記錄現存 P2/P3 風險清單
2026-04-26 18:12 新功能
  • Insights 頁新增 **Section 7:Discount Depth + ROI**(100% 前端計算,無需 rebuild)
  • 折扣深度分佈直方圖:6 個區間(0–5% / 5–10% / 10–20% / 20–30% / 30–40% / 40%+),雙軸(訂單數 + GMV)
  • Discount Depth vs ROI Bubble 圖:每個 promo 一粒泡,橫=折扣率、縱=ROI、泡大=訂單量,3色分 ROI 區間
  • Promo Cannibalization Panel:VIP Day vs 非 VIP Day 平均日 GMV / 訂單 / Uplift %,估算蠶食率
  • 4 個 KPI cards:平均折扣率、有折扣訂單佔比、最高 ROI 促銷、最高 ATV 折扣區間
更多歷史記錄 (29 條)
2026-04-26 16:42 新功能
  • Insights 頁新增 **Section 6:Basket Combo Matrix**,自動識別最常共購 SKU 組合
  • 演算法:Approach B Lift Score(市場籃分析標準);指標:Lift / Confidence / Co-count
  • 噪音過濾:MIN_SUPPORT=3 / MIN_LIFT=1.2;輸出 Top 50 pairs(lift 降序)
  • 前端:cross-brand toggle + min support selector,Lift pill 顏色分級(≥5 紅 / ≥2 黃 / ≥1.5 綠)
  • 自動建議:🔥 強 Bundle / ⭐ Mix & Match / 💡 觀察,附 top 3 actionable insight 文案
  • 後端 `aggregate-insights.ts` 新增 `buildComboMatrix()`,`aggregate.ts` 輸出 `insights.basket_combo`
2026-04-26 16:28 優化
  • **H-13 記憶體佔用優化**:`aggregate-insights.ts` 中 `CancelBucketAcc.byStoreEff` / `byStoreCancel` 從 `Set<string>` 改為 `number` 計數器
  • 180k rows / 500 brands / 2 stores 場景估計釋放 ~10–20 MB heap(~1,000 Set objects freed)
  • `buildBasketStats()` finalization 後加 `b.skus = new Set()` 釋放 GC 引用
  • 新增 `aggregate-memory.test.ts`(18 tests)覆蓋 counter arithmetic / end-to-end cancel rate / 500-brand 壓測
  • **H-14 Single-pass 確認**:`aggregate.ts` 係唯一 for-loop orchestrator,Ticket 直接 close(無需改動)
2026-04-26 16:17 優化
  • **H-19 Sliding-window rate limit**:`track/view.ts` 新增 count-based 滑動窗口(1 min / 6 req per user)
  • Throttle 時 response 含 `throttled_reason: "sliding_window_exceeded"` + CF tail log 可見
  • Feature flag:`TRACK_VIEW_RATE_LIMIT_ENABLED != "0"` 才啟用,支援 rollback 無需 redeploy
  • 新增 7 條滑動窗口測試覆蓋(6req pass / 7th throttled / 窗外恢復 / per-user 獨立)
2026-04-26 14:51 優化
  • **B 線:Aggregate 拆模組完成**,`aggregate.ts` 從 1084 行縮減至 401 行(純 orchestrator)
  • 新增 4 個子模組:`aggregate-kpi.ts`(144 行)/ `aggregate-insights.ts`(268 行)/ `aggregate-promo.ts`(307 行)/ `aggregate-output.ts`(212 行)
  • 新增 `aggregate-snapshot.test.ts`(18 tests)鎖定 data.json 24 個 top-level key + schema contract
  • 全套 100 tests / 5 files / 0 typecheck errors ✅
2026-04-26 14:41 優化
  • C 線補充:新增 `upload-rebuild.smoke.test.ts`(18 tests)驗證 sanitizeFileName / UploadRecord schema / aggregate→data.json 24 key contract
  • 新增 `auth-me.smoke.test.ts`(28 tests)驗證 Session HMAC round-trip / session refresh threshold / roleMeets 三層 hierarchy / parseCookies
2026-04-26 14:28 優化
  • **C 線:測試 + CI 基線**:新增 `tsconfig.json`(strict mode)、`vitest.config.ts`、`package.json` test/typecheck/predeploy scripts
  • 新增 `aggregate.test.ts`(23 tests)覆蓋 cancel taxonomy / KPI math / brand normalize / dailyCancelAcc / basket
  • 新增 `track-view.smoke.test.ts`(13 tests)覆蓋 sanitize / ALLOWED_PATHS / rate-limit logic
  • 新增 `.github/workflows/ci.yml`:Node 22 + typecheck + vitest run on push/PR
2026-04-26 14:14 優化
  • **A 線:Activity Shard 模式**:`activity-store.ts` 全面重寫,採用 per-user-per-day shard schema(`activity/<YYYY-MM-DD>/<emailKey>.json`)
  • CAS 只鎖單一 shard,消除跨用戶 hot-blob contention;legacy path 保留,rollback 只需 `ACTIVITY_SHARD_MODE=0`
  • `track/view.ts` response 新增 `write_ok` / `mode` / `cas_conflict` 觀測欄位
  • `auth.ts` Env interface 加 `ACTIVITY_SHARD_MODE?: string`,移除 `(env as any)` cast
  • 新增 `activity-store.test.ts`(12 tests)覆蓋 emailKey / dateKey / shardKey / compaction / dedup
2026-04-26 14:22 修復
  • Resend API Key 失效:更新 `RESEND_API_KEY` + 設定 `OTP_SENDER=HKTV Dashboard <noreply@nylimited.com>`
  • `SESSION_SECRET` 空字串導致 HMAC key length=0 錯誤,已換用 64-char hex secret
  • `SUPER_ADMIN` secret 重設(移除多餘空格),`sales@nylimited.com` 登入恢復正常
2026-04-26 16:19 優化
  • 系統更新 Log 顯示重構:預設只顯示最近 3 條,其餘打包入「更多歷史記錄」摺疊按鈕
  • `build_changelog.py` 更新:常數 `RECENT_COUNT=3`,自動分組 RECENT / HISTORY 兩段輸出
  • Order Status Mix、Top 10 Brands、Top 10 Delivery Districts 三個 card 現已跟隨日期篩選(之前係全期 YTD 靜態數據)
  • Backend 新增 `daily_status` / `brand_daily` / `district_daily` 三個 per-date breakdown(需 Rebuild data.json 生效)
  • 三個 card 標頭新增 scope note:已 rebuild 顯示「跟隨日期篩選 · N 日」(綠色),未 rebuild 顯示「全期 YTD · 請 Rebuild」(橙色)
  • Top 10 Brands GMV metric 用 `brand_daily` 精確計算;Qty metric 仍用全期 top_brands(per-date qty breakdown 留 Phase 2)
2026-04-24 16:42 新功能
  • Insights 頁新增 3 個 section:AI 智能洞察(自動 derive top 3-5 insight)、Promo ROI Leaderboard(識別賺錢 vs 蝕本促銷)、Day-of-Week Performance(VIP Day uplift 量化)
  • Promo ROI 完全跟時段 + 店舖篩選,含整體 ROI / 客單提升 / Top 15 promo 排名
  • DOW 顯示每個 weekday 平均 GMV/單量/ATV,VIP Day 標記 + 最強/最弱日 insight
2026-04-24 14:25 新功能
  • 全新 **💡 Insights 頁面**(`/insights.html`):獨立分析頁,營運效率 + 收入提升盲點
  • **Cancel Rate Leaderboard**:SKU / Brand / District 三維度,最少 10 單觸發,揾出取消率異常高嘅 SKU 即時跟進
  • **Order Timing Heatmap**:星期 × 小時 7×24 grid,識別 peak slot 排 promo launch、避開 dead hour
  • **Basket Size Distribution**:單 SKU vs 多 SKU 訂單拆分,顯示 cross-sell gap + AOV 機會(單 vs 多嘅 AOV 差距)
  • 後端 `aggregate.ts` 新增 `insights` 區塊,rebuild 後即可用
2026-04-24 14:15 新功能
  • Admin 頁新增 **User Activity** 面板,睇到邊位用戶而家喺線、睇緊邊個頁面、揀咗邊個 time period
  • 每行可點擊展開 drill-down,顯示最近幾次 filter 變動(preset、日期範圍、附加 extra)
  • 24h / 7d / 30d 時段切換 · 每 60 秒自動刷新 online 狀態
  • 前端每頁加 heartbeat(只喺 tab 可見 + 近 5 分鐘有活動時發送,減低 R2 write)
2026-04-24 12:29 新功能
  • Top SKUs card 加 GMV / Qty 切換,可以改變排名基準(之前只支援 GMV)
  • 切 Qty 模式時,表格按銷量由高至低排序,subtitle 顯示 "by Qty"
2026-04-24 12:03 優化
  • Reset All Data 按鈕加強防呆:彈出 modal 解釋後果,必須輸入「RESET」先可以確認
  • 舊嘅 `confirm()` 對話框換走,改用設計清晰嘅紅色警告 modal
2026-04-24 12:00 優化
  • Admin 頁嘅角色權限說明改用中文顯示,方便本地團隊理解
  • 明確標註 Editor 唔能 Reset 全部數據(呢個只有 Super Admin 有權)
2026-04-24 11:55 新功能
  • Admin 頁新增 Role Reference 卡,清楚列出 Viewer / Editor / Super Admin 嘅能力範圍,方便指派角色
2026-04-24 10:56 優化
  • 後台數據重建:Top SKUs 擴大至 100 條、品牌銷量數據齊全,WAGAYA 單店篩選唔會再空白
  • 加入 `/api/rebuild` 內部觸發機制(需 REBUILD_KEY)畀 CI / 腳本喺部署後自動重建
2026-04-24 10:45 修復
  • GMV Share 百分比 label 改用動態量度:slice 弧長唔夠容納字就自動用外部 callout(解決仲係貼邊嘅 case)
  • Top Brands 加返 Qty 資料(backend 原本只計 GMV,今次補返銷量);切 Qty 時 x 軸顯示數量而唔係金額
  • Promo / Subcategory Detail card:Store Split 欄擴闊 + 支援換行,兩間店金額永遠顯示齊
  • Promo / Subcategory Detail card:Store Split 嘅 HK$ 簡化為 $(騰空間畀完整數字)
  • Top SKUs 10/20/50/100 真正生效(backend 之前只返 10 條,今次提升到 100)
2026-04-24 10:41 修復
  • Daily GMV / Daily Orders 圖表唔再會喺 > 30 日時自動變週度 bar(避免同 Weekly GMV card 重複)
  • Daily 圖表永遠維持 daily line,保留每日 rhythm 資訊;要睇週度匯總請用下方 Weekly GMV card
2026-04-24 10:30 優化
  • 更新日誌改用半自動模式,由 CHANGELOG.md 統一管理,deploy 時自動同步
  • 日誌支援顯示日期 + 具體時間
2026-04-24 10:26 新功能
  • 頁腳新增可摺疊嘅系統更新日誌,用戶可隨時查閱改動歷史
2026-04-24 10:06 新功能
  • 日期跨度超過 30 日嘅圖表,自動切換做週度匯總,更易睇出趨勢
  • 所有趨勢圖加 ⛶ 放大按鈕,全螢幕細看都得
  • Top Brands 加 **GMV / 銷量** 切換
  • Top SKUs 加 **10 / 20 / 50 / 100** 數量篩選,表格可 scroll
  • Promo 同 Sub-category 圖表改成並排 grouped bar,更緊湊
2026-04-24 02:05 修復
  • 批量 upload 自動跳過冇訂單嘅空 xlsx 檔,唔再當 error
2026-04-24 02:02 新功能
  • 預設時段由 All time 改成 **本月至今**(新增 MTD 快捷按鈕)
2026-04-24 00:20 修復
  • GMV Share 百分比 label 位置調整,唔再貼近環邊緣
  • 細 slice(< 6%)改用外部 callout,避免重疊
  • Daily GMV Trend legend 顏色修正(唔再兩個都啡色)
  • Daily Orders & ATV 加返 legend,Orders / VIP / ATV 三個 dataset 清晰分開
2026-04-24 00:04 修復
  • 同一日重複 upload 時新檔覆蓋舊檔,唔會重複 count
2026-04-24 01:40 新功能
  • 新增 **促銷表現** 模組:Top 促銷、加購附加率、平均折扣率
  • 新增 **子類別** 分析,支援逐日 drilldown
2026-04-24 09:57 新功能
  • 新增 **🔄 Compare periods** 頁面(MoM / 自訂區間 / Movers & Shakers)
2026-04-23 優化
  • 上傳架構重構成 sharded,支援約 2 年數據而唔會 rebuild timeout
  • 新增上傳歷史,Admin 頁可查看同刪除過往上傳