StackTrading Docs

SRS: UC_4.11.1 — Settings: Account Actions — Reset Associate Track (SIM)

UC_4.11.1: Settings — Account Actions: Reset Associate Track (SIM)

FieldValue
BA in ChargeQuynhAnh12
Date Created2026-08-11
Versionv2.0
Document ReferencesSee table below

Scope — read this first. This document specifies one control: the [Reset Associate Track] button on the Account Actions tab. It answers three questions and nothing else:

  1. Where the button lives and how the trader reaches it — §2.
  2. When it is Enabled — BR_4.11.1.3.
  3. What the click fires — BR_4.11.1.4.

Everything that happens after the click is UC_4.10.3 — Scenario A: Sim Reset (In-App), which already registers this screen as its Entry Point 2 and specifies the whole path in §5.3: loading state, pricing, the Reset Modal, the gates, the payment paths, provisioning and the success screen. None of it is restated here — Ref: BR_4.11.1.5.


Document References

#Original DocumentUsed for
1RFQ_ Website and Dashboard Implementation V7.pdf§Part C — Settings & Profile Module (tab inventory of the Account screen)
2RFQ_ Stack Trading Prop Tech V7.pdf§Endpoint POST /calculate-cart — the only request this screen issues
3QnA from clients — Stage 2 - Dashboard & Fomula (Settings).csv, category Settings: Reset Associate Track (Adrian Stack, 2026-08-12)Button enablement per account status; backend validation widened to Active_SIM. Ref: BR_4.11.1.3, BR_4.11.1.7
4CR-65SIM resignation writes status = 'Failed', not 'Terminated'
5BA design set, 2026-08-11 — Figma node 1-15026On-screen copy in §9. Not yet committed to References/Wireframe/ (Ref: §10, A-17)

1. Overview

FieldContent
IDUC_4.11.1
Use CaseSettings — Account Actions: Reset Associate Track (SIM)
DescriptionA SIM trader starts a reset from the Account Actions tab instead of from the Dashboard's Hard Breach Popup. This UC owns the section's copy, the button and its Enabled state. The click hands off to UC_4.10.3 §5.3.
Zapier Flow— (this UC triggers no flow)
Zapier Table— (this UC reads no table)
3rd Party— (reached only indirectly, through POST /calculate-cart — owned by UC_4.10.3)

Design: Figma — Account Actions (Reset Associate Track), node 1-15026

2. Trigger

The trader clicks [Reset Associate Track] on the Account Actions tab while the button is Enabled (Ref: BR_4.11.1.3).

Navigation path — the only one (Ref: BR_4.11.1.2):

  1. Sidebar footer user chip → Settings. Ref: UC_4.1.2 §2 row 6.
  2. The Account screen opens on its default tab Connections & Credentials. Ref: BR_4.6.1.1.
  3. The trader selects the Account Actions tab → the Reset Associate Track section renders.

3. Pre-conditions

  • The trader is authenticated and inside the Dashboard shell. Ref: UC_4.1.1 §1.
  • The trader holds a SIM evaluation account (Is_Professional == False). LIVE is out of scope — Ref: BR_4.11.1.8.
  • Status is Active_SIM or Failed — the two entry states this screen serves. They differ in what the trader is walking away from:
Entry state 1 — FailedEntry state 2 — Active_SIM (Early Reset, [CHR-40])
How the trader got hereHard Breach (UC_4.10.2) · Stagnation expiry (UC_4.10.4) · Resignation (UC_4.11.2, CR-65)Nothing happened — the evaluation is still running (Soft Breach lockout included)
failure_timestamp / archive_datePresentAbsent — there is no window to expire, Ref: BR_4.11.1.6
DashboardFrosted Glass + Hard Breach Popup (Ref: BR_4.10.2.2) — this screen bypasses it, Ref: BR_4.11.1.5Normal, still trading
Challenge progressAlready lostStill intact — the reset forfeits it, Ref: BR_4.11.1.7

