StackTrading Docs

QnA Init Docs — UC_4.12.2: PnL Gauge (LIVE Global Shell)

Ngày tạo: 2026-08-12 Phiên bản: v1 BA phụ trách: Trang Nguyen Ngày BA review: 2026-08-12 Trạng thái: ✅ 4/4 câu round 1 đã confirm; round 2 (2026-08-16) BA đổi lại QN-4.12.2-02 — dial 2 đầu SẼ recalculate theo giá trị Defense khi Defense Protocol active (đảo ngược quyết định round 1 "giữ nguyên thang cũ"), hiển thị mốc mới suốt 48h cooling-off. Đồng thời BA cung cấp thêm nội dung state label (left) chi tiết cho 4 state, và chốt next-level/bonus (state label right) là lookup trực tiếp Table A/B, không tooltip.


Carried-forward context (đã confirm ở dashboard_common/UC_4.1.1-4.1.5/QnA_init_docs.md, KHÔNG hỏi lại)

  • ⚠️ Renumber Note: ID cũ UC_4.11.2 → renumber thành UC_4.12.2 (WBS update 2026-08-10).
  • A-06: PnL Gauge (SIM = UC_4.8.1, LIVE = UC_4.12.2) — BA từng xác nhận thuộc module Overview, KHÔNG thuộc Global Shell; dial có 4 trạng thái (Starting point / Drawdown defense enabled / Breached-Account Disabled / Level Up) là đúng. ⚠️ Cần re-confirm: WBS hiện tại (parse mới nhất, 2026-08-12) liệt kê UC_4.12.2 dưới module Global Shell, không phải Overview — xem QN-4.12.2-04 dưới đây.

Nguồn (dùng lại từ SIM UC_4.8.1 — đã confirm đầy đủ, chỉ thay giá trị per-level)

  • docs/BA/UC_4.1-4.17/dashboard_sim/UC_4.8.1/QnA_init_docs.md (QN-4.8.1-01→05) — công thức dial đầy đủ đã BA chốt: Left End (Min) = Market_Loss_When_Stopped, Right End (Max) = Profit_Target, Needle = Current Net PnL (Realized + Unrealized) live qua ACCOUNT_METRICS, có transition animation giữa 4 state, "Drawdown defense enabled" N/A cho SIM (chỉ áp dụng LIVE Level 9+).
  • References/Customer supplies/dashboard_v7_full.txt L572-575 — 4 state gauge; L837-839 — gauge vẫn active ở ReadOnly/Shadow Mode (Defense Protocol 48h).
  • References/Customer supplies/zapier_v7_full.txt L787-793 (Table F: Defense_Configuration_Matrix — Defense_Notional_Multiplier, Defense_Profit_Target_Percent, Defense_Stop_Loss_Percent, Level 9-24, seed 0.25/0.06/0.05) và L1480-1486 (New_Limit = Floor(Original_Limit × Defense_Notional_Multiplier)).
  • References/Customer supplies/zapier_v7_full.txt L2952-3005 (Table A/B — Profit_Target, Market_Loss_When_Stopped per-level, dùng làm 2 đầu dial thay cho giá trị cố định của SIM).

