StackTrading Docs

SRS: UC_4.13 — Level Overview (LIVE, module Levels)

FieldValue
BA in ChargeTrang Nguyen
Date Created2026-08-12
Versionv2.1
Document Referencesdocs/BA/UC_4.1-4.17/dashboard_live/UC_4.13/QnA_init_docs.md (QN-4.13-01..08) · References/Customer supplies/dashboard_v7_full.txt L576-579 (Career Page — Interactive Level Map) · References/Customer supplies/zapier_v7_full.txt Table A/B/C/F/G, Flow 4/6/9 · References/QnA from clients/07_STAGE6_CAREER_PATH/QnA_STAGE6_CAREER_PATH.md (STAGE6-001/002/003) · Figma node-id=1-13624 · References/Wireframe/Stage 2/Dashboard/Levels Overview Page V3 (View details).png

UC_4.13 — Level Overview

1. Overview

FieldContent
IDUC_4.13
Use CaseLevel Overview
DescriptionThe full "Level Map" page (moduleLevels) — an interactive 24-level career-path tree diagram with 5 tier tabs, a track toggle for compensation display, and Current/Upcoming Level panels. Reached from UC_4.12.6 — Level Progression Widget (Compact)'s "View all" action. 
Zapier FlowFlow 4 (Promotion) · Flow 6 (Level 6 W-2 Transition) · Flow 9 (Severance Protocol)
Zapier TableTable A (Forex Configuration Matrix) · Table B (Futures Configuration Matrix) · Table C (Global Variables) · Table F (Defense Configuration Matrix) · Table G (Discord Role Map)
3rd Party

References/Wireframe/Stage 2/Dashboard/Levels Overview Page V3 (View details).png — the full 24-level "Levels Overview" page, view-details state (tier tabs + tree diagram + Current/Upcoming Level detail panel expanded).

2. Trigger

  • The user clicks "View all" on UC_4.12.6 (Level Progression Widget).
  • The user selects the "Levels" tab from the sidebar navigation (Ref: UC_4.1.1).

3. Pre-conditions

  • User is on the Dashboard, account type LIVE.

4. Post-conditions

  • The page displays the trader's full 24-level career path as a list of all levels, with the tab containing the trader's current level selected by default (Ref: BR_4.13.1). No Current/Upcoming Level detail panel is shown until the trader clicks an unlocked or current level.
  • [After clicking an unlocked or current level] → the Current Level panel and Upcoming Level panel render for that level, reflecting the most recent Current Level Detail data.