Both states render the same button and run the same flow (§5). What differs downstream is the price and the Status transition, both owned by UC_4.10.3 — see §4.

4. Post-conditions

At the hand-off point — where this use case ends, identical in both entry states:

  • POST /calculate-cart returned HTTP 200 and the Reset Modal is open; control passed to UC_4.10.3 §5.3 Step 2.
  • No account state changed. No charge, no Status transition, no sub-account touched — including from Active_SIM, where the running evaluation is still fully intact. Abandoning the modal costs the trader nothing. Ref: BR_4.11.1.5, BR_4.11.1.7.
  • On failure, the trader stays on the Account Actions tab with the button re-Enabled — Ref: §7.

At the end of the purchase — owned by UC_4.10.3, recorded here only so the two entry states can be told apart, not restated:

Entry state FailedEntry state Active_SIM
Status after payment'Failed''Active_SIM'Unchanged — already 'Active_SIM'
Price route (BR_4.10.3.1)A/B/C/D — window checkedA or C only — Early Reset override, Ref: BR_4.11.1.6
Sub-account (BR_4.10.3.2)Case A or B, depending on whether the failsafe has firedAlways Case A — the running sub-account is deleted first
Trader ends onDashboard at Day 0Dashboard at Day 0

Source for the Status column: BR_4.10.3.5"Status in DB changes from 'Failed''Active_SIM' on the post-Hard-Breach path. For Early Reset (input already Status = 'Active_SIM'), Status does not change."

Neither path ever produces Status = 'Failed'. That value is written only by UC_4.10.2 (Hard Breach), UC_4.10.4 (stagnation expiry) or UC_4.11.2 (resignation) — never by a reset.

5. Basic Flow

  1. The trader reaches the Account Actions tab per §2.
  2. The Reset Associate Track section renders — title, description, button. The button is Enabled (Ref: BR_4.11.1.3).
  3. The trader clicks [Reset Associate Track].
  4. The button is disabled and the frontend calls POST /calculate-cart with product_id="RESET". Ref: BR_4.11.1.4.
  5. Hand-off. On HTTP 200 the Reset Modal opens and control passes to UC_4.10.3 §5.3. This UC ends here — Ref: BR_4.11.1.5.

6. Alternative Flows

None. The flow in §5 is identical in every SIM account state — same button, same single call, same modal. What differs is the price, and the price is decided by UC_4.10.3, not by this screen — Ref: BR_4.11.1.6.

7. Exceptional Flow

CaseHandling
Repeated clicksThe first click disables the button, so no second call and no second modal. Ref: BR_4.11.1.4.
POST /calculate-cart fails — 5xx / timeout / no networkModal does not open; button re-Enabled; Ref: TE-SYS-01. No auto-retry.
Session expired — 401Ref: TE-AUTH-01 → redirect to Auth0 login.
Sanctioned region — 403Handled by UC_4.10.3 §7FP-02. This UC adds no separate handling.
Status no longer permits the resetNot detected here. Caught by Gate 1 inside the modal — Ref: UC_4.10.3 §5.3 Step 3.

8. Business Rules

BR_4.11.1.1: What This UC Owns

This UC owns only the Reset Associate Track section of the Account Actions tab. Everything else on the Account screen is owned elsewhere:

ElementOwner
Account screen shell, tab list, default tabUC_4.6.1 · tab list: BR_4.6.2.1
Profile & Preferences tabUC_4.6.2
Market Data Management / Billing tabs · Controls panelUC_4.17.1 · UC_4.6.3 · UC_4.6.4
Resign & Close Account section (same tab, below this one)UC_4.11.2
Sidebar user chip (entry point)UC_4.1.2
The entire reset purchase flow after the clickUC_4.10.3 — Ref: BR_4.11.1.5

BR_4.11.1.2: One Entry Point Only

