Raxx · internal docs

internal · gated

Persona-blend positioning — getraxx.com

Approach C (persona-cards section) + Approach D (paid-traffic targeting)

Dated: 2026-06-05 | Issue: #3240


The mechanic: borrowed advantage

Operator spec summary: each visitor sees their own persona AND sees that Raxx gives them an advantage the other personas do not get in the same way. Traders are competitive. "Raxx works for everyone" is weak — "Raxx works for you specifically, and here is what you get that the others don't" is sharp.

The framing template for each card: "If you trade as [X], you get [the Y of A] and [the Z of B]."

This means: persona X borrows the best advantage of two adjacent categories that they normally could not access. The W2 income-seeker gets the systematic rigor of the long-term investor AND the structure discipline of the day-trader. The long-term investor gets the income mechanics of the W2 earner AND the tax-aware patience of a wealth-preserver. The day-trader gets the retrospective audit trail of the income-seeker AND the capital-protection instinct of the retiree. Everyone feels they are winning the comparison — because they are each getting something the others came to Raxx to solve differently.


Persona selection: 4 of 5 in v1

Candidates evaluated

Persona Market size Borrowed-advantage clarity Raxx serves today v1 decision
W2 income-seeker Large — largest addressable in retail options High: borrows rigor + structure Yes — backtest + paper + structure enforcement Ship
Long-term tax-aware investor Medium-large — appreciated-shares holders High: borrows income mechanics + patience Yes — structure prevents emotion-driven exits Ship
Day trader Medium — high-churn, lifestyle-motivated High with good framing; two variants offered Yes — structure + Shape edge-detection Ship
Retiree / wealth-preserver Medium — but skews toward wealth-management tools not self-directed trading platforms Moderate: "I can't lose what I have" is a constraint, not a goal Yes — but the preservation pitch is closer to a broker or advisor pitch; Raxx's structural angle is weaker as a differentiator here Defer to v2
Side-hustler / part-time trader Large — W2 + building-toward-freedom Low: overlaps too heavily with W2 income-seeker to justify a distinct card on a single page. Shared structural motivation, different aspiration only Yes Collapse into W2 card framing; add "growing your side-book" language in the W2 card

v1 decision: 4 personas

W2 income-seeker, Long-term tax-aware investor, Day trader, and — added — the side-hustler / part-time trader merged into the W2 card with a second register ("whether that's income this month or freedom by year-end").

Rationale for dropping Retiree v1: The wealth-preservation pitch leads with "I cannot afford to lose." That is a risk-management conversation, not a structure-enforcement conversation. Raxx's core thesis is "you already decided the structure; we keep you in it." The retiree's primary fear is portfolio drawdown from a bad macro call — that is not what Raxx solves today. A preservation-focused investor is better served by a wealth manager. Shipping a persona card that over-promises Raxx's actual value for that persona is a credibility problem. Ship Retiree in v2 once the tax-aware income-overlay story is proven by the long-term investor card.

Why 4 not 3: Three cards on a 3-column grid is visually clean, but loses the long-term tax-aware investor — who is one of the highest-value customer segments (they have capital, they have patience, they already run a broker account, and they are not served by speed-oriented tools). Four cards in a 2×2 grid (desktop) or scroll sequence (mobile) is the right call.


Personas: full copy + borrowed-advantage framing

All copy follows constraints: - No broker names - No forward-looking promises ("will return," "will earn," "guaranteed") - No emotion labels for users (no "Disciplined"/"Panicked" vocabulary) - No backtest results on the marketing page - Retrospective structural language only - Shape references are specific, not headlines


Persona 1 — W2 income-seeker

Query param: ?p=income

Who this is: Monthly or weekly income target. Smaller account. Sees the math on covered calls, cash-secured puts, or short spreads and wants to make it systematic. May be building toward part-time or full-time trading freedom or simply wants the position to pay for something real this month.

Borrowed advantage framing:

"If you are building income from a smaller account, you get the systematic structure of a long-term investor AND the trade-by-trade discipline of someone who has been tracking their edge for years."

Card headline (short): Building income from a smaller account? You get the structure the big accounts run.

Card body: You already know which setups have paid you. Raxx makes sure you run them exactly as you wrote them — entry, credit, exit — every time. No overriding a rule because the market looks different today. The setup either qualifies or it does not.

Shape reads the pattern on your own trade history. Which conviction levels on your income setups actually produced the results you expected? Over time, that record tells you where your edge is — without anyone else's opinion.

CTA micro-copy: See how structure keeps income setups consistent.


Persona 2 — Long-term tax-aware investor

Query param: ?p=longterm