5. Basic Flow

  1. On page load, frontend calls Current Level Detail / 24 Levels Detail endpoints for the trader's LIVE account.
  2. Frontend renders only the list of all 24 levels as the tree diagram, grouped into 5 tier tabs, with the tab containing the trader's current level selected by default (Ref: BR_4.13.1). No Current Level or Upcoming Level detail panel is shown at this point — each node shows level number/title and its lock / done / current state only (done/lock state inferred client-side by comparing the level's number to the trader's current_level).
  3. [If the trader clicks a level node that is already unlocked (completed) or is the trader's current level] → frontend expands and renders the Current Level panel (level number, title, progress %, compensation table for the selected track — Ref: BR_4.13.2) and the Upcoming Level panel (same structure, for the next level) for the clicked level.
  4. [If the trader clicks a level node that is still locked and beyond the current level] → no detail panel is shown; the node remains in its locked, non-interactive state.
  5. [If the user switches the compensation track toggle, while a detail panel is expanded] → the Current/Upcoming Level panels re-render with the selected track's compensation fields (US (Standard) / US (Flex) / International Contractor).
  6. [If the user switches tier tabs] → the tree diagram re-renders to show the levels in the selected tier, reverting to the list-only state described in Step 2 until the trader clicks an unlocked/current level again in that tab.

7. Exceptional Flow

  • API connection drops: the page retains its last-loaded values while the client applies exponential backoff and automatically reconnects, per CR-14 — WebSocket Reconnection Resiliency (Shared) if this page carries any real-time component (not yet confirmed — page is largely reference-data driven).

8. Business Rules

BR_4.13.1: Page Scope — Full 24-Level Career Path Map

This resolves a scope conflict identified against UC_4.12.6 before either UC was drafted:

  • UC_4.13 (this UC, module Levels) = the full page — 24-level tree diagram across 5 tier tabs: Associate Trader (Lvl 1–5), Trader (Lvl 6–9), Senior Trader (Lvl 10–17), Principal Trader (Lvl 18–21), Managing Principal (Lvl 22–24) — plus a compensation track toggle and Current/Upcoming Level panels. This UC owns Figma node-id=1-13624 and the WBS full-page description originally misattributed to UC_4.12.6.
  • UC_4.12.6 (Global Shell) = the compact widget only (current level/title + up to 3 upcoming levels + "View all" link into this page) — does not repeat this page's content.

BR_4.13.2: Progress % Formula — Aligned with PnL Gauge (Net PnL ÷ Profit Target)

  • Data source: progress_percent is returned directly as a field in the GET /me/current-level response — it is backend-computed, not derived client-side by the frontend (Source: client confirmation, 2026-08-27).
  • Formula: progress_percent = max(0, Net PnL ÷ Profit Target × 100), where Net PnL is Unrealized + Realized PnL (same source value driving the UC_4.12.2 PnL Gauge needle) and Profit Target is the current level's Table A/B Profit_Target value.
  • Floor at 0%: negative Net PnL or Net PnL = $0 both display 0% — the formula does not go negative on the UI.
  • No explicit ceiling was stated by the client; this SRS does not assume a 100% cap pending a scenario where Net PnL exceeds Profit Target (e.g. between promotion trigger and level rollover) — flag for BA if this edge case needs a separate confirmation.

BR_4.13.3: Current Level Panel Background Theme — by Level Range

The Current Level panel's background theme changes according to the level's range, giving each tier a distinct visual identity:

Level rangeTheme
Level 1 – Level 6Theme 1: Dark / Charcoal
Level 7 – Level 14Theme 2: Blue / Steel
Level 15 – Level 18Theme 3: Bronze
Level 19 – Level 22Theme 4: Silver
Level 23 – Level 24Theme 5: Gold

(Source: BA direct instruction, 2026-08-19.) The theme is keyed purely to the clicked level's number (Ref: BR_4.13.1 for the underlying 5-tier structure) and applies independently of the compensation track toggle or tier tab selection. [PENDING — design confirmation] this SRS does not yet have a wireframe/Figma frame showing each theme's exact colour values; BA should confirm hex values against the design system before build.

BR_4.13.4: W2 Compensation Data — Sourced from Table A/B, Displayed by Trader Type

Each level's W2/compensation data shown in the Current Level and Upcoming Level panels is sourced from Zapier Table A (Forex Configuration Matrix) / Table B (Futures Configuration Matrix), and its display varies by trader type:

  • Level 1 – Level 5: trader type is Contractor — no W2 employment classification applies yet at this stage.
  • Level 6 and above: the trader has become a full-time employee, and trader type is one of International trader, US trader (Flex), or US trader (Standard). Which of the three applies is determined starting at Level 6, per the Country Check / Offer Configurator logic in Flow 6 — Level 6 Transition (W-2 vs. International): a USA-based trader goes through address verification and a Checkr background check, then selects Track A "Full Benefits" (30–35 hrs/week, Base_Income) or Track B "Flex Cash" (≤29 hrs/week, Base_Income_Flex) via Rippling W2 onboarding; a non-USA trader remains on the International Contractor track.

(Source: References/Customer supplies/zapier_v7_full.txt, Flow 6 — Level 6 Transition (W-2 vs. International); BA direct instruction, 2026-08-19.) This BR replaces the compensation-field-set description previously carried under the removed BR_4.13.4 ("Current vs. Upcoming Level Panel — Field Set Differs by Compensation Stage"); the Monthly Retainer field-mapping note for the International Contractor track (Source: BA verbatim, 2026-08-12, QnA_init_docs.md QN-4.13-05 — reuses an existing compensation field, e.g. base_salary_annualized, with the data source/displayed meaning changed per track; no dedicated monthly_retainer JSON field is created) still applies and is retained here.

9. Screen Description

No.Field NameField TypeDisplaying rule / Behaviour rule
1Tier tabsTabDisplaying rule:- 5 tabs: Associate Trader (1–5), Trader (6–9), Senior Trader (10–17), Principal Trader (18–21), Managing Principal (22–24). Tab containing trader's current level selected by default (Ref: BR_4.13.1).
224-level tree diagram (list-only)WidgetDisplaying rule:- On page load, shows every level's number/title and lock/done/current state only — no detail panel yet (Ref: BR_4.13.1). Done/lock state inferred client-side by comparing the level's number to the trader's current_level.
3Compensation track toggleToggleBehaviour rule:- Available once a Current Level panel is expanded (see row 4); switches Current/Upcoming panel compensation fields between US (Standard) / US (Flex) / International Contractor (Ref: BR_4.13.4).
4Current Level panelPanelDisplaying rule:- Expands only when the trader clicks a level node that is unlocked or is the current level (Ref: Basic Flow step 3). Shows Level / Title / Progress % = Net PnL ÷ Profit Target × 100, floored at 0% (Ref: BR_4.13.2) / background theme by level range (Ref: BR_4.13.3) / W2 compensation data by trader type, sourced from Table A/B (Ref: BR_4.13.4).
5Upcoming Level panelPanelDisplaying rule:- Expands alongside the Current Level panel under the same click condition (Ref: Basic Flow step 3). Same structure as Current Level panel, showing the next level's W2 compensation data by trader type (Ref: BR_4.13.4).

Changelog

DateVersionUpdated itemBeforeAfterNotes
2026-08-19v2§1 Overview — wireframe reference[BLOCKED — pending design], only Figma node-id=1-13624 on record.CitesReferences/Wireframe/Stage 2/Dashboard/Levels Overview Page V3 (View details).png as the primary wireframe; Figma retained as secondary source; View all level details - Evaluation.png noted as the SIM-only evaluation variant, not used here.Source: BA direct instruction, 2026-08-19.
2026-08-19v2§2 Trigger2 lines: "View all" click OR direct navigation; plus a second line for tab/track/node interactions.Exactly 2 triggers: (1) click "View all" on UC_4.12.6, (2) select "Levels" tab from sidebar navigation. Tab/track/node interactions moved into Basic Flow as in-page actions.Source: BA direct instruction, 2026-08-19.
2026-08-19v2§4 Post-conditionsDescribed Current/Upcoming Level panels as rendering on page load.Describes list-only state on page load; panels render only after clicking an unlocked/current level.Consequential update to match the revised Basic Flow.
2026-08-19v2§5 Basic Flow7 steps: tree renders with Current/Upcoming panels immediately on load.Rewritten: page load shows list-only (all levels, no detail panel); clicking an unlocked or current-level node expands Current + Upcoming Level panels; clicking a locked future level does nothing; track toggle and tier-tab switching behavior retained as in-page actions.Source: BA direct instruction, 2026-08-19.
2026-08-19v2§6 Alternative FlowContained a below-Level-6 track-toggle note,[PENDING].Section removed entirely — no alternative flow for this UC.Source: BA direct instruction, 2026-08-19 ("Bỏ mô tả ở alternative. Không có flow này.").
2026-08-19v2BR_4.13.3 (old)"Status Tags — Severance / W2 / Drawdown Defense," including an⚠️ [AMBIGUOUS] flag on W2 tag gating.Removed entirely (tags are static/always-displayed, no associated action).Source: BA direct instruction, 2026-08-19 ("các tag này là tĩnh luôn hiển thị, không có action nào").
2026-08-19v2BR_4.13.4 (old)"Current vs. Upcoming Level Panel — Field Set Differs by Compensation Stage" (field-set table + Monthly Retainer mapping note).Removed. The Monthly Retainer field-mapping note was preserved and folded into the new BR_4.13.4 (W2 Compensation Data by Trader Type) below.Source: BA direct instruction, 2026-08-19.
2026-08-19v2BR_4.13.5 (old)"Done" Level Status — Inferred Client-Side fromcurrent_level.Removed as a standalone BR; the same client-side inference logic is now folded inline into §9 Screen Description row 2 and §5 Basic Flow step 2.Source: BA direct instruction, 2026-08-19.
2026-08-19v2BR_4.13.6 (old)Tier Tab Naming — "Senior Trader" flat, not split I/II.Removed entirely; §9 Screen Description row 1 no longer references it.Source: BA direct instruction, 2026-08-19.
2026-08-19v2BR_4.13.7 (old)Table A Level 9–16 OCR recovery — full recovered data table +⚠️ [MANIFEST DISCREPANCY] flag re: unregistered Zapier_Integration_V7.txt.Removed entirely, including the recovered data table and the manifest-discrepancy flag.Source: BA direct instruction, 2026-08-19.⚠️ Follow-up note for BA/QC: this removal does not resolve the underlying manifest housekeeping item (Zapier_Integration_V7.txt still unregistered in _SOURCE_MANIFEST.yaml) — flagging in case that data is cited again elsewhere.
2026-08-19v2New BR_4.13.3— (did not exist)Added: "Current Level Panel Background Theme — by Level Range" (5 themes: Dark/Charcoal L1-6, Blue/Steel L7-14, Bronze L15-18, Silver L19-22, Gold L23-24).Source: BA direct instruction, 2026-08-19. Flagged[PENDING — design confirmation] for exact hex values.
2026-08-19v2New BR_4.13.4— (did not exist)Added: "W2 Compensation Data — Sourced from Table A/B, Displayed by Trader Type" (Contractor L1-5; International/US Flex/US Standard from L6+, determined via Flow 6 logic).Source:zapier_v7_full.txt Flow 6; BA direct instruction, 2026-08-19.
2026-08-19v2§9 Screen DescriptionRows 1-5 referenced BR_4.13.3 through BR_4.13.7 (old numbering) and described panels as always-rendered.Rows updated to reference the retained/new BRs only, and to reflect the list-then-detail-on-click behavior (rows 2, 4, 5).Consequential update following the BR removals/additions above.
2026-08-27v2.1BR_4.13.2 — added data source lineFormula-only; did not state where progress_percent comes from (implied frontend-derived from Net PnL / Profit Target).Added Data source: line — progress_percent is returned directly as a field in the GET /me/current-level response, backend-computed, not derived client-side by the frontend.Source: client confirmation, 2026-08-27.

On this page