IDCâu hỏiGiả định (BA/QC đề xuất)BA chốt (ưu tiên cao nhất)Trạng thái
QN-4.12.2-01[Kế thừa công thức SIM] Dial 2 đầu dùng đúng field nào cho LIVE per-level? SIM dùng Market_Loss_When_Stopped/Profit_Target từ GET /current-level-detail. LIVE cùng field nhưng giá trị thay đổi theo Current_Level (1-24, Table A Forex / Table B Futures). Xác nhận LIVE dùng đúng công thức và đúng endpoint như SIM, chỉ khác giá trị theo level hiện tại (không phải khác cơ chế).Đề xuất: dùng lại 100% công thức đã chốt ở QN-4.8.1-03 — Left End = Market_Loss_When_Stopped (per current level), Right End = Profit_Target (per current level), Needle = Net PnL live qua ACCOUNT_METRICS. Không có logic mới, chỉ là data theo level thay vì cố định.BA confirm đúng nguyên văn đề xuất — dùng lại 100% công thức SIM (QN-4.8.1-03), chỉ khác giá trị theo level thay vì cố định. Không có logic mới.✅ Confirmed
QN-4.12.2-02[SCOPE — quan trọng vì LIVE-specific] "Drawdown defense enabled" state — cách tính 2 đầu dial khi ở Defense Protocol (Level 9+, sau 48h cooling-off)? Table F cho biết New_Limit = Floor(Original_Limit × Defense_Notional_Multiplier), và Defense có Defense_Profit_Target_Percent/Defense_Stop_Loss_Percent riêng (không dùng Profit_Target/Market_Loss_When_Stopped gốc nữa). Dial ở state này có đổi 2 đầu Min/Max theo giá trị Defense mới hay giữ nguyên thang cũ và chỉ đổi màu/label?Đề xuất: khi ở Defense Protocol, 2 đầu dial đổi theo giá trị Defense mới, không giữ thang gốc.[ROUND 2 — 2026-08-16] BA đảo ngược lại quyết định round 1. Khi bắt đầu kích hoạt state Defense Protocol, 2 đầu dial (left end/right end) SẼ được tính toán lại (recalculate) theo giá trị Defense mới (Defense_Profit_Target_Percent/Defense_Stop_Loss_Percent áp theo Table F). Trong suốt thời gian chờ 48h cooling-off, dial hiển thị luôn các mốc mới này (không phải mốc gốc theo level). Quyết định round 1 ("giữ nguyên thang cũ") không còn hiệu lực.✅ Confirmed (round 2 — đảo ngược round 1)
QN-4.12.2-03Ranh giới với UC_4.15.4 (Scenario C: Defense Protocol, Level 9+) — UC_4.15.4 sẽ document toàn bộ business logic Defense Protocol (trigger, 48h cooling-off, unlock). UC_4.12.2 chỉ nên mô tả hành vi hiển thị gauge ở state "Drawdown defense enabled", không lặp lại business logic activate/cooling-off/unlock?Đúng theo nguyên tắc single-source-of-truth: UC_4.12.2 chỉ owns hiển thị, UC_4.15.4 owns business logic. SRS UC_4.12.2 sẽ link sang UC_4.15.4.BA confirm đúng nguyên văn đề xuất — UC_4.15.4 owns business logic (trigger condition, timer, unlock flow), SRS UC_4.12.2 sẽ link sang UC_4.15.4.✅ Confirmed
QN-4.12.2-04[MODULE MISMATCH — 🟡 non-blocking nhưng cần ghi nhận] WBS hiện tại (2026-08-12) liệt kê UC_4.12.2 dưới module Global Shell, nhưng carried-forward A-06 (dashboard_common) từng ghi BA xác nhận PnL Gauge thuộc module Overview cho CẢ SIM VÀ LIVE. Có phải BA đã đổi ý khi renumber, hay đây là lỗi phân loại WBS chưa cập nhật?Không tự suy diễn — ghi nhận làm câu hỏi cần BA xác nhận lại.BA confirm: "BA đã đổi ý khi renumber (2026-08-10, dời PnL Gauge từ Overview sang Global Shell cho LIVE)." Giữ module Global Shell theo WBS hiện tại — đây là quyết định có chủ đích, không phải lỗi phân loại. A-06 (dashboard_common) coi như đã được SUPERSEDE bởi quyết định renumber này cho LIVE.✅ Confirmed — giữ module Global Shell, A-06 superseded cho LIVE
QN-4.12.2-05[ROUND 2] State label (left) — nội dung text chính xác cho từng state là gì? BR_4.12.2.4 (SIM) mới chỉ có text chung, cần liệt kê rõ nội dung cho từng state trên LIVE, đặc biệt 2 state Defense-specific (initial activation vs. cooling-off countdown) và biến thể mobile.Không tự đề xuất — cần BA cung cấp nguyên văn text cho từng state.BA cung cấp nguyên văn 4 state: (1) Starting point = "Stop Loss Breach" / "Defense unlocked at Lvl.9" — default từ khi bắt đầu, chưa chạm max drawdown, chưa level up; (2) Drawdown Defense Enabled (initial) = "Drawdown Defense Enabled" / "Floor Locked" — hiển thị khi bắt đầu kích hoạt luồng Defense Protocol ở level 9; (3) Breached (Drawdown Defense Enabled) = "Breached (Drawdown Defense Enabled)" / countdown 48h — hiển thị ngay sau state (2), cho hết thời gian cooling-off; mobile/màn nhỏ rút gọn thành "Drawdown Defense Enabled" / chỉ countdown giờ-phút (không giây); (4) Stop Loss Breached (Account Disabled) = "Stop Loss Breached" / "Account Disabled" — hiển thị khi user chạm max drawdown và current level KHÔNG phải level 9.✅ Confirmed — nội dung đưa vào BR_4.12.2.4 (mới)
QN-4.12.2-06[ROUND 2] State label (right) — nguồn next-level/bonus và có tooltip không? SIM BR_4.8.1.4 trước đó đánh dấu [ASSUMPTION, pending confirmation] cho nguồn [N]/[amount]. Cần chốt: field lấy từ đâu, và có tooltip hiển thị thêm không?Không tự đề xuất — cần BA xác nhận nguồn dữ liệu.BA confirm: next level hiển thị = current level + 1; bonus = Bonus_Paid_To_Trader của level đó — cả hai lấy trực tiếp từ Table A (Forex) / Table B (Futures) theo asset class của trader, cho level kế tiếp. Không có tooltip nào hiển thị ở field này (giá trị hiển thị trực tiếp, không cần giải thích thêm). Áp dụng đồng thời cho cả SIM (UC_4.8.1) và LIVE (UC_4.12.2).✅ Confirmed — cập nhật cả UC_4.8.1 (SIM) và UC_4.12.2 (LIVE)

