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