Who this is: Holds appreciated shares or a long-term account. Wants to generate income without triggering taxable events carelessly. Cares about LTCG preservation. Not trying to day-trade — trying to run a systematic income overlay (covered calls, perhaps collars) on top of a core holding.

Borrowed advantage framing:

"If you are running an income overlay on long-term holdings, you get the consistent execution of an income trader AND the patience that keeps a smaller account from blowing up a position."

Card headline (short): Running income on long-term holdings? You get execution without the tax drag.

Card body: Covered calls on appreciated shares have exactly one enemy: emotion. You covered at the wrong strike because the chart looked like it was going higher, and now you are managing a roll you did not plan. Raxx enforces the strike parameters, expiry windows, and credit thresholds you decided on before the position was live.

Shape surfaces which of your call-writing setups have historically maintained the position below assignment risk — so you are not relying on intuition to protect the underlying.

CTA micro-copy: Structure the overlay. Keep the underlying.


Persona 3a — Day trader (aspirational variant)

Two variants offered; operator picks one.

Who this is: High turnover. Motivated by lifestyle goals. Has setups that "feel" right but no systematic record of which ones have actual edge. Knows this is a problem but hasn't fixed it.

Variant A — aspirational ("Ferrari-adjacent"):

Card headline: Moving fast? You get a record of which setups actually have edge — and which ones just felt good.

Card body: Speed is not the problem. Trading fast without knowing which setups produce repeatable results is the problem. Raxx gives you the same systematic structure a long-term investor runs on their income overlay — applied to the intraday setups you already take. Backtest them. Paper them. Then run them live with rules that do not bend on a bad day.

Shape identifies which of your conviction signals actually correlate with setups that qualified under your own entry rules — so you know whether the "strong conviction" trades are producing edge or just producing activity.

Card CTA: Track which setups actually produce edge.


Variant B — structural ("dangerous good trade"):

Card headline: If you are moving fast, the only thing more dangerous than a bad trade is a good trade you cannot repeat.

Card body: A lucky win with no structure behind it sets up the next loss. Raxx lets you run your setups as a system: the same entry criteria, the same credit floor, the same exit — every time. When something works, you have the record that says why. When it stops working, you see that too.

Shape surfaces which of your conviction patterns correlate with setups that held to your own exit rules. The ones that did not make the cut show up in the record before they make it to a live account.

Card CTA: Build a record behind the speed.


Operator decision needed: Pick Variant A or Variant B for the day-trader card. Variant A leads with aspiration and will resonate with traders who identify with the "move fast" mindset; it is higher energy and slightly more provocative. Variant B leads with craft and will resonate with traders who have already been burned by lucky wins; it is more sober and more defensible under compliance review. Recommendation: Variant B for v1 (structural language, easier compliance posture). Ship Variant A if the operator wants higher-energy ad creative to match day-trader paid channels.

This doc uses Variant B as the default below.


Persona 4 — Long-term investor (tax-aware) — see Persona 2 above

(Persona numbering: 1=income, 2=longterm, 3=daytrade; Persona 4 slot is reserved for Retiree / wealth-preserver in v2.)


Universal hero

Purpose: Hold the brand narrative before the persona section. Must not pick a persona. Names the universal problem (the structure gap) in terms every persona recognizes.

Proposed headline:

"You already decided how to trade. Raxx makes sure you actually do."

Sub-headline (one sentence):

Entry, credit, exit — defined before the chart is open. Raxx holds you to the structure you wrote when the trade was not in front of you.

Why this works across all four personas: Every persona has experienced the gap between the rules they wrote and the rules they followed. The income-seeker let the credit slip because "the premium was close enough." The long-term investor covered at the wrong strike. The day trader overrode a stop. None of these required a better strategy — they required structure. The hero headline names that directly.


Universal close

Purpose: Re-anchor after the persona cards. One paragraph, then one CTA.

Copy:

Whatever your style, the structure gap looks the same: the rules you wrote before the trade look different when the trade is live. Raxx enforces the entry, credit, and exit you already decided on — in paper first, then in live — so the record reflects what the structure actually does, not what you remember it doing.

