Beta Walkthrough — 5-Screen Activation Flow
Design date: 2026-06-12
Supersedes: docs/ux/beta-tester-walkthrough-screens-2026-06-11/ (4-screen draft)
Route prefix: /beta/walk/[token]/screen/[n]
Screen index
| # | File | Hypothesis | State type | Screenshots |
|---|---|---|---|---|
| 1 | screen-1-persona-anchor.html |
— (demographic anchor) | Interactive (3 questions) | desktop + mobile |
| 2 | screen-2-loaded-scenario.html |
— (context set) | Mostly static, chain scrollable | desktop + mobile |
| 3 | screen-3-ic-builder.html |
H2 | Interactive — gate FIRED state | desktop + mobile |
| 3b | screen-3b-gate-resolved.html |
H2 | Interactive — gate CLEARED state | desktop + mobile |
| 4 | screen-4-tax-context.html |
H3 | Static (post-submit display) | desktop + mobile |
| 5 | screen-5-debrief.html |
H1, H2, H3, H4, H5 | Interactive (4+1 questions) | desktop + mobile |
| 5b | screen-5b-thankyou.html |
— (terminal state) | Static | desktop + mobile |
Microcopy — locked per screen
Screen 1 — Persona Anchor
Eyebrow: Before we begin
H1: 3 questions to anchor what you'll see.
Sub: Unscored. Takes under a minute. Helps us show you the right context during the walkthrough — not generic demos.
CTA: Show me how Raxx handles a real trade
CTA note: Next: a live SPX options chain from yesterday. No account required.
Q1: How long have you been actively trading options?
Options: Less than 1 year / 1–3 years / 3–7 years / 7–15 years / 15+ years
Q2: What tools do you use today to manage and journal your trades?
Options: Broker platform only / Spreadsheet (Google / Excel) / Third-party journal app / I don't journal consistently
Q3: In your own words: what's your biggest frustration with how you manage trades today?
Placeholder: "E.g. 'I blow through my own stop rules when I'm in the trade…'"
Screen 2 — Loaded Scenario
Eyebrow: The scenario
H1: Here's yesterday's SPX. A real, recent options chain.
Sub: This is actual market data — end-of-day from Wednesday. Nothing simulated yet. Your task is next.
Data chip: SPX End-of-Day · Jun 11, 2026
Task card H2: Build an Iron Condor for next Friday's expiry.
Task card body: Target a net credit around $0.50 per share ($50 per contract). We'll watch what Raxx's structure gate does when you pick your strikes.
CTA: Start building
CTA note: The IC builder loads on the next screen. ~2 min.
Screen 3 — IC Builder (Gate Fired State)
Eyebrow: Structure enforcement — live
H1: Build your Iron Condor. Raxx watches.
Sub: Pick your strikes below. SPX Jun 20 expiry. The structure gate fires automatically — that's the point.
Gate header: Structure gate fired — max loss exceeds your tolerance
Gate body lead: Your investor profile caps single-position max loss at $1,500. This IC's max loss is $1,948 — $448 over your limit.
Gate body note: Raxx blocked submission — not your broker. This check ran before anything touched an order queue. Adjust your spread width or provide a justification to proceed.
Adjust CTA: Adjust strikes (recommended)
Override CTA: Override with justification
Override placeholder: "E.g. 'Sizing this as 1/4 of my normal allocation — net risk is within total account limit.'"
Submit (locked): [lock icon] Submit paper trade
Submit note: Resolve structure gate to unlock submission.
Screen 3b — IC Builder (Gate Resolved State)
Eyebrow: Gate resolved — submit ready
H1: Adjusted. Structure check passes.
Sub: You narrowed the spread width. The max loss dropped inside your limit. Raxx unlocked submission.
Gate resolved header: Structure gate cleared — all checks pass
Gate resolved body: You moved the short strikes closer to ATM. Max loss is now $1,380 — within your $1,500 profile limit.
Submit CTA: [play icon] Submit paper trade
Submit note: Paper only — no real capital at risk.
Screen 4 — Tax Context
Eyebrow: What most platforms hide until April
H1: Now Raxx shows you what this structure did — before you'd ever see it elsewhere.
Sub: The Iron Condor you just submitted. Here's what a real Raxx account would surface in real time — tax context, lot selection, and holding-period classification at point of entry.
Confirmed banner: Paper trade submitted — SPX Iron Condor, Jun 20 expiry
§1256 card title: §1256 Contract — 60/40 split applies
§1256 tag: 60/40 Auto-tagged
§1256 note: SPX is a §1256 contract by statute. This tag was applied at entry — not at close. On a real account, it would appear the moment your broker confirms the fill. Your broker likely shows this nowhere until year-end export.
Wash-sale card title: Wash-sale: not applicable to this position
Wash-sale body: No wash-sale risk on §1256 contracts. The wash-sale rule does not apply to broad-based index options like SPX under current IRS guidance. If this had been a single-stock option, Raxx would scan your prior 30 days for substantially identical positions and flag any lot that would trigger disallowance. That scan runs on every submit, for every close that produces a loss.
Lot card title: Lot method & projected holding-period class
Sim disclaimer: This was simulated. On real trades, you'd see this tax context appear at the moment of fill confirmation — not at export, not at year-end. The lot data, wash-sale scan, and §1256 tags above reflect what Raxx would surface on your actual account positions.
Footer: Tax context is simulated — not tax advice
CTA: Almost done — 4 quick questions
CTA note: ~2 min. Helps Kristerpher understand what you just experienced.
Screen 5 — Debrief (4 + 1 Questions)
Eyebrow: 4 questions — then you're done
H1: Honest question: does this solve a problem you actually have?
Sub: No right answers. These four questions directly shape what Raxx becomes. 2 minutes, then Kristerpher will follow up.
Q1 (H1 — Structure-gap resonance):
"In your own words: what did Raxx just prevent you from doing wrong?"
Type: Open text
Placeholder: "E.g. 'It stopped me from sizing a position larger than my own max-loss rule…'"
Q2 (H2 — Constraint as relief, not restriction):
"The max-loss gate that fired on screen 3 — did it feel helpful, annoying, or invisible?"
Type: Single-select
Options:
- Helpful — it caught something I would have missed (sub: The check was doing what I wanted my own rules to do.)
- Annoying — it got in the way (sub: I knew what I was doing; the block felt paternalistic.)
- Invisible — I barely noticed it (sub: Didn't register as a meaningful moment.)
- Something else (sub: I'll describe it in the debrief call.)
Q3 (H3 — Tax engine value without explanation):
"Would the tax context on screen 4 have changed a real past trade decision?"
Type: Single-select
Options:
- Yes — knowing that at entry would have changed something
- No — I already account for this myself
- Not enough volume yet — ask me again in 3 months
Q4 (H4 — Upgrade intent):
"What's the most you'd pay per month for that tax context — on top of your current broker?"
Type: Number input (dollar, no upper bound)
Hint: Enter a number. $0 is a valid and useful answer.
Q5 (H5 — Re-invitation NPS proxy):
"0–10: how likely are you to recommend Raxx to another options trader you know personally?"
Type: 0–10 NPS scale
H5 add-on: "Is there a specific person you'd send this to right now?"
Options: Yes — I have someone in mind / No — not yet
Submit: Submit [arrow icon]
Submit note: Kristerpher will reach out to book a 15-minute debrief at your convenience.
Screen 5b — Thank You (Post-Submit Terminal)
H1: Thanks — you're done.
Sub: Your responses are recorded. Kristerpher will reach out personally to schedule a 15-minute debrief at your convenience.
Next steps card: 1. Personal follow-up within 48 hours — Kristerpher will email or message you to find a time for a short debrief call. No agenda — just want to hear your live reaction. 2. Your session data stays private — Your responses are linked to your beta token only. Nothing is shared publicly or with any third party. 3. If the debrief call goes well — early access — Beta testers who complete the debrief get first access when the platform opens for real accounts.
NDA reminder: NDA reminder: everything you saw in this session is confidential. Please don't discuss specifics outside this engagement.
Design decisions made without operator input
- Screen 3 split into 3 + 3b. Gate-fired and gate-resolved are two distinct visual states. Feature-dev can render them as one page with JS state changes; the split just makes both states explicit for review.
- Screen-5b as separate file. The post-submit thank-you is a distinct terminal state. Feature-dev should redirect to it (or JS-swap) after POST succeeds.
- SPX chain data is hardcoded stub. Jun 11 end-of-day prices used as representative values (5,431.20 underlying, plausible strikes/IVs/deltas). Feature-dev will need to wire real or replayed chain data from the backend.
- Structure gate uses $1,500 profile limit as the demo value. This should be configurable per beta tester profile or set globally for the walkthrough session.
- Q4 number input has no upper cap. "Not enough volume" is a valid answer pattern; don't validate. Collect raw int.
- Footer disclaimer on screen 4: "Tax context is simulated — not tax advice." Kristerpher should run this by counsel before testers see it.
- Override justification on screen 3 is free-text, not gated by minimum length. Feature-dev should store it verbatim for analysis — don't truncate.
- Progress bar shows 5 named steps: You / Scenario / Build / Tax / Debrief. Adjust labels if the routing changes.
- Screen 3 "FOMC cluster" warning is a hardcoded demo. Real implementation would need the Shape service to inject event context.
Open questions for Kristerpher to resolve before feature-dev picks up
- Real vs replayed chain data — does screen 2 load actual SPX end-of-day from a data provider, or is it a fixed replay of a specific date? (Affects backend contract.)
- Who sets the $1,500 max-loss profile limit for beta testers? Operator-set global? Per-tester via console? Or a fixed demo value only?
- Screen 4 tax disclaimer — "not tax advice" language needs legal sign-off before tester distribution.
- Q5 referral add-on — if tester says "yes, I have someone in mind", should a follow-up screen collect the name/email? Current design just records the yes/no.
- Override justification storage — should the free-text overrides from screen 3 be surfaced in the operator debrief dashboard, or just stored in raw survey responses?
- Debrief scheduling — "Kristerpher will follow up" is manual. Is there a Calendly link or scheduling tool to embed, or truly manual?
Feature-dev wire checklist
GET /beta/walk/:token— validate token, hydrate tester context (profile limits, session state)POST /beta/walk/:token/survey/anchor— store Q1/Q2/Q3 from screen 1GET /beta/walk/:token/chain— serve SPX options chain data (real or replayed) for screen 2POST /beta/walk/:token/trade/build— validate IC leg structure against profile rules; return gate resultPOST /beta/walk/:token/trade/submit— paper-submit the IC, return tax context objectGET /beta/walk/:token/tax/:trade_id— return §1256 tag, wash-sale result, lot method, holding-period for screen 4POST /beta/walk/:token/survey/debrief— store H1–H5 responses; mark session complete- Session routing:
/beta/walk/:token/screen/1→/2→/3→/4→/5→/done
Color palette used
| Token | Hex |
|---|---|
| Ink | #0B0F14 |
| Cream | #F7F5F0 |
| Sand | #EDE9E2 |
| Moss | #5B8C5A |
| Bronze | #B08D57 |
| Gain | #2d9e5f |
| Loss | #c94040 |
| Warn | #d97706 |
| Muted | #6b7280 |
| Border | #D9D4CC |