The section is reachable only through user chip → SettingsAccount Actions tab. There is no deep link, no shortcut from the Dashboard, and no route landing directly on the tab — the Account screen always opens on Connections & Credentials (Ref: BR_4.6.1.1).

The section holds no editable field, so leaving the tab needs no unsaved-changes interception.

BR_4.11.1.3: Button Enablement — Enabled in Every SIM Account State

The [Reset Associate Track] button is Enabled for a SIM trader in every account state. It is never hidden, never Disabled, and carries no tooltip.

SIM account stateButtonSource
Active_SIM — evaluation running✅ Enabled"Enabled. Allow users to manually forfeit their current challenge and restart from scratch." (Adrian Stack, 2026-08-12) — this is the Early Reset case, Ref: BR_4.11.1.7
Active_SIM + Soft Breach lockout (Daily Loss Limit hit — UC_4.10.1)✅ Enabled"Enabled." (same answer). A Soft Breach is a trading lock, not an account state — Status is still Active_SIM, so nothing changes here
Failed, failure_reason = 'Drawdown' (Hard Breach)✅ EnabledUC_4.10.3 §5.3 Step 0
Failed, failure_reason = 'VOLUNTARY_RESIGNATION' (after resignation — login survives, Ref: BR_4.11.2.7)✅ EnabledSame as the Hard Breach row — resignation writes 'Failed', Ref: CR-65

Two notes:

  • Terminated is not a SIM state. Since 2026-08-25 no SIM flow produces it; it survives on LIVE only (UC_4.17.2). Ref: CR-65.
  • Enabled ≠ authorised. Status is re-checked server-side as Gate 1 at the modal's CTA, which accepts Failed and Active_SIM — Ref: UC_4.10.3 §5.1 Step 2.

BR_4.11.1.4: The Click Fires Exactly One Request

POST /calculate-cart with product_id="RESET" — the only request this UC owns.

  • The button is disabled at the moment of click, before the request is issued, and stays disabled while the call is in flight. A double-click cannot produce a second call or a second modal.
  • On HTTP 200 the button is not re-enabled behind the modal — the modal owns the screen. Ref: BR_4.11.1.5.
  • On failure the button is re-Enabled for a manual retry. The system never auto-retries: a retry re-prices the purchase and must be deliberate. Ref: §7.
  • The loading state shown during the call (spinner + "Calculating regional taxes...") is specified in UC_4.10.3 §5.3 Step 1.

BR_4.11.1.5: Hand-off — Everything After the Click Belongs to UC_4.10.3

This screen is Entry Point 2 of UC_4.10.3. From the click onward, follow UC_4.10.3 §5.3. This document makes no statement about, and must never restate:

  • Pricing and the four-way route — BR_4.10.3.1.
  • The Reset Modal, the promo code flow, the base-price lock and the tax re-calculation at pay click.
  • Gate 1 (status), Gate 2 (sanctions), Gate 3 (vaulted card); Paths A / B / C.
  • POST /purchase-challenge-reset, POST /provision-sim-user, and every post-payment consequence — trade archive, balance reset, Status transition, Frosted Glass removal, credentials.
  • The success screen and its [Return to Dashboard] CTA — the flow ends on the Dashboard at Day 0, not back on the Account screen.

Two behaviours this UC does assert about the boundary itself:

  • The Hard Breach Popup is never shown on this path. That popup is Dashboard-only (Ref: BR_4.10.2.2); clicking here goes straight to the pricing call, and this screen never navigates to the Dashboard to show it. This is the defining difference between Entry Point 1 and Entry Point 2.
  • There is no separate confirmation dialog before the modal. The Reset Modal is the confirmation — reset is a paid action, so the payment modal carries it. No typed-phrase friction barrier of the kind Resign & Close Account uses (Ref: BR_4.11.2.1). Abandoning the modal changes nothing.

When UC_4.10.3 changes, this document does not — the hand-off is by reference, not by copy.