CTA: Join the waitlist (anchor link to #waitlist section below).

Per feedback_signup_never_blocks: CTA is a ghost button, not a hard gate. The waitlist section further down handles form submission.


Section structure (Approach C)

<PersonaBlendSection>
  ├── Universal hero (H2 + sub-headline)
  ├── Persona cards grid (2×2 desktop, scroll mobile)
  │     ├── Card: W2 income-seeker      [?p=income]
  │     ├── Card: Long-term investor    [?p=longterm]
  │     ├── Card: Day trader            [?p=daytrade]
  │     └── Card: (Reserved v2 slot)   [?p=retiree — not rendered in v1]
  └── Universal close (paragraph + ghost CTA)
</PersonaBlendSection>

Visual treatment: - Background: var(--raxx-ink) — dark, matches hero. Sits between Pillars (light / var(--raxx-snow)) and DifferentiationSection (dark). Sequence: hero (dark) → pillars (light) → persona-blend (dark) → differentiation (dark, one-stop) → pricing teaser → waitlist. - Cards: var(--raxx-ink-2) background with 1px solid rgba(91,140,90,0.25). Each card has a persona-type label (moss-tinted eyebrow), a bold headline, body copy (3-4 sentences), and a subtle "borrowed advantage" callout in a slightly-indented block. - The active card (when query param matches) gets a slightly brighter border: 1px solid rgba(91,140,90,0.6) and a top moss accent bar. - Default state (no query param): all 4 cards equal weight. No card is highlighted. - Grid: 2×2 desktop (≥768px), 1-column mobile.


Approach D — Ad targeting brief

URL scheme

getraxx.com/?p=income      → income persona card leads
getraxx.com/?p=longterm    → long-term investor card leads
getraxx.com/?p=daytrade    → day trader card leads
getraxx.com/?p=retiree     → retiree slot (v2; not active v1, falls back to default)
getraxx.com/?p=parttime    → alias for income (maps to income persona; v1)

When ?p is present and matches a known persona, that card moves to position 1 in the grid. All other cards follow in their default order. No content changes — only ordering changes.

When ?p is absent or unrecognized: default order (income → longterm → daytrade → reserved).


Channel + targeting brief per persona

W2 income-seeker (?p=income)

Channels: - Reddit: r/options, r/thetagang, r/personalfinance (income-seeking threads), r/financialindependence (FI-path traders) - Google Search: keywords — "covered call strategy," "cash secured put strategy," "weekly options income," "systematic covered calls," "options income small account" - X (formerly Twitter): interest targeting — options trading, dividend investing; keyword targeting on "covered calls weekly," "theta decay income" - Facebook/Instagram: 30-45 demographic, interest in personal finance, investing, side income; exclude crypto-primary interest segments

Ad copy stub: - Headline: "Your covered call setup should run the same every time." - Body: "You wrote the entry and the credit floor. Raxx makes sure you stay in it — before emotion moves the strike."

Conversion target: Waitlist signup. Good = 3%+ CTR on ad + 20%+ landing conversion on ?p=income persona card. Clarity: scroll depth past persona card + CTA click.


Long-term tax-aware investor (?p=longterm)

Channels: - Reddit: r/investing, r/Bogleheads (overlays on index), r/fatFIRE, r/dividends; threads about covered calls on appreciated shares or avoiding wash sales - Google Search: keywords — "covered call appreciated stock," "avoid capital gains options strategy," "income overlay long term portfolio," "collar strategy long term holdings" - X: interest targeting — long-term investing, tax efficiency; keyword targeting on "covered calls on stock I own," "income from long portfolio" - Facebook: 45-60 demographic, interest in retirement planning, long-term investing, tax strategies; exclude day-trading interest segments

Ad copy stub: - Headline: "The overlay is only tax-smart if the structure holds." - Body: "You decided the strike and the expiry. Raxx enforces it — so the covered call stays where you meant it."

Conversion target: Waitlist signup. Good = 2%+ CTR + 18%+ landing conversion. Clarity: time on long-term persona card > 30s (this persona reads).


Day trader (?p=daytrade)

Channels: - Reddit: r/Daytrading, r/options, r/wallstreetbets (with care — high noise, high volume; creative needs to match tone of Variant A if used here), r/stocks - Google Search: keywords — "day trading system," "trade journal software," "options day trading edge," "backtesting day trading strategy," "track my trades" - X: interest targeting — active trading, options; keyword targeting on "trade journal," "backtesting," "edge in options" - YouTube (pre-roll): "options trading" and "day trading" content channels

Ad copy stub (Variant B default): - Headline: "A good trade you can't repeat is a problem waiting to happen." - Body: "Build the record behind the speed. Raxx runs your setups as a system — same entry, same exit, every time."

Ad copy stub (Variant A, if operator picks aspirational): - Headline: "Know which of your setups actually have edge." - Body: "Run fast. But run the same setup the same way every time — and let the record tell you what's working."

Conversion target: Waitlist signup. Good = 4%+ CTR (this audience clicks more) + 15%+ landing conversion. Clarity: CTA click from persona card + scroll-past-close.


Clarity event-tagging spec

Five events to fire. All are front-end events; no PII is included in event properties. No backtest results are on the marketing page — persona-page Clarity tracking is within scope of the existing cookie consent framework.

Event name Trigger Properties
persona_card_viewed Intersection Observer fires when persona card enters 50% viewport persona: "income" | "longterm" | "daytrade", position: 1|2|3, from_param: true|false
persona_card_cta_click Click on persona card's CTA anchor persona: string, destination: "waitlist"
persona_section_cta_click Click on universal-close CTA (join waitlist ghost button) from_param: true|false, active_persona: string|null
persona_param_resolved On mount, when ?p= query param resolves to a known persona param_value: string, resolved_persona: string
persona_param_unknown On mount, when ?p= value does not match any known key param_value: string — helps catch mis-targeted ad URL typos

Implementation note: events fire through the existing analyticsGate pattern in src/components/getraxx/cookieConsent/analyticsGate.js. Events only fire when consent cookie is present and the analytics category is accepted.


Privacy / GDPR posture

Query-param persona ordering (?p=income etc.) is a user-initiated URL parameter, not server-side inference or profiling. No behavioral data is collected to derive the persona — the visitor arrived via a link that contained the parameter, or typed it themselves. This is equivalent to a utm_content parameter. No additional consent dialog is required beyond the existing cookie banner (FLAG_GETRAXX_COOKIE_BANNER).

Confirmed constraints respected: - EU/EEA visitors are geo-blocked at signup (project_eu_geoblock_decision). The marketing page is accessible; the block applies at signup. The persona parameter does not change this. - No PII is stored in the event payload. - No cross-session tracking of persona parameter.


Relationship to existing DifferentiationSection (PR #3231)

The question

PR #3231 ships the "What makes Raxx different?" section — four structural differentiators (structure enforcement / retrospective backtest / paper gate / no custody). The persona-blend section (this PR) is a different layer.

Does persona-blend replace, sit above, or sit below the differentiation section?

Recommendation: coexist — persona-blend above, differentiation below

Structure:

Hero
↓
Pillars (what Raxx holds — functional description)
↓
PersonaBlendSection (NEW — who Raxx is for, borrowed-advantage framing)
↓
DifferentiationSection (what makes Raxx different from alternatives)
↓
PricingTeaser
↓
WaitlistSection

Rationale: - Persona-blend answers "is this for me?" — it is the emotional hook before the rational case is made. It should come before DifferentiationSection. - DifferentiationSection answers "why Raxx over alternatives?" — it is the rational case. It comes after the visitor is already engaged. - The visitor journey: Hero establishes the category → Pillars shows what Raxx holds → PersonaBlend lets the visitor self-identify → Differentiation closes the "but why Raxx specifically?" question → Pricing → Waitlist. - Both sections serve distinct jobs. Neither is redundant. The tone difference is real: persona-blend is "here is how Raxx serves you"; differentiation is "here is what makes Raxx structurally different." - If either must be cut for page-length reasons, DifferentiationSection is the lower priority (it can move to the /about page, where it would also be appropriate). PersonaBlend is higher-funnel and higher-impact.

On PR #3232 (Shape sentiment variants): PR #3232 has Shape sentiment-journal variants for the differentiation section. Persona-blend references Shape in each persona card (specific to that persona's use case). The DifferentiationSection is the deeper drill into Shape's function as a differentiator. Both layers should remain — they operate at different specificity. Persona-blend says "Shape shows you which of your income setups have conviction patterns that match your edge." Differentiation (#3232 variant) says "Shape 1→2→3 is the three-phase sentiment journal." The former lands the value first; the latter explains the mechanism.


Flag

FLAG_GETRAXX_PERSONA_BLEND Env var: REACT_APP_FLAG_GETRAXX_PERSONA_BLEND When OFF: PersonaBlendSection returns null — absent from DOM. When ON: full section renders between PillarsSection and DifferentiationSection.

B1 promotion migration: console/migrations/versions/0145_promote_getraxx_persona_blend.py Risk: low — marketing copy, no execution path, no auth path.


Open question — operator decision required

Day-trader card variant: Variant A (aspirational) vs Variant B (structural). Both are documented above with full copy. Recommendation is Variant B for v1 compliance posture. Operator confirmation needed before the component ships out of flag-gate.


Handoffs

product-manager please file the following cards against this issue (#3240): - Enable FLAG_GETRAXX_PERSONA_BLEND on staging after this PR merges - Add 5 Clarity event definitions to the Clarity project for getraxx.com (see event-tagging spec above) - Operator decision card: "Pick day-trader card variant A or B" — blocks persona card copy being finalized before flag flip