Ghi chú Phase 2.2 — WBS Cross-UC Consistency Check

  • CR Conflict Check: Không có CR nào tham chiếu trực tiếp PnL Gauge.
  • Cross-category dependency: UC_4.15.4 (Failure & Recovery, Scenario C: Defense Protocol) — xem QN-4.12.2-02/03, cần viết UC_4.15.4 trước hoặc đồng thời để tránh vòng lặp tham chiếu 2 chiều chưa resolve. UC_4.15.2 (Hard Breach — Level Stop) — cross-ref cho state "Breached (Account Disabled)", tương tự pattern SIM UC_4.9.2.
  • Same-category consistency: Sibling UC_4.12.3 (Desk Manager) có cùng vấn đề module mismatch (xem QN tương ứng ở UC_4.12.3) — 2 UC này nên được BA trả lời QN-module-mismatch cùng lúc để nhất quán.
  • Orphan-UC check: UC_4.12.2 xác nhận tồn tại trong WBS, category STAGE 2.2: DASHBOARD LIVE, module Global Shell (theo WBS hiện tại — xem QN-4.12.2-04). WBS description trống hoàn toàn cho UC_4.12.2 (không có mapping_be/mapping_fe/mapping_design).

Ghi chú Phase 2.5 — Impact Analysis

Không có state-changing action trực tiếp trên widget PnL Gauge (read-only display). State-changing action liên quan (activate Defense Protocol, Hard Breach) thuộc UC_4.15.2/UC_4.15.4.


Changelog

DateVersionUpdated itemBeforeAfterNotes
2026-08-12v1Initial creation4 QnA items (kế thừa công thức dial từ SIM UC_4.8.1, mở rộng câu hỏi Defense Protocol LIVE-specific + module mismatch)Init Flow Step 1+2.
2026-08-12v1.1BA review — trả lời 4/4 câuToàn bộ ⏳ Chờ BAQN-4.12.2-01 ✅ Confirmed (đúng đề xuất); QN-4.12.2-02 ✅ Confirmed (KHÁC đề xuất — giữ nguyên thang cũ khi Defense active, không đổi 2 đầu); QN-4.12.2-03 ✅ Confirmed; QN-4.12.2-04 ✅ Confirmed (BA đổi ý khi renumber, giữ module Global Shell)BA (Trang Nguyen) trả lời trực tiếp 2026-08-12
2026-08-16v1.2BA review round 2 — đảo ngược QN-4.12.2-02, thêm QN-05/06QN-4.12.2-02 = "giữ nguyên thang cũ"QN-4.12.2-02 ✅ Confirmed đảo ngược — dial 2 đầu recalculate theo Defense values khi activate, hiển thị mốc mới suốt 48h cooling-off; QN-4.12.2-05 (mới) ✅ Confirmed — nội dung text 4 state cho state label (left); QN-4.12.2-06 (mới) ✅ Confirmed — next-level/bonus lookup trực tiếp Table A/B, không tooltip (áp dụng cả SIM UC_4.8.1 và LIVE UC_4.12.2)BA (Trang Nguyen) trả lời trực tiếp 2026-08-16; đồng bộ vào UC_4.12.2_v1.md (BR_4.12.2.3 viết lại, thêm BR_4.12.2.4 mới, Basic Flow bước 4/6, Screen Description dòng 1/4/5) và UC_4.8.1_v1.md (SIM — BR_4.8.1.4 xoá [ASSUMPTION], Screen Description dòng 5)

On this page