BR_4.11.1.6: Pricing Is Not Decided Here

Price and modal are resolved server-side on POST /calculate-cart and specified in BR_4.10.3.1 — four routes over Discount_Code_Duration_Days × is_founder. Not restated here.

One consequence is worth recording for this entry point:

A trader who resets proactively from a running evaluation (Status = 'Active_SIM') can only land on the within-window routes — A (founder → locked_reset_price) or C (standard → Reset Fee by Current_Level + Asset_Class). There is no countdown to expire: Discount_Code_Duration_Days runs from failure_timestamp, and an active account has none. The Early Reset override in BR_4.10.3.1 states this explicitly: "always uses the within Discount_Code_Duration_Days pricing tier (no window check performed)".

For a Failed account entering from this screen the normal window check applies, so routes B and D remain reachable — Ref: §10, A-25.

BR_4.11.1.7: Early Reset From an Active Evaluation Forfeits It

Enabling the button in Active_SIM makes reset destructive: the account being reset still has progress. The client specified the backend consequence (Adrian Stack, 2026-08-12, row Endpoints):

EndpointChange
POST /purchase-challenge-resetValidation accepts Active_SIM and Failed. "If a user resets while active, the backend must instantly execute the routine to delete the active sub-account, process the payment, and provision a fresh account."
POST /initiate-rebuy"No change."

Boundaries this document asserts:

  • Nothing is forfeited on this screen. Delete-pay-provision runs on the purchase call, not on POST /calculate-cart. A trader who opens the modal and abandons it keeps their evaluation intact — positions and progress included.
  • The forfeit is not refunded and not reversible. The original fee is gone; the new challenge is a new purchase.
  • Provisioning itself is owned by BR_4.10.3.2 (Case A / Case B), not by this UC.

BR_4.11.1.8: SIM Only

Every rule here is written for a SIM trader (Is_Professional == False). No individual rule is gated on environment — the document as a whole is.

The LIVE counterpart is UC_4.17.3, and its rules are the opposite of this document's: Disabled in every LIVE state except Terminated, resignation via UC_4.17.2 is a hard prerequisite, and the purchase is a Re-Buy (POST /initiate-rebuy), never a Reset — Ref: BR_4.17.3.3, BR_4.17.3.6.

9. Screen Description

9.1 Account Actions tab — Reset Associate Track section

Only this section is specified. Resign & Close Account below it belongs to UC_4.11.2 §9.1; the tab list and Controls panel belong to the shell — Ref: BR_4.11.1.1.

No.Field NameField TypeDisplaying rule / Behaviour rule
1Section titleLabelDisplaying rule:- Static text: "Account Actions". Heads the whole tab, shared with the section below.- Overflow: Wrap text.
2Row titleLabelDisplaying rule:- Static text: "Reset Associate Track".- Overflow: Wrap text.
3Row descriptionLabelDisplaying rule:- Static text: "Reset and restart Associate Track. Current progress will be lost."- Static in every account state.- This is the only warning shown before an Early Reset forfeit — Ref: BR_4.11.1.7.- Overflow: Wrap text.
4[Reset Associate Track]Button (Primary)Displaying rule:- Static label: "Reset Associate Track" — it does not change with the pricing window, because the modal behind it is always the Reset Modal (Ref: BR_4.10.3.1).- Enabled in every SIM account state — never hidden, never Disabled, no tooltip. Ref: BR_4.11.1.3.- Disabled while POST /calculate-cart is in flight. Ref: BR_4.11.1.4.Behaviour rule:- On click → POST /calculate-cart (product_id="RESET").- On HTTP 200 → Reset Modal opens, control passes to UC_4.10.3 §5.3. No confirmation dialog in between — Ref: BR_4.11.1.5.- On failure → Ref: §7.Impact:- None at this step, in any state. No charge, no Status change, no sub-account touched.

10. Open Items Pending Client Confirmation

QnA IDItemAffected
A-25🟡 New — should a Failed trader entering from Settings after Discount_Code_Duration_Days still get the discounted tier? BA's position (2026-09-03) is that a proactive reset should never hit an expired window. That holds automatically for Active_SIM (routes A/C only), but a Failed trader can sit past the window and then open Settings, where BR_4.10.3.1 routes them to B/D. Confirm whether that is intended or whether this entry point forces A/C for all states.BR_4.11.1.6
A-17⚪ Wireframe not yet committed to References/Wireframe/Stage 2/Settings/; the Figma node is cited instead.Document References

Closed:

QnA IDWas openClosed by
A-03 / A-04Button behaviour in Active_SIM / Soft Breach; whether the design frame was authoritativeClient answer 2026-08-12 → BR_4.11.1.3
A-05Button label after the window expires✅ Moot — the modal is always the Reset Modal, so the label never changes. Ref: BR_4.10.3.1 [CHR-59]
A-22Which price applies to a reset from Active_SIM✅ Early Reset override — always the within-window tier (A or C). Ref: BR_4.11.1.6
A-23Who owns the LIVE counterpartUC_4.17.3 (2026-08-26)
A-24UC_4.10.3 Gate 1 still Failed-only✅ Updated — Gate 1 now accepts Failed + Active_SIM [CHR-40]
A-21Broken anchor #7-exceptional-flow in UC_4.10.3✅ Anchor now exists

Changelog

DateVersionChange
2026-09-03v2.1§3 và §4 tách theo 2 entry state (BA review). §3 Pre-conditions: thêm bảng so sánh Failed vs Active_SIM — cách trader tới đây, có/không failure_timestamp + archive_date, Dashboard có/không Frosted Glass, tiến độ challenge còn hay mất. §4 Post-conditions: tách 2 tầng — tại điểm bàn giao (giống nhau ở cả 2 state, không đổi state nào) và cuối luồng mua (thuộc UC_4.10.3: FailedActive_SIM vs giữ nguyên; route A/B/C/D vs chỉ A/C; Case A/B vs luôn Case A). Ghi rõ không đường nào tạo ra Status = 'Failed' — giá trị đó chỉ do UC_4.10.2 / UC_4.10.4 / UC_4.11.2 ghi. Không rule nào thay đổi; chỉ làm rõ điều đã ngầm định.
2026-09-03v2.0Full rewrite on BA instruction — the document was over-specified and unreadable. Scope narrowed to the button alone: where it lives, when it is Enabled, what the click fires. Everything downstream now points at UC_4.10.3 §5.3 instead of being restated. Removed: §6.1 (window expired) and the old BR_4.11.1.4 button-label rule — UC_4.10.3 [CHR-59] confirms the modal is always the Reset Modal, so no "Start New Track Modal" and no label change exist; §6.2 / §6.3 (they were the same flow written three times); all source-history commentary. Business rules 11 → 8, renumbered; inbound references were repointed accordingly — old BR_4.11.1.11BR_4.11.1.7 and old BR_4.11.1.10BR_4.11.1.8 in UC_4.17.3, UC_4.11.2 and this UC's QnA_init_docs.md. Added BR_4.11.1.6 — pricing refers to BR_4.10.3.1; a proactive Early Reset lands on routes A/C only. Closed A-05, A-21, A-22, A-24; opened A-25. No client-confirmed rule was dropped.
2026-08-26v1.3A-23 closed — LIVE counterpart assigned to UC_4.17.3. Pointer update only.
2026-08-25v1.2CR-65 — SIM resignation writes 'Failed', not 'Terminated'. A resigned account is an ordinary Failed account on this screen.
2026-08-12v1.1Client answer — button Enabled in every SIM state; POST /purchase-challenge-reset validation widened to Active_SIM.
2026-08-11v1Initial creation. SIM only, scoped as an entry point into the UC_4.10.3 purchase flow.

On this page