Living spec

Design system

The shared visual language behind trd.fun. Token-driven, theme-safe, and built to compose into the surfaces you see on /coach#signals, the research workspace, and the Cmd+K palette. Read the guide in docs/DESIGN.md.

Color Tokens

trd.fun ships two themes (dark default + warm-sandy light) over a single CSS-custom-property layer. Always reference tokens by name — never hard-coded hex — so theme switching is automatic.

Surface
--og-bg
page background
--og-surface
cards
--og-surface-2
inset panels
--og-elevated
modals
--bg-primary
app shell
--bg-surface
flat cards
--bg-hover
hover surface
--bg-active
pressed
Text
--text-primary
--text-secondary
--text-tertiary
--og-text
--og-text-muted
--og-text-faint
Semantic + soft fills
--green / --og-bull
positive · up
--red / --og-bear
negative · down
--blue / --og-neutral
informational
--og-accent
brand purple
--amber / --og-warn
caution
--og-bull-soft
--og-bear-soft
--og-neutral-soft
--og-accent-soft
--og-warn-soft
Glass + overlay
--glass-bg
overlay shell
--glass-border
--glass-highlight
inputs in glass
--overlay-bg
modal backdrop

Typography

Two stacks: IBM Plex Sans for UI copy, and the mono stack via var(--font-mono) for every numeric or symbol-anchored value (prices, P/E, change %). Numeric content always uses tabular-nums so columns line up.

36px / 600 / -0.025emPage title
24px / 600 / -0.02emSection heading
18px / 600 / -0.01em · mono$245.83
14px / 400 / 1.55Body copy and lede paragraphs sit at 14px with a relaxed line-height.
13px / 600 — UI copyUI text · button labels
12px / 400 — secondarySecondary descriptive text
10px / 600 / 0.2em up · monoEyebrow label
Numbers
$1,245.83+12.45%-3.18%P/E 28.4 · TTM 4.21

Motion

A small, consistent motion vocabulary. Everything respects prefers-reduced-motion: reduce via the global override in app/globals.css. Hit replay to re-trigger.

.og-anim-fade350ms ease-outHero blocks
.og-anim-slide420ms cubic-bezier(.22,1,.36,1)Card entry
.og-anim-scale320ms ease-outPop-in elements
.og-anim-pulse2.4s infiniteLive indicators
.og-anim-bob2.6s infiniteIdle visuals
Stagger

Wrap N children in .og-stagger to slide them in with escalating animation-delay (0ms → 420ms in 60ms steps).

Discover
Research
Track
Analyze
Decide

Components

Primitive components that compose into every screen. All tone-aware, all theme-safe, all importable from @/app/components/ui.

Buttons
Cards
Variant
flat
Default card padding sits at 16px on the M scale.
Variant
raised
Default card padding sits at 16px on the M scale.
Variant
elevated
Default card padding sits at 16px on the M scale.
Variant
glass
Default card padding sits at 16px on the M scale.
Hover-lift
Adds a small translateY + shadow swell on hover.
Accent stripe
accent prop draws a 3-px gradient bar on the left edge.
Chips
DefaultBullBearNeutralAccentWarnFilledWith iconMedium size
Inputs
⌘K
Keyboard hints
⌘KESC⇧⌘P
Tabs
Active tab: overview
Toggles
Stat tiles
NAV
$1.24M
+$12,540 today
vs $1.227M yesterday
Buying power
$248k
4× margin
Day P&L
-$3,142
-1.18%
Open positions
28
Icon tiles
Radio cards (selectable)

The same primitive used by the onboarding stock picker. Click to toggle selection — the whole card is the hit target.

Patterns

How the primitives compose into the recurring shapes you'll see across trd.fun. These are the canonical recipes — copy them, don't re-roll them.

Command palette · Cmd+K

Glass shell · commandk-enter motion · 2-px left-edge accent on the active row · group labels in tracked-out tertiary mono · to navigate · to select · ESC to close.

Nothing picked yet
Card head + body
Pricing & valuation
Chart, change %, and forward P/E
+12.45%
Latest news
Synthesised from 5 sources
SYNTHESIS
Empty state
No watchlist yet
Add up to twelve symbols to start tracking real-time pricing and signals across markets.
Eyebrow + value
Trail P/E
28.4
Fwd P/E
24.1
24mo Avg
26.8
Mkt Cap
$2.4T

Marketing surfaces

Two complementary treatments for entry-point screens. Rich (live at /login) is the design system at its most expressive. Flat (live at /onboarding) is the calm, in-product feel. The hand-off from rich → flat after sign-in is intentional — it signals “you're in the product now”.

When to use
Rich
First-impression surfaces
  • Public landing / login pages
  • Marketing announcements
  • Hero takeovers, full-bleed promos
glass · gradient · hover-lift · shadow
Flat
Guided / in-product flows
  • Onboarding, sign-up, account setup
  • Settings, preferences
  • Confirmation / success screens
solid · brand-as-accent · no shadow
Hero pattern · rich

Two-column hero: gradient headline + sub-line + chip strip on the left, glass sign-in (or primary CTA) card on the right. The card shares its shell with the Cmd+K palette and Modal so the motion + chrome read as one family across the app.

Live · v0.1

Your watchlist,
with a brain.

Real-time prices · multi-source synthesis · IBKR-aware research.

Live ticksAI synthesisSmart alerts
Sign in · OAuth · Google
Continue to trd.fun
One-click sign-in. No password to remember.
No passwordsOwner-only
View live page · app/login/page.tsx + app/login/styles.tsx
Animated KPI peek

The hero ships a faked-but-realistic KPI strip whose numbers jitter every 2.4s so the surface reads as “live” without becoming distracting. Use it on public surfaces where you want to hint at the real product's motion without exposing live user data.

Source: app/login/components/LiveDataPeek.tsx
Pillar grid

Six (or fewer) raised cards in a 3-col responsive grid. Each row opens with an IconTile, ends with a dotted-divider meta footer in mono. Wrap the grid in og-stagger to slide cards in with escalating delays on first paint.

Multi-source synthesis
One run pulls Reddit, X, news, fundamentals, and your portfolio context into one grounded answer.
5 sources · grounded
Real-time everywhere
Finnhub WebSocket ticks stream live across every watchlist row.
Live · SSE
Portfolio in context
IBKR positions and P&L sit alongside every research run.
IBKR Flex
How-it-works steps

Three solid-surface cards with floating gradient number pills. Use sparingly — the cards work best as the “and now what?” beat between the hero and the bottom CTA.

1
Pick stocks
Add 3–12 names through the guided tour or paste into Cmd+K.
2
Run research
One run pulls every source, returns one grounded answer.
3
Stay in flow
Live prices stream in. Alerts fire. Cmd+K jumps anywhere.
CTA banner · elevated

The closer for marketing pages. Gradient backdrop, large headline + sub-line, primary action paired with a ghost alternative. Stretches full-width inside the page shell.

Ready to take the watchlist for a spin?
Owner-only beta. Sign in with Google to get started.

Stock page

The public /stock/<symbol> page — cached and SEO-crawlable. An editorial, magazine-style layout: a big mono symbol, an at-a-glance stats band, an AI-research brief with four cache states, and a discovery rail. Blue accent throughout. Mocks below are flat re-renders using global tokens only.

Editorial hero

What it is: the page masthead — identity, live quote, actions, and a cached one-line TLDR. Used on: /stock/<symbol>.

NVDA
NVIDIA CorporationNASDAQ
Share Deep research
$182.41+2.14%live

Datacenter demand stays red-hot as Blackwell ramps; Street eyes margin durability and China headwinds into the next print.

— cached tldr
Stats band

What it is: a slim figure strip under the hero. Tiles are omitted (not dashed) when a value is missing. Momentum chips colour by sign.

Mkt Cap$4.48T
P/E (TTM)52.1
Fwd P/E38.4
EPS (TTM)$3.50
Next ERin 12d
30D+8.2%
90D-3.1%
AI research · four cache states

What it is: the cache-shared AI brief. Its header badge encodes one of four states. Stale shows the SAME content (never hidden) with an amber badge; only none swaps in a teaser / generating notice.

AI Researchcached · 8m ago
NewsSentimentReddit
Synthesis + sections shown. Approved viewers get a quiet ⟳ Refresh.
AI Researchlast generated 9h Refresh
NewsSentimentReddit
Same content, amber badge. Refresh becomes prominent for approved viewers.
AI ResearchNo brief yet
No AI research yet for NVDA
Sign in and we’ll generate the first brief — news, sentiment, and catalysts — then cache it here for everyone.
Sign in to generate
Guests see a sign-in teaser; the brief is generated + cached for everyone.
AI ResearchGenerating brief…
NewsSentimentReddit
Assembling the first AI brief — news, sentiment, and catalysts. Runs in the background; refresh in a moment.
Approved viewer — a background run was already kicked. Provider chips pulse.
Discovery rail

What it is: the right-hand rail — valuation + momentum key/value cards and blue theme chips. Each card hides entirely when its data is empty.

Valuation
P/E (TTM)
52.1×
Fwd P/E
38.4×
EPS (TTM)
$3.50
Fwd EPS
$4.75
Momentum
1D
+2.14%
5D
+5.40%
30D
+8.20%
90D
-3.10%
In these themes3
AI InfrastructureSemiconductorsDatacenter

Theme deck

The condensed editorial one-pager at /theme/<slug>. A theme is a basket of tickers framed by a generated brief, laid out top→bottom as a big editorial header, a 7-stat bar, a "The take" lead block, a 3-card thesis row, and a dense roster of tradeable cards with private / pre-IPO names folded in as badged tiles. Below are flat re-renders of each pattern — global tokens only, no scoped theme-page CSS.

Editorial header + intro

Mono eyebrow (EyebrowLabel) → oversized title (clamp(40px,6vw,62px), weight 800, letter-spacing -.03em) → bold sub-headline (the AI headline) → an intro overview paragraph as prose (not bullets) → a N stocks · curated/AI theme meta line. Used on: /theme/<slug>.

⚛️Theme · Curated

Nuclear Renaissance

AI's power hunger is reviving an industry left for dead — and the re-rating has only just begun.

Hyperscaler datacenter demand is reopening shuttered plants and underwriting new small-modular-reactor builds, while uranium spot has tripled off its lows as utilities scramble to re-contract supply. Government de-risking — loan guarantees and streamlined licensing — has shortened the runway to revenue.

11 stocks · curated theme
Stat bar · 7 tiles

A full-width strip of seven KPI tiles: 1D basket move, real 1-yr growth, aggregate cap, company count, median P/E, and 30D / 90D basket moves. Momentum / valuation figures are computed client-side from the loaded fundamentals. Signed values colour via var(--green) / var(--red). Composes the shared StatTile primitive. Used on: /theme/<slug>.

1D basket
−0.84%
1-yr growth
+212.6%
Agg cap
$486.2B
Companies
11
Median P/E
29.4×
30D
+9.7%
90D
+34.1%
The take · lead block

A full-width synthesis of the brief's whyItMatters / overview: a mono section label, a bold lead line, and a bulleted body. The editorial anchor of the page. Used on: /theme/<slug>.

The take

Power — not chips — is now the binding constraint on AI scale, and the nuclear fuel cycle is structurally under-supplied through the decade.

  • Datacenter PPAs give the operators multi-decade demand visibility that the market is only starting to price.
  • Spot uranium has tripled, but long-term contract volumes still lag replacement needs.
The thesis · 3-card row

Three raised cards (Card variant="raised"): the bull case (green, TrendingUp), the catch (amber, AlertTriangle), and outlook · 12mo (blue, Compass). Each = a tinted IconTile with a monochrome lucide line icon → heading → bullets → a dashed-divider mono keyword footer tinted to the card's tone. One tone per card (DS §5). Used on: /theme/<slug>.

The thesis

The bull case

  • Multi-decade demand visibility from datacenter PPAs.
  • Pure-play scarcity forces premium valuations.
secular demand · tight supply

The catch

  • SMR timelines slip; first revenue is years out.
  • Sentiment-driven names round-trip on headlines.
valuation · timeline risk

Outlook · 12mo

  • Watch utility re-contracting cadence and the first SMR design approvals.
  • Restart announcements re-rate the operators.
re-contracting · approvals
Roster cards · big player / rising star

Selectable cards (toggle into the watchlist). The big-player card is dense — symbol, live price, 1D chip, 1D/30D/90D momentum strip, market cap + sector role chip, and a USP tagline. The rising-star card is a compact two-momentum-cell variant. Selection affordance is BLUE (DS §5), never green. Used on: /theme/<slug>.

CEG
Constellation Energy
$284.50+2.34%
1D+2.3%
30D+14.8%
90D+41.2%
$89.4BUtilities
Largest US nuclear fleet — direct beneficiary of datacenter PPAs and the Three Mile Island restart.
OKLO
$22.18
1D-1.6%
30D+38.4%
$3.1B
Fast-reactor SMR developer with a build-own-operate model.
More in this theme · private folded in

The "More in this theme" roster folds two card kinds into one dense grid. Public names render as selectable, solid-border roster cards (left). Private / pre-IPO names are info-only — a gold status badge flags the stage and the figure is a last-round valuation (dotted underline), not a live price. Used on: /theme/<slug>.

SMR
NuScale Power
First NRC-certified small modular reactor design.
Pure-play$2.4B
TerraPowerPRE-IPO
Gates-backed sodium fast reactor with integrated molten-salt storage.
Disruptor$8.0B

Research view

The single shared, presentational research deck — <ResearchView> in app/components/research/ResearchView.tsx. One component composes the whole research library: header · provider chip strip · RUN/MODEL/SOURCES meta line · accent-left-border synthesis sections with type chips · sources drawer · follow-up chips · ask box. The public stock page renders the same component, so this is the look it must match. The accent is --rv-accent (default gold), overridable per variant. This block is a flat re-render using global tokens only.

Full anatomy · panel variant

Header (ticker + company + live price + refresh/expand/close icons) → provider chips → meta line → synthesis rows → sources drawer → follow-up chips → ask box. Live: ResearchView (variant="panel").

NVDANVIDIA Corporation$724.30+2.41%
NewsnowX12mReddit12mFund.emptyPortfolioempty
Run12m agoModelgemini-3.5-flashSources3/5

Overview

Synthesis

NVDA held above the 50-day after the earnings beat; bulls cite data-center demand, bears flag a stretched forward multiple.

Latest News

News

Two analyst upgrades and a supply-chain note dominate the last 24h of coverage.

X/Twitter Sentiment

X

Retail mood skews bullish into the print; a few high-follow accounts flagging valuation risk.

Reddit Sentiment

Reddit

r/stocks threads lean cautiously optimistic; recurring debate on whether the rally has run too far.

Sources 2
Why did it move?What changed since last run?Only sentiment
Ask a follow-up about NVDA…⏎ to send
Overridable accent · --rv-accent

The synthesis bar, type chip, send button, and follow-up borders all read from --rv-accent, which defaults to the gold --rp-accent (#d8b765). A call site can re-tint an entire instance — e.g. an embedded variant — by setting --rv-accent once on the wrapper, with no component fork.

--rv-accent#d8b765 (default gold)
embedded ex.var(--blue) override

Signals board

The whole-universe Live Signals board — <SignalsBoard> in app/components/signals/board/, the canonical /signals. Composites: BoardHero (live status + verdict tallies) · FilterBar (scope toggle + theme menu) · SignalTape / SignalRow (the tape) · SignalRowDetail (the expanded drill-down) · ThemesStrip (heating-up momentum chips). Every selector is namespaced under .sb-board via <SignalsBoardStyles/>, so these are the LIVE components rendered on deterministic fixture data (SAMPLE_BOARD_ROWS).

Board hero · live status + verdict tallies

The pulsing market pill (phase-aware), the recompute / updated / universe meta line, the H1 headline, the AI subhead, and the four verdict tally tiles (Long / Exit / Short / Wait).

LIVE · MARKET OPENverdicts recomputed ~30s · poll · updated 4s ago · 428 symbols flashing now

What's flashing right now

A realtime green / amber / red verdict computed live on our own engine — then the AI reads Reddit, X and the news to tell you whether the crowd buys it. Live, not delayed.

6
Long
2
Exit
1
Short
14
Wait
Filter bar + tape · interactive

The “Ready to buy” title + “N firing now” bull chip, the [Watched | All universe] segmented control with the theme dropdown, and the tape itself. Click a row to expand its drill-down; the theme menu and scope toggle are live.

Ready to buy 4 firing now

SYMPRICECALLCONFBBRSISTOCHQUADRANTAGE · SRC
142.18LONG88Oversold + Bullish3s ago · worker
LONGconf 88/100
Bullish
RSI ↑
Bearish
RSI ↓
Oversold
+ Bullish
Overbought
+ Bullish
Oversold
+ Bearish
Overbought
+ Bearish
OversoldOverbought
Oversold + Bullish — highest-conviction long. Cheap on the band, regime still bullish. Buy shares, a bull call spread, or sell a CSP at the lower-band strike.
Why — engine verdict
  • Price pierced the lower Bollinger Band — statistically stretched cheap.
  • Stoch RSI K crossed above D from the oversold zone (K=14.2).
  • RSI 48.6 sits above 45 — clears the bullish-regime filter.
  • Bullish RSI divergence — price lower low while RSI made a higher low.
28.74LONG81Oversold + Bullish2s ago · worker
911.40LONG74Oversold + Bullish5s ago · worker
118.05LONG66Oversold + Bullish8s ago · worker
41.92EXIT71Overbought + Bullish4s ago · worker
241.30EXIT63Overbought + Bullish11s ago · worker
187.62SHORT69Overbought + Bearish6s ago · worker
213.55WAIT22Neutral19s ago · yahoo
428.90WAIT18Neutral7s ago · worker
Row detail · expanded drill-down

The expanded accordion: large VerdictPill + confidence, the three traffic lights, the LABELED 2×2 quadrant matrix with its guidance line, the two link-out buttons, and the left-aligned “Why — engine verdict” reasons list (leading marker).

LONGconf 88/100
Bullish
RSI ↑
Bearish
RSI ↓
Oversold
+ Bullish
Overbought
+ Bullish
Oversold
+ Bearish
Overbought
+ Bearish
OversoldOverbought
Oversold + Bullish — highest-conviction long. Cheap on the band, regime still bullish. Buy shares, a bull call spread, or sell a CSP at the lower-band strike.
Why — engine verdict
  • Price pierced the lower Bollinger Band — statistically stretched cheap.
  • Stoch RSI K crossed above D from the oversold zone (K=14.2).
  • RSI 48.6 sits above 45 — clears the bullish-regime filter.
  • Bullish RSI divergence — price lower low while RSI made a higher low.
Leaves · verdict pill · lights · quadrant matrix

The reusable atoms the row and drill-down compose from. The quadrant matrix labels its axes (Oversold→Overbought, Bullish→Bearish) and fills the active named cell in its tone color.

LONG· 88VerdictPill · lg
SignalLights · BB / RSI / Stoch
Bullish
RSI ↑
Bearish
RSI ↓
Oversold
+ Bullish
Overbought
+ Bullish
Oversold
+ Bearish
Overbought
+ Bearish
OversoldOverbought
GO · Oversold + Bullish
QuadrantMatrix · labeled 2×2
Themes strip · heating-up momentum chips

“Heating up · 30D momentum” — ranked theme chips (name + signed % + arrow), each a link to its /theme/<slug> AI deck.

Each opens an AI deck: bull case · the catch · 12-mo outlook · catalysts.

Research workspace

The multi-source AI research deck. Used on /research/<symbol> (owner only) — a three-column cockpit: session rail · synthesis · pricing rail, with a sticky chat dock at the bottom. The live surface is scoped behind .research-root with --rp-* tokens; these blocks are flat re-renders using global tokens only.

Provider chip strip

The five research sources — news · x · reddit · fundamentals · portfolio — in canonical order. Each chip carries a colored provider icon, an uppercase label, an age figure (tabular-nums), and a status dot: fresh · stale · tertiary empty · failed · pulsing gold loading. Live: ProviderChipStrip.

NewsnowX5hReddit···Fund.emptyPortfoliofailed
Synthesis block

One row per provider section: a 2-px left-edge gradient bar in that provider's accent fades from solid to transparent, a heading + a tinted tag, and a body paragraph (sans prose, not mono). The first row is always the cross-source Synthesis · Overview, tagged gold. Live: SynthesisBlock.

Overview

Synthesis

NVDA held above the 50-day after the earnings beat; bulls cite data-center demand, bears flag a stretched forward multiple.

Latest News

News

Two analyst upgrades and a supply-chain note dominate the last 24h of coverage.

Position Context

Portfolio

You hold 40 shares at $612 avg — current spot is +6.4% on cost.

Session rail · run cards

Left rail of past runs grouped by recency (Today / Yesterday / This week). Each card: a status dot (complete / partial / failed), a when · cost meta row (mono figures), a 2-line query, and a sources count. The active card gets a gold-tinted fill + ring. Live: SessionRail.

Click a run card
Bundle meta strip + input dock

A compact run-metadata strip — run age · model · sources loaded · cost · tokens as label/value cells (mono) — with export actions pushed right. Below it, the sticky input dock: a row of quick-prompt pills over a composer with a gold send button. Live: BundleMetaStrip + QuickPrompts.

RunnowModelgemini-2.5-flashSources5/5Cost$0.041Tokens18.4k in · 2.1k out Export · Markdown
Why did it move?What changed since last run?Portfolio impactSet an alert at $720
Ask a follow-up about NVDA…⏎ to send
Scoped exception · gold accent

The flat system reserves var(--blue) for primary accents. The research workspace is the one documented exception: it scopes a warm gold accent (--rp-accent: #d8b765) behind .research-root for the active session ring, synthesis tag, send button, and quick-prompt borders. It never leaks out of the route. Light-theme darkens it to #806000 for WCAG AA.

--rp-accent#d8b765
--blueflat default
Gold = “this is the owner's private AI deck.” Use the flat blue everywhere else.

Lab operator

The redesigned /lab console — <OperatorSurface> in app/components/lab/operator/. A full-bleed tab bar with exactly ONE section in the DOM at a time, replacing the ~1970px single scroll that rendered all four wizard stages, sixteen strategy cards and two collapsed accordions at once. It is built from the dashboard's own primitives, not a second visual language: DashboardNav's tab row (hairline underneath, active tab underlined in --blue, count written into the label), WatchlistGroup's uppercase section labels, and StockRow's cell density — px-1.5 py-0, 12px identifier over 10px secondary, hairline rows, tabular numerals, a sticky-left identity column. Panels: OverviewPanel (what needs you) · StrategiesPanel (the sixteen members as one sortable table) · ExperimentsPanel (the view the live page does not have) · NewComparisonPanel (the only place wizard framing appears) · AdvancedPanel (machinery, receipts, danger zone). Every selector is namespaced under .lab-op via <LabOperatorStyles/>, and every state word comes from vocabulary.ts rather than the database.

Read this first
  • This is a flat prototype on dummy specimen data. Nothing here fetches, authenticates, polls or writes. Every number, hash, account id and timestamp comes from fixtures.ts and is meaningless in value, realistic only in shape. No control on this page does anything — the wizard's “start” and the danger zone's “stop” both print a receipt saying so.
  • Experiments group on comparability_hash, not cohort_id. The projection takes p_cohort_id as an argument and folds it into the hash without ever emitting it, so a cohort id is simply not available to read. One consequence shapes this UI: the list endpoint calls the projection with p_cohort_id = null, so every run read that way arrives with no hash at all — which is why “runs in no comparison” is a first-class panel and never hidden.
  • Data wiring is a later pass. These are the components that get wired, not throwaway mockups: each takes its data as props and defaults to the specimen. One adapter will build a single OperatorView and none of these files change.
Console · tabs + one section at a time

<OperatorSurface/> with no props: it provides its own .lab-op root, a horizontal bar of five real buttons in DashboardNav's idiom carrying aria-current="page", and one identity strip holding the two-word Paper only marker. Click a tab — it is the only way between sections, and only the active one exists in the DOM.

The count lives inside the tab. “Strategies 14/16” and “Experiments 9” are written where you choose the view, exactly as the dashboard writes “ACTIVE 26” beside a section name; the bare number is always paired with a screen-reader sentence. That is what let the eight stat tiles go — a count belongs next to the thing it counts, not in a grid of bordered boxes that leaves the reader working out which numbers relate. The bar scrolls sideways rather than wrapping, so it is one line at 1440px and at 390px alike.

LAB OPERATORLegacy SPY only · forward paper testPaper onlyStatus read just now

Legacy SPY-only paper test. It is a simulation only: it places no broker orders and moves no money.

This page has not yet been upgraded to run multi-stock graduates from the historical tournament. See historical tests →

Attention

One thing is blocking today’s numbers, and 2 more are worth a look.

3 things need you

Paper onlyEverything here is simulated. This lab places no broker orders, moves no money, and the numbers it shows are not live trading performance.

Market data healthySPY · Alpaca · SIPNewest price 1 minute ago · 12 seconds old.
  • Blocking: Strategy 7 stopped itself for safety

    Strategy 7It stopped itself because its recorded positions stopped matching its account, and its price data is 15 minutes old.

    NextOpen Strategies, expand this row, and review it before you rely on today’s numbers.

  • Needs a look: A finished comparison produced no ordering

    Comparison 67d463All 12 runs finished, but account values went stale before it closed, so none of them can be placed against the others.

    NextOpen Experiments, expand the group, and re-run the comparison once fresh account values exist.

  • Needs a look: A start request was left in flight

    Comparison 07f53bYou asked to start a comparison 6 minutes ago and the page never saw it confirmed, so it is not known whether it started.

    NextRefresh the comparison’s status before starting it again — starting twice would run it twice.

Overview · what needs you

One thing. A headline sentence coloured by its own tone, then exactly two standing lines — the safety disclosure said ONCE in full, and the price feed with its provider and age — then the attention list: blocking first, each row stating what it is, why it matters, a NEXT action, and a control that jumps to the section that fixes it. Hairline-separated rows at table density, not bordered cards.

The eight stat tiles are gone. Four LIVE/PAUSED/FINISHED/NOT-STARTED tiles beside four CONFIGURED/REPORTING/NEED-ATTENTION/CADENCE tiles was eight numbers with no hierarchy — and nothing told the reader that “9 comparison groups” and “14 of 16 strategies” were two unrelated things. Every one of those counts now lives where it belongs: the totals in the tab labels, the live/paused/finished split in the Experiments table's Status column, and reporting, attention and cadence in the Strategies table's own columns.

Attention

One thing is blocking today’s numbers, and 2 more are worth a look.

3 things need you

Paper onlyEverything here is simulated. This lab places no broker orders, moves no money, and the numbers it shows are not live trading performance.

Market data healthySPY · Alpaca · SIPNewest price 1 minute ago · 12 seconds old.
  • Blocking: Strategy 7 stopped itself for safety

    Strategy 7It stopped itself because its recorded positions stopped matching its account, and its price data is 15 minutes old.

    NextOpen Strategies, expand this row, and review it before you rely on today’s numbers.

  • Needs a look: A finished comparison produced no ordering

    Comparison 67d463All 12 runs finished, but account values went stale before it closed, so none of them can be placed against the others.

    NextOpen Experiments, expand the group, and re-run the comparison once fresh account values exist.

  • Needs a look: A start request was left in flight

    Comparison 07f53bYou asked to start a comparison 6 minutes ago and the page never saw it confirmed, so it is not known whether it started.

    NextRefresh the comparison’s status before starting it again — starting twice would run it twice.

Strategies · sixteen cards became one table

Sixteen stacked cards replaced by a nine-column sortable table. All eight data columns sort, and the sorts are semantic rather than alphabetical: state sorts by real session lifecycle order, health worst-first, and rows that have reported nothing sink to the bottom in BOTH directions instead of topping a descending sort. Numeric columns are tabular, money is formatted from lossless decimal strings, and an absent value is an em-dash plus a spoken “not reported” — never a zero.

Legacy paper strategies

Every strategy here trades one symbol — SPY — on Alpaca SIP market data. Nothing on this page picks stocks.

14 of 16 configured3 need attention
How these 16 legacy strategies differ

All sixteen run the same idea: buy SPY when a fall looks like it is turning back up. Five things have to line up — the stochastic RSI is oversold, its two lines cross upward, price has stretched past the lower Bollinger band, the RSI itself turns up, and volume confirms the turn.

The sixteen versions differ on four settings only, each with two options: 5 or 15 minute bars, 4 or 5 of the checks required, an exact band touch or within 0.25%, and at least 1.0x or 1.25x usual volume. Two options across four settings gives sixteen. Each row below shows its own four.

  • Bar size — 5 minute or 15 minute
  • Checks required — 4 of 5, or all 5
  • Band proximity — an exact touch, or within 0.25%
  • Volume floor — at least 1.0x, or at least 1.25x usual

Every version is only ever holding SPY or holding nothing. None of them sells short, and none of them uses borrowed money.

16 strategies · 13 reporting · 8 on 5 minute bars, 8 on 15 minute bars.
Strategy 15 min · all 5 checks · exact band touch · ≥1.0x volume
5 minConfiguredSession endedFine783$100,412.55
Strategy 25 min · all 5 checks · exact band touch · ≥1.25x volume
5 minConfiguredSession endedFine781$100,118.20
Strategy 35 min · all 5 checks · within 0.25% of band · ≥1.0x volume
5 minConfiguredSession endedFine784$99,871.05
Strategy 45 min · all 5 checks · within 0.25% of band · ≥1.25x volume
5 minConfiguredNo positionFine740$100,000.00
Strategy 55 min · 4 of 5 checks (Stoch RSI required) · exact band touch · ≥1.0x volume
5 minConfiguredHoldingFine815$100,963.40
Strategy 65 min · 4 of 5 checks (Stoch RSI required) · exact band touch · ≥1.25x volume
5 minConfiguredClosingWorth a look806$100,244.75
Strategy 75 min · 4 of 5 checks (Stoch RSI required) · within 0.25% of band · ≥1.0x volume
5 minConfiguredPaused for safetyNeeds attention462$98,204.10
Strategy 85 min · 4 of 5 checks (Stoch RSI required) · within 0.25% of band · ≥1.25x volume
5 minConfiguredEvaluatingFine771$100,077.90
Strategy 915 min · all 5 checks · exact band touch · ≥1.0x volume
15 minConfiguredSession endedFine261$100,305.60
Strategy 1015 min · all 5 checks · exact band touch · ≥1.25x volume
15 minConfiguredSession endedFine260$100,000.00
Strategy 1115 min · all 5 checks · within 0.25% of band · ≥1.0x volume
15 minConfiguredNo positionFine250$100,000.00
Strategy 1215 min · all 5 checks · within 0.25% of band · ≥1.25x volume
15 minConfiguredWaiting for a quoteWorth a look240$100,000.00
Strategy 1315 min · 4 of 5 checks (Stoch RSI required) · exact band touch · ≥1.0x volume
15 minConfiguredStartingWorth a look30not reported
Strategy 1415 min · 4 of 5 checks (Stoch RSI required) · exact band touch · ≥1.25x volume
15 minConfiguredNot reportingUnknownnot reportednot reportednot reported
Strategy 1515 min · 4 of 5 checks (Stoch RSI required) · within 0.25% of band · ≥1.0x volume
15 minNot configuredNot reportingNeeds attentionnot reportednot reportednot reported
Strategy 1615 min · 4 of 5 checks (Stoch RSI required) · within 0.25% of band · ≥1.25x volume
15 minNot configuredNot reportingNeeds attentionnot reportednot reportednot reported
Expand a row to see its bars, decisions, simulated fills and day report.Every value on this screen is simulated.
Expandable row · the detail view

The same table with two rows opened via initialExpanded — member 1 reporting normally and member 7, the specimen's unhealthy one (paused for safety, prices fifteen minutes stale, positions mismatched, day report incomplete). Expanding is a genuine detail view, not a repeat of the row: newest bar, newest decision, newest simulated fill with its modelled cost, account value split into booked and open, the day report, price-data age, paper account, settings, then plain-language “what this means” notes. Every toggle carries aria-expanded and aria-controls.

Legacy paper strategies

Every strategy here trades one symbol — SPY — on Alpaca SIP market data. Nothing on this page picks stocks.

14 of 16 configured3 need attention
How these 16 legacy strategies differ

All sixteen run the same idea: buy SPY when a fall looks like it is turning back up. Five things have to line up — the stochastic RSI is oversold, its two lines cross upward, price has stretched past the lower Bollinger band, the RSI itself turns up, and volume confirms the turn.

The sixteen versions differ on four settings only, each with two options: 5 or 15 minute bars, 4 or 5 of the checks required, an exact band touch or within 0.25%, and at least 1.0x or 1.25x usual volume. Two options across four settings gives sixteen. Each row below shows its own four.

  • Bar size — 5 minute or 15 minute
  • Checks required — 4 of 5, or all 5
  • Band proximity — an exact touch, or within 0.25%
  • Volume floor — at least 1.0x, or at least 1.25x usual

Every version is only ever holding SPY or holding nothing. None of them sells short, and none of them uses borrowed money.

16 strategies · 13 reporting · 8 on 5 minute bars, 8 on 15 minute bars.
Strategy 15 min · all 5 checks · exact band touch · ≥1.0x volume
5 minConfiguredSession endedFine783$100,412.55
Newest bar
$641.28 · 5 minutes ago
Newest decision
Did nothing · 6 minutes ago
Fewer checks passed than this strategy requires.
Newest simulated fill
Sold 15 at $641.28 · 41 minutes ago
Modelled cost $0.02. Simulated inside this lab. Not a broker fill and not live performance.
Account value
$100,412.55
Booked $412.55 · open $0.00 · as of 1 minute ago
Day report
Report complete
2026-08-14 · 78 decisions · 3 simulated fills
Price data
12 seconds old
Paper account
83418597…8441872a
Settings
5 min · all 5 checks · exact band touch · ≥1.0x volume
Strategy 25 min · all 5 checks · exact band touch · ≥1.25x volume
5 minConfiguredSession endedFine781$100,118.20
Strategy 35 min · all 5 checks · within 0.25% of band · ≥1.0x volume
5 minConfiguredSession endedFine784$99,871.05
Strategy 45 min · all 5 checks · within 0.25% of band · ≥1.25x volume
5 minConfiguredNo positionFine740$100,000.00
Strategy 55 min · 4 of 5 checks (Stoch RSI required) · exact band touch · ≥1.0x volume
5 minConfiguredHoldingFine815$100,963.40
Strategy 65 min · 4 of 5 checks (Stoch RSI required) · exact band touch · ≥1.25x volume
5 minConfiguredClosingWorth a look806$100,244.75
Strategy 75 min · 4 of 5 checks (Stoch RSI required) · within 0.25% of band · ≥1.0x volume
5 minConfiguredPaused for safetyNeeds attention462$98,204.10
Newest bar
$638.02 · 5 minutes ago
Newest decision
Did nothing · 15 minutes ago
Fewer checks passed than this strategy requires.
Newest simulated fill
Sold 15 at $638.02 · 3 hours ago
Modelled cost $0.02. Simulated inside this lab. Not a broker fill and not live performance.
Account value
$98,204.10
Booked −$1,795.90 · open $0.00 · as of 1 minute ago
Day report
Report incomplete
2026-08-14 · 46 decisions · 2 simulated fills
Price data
15 minutes old
Paper account
ae086add…ab086624
Settings
5 min · 4 of 5 checks (Stoch RSI required) · within 0.25% of band · ≥1.0x volume

What this means

Stopped itself for safety after its recorded positions stopped matching its account.

Its price data is 15 minutes old, so today’s numbers cannot be relied on.

Next: review this strategy under Advanced, then re-enable it. Leave it out of any comparison until its day report is complete.

Strategy 85 min · 4 of 5 checks (Stoch RSI required) · within 0.25% of band · ≥1.25x volume
5 minConfiguredEvaluatingFine771$100,077.90
Strategy 915 min · all 5 checks · exact band touch · ≥1.0x volume
15 minConfiguredSession endedFine261$100,305.60
Strategy 1015 min · all 5 checks · exact band touch · ≥1.25x volume
15 minConfiguredSession endedFine260$100,000.00
Strategy 1115 min · all 5 checks · within 0.25% of band · ≥1.0x volume
15 minConfiguredNo positionFine250$100,000.00
Strategy 1215 min · all 5 checks · within 0.25% of band · ≥1.25x volume
15 minConfiguredWaiting for a quoteWorth a look240$100,000.00
Strategy 1315 min · 4 of 5 checks (Stoch RSI required) · exact band touch · ≥1.0x volume
15 minConfiguredStartingWorth a look30not reported
Strategy 1415 min · 4 of 5 checks (Stoch RSI required) · exact band touch · ≥1.25x volume
15 minConfiguredNot reportingUnknownnot reportednot reportednot reported
Strategy 1515 min · 4 of 5 checks (Stoch RSI required) · within 0.25% of band · ≥1.0x volume
15 minNot configuredNot reportingNeeds attentionnot reportednot reportednot reported
Strategy 1615 min · 4 of 5 checks (Stoch RSI required) · within 0.25% of band · ≥1.25x volume
15 minNot configuredNot reportingNeeds attentionnot reportednot reportednot reported
2 rows expanded.Every value on this screen is simulated.
Experiments · the view the live page lacks

Groups keyed by comparability_hash, with a status pill that finally separates live from finished. Where members disagree the row states the split (“18 live · 3 paused · 3 finished”), and a group that finished without producing an ordering says exactly that rather than showing a blank placing. Expanding gives the fingerprint and its help text, when it ran, capital, trading assumption, evidence and placing counts, then the member runs in a nested table capped at six with a control for the rest. Where every member is outstanding for the same reason the sentence is stated once above the table and rows read “As above”, so forty identical sentences cannot bury the one that differs. The seven runs in no comparison group get their own labelled panel — never hidden.

Paper comparisons

Every saved paper comparison in this lab. Comparison groups have no names — this label is the first characters of the group’s fingerprint.

How a fair paper comparison works

A paper comparison puts several simulated runs on equal starting terms. Each keeps separate paper capital and modelled fills, and the settings are fixed when the comparison is locked.

Runs in a group never compete with each other for the same shares, so one run cannot take a fill away from another.

The historical tournament is the earlier qualification stage. Its automatic graduation hand-off is not deployed, so tournament candidates cannot enter this legacy paper lab today.

9 comparison groups · expand a row for its runs.
Comparison 445bb6
Paused88 of 823 hours ago13 Aug 2026
Comparison d9dbe6
Not started60 of 6No ordering yet23 hours ago13 Aug 2026
Comparison 2b2d18
Paper running2020 of 202 days ago12 Aug 2026
Comparison e3cc2f
Paper running2 paper running · 1 not started33 of 33 days ago11 Aug 2026
Comparison 07f53b
Paper running18 paper running · 3 paused · 3 finished2424 of 245 days ago9 Aug 2026
Comparison fingerprint
07f53b0106f5…3e2708f53c94
A 64-character value fixed when the group was locked. Two groups with the same value hold the same runs on the same terms.
When it ran
Started 9 Aug 2026
Newest run 5 days ago (9 Aug 2026)
Starting capital
$100,000.00 each
Every run starts from the same amount, which is what makes the results comparable.
Trading assumption
Independent
Each run is simulated on its own. Runs never compete for the same shares.
Evidence
24 of 24 complete
Every run recorded what a fair comparison needs.
Placing
24 of 24 comparable
These runs can be placed against each other.
Members by state
18 paper running · 3 paused · 3 finished
6 of 24 runs in this group.
RunStateEvidencePlacingStartedWhat is outstanding
spy-5check-01101c0d69…0d1c08b0Paper runningEvidence completeComparable5 days agoNothing outstanding.
spy-5check-022491fd6c…27920225Paper runningEvidence completeComparable5 days agoNothing outstanding.
spy-5check-03c9ba2897…caba2a2aPaper runningEvidence completeComparable5 days agoNothing outstanding.
spy-5check-04df6d4d1a…de6d4b87Paper runningEvidence completeComparable5 days agoNothing outstanding.
spy-5check-05f4810ddd…f1810924Paper runningEvidence completeComparable5 days agoNothing outstanding.
spy-5check-06e8f6cb80…ebf6d039Paper runningEvidence completeComparable5 days agoNothing outstanding.
Comparison 50e20e
Not started40 of 4No ordering yet6 days ago8 Aug 2026
Comparison 67d463
Finished120 of 12No ordering produced2 weeks ago1 Aug 2026
Comparison fingerprint
67d4635f66d4…603964d45ea6
A 64-character value fixed when the group was locked. Two groups with the same value hold the same runs on the same terms.
When it ran
Started 1 Aug 2026
Newest run 2 weeks ago (1 Aug 2026)
Starting capital
$100,000.00 each
Every run starts from the same amount, which is what makes the results comparable.
Trading assumption
Independent
Each run is simulated on its own. Runs never compete for the same shares.
Evidence
0 of 12 complete
Some runs are missing something a fair comparison needs — expand them below to see what.
Placing
0 of 12 comparable
No run in this group can be placed against the others, so it produced no ordering.

This group produced no ordering.

The account value is too old to rely on. Wait for the next valuation, then re-check. Until that is resolved the runs below are described but never placed against each other.

6 of 12 runs in this group.
RunStateEvidencePlacingStartedWhat is outstanding
spy-5check-01f48e6113…f58e62a6FinishedEvidence incompleteNot comparable2 weeks agoAs above
spy-5check-02c53e1d42…c43e1bafFinishedEvidence incompleteNot comparable2 weeks agoAs above
spy-5check-0359b343c5…56b33f0cFinishedEvidence incompleteNot comparable2 weeks agoAs above
spy-5check-042a62fff4…2d6304adFinishedEvidence incompleteNot comparable2 weeks agoAs above
spy-5check-05302992ff…31299492FinishedEvidence incompleteNot comparable2 weeks agoAs above
spy-5check-0680d885ae…7fd8841bFinishedEvidence incompleteNot comparable2 weeks agoAs above
Comparison 89c2bc
Finished4040 of 403 weeks ago25 Jul 2026
Comparison c2488c
Finished22 of 21 month ago11 Jul 2026
2 groups expanded.Simulated results only.

7 runs in no comparison group

These runs exist and can be inspected, but nothing places them against anything. That is the normal state for a run until you add it to a group — start one under New comparison.

1 paper running · 1 paused · 2 not started · 3 finished

Every run below is outstanding for the same reason: This run is not in any comparison. Add it to one to have it placed.

7 runs outside every comparison group.
RunStateEvidencePlacingStartedWhat is outstanding
spy-5check-01efe080e8…f2e085a1FinishedEvidence incompleteDescription only4 hours agoAs above
spy-5check-02db6a90e5…d86a8c2cFinishedEvidence incompleteDescription only13 hours agoAs above
spy-5check-03c5b76c62…c4b76acfFinishedEvidence incompleteDescription only22 hours agoAs above
spy-5check-0430a2e21f…31a2e3b2Paper runningEvidence incompleteDescription only1 day agoAs above
spy-5check-052c198394…2f19884dPausedEvidence incompleteDescription only2 days agoAs above
spy-5check-069704f951…9404f498Not startedEvidence incompleteDescription only2 days agoAs above
spy-5check-0701529e4e…00529cbbNot startedEvidence incompleteDescription only2 days agoAs above
New comparison · the wizard, actually navigable

The audit found a <ol> of <li> that looked like navigation and moved nothing, above four stages all rendering their forms at once while stage 1 still read NOT CONNECTED. Here the stage nav is four real buttons with aria-current="step"; exactly one stage renders its form and the others collapse to a single line — done stages recap what you chose, blocked stages state their prerequisite and the action that clears it. “Tenant identifier” and “Lab identifier” became Workspace and Lab, with placeholders, a <datalist> of the values that exist, and help text saying where each comes from. Editing either drops the downstream selection and returns you to step 1.

Step 1 of 4 — the two fields the audit called out. Both are pre-filled with a real value rather than presented blank, and the help text under each says where the value comes from (the Workspace is shown at the top of Advanced; the Lab is picked from the ones that workspace already holds). Note that revisiting a finished step does not lie about where you are: step 1 is expanded but still badged Done, and Now stays on step 2 — the step you have left to do.

New comparison

Pick a lab, choose the runs, check what each one has recorded, then start. A step you have not reached yet stays visible so you can see what is coming, but it cannot be worked in until its prerequisite is met.

1Choose a lab

Done

Pick which lab’s runs you want to compare.

The workspace that owns your paper accounts. Shown at the top of Advanced; it is the same value every time.

The lab whose runs you want to load. Pick from the labs already in this workspace, listed under Advanced.

7 runs loaded

2Pick the runs

Now

Select at least 2 runs. Select 20 or more if you want the scheduler to run them for you.

3Check the evidence

Not yet

Pick the runs first — evidence is checked against the set you locked.

Finish step 2, then review each run here and drop any that cannot be compared.

4Start and watch

Not yet

Step 3 has to confirm every run’s evidence before anything can start.

Finish step 3, then start the comparison. You can stop it at any point from Advanced.

New comparison · step 2 of 4

The default mount — step 1 recapped, step 2 active, steps 3 and 4 blocked with their prerequisites showing. Nothing is chosen yet, so the count pill is amber and the forward control states exactly how many more runs are needed rather than simply refusing.

New comparison

Pick a lab, choose the runs, check what each one has recorded, then start. A step you have not reached yet stays visible so you can see what is coming, but it cannot be worked in until its prerequisite is met.

1Choose a lab

Done

Loaded 7 runs from spy-intraday-2026. Change the lab above to load a different one.

2Pick the runs

Now

Choose the runs that will be compared against each other.

0 of 7 chosenChoose at least 2 runs — a comparison needs something to compare against.
Every run loaded from spy-intraday-2026. Tick the ones this comparison should hold.
RunStateEvidenceStarted
spy-5check-01efe080e8…f2e085a1
FinishedEvidence incomplete4 hours ago
spy-5check-02db6a90e5…d86a8c2c
FinishedEvidence incomplete13 hours ago
spy-5check-03c5b76c62…c4b76acf
FinishedEvidence incomplete22 hours ago
spy-5check-0430a2e21f…31a2e3b2
Paper runningEvidence incomplete1 day ago
spy-5check-052c198394…2f19884d
PausedEvidence incomplete2 days ago
spy-5check-069704f951…9404f498
Not startedEvidence incomplete2 days ago
spy-5check-0701529e4e…00529cbb
Not startedEvidence incomplete2 days ago
2 more runs needed before the evidence can be checked.

3Check the evidence

Not yet

Pick the runs first — evidence is checked against the set you locked.

Finish step 2, then review each run here and drop any that cannot be compared.

4Start and watch

Not yet

Step 3 has to confirm every run’s evidence before anything can start.

Finish step 3, then start the comparison. You can stop it at any point from Advanced.

New comparison · step 4 of 4

The same panel mounted at the last step via initialStage / initialSelectedRunIds / initialEvidenceReviewed, so the end of the flow is judgeable without clicking through it. Steps 1–3 are recapped in one line each and the start control is the only live thing on screen — pressing it prints an explicit “nothing was started” receipt, because this is a prototype. Step 3, the evidence review, is one click away in this specimen: every step behind you stays reachable.

New comparison

Pick a lab, choose the runs, check what each one has recorded, then start. A step you have not reached yet stays visible so you can see what is coming, but it cannot be worked in until its prerequisite is met.

1Choose a lab

Done

Loaded 7 runs from spy-intraday-2026. Change the lab above to load a different one.

2Pick the runs

Done

Select at least 2 runs. Select 20 or more if you want the scheduler to run them for you.

3Check the evidence

Done

Finish step 2, then review each run here and drop any that cannot be compared.

4Start and watch

Now

Start the comparison and follow it while it runs.

Runs
3
Starting capital each
$100,000.00
Trading assumption
Independent
Lab
spy-intraday-2026

Starting begins simulating every chosen run against incoming market data. You can hold or finish it at any point from Advanced.

Advanced · machinery, receipts, danger zone

Everything precise lives here and nowhere else. The four identifiers an operator must physically copy keep their exact values but gain plain labels and help text — change counter, stop count, comparison reference, comparison fingerprint — and the fingerprint is cross-referenced to the name Experiments gives the same group, so the two sections agree. Receipts are a newest-first table. Both destructive paths read as destructive and neither fires on one click: the armed one needs a typed STOP plus a recorded reason before its button enables (shown open here via initialOpenAction), and the blocked one shows a disabled control with the prerequisite that would arm it.

Where you are

The two values every other screen is scoped to. These are the ones New comparison asks you for.

Workspace
trd-ownerThe workspace that owns your paper accounts. Shown at the top of Advanced; it is the same value every time.
Lab
spy-intraday-2026The lab whose runs you want to load. Pick from the labs already in this workspace, listed under Advanced.

What is driving the runs

The thing that hands work to each run in a comparison, and the exact set of runs it holds.

RunningRead just now · 11 seconds old
Runs it holds
22 of 24 matched2 runs disagree with their account. Review them in Experiments before relying on this comparison.
Queued work per run
4The most pieces of work this comparison will hold for any one run at a time.
Comparison reference
9199019b-9099-4008-8399-04c19299032eThe identifier for this comparison group. Copy it when you need to reference the group elsewhere.
Comparison fingerprint
07f53b0106f5…3e2708f53c94Shown as Comparison 07f53b in Experiments.A 64-character value fixed when the group was locked. Two groups with the same value hold the same runs on the same terms.
Change counter
19Goes up every time the scheduler changes. A stop request must quote the current value, which is why stopping needs a fresh status read first.
Stop count
0How many times this scheduler has been stopped. Issued by the server; you never type it.
Recorded actions4 recorded actions, newest first
4 recorded actions, newest first.
ActionWhat it provesWhenRequest fingerprint
Finished runs for goodFinished 3 runs in Comparison 07f53b for good.6 hours ago14 Aug 2026d8819425…d1818920
Held runsHeld 3 runs in Comparison 07f53b.7 hours ago14 Aug 202615f15d2b…1af1650a
Started a comparisonStarted Comparison 07f53b with 24 runs.5 days ago9 Aug 20261b5e3e56…1e5e430f
Re-ran from the recorded setupRe-ran Comparison 67d463 from its recorded setup; the result matched.2 weeks ago1 Aug 2026960ac1c6…990ac67f
A 64-character value covering the exact request you sent. Repeating a request with the same value cannot double-apply it.

Stop controls

Both of these end something permanently. Neither can be undone, and neither can be triggered by a single click.

Stop this comparison for good

Every run in the comparison finishes immediately and none of them can be restarted. Results already recorded are kept.

Recorded with the stop so the decision can be explained later. Required.

Typed out in full so this cannot happen by mis-clicking. Nothing else will do.

A reason is required before this can be confirmed.

Finish a single run for good

That one run ends immediately and cannot be restarted. The rest of the comparison keeps going.

Select a run in Experiments first, then come back here.

Status vocabulary · every state, and the token it replaces

The audit found armed, running, paused, stopped, active, complete and killed printed straight to the operator. Every state word the console can show is defined once in vocabulary.ts as a Record<Union, StateCopy>, so adding a database state and forgetting its label is a compile error rather than a raw token on screen. Each pill below shows the human label, the raw wire value it translates, and the one-line meaning used for its hover title and its accessible description. A pill is never colour-only: the label always carries the meaning and the dot only reinforces it.

Status vocabulary

Twelve translation tables, 47 states. Nothing on any operator screen is written by hand.

12 tables

Run state

RUN_STATE_COPY

Where one paper run is in its life. The four values the database stores are the four the audit found printed raw.

Not startedarmed

configured, but no trading has begun

Paper runningrunning

simulating trades on incoming market data right now

Pausedpaused

held deliberately; it will resume from where it stopped

Finishedstopped

over for good; it cannot be restarted

Comparison status

EXPERIMENT_STATUS_COPY

Derived for a whole group from its members: any live → live, else any paused → paused, else all stopped → finished.

Paper runninglive

at least one simulated run in this comparison reports that it is running

Pausedpaused

the comparison is held; no run in it is trading

Finishedfinished

every run in this comparison is over

Not startednot_started

the comparison is set up but no run in it has begun

Strategy session state

RUNTIME_STATE_COPY

What one member is doing inside today’s session. Nine values, and none of them reach the screen as written.

Startingwarming

building up enough history to make a decision

Evaluatingevaluating

checking the newest market data now

Waiting for a quotesignal_pending_bbo

ready to act, waiting on a current bid and ask

Holdinglong

holding a simulated position

Closingflattening

closing its simulated position

No positionflat

watching, holding nothing

Session endedday_sealed

the day is over and its report is final

Paused for safetypaused_safety

stopped itself because something looked wrong

Not reportingunknown

no status has come back from this strategy

Market data

INGESTION_STATE_COPY

The price feed behind every decision. Shown once on Overview, because a stale feed invalidates the whole console.

Market data healthyhealthy

prices are arriving on time

Market data delayedstale

the newest price is older than it should be

Market data missinggapped

some prices never arrived

Market data repairingrepairing

missing prices are being backfilled now

Market data startingwarming

the price feed is still connecting

Market data unknownunknown

no status has come back from the price feed

Strategy health

STRATEGY_HEALTH_COPY

Our own judgement, not a stored field: worth-a-look and needs-attention are what drive the row rules and the attention list.

Fineok

reporting normally with nothing outstanding

Worth a lookwatch

still working, but something is late or partial

Needs attentionattention

not working as intended and will not fix itself

Unknownunknown

nothing has come back, so there is nothing to judge

Scheduler state

SCHEDULER_STATE_COPY

The machinery that keeps a comparison’s members running. Only ever shown under Advanced.

Runningactive

the scheduler is issuing work to its runs

Finishedcompleted

every run reached its end and the scheduler closed itself

Stoppedkilled

someone stopped it on purpose before it finished

Evidence

CLAIM_STATE_COPY

Whether a run recorded everything a fair comparison needs. Screaming caps in the wire values; sentences on screen.

Evidence completeELIGIBLE

every check this run needs has been recorded

Evidence rejectedINELIGIBLE

a recorded check failed, so this run cannot be compared

Evidence incompleteINSUFFICIENT_EVIDENCE

something this run needs was never recorded

Placing

RANK_STATE_COPY

Whether a run can be placed against the others. Description-only is the normal case for anything read through the list endpoint.

ComparableRANKED

this run can be placed against the others in its comparison

Not comparableUNRANKABLE

in a comparison, but missing what a fair placing would require

Description onlyDESCRIPTIVE_ONLY

not in a comparison, so it is never placed against anything

Day report

RECEIPT_STATE_COPY

Whether today’s numbers for a member are final. Incomplete is the one that must never read as complete.

Report pendingpending

the day is not closed out yet

Report completecomplete

the day closed out and the numbers are final

Report incompleteincomplete

the day closed out with something missing

Set-up

BINDING_STATE_COPY

Whether a member has its own paper account. Nothing can run or be compared until it does.

Configuredbound

has its own paper account and is ready to run

Not configuredmissing

has no paper account yet, so it cannot run

Wizard step

STAGE_STATE_COPY

Used by the stage nav. A blocked step always states its prerequisite and the action that clears it.

Donedone

this step is complete and recorded

Nowcurrent

this is the step to work on

Not yetblocked

an earlier step has to finish first

Attention severity

ATTENTION_SEVERITY_COPY

Sorts the Overview attention list blocking-first, and picks the glyph beside each item.

Blockingcritical

nothing will progress until this is dealt with

Needs a lookwarning

work continues, but something is off

Worth knowinginfo

no action required, but you should know

Empty states · the first-arrival paths

SPEC_EMPTY_VIEW is the same shape with nothing in it, so the day-one lab is judgeable without a second fixture. Each empty state says what is missing, why nothing can happen yet, and where to go — and none of them lies: a 0-of-0 family never claims to be fully comparable, and an unknown price feed never reads as healthy.

Attention

Nothing is running. Set up a new comparison when you are ready.

Nothing outstanding

Paper onlyEverything here is simulated. This lab places no broker orders, moves no money, and the numbers it shows are not live trading performance.

Market data unknownSPY · Alpaca · SIPNo price has arrived yet.

Nothing needs you right now — every configured strategy is reporting, and no comparison is waiting on you.

Legacy paper strategies

Every strategy here trades one symbol — SPY — on Alpaca SIP market data. Nothing on this page picks stocks.

How these 16 legacy strategies differ

All sixteen run the same idea: buy SPY when a fall looks like it is turning back up. Five things have to line up — the stochastic RSI is oversold, its two lines cross upward, price has stretched past the lower Bollinger band, the RSI itself turns up, and volume confirms the turn.

The sixteen versions differ on four settings only, each with two options: 5 or 15 minute bars, 4 or 5 of the checks required, an exact band touch or within 0.25%, and at least 1.0x or 1.25x usual volume. Two options across four settings gives sixteen. Each row below shows its own four.

  • Bar size — 5 minute or 15 minute
  • Checks required — 4 of 5, or all 5
  • Band proximity — an exact touch, or within 0.25%
  • Volume floor — at least 1.0x, or at least 1.25x usual

Every version is only ever holding SPY or holding nothing. None of them sells short, and none of them uses borrowed money.

No strategy is reporting.

Either the lab could not be read just now, or none of the sixteen has its own paper account yet. Nothing is filled in from a guess either way — the Attention tab says which of the two it is.

Paper comparisons

Every saved paper comparison in this lab. Comparison groups have no names — this label is the first characters of the group’s fingerprint.

How a fair paper comparison works

A paper comparison puts several simulated runs on equal starting terms. Each keeps separate paper capital and modelled fills, and the settings are fixed when the comparison is locked.

Runs in a group never compete with each other for the same shares, so one run cannot take a fill away from another.

The historical tournament is the earlier qualification stage. Its automatic graduation hand-off is not deployed, so tournament candidates cannot enter this legacy paper lab today.

No comparison groups yet.

A group appears here once you pick two or more runs and lock them together. Start one under New comparison.

0 runs in no comparison group

These runs exist and can be inspected, but nothing places them against anything. That is the normal state for a run until you add it to a group — start one under New comparison.

Every run belongs to a comparison group.

Nothing is sitting outside a group, so every run in this lab is being placed against others.

Historical tournament

The second of the two lab systems — <TournamentSurface> in app/components/lab/tournament/. It replays sealed past sessions from a fixed corpus, against many strategy variants, across many instruments, under preregistered waves that draw on a cumulative alpha budget. It is built from the same primitives as the operator console rather than a second visual language: the dashboard's tab row with the count written into the label, uppercase section labels over hairline rules, and StockRow's cell density — px-1.5 py-0, 12px identifier over 10px secondary, tabular numerals, a sticky-left identity column. Every selector is namespaced under .tour via <TournamentStyles/>.

Read this first
  • This is NOT the forward paper lab. The section above it — Lab operator — is the forward system: live SPY, sixteen frozen strategies, running against market data as it arrives. This one is historical: sealed past sessions, many instruments, preregistered waves. They share a vocabulary and nothing else, and conflating them was the single biggest source of confusion in the old UI. A wave is not a comparison group, an attempt is not a run, and a consistency score is not a live result. Both sentences are printed in the surface's own headline band, on every tab.
  • This is a flat prototype on dummy specimen data. Nothing here fetches, authenticates, polls or writes. No wave below was ever sealed, no session was ever replayed, no score was ever computed and no digest is a real hash. Every number comes from fixtures.ts and is meaningless in value, realistic only in shape — but it is derived: an attempt count is variants x instruments x grids, a component's numerator is the readouts that held, and a budget is the sum of the waves that spent it, so a headline can never disagree with the table under it.
  • The arithmetic is real even though the data is not. The resolvability predicate, the 500-attempt ceiling and the 500-basis-point budget are restated here in the same exact integer form as lib/paper/intraday/tournament/instrument-universe.ts and v4.ts, because those modules seal and hash and throw and this prototype runs in a browser. When the surface is wired, the real modules produce these shapes and none of these components change.
Surface · tabs + one section at a time

<TournamentSurface/> with no props: its own .tour root, an identity strip carrying the standing Research only marker, a headline band that names both systems and rules one out, and three real tabs in the dashboard's idiom with aria-current="page". Click a tab — it is the only way between sections, and only the active one exists in the DOM. The count lives inside the tab label, exactly as the dashboard writes “ACTIVE 26”, and each bare number is paired with a screen-reader sentence.

HISTORICAL TOURNAMENTFixed daily tests · sealed past sessionsHISTORICAL ONLY · NO ORDERS · NO MONEYNewest test batch locked System mapHistorical results

What this page does: This page tests strategy settings against locked historical market data. It is a simulation, not a live trading screen.

It places no orders and moves no money. It is the historical qualification stage; only an exact strategy + stock combination that passes a separate check, independent review, and owner sign-off may later enter the forward paper LAB.

Current boundary: Existing SPY-only v2 records are an immutable legacy archive. SPY is excluded from new graduation packages. The multi-stock hand-off exists, but a package remains stopped until its evidence, release, Machine attestation, and explicit owner start all agree.

Open the forward paper lab →

Technical research record and limits

320 of 500 basis points spent across 2 sealed waves 180 left, and it cannot be topped up.

Stocks being tested

Choose the stocks and time interval. The totals update before anything is run.

20 stocks selected160 of 500 combinations
Tested combinations1608 strategy versions across 20 stocks and 1 interval.
Maximum allowed500The fixed limit for this research series. It cannot be increased after results are seen.
Tests left340Combinations left for later test batches if this plan is locked.
False-positive budget used160Of 500 fixed units for the whole research series.
32% of the research limit340 combinations left
How the false-positive limit is calculated

At 10,000 bootstrap resamples the smallest p-value the test can ever report is 1/(R+1), so Holm's strictest step caps the whole series at 500 attempts — across every wave, forever. One basis point buys one attempt. This view uses 10,000 bootstrap resamples and a total allowance of 500 basis points. One basis point maps to one tested combination here.

Accepted · 160 attempts fits

8 variants x 20 instruments x 1 bar grid = 160 attempts, against a ceiling of 500. It would cost 160 of the 500 basis points this series may ever spend, and leave 340 attempts of headroom for every wave after it.

Worth knowing · 2 instruments below the session floor

SNDK, SMCI have fewer than 126 sealed sessions in this corpus. They will still be replayed and will still cost budget, but their cell can never count as held or failed — only as underpowered, and named as such on every score.

  • Keep them and read the underpowered count, or drop them and spend the basis points on an instrument with a track.

Testing interval

Choose how strategy decisions are grouped through each day. The locked test plan uses M15. Adding another interval tests every selected stock again.

26 stocks available · 20 selected · one compatible test group (Unlevered spot).
SectorNote
Alphabet
Unlevered spotNamedMegacap platform492
Micron Technology
Unlevered spotNamedSemiconductors492
NVIDIA
Unlevered spotNamedSemiconductors492
SanDisk
Unlevered spotNamedSemiconductors74Began trading separately after the 2026 separation, so its sealed corpus is short. It is a live example of why the instrument identity, not the ticker, is what has to survive.
Tesla
Unlevered spotNamedHigh beta492
S&P 500 index fund
Unlevered spotControlBroad index492The CONTROL. It is in the universe — it is an attempt, it costs a basis point and it is corrected like every other cell — but it is held out of the cross-sectional sample, because a control averaged into the sample it exists to interpret is not a control.
Apple
Unlevered spotSupportingMegacap platform492
Advanced Micro Devices
Unlevered spotSupportingSemiconductors492
Amazon
Unlevered spotSupportingMegacap platform492
Arm Holdings
Unlevered spotSupportingSemiconductors412
Broadcom
Unlevered spotSupportingSemiconductors492
Boeing
Unlevered spotSupportingIndustrials492
Coinbase
Unlevered spotSupportingHigh beta492
Intel
Unlevered spotSupportingSemiconductors492
Meta Platforms
Unlevered spotSupportingMegacap platform492
Marvell Technology
Unlevered spotSupportingSemiconductors492
Microsoft
Unlevered spotSupportingMegacap platform492
Netflix
Unlevered spotSupportingMegacap platform492
Palantir
Unlevered spotSupportingHigh beta492
Nasdaq 100 index fund
Unlevered spotSupportingBroad index492
Super Micro Computer
Unlevered spotSupportingHigh beta119Only 119 sealed sessions in the specimen corpus, seven short of the 126-session floor, so it can never count as held or failed — only as underpowered.
Snowflake
Unlevered spotSupportingSoftware492
Uber Technologies
Unlevered spotSupportingHigh beta492
Nasdaq 100 2x daily
2x daily resetLeveragedBroad index492The same mechanism as SSO on a different index, so the two share a class with each other and with nothing else.
S&P 500 −2x daily
−2x daily resetLeveragedBroad index492A −2x daily-reset inverse. Its decay accrues against a short exposure, so on the same tape it moves opposite to SSO. It is a THIRD class, not a corner of the second.
S&P 500 2x daily
2x daily resetLeveragedBroad index492A 2x daily-reset product. Its multi-day payoff compounds the multiple rather than the return, so it cannot share a family with unlevered spot.
20 stocks selected · 160 tested combinations · 160 of 500 false-positive budget units.
Locked test plan and research limit3 test batchs recorded

Test plan

The strategy versions, stocks, and research limit locked before testing.

2 test batchs locked1 test batch planned
False-positive budget500The fixed allowance across every test batch in this research series.
Used3202 locked test batchs covering 320 tested combinations.
Planned721 test batch recorded but not yet locked.
Test batches left1Further batches of about 160 combinations that still fit.
320 used72 planned108 left
How this research limit works

At 10,000 bootstrap resamples, one basis point buys one tested combination:320 of 500 used and 180 left. The largest test batch that still fits is 180 combinations. The allowance cannot be topped up after results are read.

3 test batchs in the series · 2 locked · 1 planned.
Test batchStatusIntervalStrategy versionsStocksCombinationsBudget usedReplays
Test batch 1The saturated factorial, M15
CompleteM15820160160 units77,760 / 77,760 · 100%
Test batch 2The same factorial, M5
RunningM5820160160 units41,208 / 77,760 · 53%
Test batch 3Six survivors, twelve high-volatility names
PlannedM56127272 units0 / 34,992 · 0%
Expand a test batch to see its strategy versions, stocks, dates, and technical identity.Discovery only. Paper testing still needs separate validation, an independent check, and owner sign-off.
Universe · the picker, and what picking costs

The answer to “the new different stocks that we can choose from” — MU, SNDK, NVDA, GOOGL and TSLA by name, fourteen more liquid single names, SPY as an explicit control, and three leveraged products that belong to different comparability classes. A picker that only picked would be the wrong answer, so the consequence sits above the control that causes it and moves as you tick: attempts, the ceiling, the headroom left for every later wave, and the basis points this selection would cost.

The default selection is wave 1's twenty on the M15 grid 160 attempts against a ceiling of 500, so it is accepted, with one warning about the two instruments whose sealed corpus is below the 126-session floor. Tick a leveraged product, or turn on a second bar grid, and watch the readouts move.

Stocks being tested

Choose the stocks and time interval. The totals update before anything is run.

20 stocks selected160 of 500 combinations
Tested combinations1608 strategy versions across 20 stocks and 1 interval.
Maximum allowed500The fixed limit for this research series. It cannot be increased after results are seen.
Tests left340Combinations left for later test batches if this plan is locked.
False-positive budget used160Of 500 fixed units for the whole research series.
32% of the research limit340 combinations left
How the false-positive limit is calculated

At 10,000 bootstrap resamples the smallest p-value the test can ever report is 1/(R+1), so Holm's strictest step caps the whole series at 500 attempts — across every wave, forever. One basis point buys one attempt. This view uses 10,000 bootstrap resamples and a total allowance of 500 basis points. One basis point maps to one tested combination here.

Accepted · 160 attempts fits

8 variants x 20 instruments x 1 bar grid = 160 attempts, against a ceiling of 500. It would cost 160 of the 500 basis points this series may ever spend, and leave 340 attempts of headroom for every wave after it.

Worth knowing · 2 instruments below the session floor

SNDK, SMCI have fewer than 126 sealed sessions in this corpus. They will still be replayed and will still cost budget, but their cell can never count as held or failed — only as underpowered, and named as such on every score.

  • Keep them and read the underpowered count, or drop them and spend the basis points on an instrument with a track.

Testing interval

Choose how strategy decisions are grouped through each day. The locked test plan uses M15. Adding another interval tests every selected stock again.

26 stocks available · 20 selected · one compatible test group (Unlevered spot).
SectorNote
Alphabet
Unlevered spotNamedMegacap platform492
Micron Technology
Unlevered spotNamedSemiconductors492
NVIDIA
Unlevered spotNamedSemiconductors492
SanDisk
Unlevered spotNamedSemiconductors74Began trading separately after the 2026 separation, so its sealed corpus is short. It is a live example of why the instrument identity, not the ticker, is what has to survive.
Tesla
Unlevered spotNamedHigh beta492
S&P 500 index fund
Unlevered spotControlBroad index492The CONTROL. It is in the universe — it is an attempt, it costs a basis point and it is corrected like every other cell — but it is held out of the cross-sectional sample, because a control averaged into the sample it exists to interpret is not a control.
Apple
Unlevered spotSupportingMegacap platform492
Advanced Micro Devices
Unlevered spotSupportingSemiconductors492
Amazon
Unlevered spotSupportingMegacap platform492
Arm Holdings
Unlevered spotSupportingSemiconductors412
Broadcom
Unlevered spotSupportingSemiconductors492
Boeing
Unlevered spotSupportingIndustrials492
Coinbase
Unlevered spotSupportingHigh beta492
Intel
Unlevered spotSupportingSemiconductors492
Meta Platforms
Unlevered spotSupportingMegacap platform492
Marvell Technology
Unlevered spotSupportingSemiconductors492
Microsoft
Unlevered spotSupportingMegacap platform492
Netflix
Unlevered spotSupportingMegacap platform492
Palantir
Unlevered spotSupportingHigh beta492
Nasdaq 100 index fund
Unlevered spotSupportingBroad index492
Super Micro Computer
Unlevered spotSupportingHigh beta119Only 119 sealed sessions in the specimen corpus, seven short of the 126-session floor, so it can never count as held or failed — only as underpowered.
Snowflake
Unlevered spotSupportingSoftware492
Uber Technologies
Unlevered spotSupportingHigh beta492
Nasdaq 100 2x daily
2x daily resetLeveragedBroad index492The same mechanism as SSO on a different index, so the two share a class with each other and with nothing else.
S&P 500 −2x daily
−2x daily resetLeveragedBroad index492A −2x daily-reset inverse. Its decay accrues against a short exposure, so on the same tape it moves opposite to SSO. It is a THIRD class, not a corner of the second.
S&P 500 2x daily
2x daily resetLeveragedBroad index492A 2x daily-reset product. Its multi-day payoff compounds the multiple rather than the return, so it cannot share a family with unlevered spot.
20 stocks selected · 160 tested combinations · 160 of 500 false-positive budget units.
Universe · past the ceiling, refused with the arithmetic

Every unlevered instrument in the catalogue, on all three bar grids: 552 attempts against a ceiling of 500. This does not merely render red. At 10,000 bootstrap resamples the smallest p-value the test can ever report is 1/(R+1); Holm's strictest step needs one below alpha/n; past the ceiling the floor sits above the threshold and the family cannot produce a significant result at any effect size. So the verdict is a refusal with the reason, and three remedies that are each a real number: how many instruments to drop, what a grid costs, and the resample count that would make this count resolvable.

Stocks being tested

Choose the stocks and time interval. The totals update before anything is run.

23 stocks selected552 of 500 combinations
Tested combinations5528 strategy versions across 23 stocks and 3 intervals.
Maximum allowed500The fixed limit for this research series. It cannot be increased after results are seen.
Tests left-5252 combinations over the limit. This selection cannot run.
False-positive budget used552Of 500 fixed units for the whole research series.
100% of the research limit0 combinations left
How the false-positive limit is calculated

At 10,000 bootstrap resamples the smallest p-value the test can ever report is 1/(R+1), so Holm's strictest step caps the whole series at 500 attempts — across every wave, forever. One basis point buys one attempt. This view uses 10,000 bootstrap resamples and a total allowance of 500 basis points. One basis point maps to one tested combination here.

Refused · 552 attempts is past the resolvable ceiling of 500

At 10,000 bootstrap resamples the smallest p-value the test can EVER report is 1/(R+1) = 1.00e-4. Holm's strictest step needs a p-value below alpha/n, which at 552 attempts is 9.06e-5. The floor is above the threshold, so this family cannot produce a significant result at ANY effect size. It is refused, not warned: running it would spend the budget on a question the arithmetic has already answered.

  • Remove 3 instruments — that is what 52 attempts of overshoot costs at 8 variants x 3 grids.
  • Or drop a bar grid: each one you remove takes 184 attempts off the count.
  • Or raise the resample count to at least 11,040, because the bootstrap floor 1/(R+1) is what the ceiling is made of.

Testing interval

Choose how strategy decisions are grouped through each day. Each extra interval tests every selected stock again and uses more of the fixed research limit.

26 stocks available · 23 selected · one compatible test group (Unlevered spot).
SectorNote
Alphabet
Unlevered spotNamedMegacap platform492
Micron Technology
Unlevered spotNamedSemiconductors492
NVIDIA
Unlevered spotNamedSemiconductors492
SanDisk
Unlevered spotNamedSemiconductors74Began trading separately after the 2026 separation, so its sealed corpus is short. It is a live example of why the instrument identity, not the ticker, is what has to survive.
Tesla
Unlevered spotNamedHigh beta492
S&P 500 index fund
Unlevered spotControlBroad index492The CONTROL. It is in the universe — it is an attempt, it costs a basis point and it is corrected like every other cell — but it is held out of the cross-sectional sample, because a control averaged into the sample it exists to interpret is not a control.
Apple
Unlevered spotSupportingMegacap platform492
Advanced Micro Devices
Unlevered spotSupportingSemiconductors492
Amazon
Unlevered spotSupportingMegacap platform492
Arm Holdings
Unlevered spotSupportingSemiconductors412
Broadcom
Unlevered spotSupportingSemiconductors492
Boeing
Unlevered spotSupportingIndustrials492
Coinbase
Unlevered spotSupportingHigh beta492
Intel
Unlevered spotSupportingSemiconductors492
Meta Platforms
Unlevered spotSupportingMegacap platform492
Marvell Technology
Unlevered spotSupportingSemiconductors492
Microsoft
Unlevered spotSupportingMegacap platform492
Netflix
Unlevered spotSupportingMegacap platform492
Palantir
Unlevered spotSupportingHigh beta492
Nasdaq 100 index fund
Unlevered spotSupportingBroad index492
Super Micro Computer
Unlevered spotSupportingHigh beta119Only 119 sealed sessions in the specimen corpus, seven short of the 126-session floor, so it can never count as held or failed — only as underpowered.
Snowflake
Unlevered spotSupportingSoftware492
Uber Technologies
Unlevered spotSupportingHigh beta492
Nasdaq 100 2x daily
2x daily resetLeveragedBroad index492The same mechanism as SSO on a different index, so the two share a class with each other and with nothing else.
S&P 500 −2x daily
−2x daily resetLeveragedBroad index492A −2x daily-reset inverse. Its decay accrues against a short exposure, so on the same tape it moves opposite to SSO. It is a THIRD class, not a corner of the second.
S&P 500 2x daily
2x daily resetLeveragedBroad index492A 2x daily-reset product. Its multi-day payoff compounds the multiple rather than the return, so it cannot share a family with unlevered spot.
23 stocks selected · 552 tested combinations · 552 of 500 false-positive budget units.
Universe · two comparability classes, also refused

The wave-1 twenty plus SSO, a 2x daily-reset product. A daily reset compounds the multiple rather than the return, so its multi-day payoff is path dependent with a volatility-decay drag that scales with the square of the ratio and flips sign below zero — a −2x, a +2x and an unlevered 1x are three different processes and may not share one significance claim. The class is derived from the mechanism and cannot be relabelled, so the selection is refused and the row carries a red identity rule. Note that the control is shown, not hidden: hiding it teaches nothing, and refusing it with a reason teaches the rule in one click.

Stocks being tested

Choose the stocks and time interval. The totals update before anything is run.

21 stocks selected168 of 500 combinations
Tested combinations1688 strategy versions across 21 stocks and 1 interval.
Maximum allowed500The fixed limit for this research series. It cannot be increased after results are seen.
Tests left332Combinations left for later test batches if this plan is locked.
False-positive budget used168Of 500 fixed units for the whole research series.
34% of the research limit332 combinations left
How the false-positive limit is calculated

At 10,000 bootstrap resamples the smallest p-value the test can ever report is 1/(R+1), so Holm's strictest step caps the whole series at 500 attempts — across every wave, forever. One basis point buys one attempt. This view uses 10,000 bootstrap resamples and a total allowance of 500 basis points. One basis point maps to one tested combination here.

Refused · Two comparability classes cannot share one family

This selection mixes Unlevered spot (MU, SNDK, NVDA, GOOGL, TSLA, SPY, AAPL, AMD, AMZN, AVGO, BA, COIN, INTC, META, MRVL, MSFT, NFLX, PLTR, SMCI, UBER) and 2x daily reset (SSO). A daily-reset product compounds the MULTIPLE rather than the return, so its multi-day payoff is path dependent with a volatility-decay drag that scales with the square of the ratio and flips sign below zero. A −2x, a +2x and an unlevered 1x are three different processes; a result measured on one does not transfer to another, so they may not share a significance claim. The class is derived from the mechanism and cannot be relabelled.

  • Run the leveraged products as their OWN wave, against their own universe, with their own share of the budget.
  • Or take them out of this selection and keep the unlevered family whole.

Testing interval

Choose how strategy decisions are grouped through each day. The locked test plan uses M15. Adding another interval tests every selected stock again.

26 stocks available · 21 selected · 2 test groups — only one may be used at a time.
SectorNote
Alphabet
Unlevered spotNamedMegacap platform492
Micron Technology
Unlevered spotNamedSemiconductors492
NVIDIA
Unlevered spotNamedSemiconductors492
SanDisk
Unlevered spotNamedSemiconductors74Began trading separately after the 2026 separation, so its sealed corpus is short. It is a live example of why the instrument identity, not the ticker, is what has to survive.
Tesla
Unlevered spotNamedHigh beta492
S&P 500 index fund
Unlevered spotControlBroad index492The CONTROL. It is in the universe — it is an attempt, it costs a basis point and it is corrected like every other cell — but it is held out of the cross-sectional sample, because a control averaged into the sample it exists to interpret is not a control.
Apple
Unlevered spotSupportingMegacap platform492
Advanced Micro Devices
Unlevered spotSupportingSemiconductors492
Amazon
Unlevered spotSupportingMegacap platform492
Arm Holdings
Unlevered spotSupportingSemiconductors412
Broadcom
Unlevered spotSupportingSemiconductors492
Boeing
Unlevered spotSupportingIndustrials492
Coinbase
Unlevered spotSupportingHigh beta492
Intel
Unlevered spotSupportingSemiconductors492
Meta Platforms
Unlevered spotSupportingMegacap platform492
Marvell Technology
Unlevered spotSupportingSemiconductors492
Microsoft
Unlevered spotSupportingMegacap platform492
Netflix
Unlevered spotSupportingMegacap platform492
Palantir
Unlevered spotSupportingHigh beta492
Nasdaq 100 index fund
Unlevered spotSupportingBroad index492
Super Micro Computer
Unlevered spotSupportingHigh beta119Only 119 sealed sessions in the specimen corpus, seven short of the 126-session floor, so it can never count as held or failed — only as underpowered.
Snowflake
Unlevered spotSupportingSoftware492
Uber Technologies
Unlevered spotSupportingHigh beta492
Nasdaq 100 2x daily
2x daily resetLeveragedBroad index492The same mechanism as SSO on a different index, so the two share a class with each other and with nothing else.
S&P 500 −2x daily
−2x daily resetLeveragedBroad index492A −2x daily-reset inverse. Its decay accrues against a short exposure, so on the same tape it moves opposite to SSO. It is a THIRD class, not a corner of the second.
S&P 500 2x daily
2x daily resetLeveragedBroad index492A 2x daily-reset product. Its multi-day payoff compounds the multiple rather than the return, so it cannot share a family with unlevered spot.
21 stocks selected · 168 tested combinations · 168 of 500 false-positive budget units.
Wave · status, and a budget that never refills

A wave is one preregistered run: its variants, its universe, its attempt count and its share of a cumulative alpha budget fixed at 500 basis points for the whole series. That is why the panel leads with the budget and not with the list. The honest argument for letting an operator test new variants later — after seeing what the last wave produced — rests entirely on the budget being fixed in advance: reading a result and choosing what to test next is itself a look at the data, and under a cumulative budget that look is paid for.

So the runway has to be visible, and it has to shrink. 320 bp spent across 2 sealed waves, 72 bp reserved by the one preregistered wave, 108 bp uncommitted — and 1 further wave of the reference size that still fits. The meter is the one place in this surface where a fill is spent, because a meter is a chart: a quantity drawn as a length.

Test plan

The strategy versions, stocks, and research limit locked before testing.

2 test batchs locked1 test batch planned
False-positive budget500The fixed allowance across every test batch in this research series.
Used3202 locked test batchs covering 320 tested combinations.
Planned721 test batch recorded but not yet locked.
Test batches left1Further batches of about 160 combinations that still fit.
320 used72 planned108 left
How this research limit works

At 10,000 bootstrap resamples, one basis point buys one tested combination:320 of 500 used and 180 left. The largest test batch that still fits is 180 combinations. The allowance cannot be topped up after results are read.

3 test batchs in the series · 2 locked · 1 planned.
Test batchStatusIntervalStrategy versionsStocksCombinationsBudget usedReplays
Test batch 1The saturated factorial, M15
CompleteM15820160160 units77,760 / 77,760 · 100%
Test batch 2The same factorial, M5
RunningM5820160160 units41,208 / 77,760 · 53%
Test batch 3Six survivors, twelve high-volatility names
PlannedM56127272 units0 / 34,992 · 0%
Expand a test batch to see its strategy versions, stocks, dates, and technical identity.Discovery only. Paper testing still needs separate validation, an independent check, and owner sign-off.
Wave · the expanded row

The same table with the running wave and the preregistered one opened via initialExpanded. Expanding is a genuine detail view rather than a repeat of the row: what the status means, the declared universe and its provenance, when it was preregistered and when it was sealed, work units as a count and a share, the control held out of the cross-section, the fingerprint, why the wave exists — then the preregistered variants with their three settings each, and the full symbol list. Note the preregistered wave says its alpha has not left the budget, because it has not: until a wave is sealed it is a plan.

Test plan

The strategy versions, stocks, and research limit locked before testing.

2 test batchs locked1 test batch planned
False-positive budget500The fixed allowance across every test batch in this research series.
Used3202 locked test batchs covering 320 tested combinations.
Planned721 test batch recorded but not yet locked.
Test batches left1Further batches of about 160 combinations that still fit.
320 used72 planned108 left
How this research limit works

At 10,000 bootstrap resamples, one basis point buys one tested combination:320 of 500 used and 180 left. The largest test batch that still fits is 180 combinations. The allowance cannot be topped up after results are read.

3 test batchs in the series · 2 locked · 1 planned.
Test batchStatusIntervalStrategy versionsStocksCombinationsBudget usedReplays
Test batch 1The saturated factorial, M15
CompleteM15820160160 units77,760 / 77,760 · 100%
Test batch 2The same factorial, M5
RunningM5820160160 units41,208 / 77,760 · 53%
What this state means
Sealed. Its alpha is spent and cannot be returned. Work units are being replayed now, and the design is frozen for the duration.
Stocks being tested
20 stocks
chosen by the operator; every stock must still match the locked list.
Plan locked
Evidence locked
· fixed before the result was read.
Historical replays
41,208 of 77,760
One replay is one past trading day for one strategy version on one stock — 160 tested combinations x 486 trading days.
Control
SPY
Included in the same checks, but not counted as one of the strategies being compared.
Why this test batch
The identical design one bar grid finer, where a session carries 78 bars instead of 26 and the volume baseline consumes far less of it. It is a separate wave and a separate spend, because reading wave 1 and then choosing to run this is itself a look at the data.
Technical identity

Test-set ID: v4/us-liquid-highvol-unlevered. Content fingerprint: 28fc4ea2…23fc46c3 . These bind the plan to the exact strategy versions, stocks, interval, and research allowance.

The 8 locked strategy versions

Strategy versionSettingsInterval
stack4-touch-relvol1004 of 5 checks · exact band touch · at least 1.00x usual volumeM5
stack4-touch-relvol1254 of 5 checks · exact band touch · at least 1.25x usual volumeM5
stack4-near-relvol1004 of 5 checks · within 0.25% of the band · at least 1.00x usual volumeM5
stack4-near-relvol1254 of 5 checks · within 0.25% of the band · at least 1.25x usual volumeM5
stack5-touch-relvol1005 of 5 checks · exact band touch · at least 1.00x usual volumeM5
stack5-touch-relvol1255 of 5 checks · exact band touch · at least 1.25x usual volumeM5
stack5-near-relvol1005 of 5 checks · within 0.25% of the band · at least 1.00x usual volumeM5
stack5-near-relvol1255 of 5 checks · within 0.25% of the band · at least 1.25x usual volumeM5

Stocks in this test batch

MU · SNDK · NVDA · GOOGL · TSLA · SPY · AAPL · AMD · AMZN · AVGO · BA · COIN · INTC · META · MRVL · MSFT · NFLX · PLTR · SMCI · UBER

Test batch 3Six survivors, twelve high-volatility names
PlannedM56127272 units0 / 34,992 · 0%
What this state means
The design is written down and its alpha is reserved, but nothing has been sealed and no session has been replayed. It can still be edited; once sealed it cannot.
Stocks being tested
12 stocks
chosen by the operator; every stock must still match the locked list.
Plan locked
Evidence locked
Not locked. The plan can still be edited and has not used its allowance.
Historical replays
0 of 34,992
One replay is one past trading day for one strategy version on one stock — 72 tested combinations x 486 trading days.
Control
SPY
Included in the same checks, but not counted as one of the strategies being compared.
Why this test batch
Narrowed on what waves 1 and 2 showed. That narrowing is exactly the look at the data a preregistered budget exists to charge for — which is why it is a new wave with its own spend, and not an edit to wave 1.
Technical identity

Test-set ID: v4/us-highvol-narrow. Content fingerprint: 99fa7ce5…92fa71e0 . These bind the plan to the exact strategy versions, stocks, interval, and research allowance.

The 6 locked strategy versions

Strategy versionSettingsInterval
stack4-near-relvol1004 of 5 checks · within 0.25% of the band · at least 1.00x usual volumeM5
stack4-near-relvol1254 of 5 checks · within 0.25% of the band · at least 1.25x usual volumeM5
stack5-touch-relvol1005 of 5 checks · exact band touch · at least 1.00x usual volumeM5
stack5-touch-relvol1255 of 5 checks · exact band touch · at least 1.25x usual volumeM5
stack5-near-relvol1005 of 5 checks · within 0.25% of the band · at least 1.00x usual volumeM5
stack5-near-relvol1255 of 5 checks · within 0.25% of the band · at least 1.25x usual volumeM5

Stocks in this test batch

MU · SNDK · NVDA · GOOGL · TSLA · AMD · AVGO · MRVL · PLTR · COIN · SMCI · SPY

2 test batchs expanded.Discovery only. Paper testing still needs separate validation, an independent check, and owner sign-off.
Results · never a bare composite

One row per variant, sortable on every column and on each of the four components individually — the header for the component strip is four sort controls sitting in the same four columns as the values beneath them. The composite is the minimum of hit rate, regime breadth, stability across time blocks and instrument breadth, each credited at min(measured, evidence ratio) so thin evidence downgrades rather than inflates. A mean would let a strong component pay for a failed one, which is exactly how a regime bet acquires a consistency score.

The components travel with the composite in every row. A component drawn in red contains a partition that came out strictly negative — a regime, a time block or an instrument the variant actually lost in — and it is marked whether or not it is the one doing the binding, because a strong composite hiding a failed component is the precise failure a minimum exists to prevent. 6 of 8 variants below have one, and 6 are rankable.

Results

Compare completed historical tests, then inspect the evidence before anything can graduate.

6 ready to compare1 need more evidence1 read-only

Legacy family-level results · not eligible for graduation

These scores combine several stocks. Graduation requires a separate validation result for each exact strategy + stock combination, followed by an independent check and owner sign-off.

How to read the results

  • The consistency score uses the weakest of four checks, so one strong area cannot hide a weak one.
  • Red means the strategy lost in at least one important slice of the data.
  • “Needs more evidence” means it cannot be fairly compared or considered for graduation.
Scoring method

Each component is credited at the lower of its measurement and evidence ratio. The composite is the minimum of those four credited components. 6 strategy versions below has at least one negative partition.

8 strategy versions from test batch 1, using M15 intervals across 20 stocks · sorted by consistency.
Comparison status
stack4-touch-relvol1004 of 5 checks · exact band touch · at least 1.00x usual volume
63.7%no evidence cap
64%Hit rate 64%, credited 64%
100%Regime breadth 100%, credited 100%
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46519363
stack4-near-relvol1004 of 5 checks · within 0.25% of the band · at least 1.00x usual volume
58.9%no evidence cap
59%Hit rate 59%, credited 59%
88%Regime breadth 88%, credited 88%, 1 partitions strictly negative
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46619336
stack4-touch-relvol1254 of 5 checks · exact band touch · at least 1.25x usual volume
58.5%no evidence cap
58%Hit rate 58%, credited 58%
88%Regime breadth 88%, credited 88%, 1 partitions strictly negative
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46024276
stack4-near-relvol1254 of 5 checks · within 0.25% of the band · at least 1.25x usual volume
50.0%capped at 50%
61%Hit rate 61%, credited 61%
50%Regime breadth 50%, credited 50%, evidence gate unmet
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Needs more evidence. The statistics computed, but at least one gate is unmet. It is a read-out, not a ranking, and the row says exactly what is missing.1 check incompleteNot rankable1588117
stack5-near-relvol1005 of 5 checks · within 0.25% of the band · at least 1.00x usual volume
37.5%no evidence cap
51%Hit rate 51%, credited 51%
38%Regime breadth 38%, credited 38%, 4 partitions strictly negative
50%Stability over time 50%, credited 50%, 2 partitions strictly negative
53%Instrument breadth 53%, credited 53%, 7 partitions strictly negative
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable45924239
stack5-touch-relvol1255 of 5 checks · exact band touch · at least 1.25x usual volume
37.5%capped at 50%
54%Hit rate 54%, credited 54%
38%Regime breadth 38%, credited 38%, 1 partitions strictly negative, evidence gate unmet
50%Stability over time 50%, credited 50%, 2 partitions strictly negative
58%Instrument breadth 58%, credited 58%, 6 partitions strictly negative
Read-only result. There was no opportunity or no execution power, so the components are not a measurement of anything and nothing here may be ordered.1 check incompleteRead-out only20428133
stack5-touch-relvol1005 of 5 checks · exact band touch · at least 1.00x usual volume
5.3%no evidence cap
48%Hit rate 48%, credited 48%
25%Regime breadth 25%, credited 25%, 5 partitions strictly negative
50%Stability over time 50%, credited 50%, 2 partitions strictly negative
5%Instrument breadth 5%, credited 5%, 16 partitions strictly negative
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46024193
stack5-near-relvol1255 of 5 checks · within 0.25% of the band · at least 1.25x usual volume
0.0%no evidence cap
42%Hit rate 42%, credited 42%
13%Regime breadth 13%, credited 13%, 7 partitions strictly negative
0%Stability over time 0%, credited 0%, 4 partitions strictly negative
0%Instrument breadth 0%, credited 0%, 17 partitions strictly negative
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46024212
Expand a row for its per-stock breakdown, market conditions, time periods, and trading-day counts.Historical results only. Nothing can graduate from this table without separate validation and review.
Results · expanded — “does this work on TSLA as well as SPY?”

Two rows opened via initialExpanded: stack4-touch-relvol100, the rankable leader with no failed partition anywhere, and stack5-touch-relvol100, which one instrument carries entirely — NVDA held up and 16 instruments failed, so its instrument breadth is 1/19 and its composite collapses to that. The per-instrument table is what makes the question answerable at a glance, and the eight regime cells are listed whether or not they were observed: a denominator of “the cells we happened to see” is how a regime bet passes for a consistent strategy.

Results

Compare completed historical tests, then inspect the evidence before anything can graduate.

6 ready to compare1 need more evidence1 read-only

Legacy family-level results · not eligible for graduation

These scores combine several stocks. Graduation requires a separate validation result for each exact strategy + stock combination, followed by an independent check and owner sign-off.

How to read the results

  • The consistency score uses the weakest of four checks, so one strong area cannot hide a weak one.
  • Red means the strategy lost in at least one important slice of the data.
  • “Needs more evidence” means it cannot be fairly compared or considered for graduation.
Scoring method

Each component is credited at the lower of its measurement and evidence ratio. The composite is the minimum of those four credited components. 6 strategy versions below has at least one negative partition.

8 strategy versions from test batch 1, using M15 intervals across 20 stocks · sorted by consistency.
Comparison status
stack4-touch-relvol1004 of 5 checks · exact band touch · at least 1.00x usual volume
63.7%no evidence cap
64%Hit rate 64%, credited 64%
100%Regime breadth 100%, credited 100%
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46519363

Stack 4 · exact band touch · relvol ≥ 1.00x held up in 8 of 8 regime cells, 4 of 4 time blocks and 17 of 19 instruments, over 465 opportunity sessions. Its composite is the MINIMUM of the four, so it is exactly as consistent as its weakest dimension. Descriptive only — never promotion evidence, never evidence of profitability.

What it is
4 of 5 checks · exact band touch · at least 1.00x usual volume
The permissive corner: four of five checks, no band tolerance, no volume premium. The reference point every other cell is read against, and the one most likely to trade on a broad index at all.
Consistency score
63.7%
The weakest of the four evidence checks, not their average. Every component has full evidence behind it, so nothing is capping it.
Historical return
+3859.5 bp over the window · +8.3 bp a trading day
Deepest drawdown −942.4 bp. Raw return is not the score. Over a short window it is dominated by noise, one session can own it, and it says nothing about repeatability. The return and its drawdown are reported because they were asked for; the number to rank on is the composite, which is the MINIMUM of four consistency components and is capped by the thinnest evidence behind any of them.
Enough activity to judge
Ordinary
363 modelled fills against a floor of 60. Yes. There are enough simulated fills for the checks to be meaningful.
Dependent on one time period
No. The result survives removing its best time block.
Technical result identity

Saved-result fingerprint: b87f4308…bf7f4e0d .

Trading-day breakdown

Kind of sessionSessionsCounted in the rates?
Complete484Every sealed session in the window.
Opportunity465Yes — at least one bar was decidable.
No decidable bar19No — nothing was ever attempted, so there is no result to score. 9 early closes.
Stood aside284Yes — bars were decidable and the strategy chose not to act. A no-EDGE day, not a no-opportunity day.

A session with no decidable bar is not a session with no edge. On the M15 grid an early close carries 14 bars against a 20-bar relative-volume baseline, so no bar is ever decidable and half the roster legitimately gets no chance to trade. Those sessions are counted and excluded from every rate; a session where the strategy evaluated and stood aside is counted IN.

The four components

ComponentMeasuredCreditedHeldFailedEvidence
Hit rate. The share of opportunity cells whose result beat the equal-weight benchmark. A cumulative return cannot tell you whether it came from many small wins or one enormous one; this can.64%64%5,155 / 8,0980465 opportunity sessions · needs 126
Regime breadth. How many of the eight fixed regime cells it held up in — out of eight, never out of the ones that happened to be observed. A strategy that only works in one regime is a regime bet, which is a respectable thing to hold provided nobody calls it consistent.100%100%8 / 808 regime cells at the per-cell floor · needs 8
Stability over time. The observed window cut into four consecutive blocks, each judged on its own. An edge that lives entirely in one fortnight is not consistency.100%100%4 / 404 consecutive blocks at the per-cell floor · needs 4
Instrument breadth. How many instruments of the declared universe it held up on. This is the axis the wave design spends its budget to buy — eight variants over twenty instruments rather than two hundred and fifty-six over two.89%89%17 / 19017 instruments at the session floor · needs 4

Market conditions · 8 of 8 held up

Every planned condition is listed, including conditions with too little data. A condition below 20 trading days is too thin to judge and counts as neither.

  • Rising · volatile · thin+8.6 bp
  • Rising · volatile+4.7 bp
  • Rising · calm · thin+8.9 bp
  • Rising · calm+10.8 bp
  • Falling · volatile · thin+10.0 bp
  • Falling · volatile+7.7 bp
  • Falling · calm · thin+10.1 bp
  • Falling · calm+10.7 bp

Time periods · 4 of 4 held up

  • 2024-08-192025-01-10+11.1 bp
  • 2025-01-132025-06-06+8.1 bp
  • 2025-06-092025-10-31+10.1 bp
  • 2025-11-032026-03-27+3.4 bp

Per stock · 17 held up · 0 failed · 2 underpowered

StockReturn vs controlHit rateTrading daysOpportunityNo barVerdict
MU+7.9 bp65%48446519Held up
SNDK+10.5 bp68%73703Underpowered
NVDA+5.9 bp58%48646719Held up
GOOGL+4.0 bp57%48346419Held up
TSLA+8.3 bp63%48446519Held up
SPY+10.5 bp68%48346419Control · held out
AAPL+8.7 bp67%48346419Held up
AMD+9.9 bp66%48646719Held up
AMZN+6.8 bp59%48646719Held up
AVGO+10.0 bp66%48546619Held up
BA+9.5 bp68%48346419Held up
COIN+8.1 bp64%48446519Held up
INTC+8.7 bp64%48646719Held up
META+9.3 bp63%48646719Held up
MRVL+10.7 bp70%48446519Held up
MSFT+6.7 bp60%48646719Held up
NFLX+9.4 bp67%48446519Held up
PLTR+12.0 bp68%48446519Held up
SMCI+4.5 bp57%1181135Underpowered
UBER+6.9 bp61%48446519Held up

A stock counts as held up or failed only once its own track clears 126 complete trading days. Below that it is too thin to judge.

stack4-near-relvol1004 of 5 checks · within 0.25% of the band · at least 1.00x usual volume
58.9%no evidence cap
59%Hit rate 59%, credited 59%
88%Regime breadth 88%, credited 88%, 1 partitions strictly negative
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46619336
stack4-touch-relvol1254 of 5 checks · exact band touch · at least 1.25x usual volume
58.5%no evidence cap
58%Hit rate 58%, credited 58%
88%Regime breadth 88%, credited 88%, 1 partitions strictly negative
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46024276
stack4-near-relvol1254 of 5 checks · within 0.25% of the band · at least 1.25x usual volume
50.0%capped at 50%
61%Hit rate 61%, credited 61%
50%Regime breadth 50%, credited 50%, evidence gate unmet
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Needs more evidence. The statistics computed, but at least one gate is unmet. It is a read-out, not a ranking, and the row says exactly what is missing.1 check incompleteNot rankable1588117
stack5-near-relvol1005 of 5 checks · within 0.25% of the band · at least 1.00x usual volume
37.5%no evidence cap
51%Hit rate 51%, credited 51%
38%Regime breadth 38%, credited 38%, 4 partitions strictly negative
50%Stability over time 50%, credited 50%, 2 partitions strictly negative
53%Instrument breadth 53%, credited 53%, 7 partitions strictly negative
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable45924239
stack5-touch-relvol1255 of 5 checks · exact band touch · at least 1.25x usual volume
37.5%capped at 50%
54%Hit rate 54%, credited 54%
38%Regime breadth 38%, credited 38%, 1 partitions strictly negative, evidence gate unmet
50%Stability over time 50%, credited 50%, 2 partitions strictly negative
58%Instrument breadth 58%, credited 58%, 6 partitions strictly negative
Read-only result. There was no opportunity or no execution power, so the components are not a measurement of anything and nothing here may be ordered.1 check incompleteRead-out only20428133
stack5-touch-relvol1005 of 5 checks · exact band touch · at least 1.00x usual volume
5.3%no evidence cap
48%Hit rate 48%, credited 48%
25%Regime breadth 25%, credited 25%, 5 partitions strictly negative
50%Stability over time 50%, credited 50%, 2 partitions strictly negative
5%Instrument breadth 5%, credited 5%, 16 partitions strictly negative
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46024193

Stack 5 · exact band touch · relvol ≥ 1.00x held up in 2 of 8 regime cells, 2 of 4 time blocks and 1 of 19 instruments, over 460 opportunity sessions. Its composite is the MINIMUM of the four, so it is exactly as consistent as its weakest dimension, and regime breadth and stability over time and instrument breadth contain a partition that came out strictly negative. Descriptive only — never promotion evidence, never evidence of profitability.

What it is
5 of 5 checks · exact band touch · at least 1.00x usual volume
Isolates strictness alone: all five checks with no compensating tolerance. The cell most at risk of an uninterpretable zero-trade result on a broad index, which is itself the finding.
Consistency score
5.3%
The weakest of the four evidence checks, not their average. Every component has full evidence behind it, so nothing is capping it.
Historical return
−92.0 bp over the window · −0.2 bp a trading day
Deepest drawdown −227.1 bp. Raw return is not the score. Over a short window it is dominated by noise, one session can own it, and it says nothing about repeatability. The return and its drawdown are reported because they were asked for; the number to rank on is the composite, which is the MINIMUM of four consistency components and is capped by the thinnest evidence behind any of them.
Enough activity to judge
Ordinary
193 modelled fills against a floor of 60. Yes. There are enough simulated fills for the checks to be meaningful.
Dependent on one time period
No. The result survives removing its best time block.
Technical result identity

Saved-result fingerprint: aae49103…afe498e2 .

Trading-day breakdown

Kind of sessionSessionsCounted in the rates?
Complete484Every sealed session in the window.
Opportunity460Yes — at least one bar was decidable.
No decidable bar24No — nothing was ever attempted, so there is no result to score. 9 early closes.
Stood aside363Yes — bars were decidable and the strategy chose not to act. A no-EDGE day, not a no-opportunity day.

A session with no decidable bar is not a session with no edge. On the M15 grid an early close carries 14 bars against a 20-bar relative-volume baseline, so no bar is ever decidable and half the roster legitimately gets no chance to trade. Those sessions are counted and excluded from every rate; a session where the strategy evaluated and stood aside is counted IN.

The four components

ComponentMeasuredCreditedHeldFailedEvidence
Hit rate. The share of opportunity cells whose result beat the equal-weight benchmark. A cumulative return cannot tell you whether it came from many small wins or one enormous one; this can.48%48%3,815 / 7,9960460 opportunity sessions · needs 126
Regime breadth. How many of the eight fixed regime cells it held up in — out of eight, never out of the ones that happened to be observed. A strategy that only works in one regime is a regime bet, which is a respectable thing to hold provided nobody calls it consistent.25%25%2 / 858 regime cells at the per-cell floor · needs 8
Stability over time. The observed window cut into four consecutive blocks, each judged on its own. An edge that lives entirely in one fortnight is not consistency.50%50%2 / 424 consecutive blocks at the per-cell floor · needs 4
Instrument breadth. How many instruments of the declared universe it held up on. This is the axis the wave design spends its budget to buy — eight variants over twenty instruments rather than two hundred and fifty-six over two.5%5%1 / 191617 instruments at the session floor · needs 4

Market conditions · 2 of 8 held up

Every planned condition is listed, including conditions with too little data. A condition below 20 trading days is too thin to judge and counts as neither.

  • Rising · volatile · thin−2.1 bp
  • Rising · volatile−1.6 bp
  • Rising · calm · thin+0.6 bp
  • Rising · calm−0.6 bp
  • Falling · volatile · thin0.0 bp
  • Falling · volatile+0.1 bp
  • Falling · calm · thin−0.4 bp
  • Falling · calm−0.1 bp

Time periods · 2 of 4 held up

  • 2024-08-192025-01-10+1.3 bp
  • 2025-01-132025-06-06+0.2 bp
  • 2025-06-092025-10-31−0.5 bp
  • 2025-11-032026-03-27−1.0 bp

Per stock · 1 held up · 16 failed · 2 underpowered

StockReturn vs controlHit rateTrading daysOpportunityNo barVerdict
MU−2.8 bp48%48446024Failed
SNDK−3.7 bp45%73694Underpowered
NVDA+43.6 bp79%48446024Held up
GOOGL−3.0 bp46%48245824Failed
TSLA−0.8 bp48%48546124Failed
SPY−2.7 bp48%48546124Control · held out
AAPL−1.5 bp46%48345924Failed
AMD−2.7 bp45%48245824Failed
AMZN−2.2 bp44%48345924Failed
AVGO−3.3 bp48%48345924Failed
BA−2.8 bp43%48345924Failed
COIN−2.4 bp46%48546124Failed
INTC−3.1 bp44%48546124Failed
META−3.4 bp44%48546124Failed
MRVL−2.8 bp48%48446024Failed
MSFT−2.8 bp44%48446024Failed
NFLX−3.1 bp47%48646224Failed
PLTR−2.4 bp49%48446024Failed
SMCI−1.4 bp50%1161106Underpowered
UBER−3.6 bp42%48345924Failed

A stock counts as held up or failed only once its own track clears 126 complete trading days. Below that it is too thin to judge.

stack5-near-relvol1255 of 5 checks · within 0.25% of the band · at least 1.25x usual volume
0.0%no evidence cap
42%Hit rate 42%, credited 42%
13%Regime breadth 13%, credited 13%, 7 partitions strictly negative
0%Stability over time 0%, credited 0%, 4 partitions strictly negative
0%Instrument breadth 0%, credited 0%, 17 partitions strictly negative
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46024212
2 rows expanded.Historical results only. Nothing can graduate from this table without separate validation and review.
Results · thin evidence, and a day that was never a chance

stack4-near-relvol125 reads PROVISIONAL: its statistics computed, but its window is 166 sessions rather than 484, so only four of the eight regime cells reach the per-cell floor. The row does not round that away — it names the gate, caps the composite at the evidence ratio, and says how many cells short it is.

stack5-touch-relvol125 is the other failure to tell apart: 281 of its 485 sealed sessions carried no decidable bar at all, 9 of them early closes — on the M15 grid an early close has 14 bars against a 20-bar relative-volume baseline, so half a roster legitimately gets no chance to trade. That is not a day with no edge, and the census in the expanded row keeps the two apart: a no-decidable-bar session is counted and excluded from every rate, and a session where the strategy evaluated and stood aside is counted in. With 33 modelled fills against a floor of 60, the whole row is a read-out and refuses to be ordered against its peers.

Results

Compare completed historical tests, then inspect the evidence before anything can graduate.

6 ready to compare1 need more evidence1 read-only

Legacy family-level results · not eligible for graduation

These scores combine several stocks. Graduation requires a separate validation result for each exact strategy + stock combination, followed by an independent check and owner sign-off.

How to read the results

  • The consistency score uses the weakest of four checks, so one strong area cannot hide a weak one.
  • Red means the strategy lost in at least one important slice of the data.
  • “Needs more evidence” means it cannot be fairly compared or considered for graduation.
Scoring method

Each component is credited at the lower of its measurement and evidence ratio. The composite is the minimum of those four credited components. 6 strategy versions below has at least one negative partition.

8 strategy versions from test batch 1, using M15 intervals across 20 stocks · sorted by consistency.
Comparison status
stack4-touch-relvol1004 of 5 checks · exact band touch · at least 1.00x usual volume
63.7%no evidence cap
64%Hit rate 64%, credited 64%
100%Regime breadth 100%, credited 100%
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46519363
stack4-near-relvol1004 of 5 checks · within 0.25% of the band · at least 1.00x usual volume
58.9%no evidence cap
59%Hit rate 59%, credited 59%
88%Regime breadth 88%, credited 88%, 1 partitions strictly negative
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46619336
stack4-touch-relvol1254 of 5 checks · exact band touch · at least 1.25x usual volume
58.5%no evidence cap
58%Hit rate 58%, credited 58%
88%Regime breadth 88%, credited 88%, 1 partitions strictly negative
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46024276
stack4-near-relvol1254 of 5 checks · within 0.25% of the band · at least 1.25x usual volume
50.0%capped at 50%
61%Hit rate 61%, credited 61%
50%Regime breadth 50%, credited 50%, evidence gate unmet
100%Stability over time 100%, credited 100%
89%Instrument breadth 89%, credited 89%
Needs more evidence. The statistics computed, but at least one gate is unmet. It is a read-out, not a ranking, and the row says exactly what is missing.1 check incompleteNot rankable1588117

Stack 4 · 25bp band tolerance · relvol ≥ 1.25x held up in 4 of 8 regime cells, 4 of 4 time blocks and 17 of 19 instruments, over 158 opportunity sessions. Its composite is the MINIMUM of the four, so it is exactly as consistent as its weakest dimension. Descriptive only — never promotion evidence, never evidence of profitability.

What it is
4 of 5 checks · within 0.25% of the band · at least 1.25x usual volume
Loosest gate on structure, strictest on participation: tests whether a volume premium can pay for a relaxed band without a stricter stack.
Consistency score
50.0%
The weakest of the four evidence checks, not their average. It cannot exceed 50%, because that is the thinnest evidence ratio behind any component.
Historical return
+1090.2 bp over the window · +6.9 bp a trading day
Deepest drawdown −723.9 bp. Raw return is not the score. Over a short window it is dominated by noise, one session can own it, and it says nothing about repeatability. The return and its drawdown are reported because they were asked for; the number to rank on is the composite, which is the MINIMUM of four consistency components and is capped by the thinnest evidence behind any of them.
Enough activity to judge
Ordinary
117 modelled fills against a floor of 60. Yes. There are enough simulated fills for the checks to be meaningful.
Dependent on one time period
No. The result survives removing its best time block.
Technical result identity

Saved-result fingerprint: f6b72f74…f5b72de1 .

Trading-day breakdown

Kind of sessionSessionsCounted in the rates?
Complete166Every sealed session in the window.
Opportunity158Yes — at least one bar was decidable.
No decidable bar8No — nothing was ever attempted, so there is no result to score. 8 early closes.
Stood aside100Yes — bars were decidable and the strategy chose not to act. A no-EDGE day, not a no-opportunity day.

A session with no decidable bar is not a session with no edge. On the M15 grid an early close carries 14 bars against a 20-bar relative-volume baseline, so no bar is ever decidable and half the roster legitimately gets no chance to trade. Those sessions are counted and excluded from every rate; a session where the strategy evaluated and stood aside is counted IN.

The four components

ComponentMeasuredCreditedHeldFailedEvidence
Hit rate. The share of opportunity cells whose result beat the equal-weight benchmark. A cumulative return cannot tell you whether it came from many small wins or one enormous one; this can.61%61%1,734 / 2,8660158 opportunity sessions · needs 126
Regime breadth. How many of the eight fixed regime cells it held up in — out of eight, never out of the ones that happened to be observed. A strategy that only works in one regime is a regime bet, which is a respectable thing to hold provided nobody calls it consistent.50%50%4 / 804 regime cells at the per-cell floor · needs 8 — check incomplete
Stability over time. The observed window cut into four consecutive blocks, each judged on its own. An edge that lives entirely in one fortnight is not consistency.100%100%4 / 404 consecutive blocks at the per-cell floor · needs 4
Instrument breadth. How many instruments of the declared universe it held up on. This is the axis the wave design spends its budget to buy — eight variants over twenty instruments rather than two hundred and fifty-six over two.89%89%17 / 19017 instruments at the session floor · needs 4

Evidence · what is still needed

  • Regime breadth: 4 of 8 regime cells at the per-cell floor — 4 short, so this component is credited at most 50%.

Market conditions · 4 of 8 held up

Every planned condition is listed, including conditions with too little data. A condition below 20 trading days is too thin to judge and counts as neither.

  • Rising · volatile · thin9 sess · thin
  • Rising · volatile+8.4 bp
  • Rising · calm · thin8 sess · thin
  • Rising · calm+12.9 bp
  • Falling · volatile · thin13 sess · thin
  • Falling · volatile+7.2 bp
  • Falling · calm · thin8 sess · thin
  • Falling · calm+5.7 bp

Time periods · 4 of 4 held up

  • 2024-08-192025-01-10+7.3 bp
  • 2025-01-132025-06-06+3.7 bp
  • 2025-06-092025-10-31+1.7 bp
  • 2025-11-032026-03-27+7.7 bp

Per stock · 17 held up · 0 failed · 2 underpowered

StockReturn vs controlHit rateTrading daysOpportunityNo barVerdict
MU+10.0 bp68%1661588Held up
SNDK+7.3 bp60%71674Underpowered
NVDA+10.5 bp68%1661588Held up
GOOGL+8.3 bp61%1661588Held up
TSLA+10.3 bp66%1661588Held up
SPY+6.4 bp59%1681608Control · held out
AAPL+2.7 bp57%1651578Held up
AMD+4.6 bp55%1671598Held up
AMZN+2.4 bp54%1651578Held up
AVGO+2.4 bp53%1661588Held up
BA+11.4 bp66%1661588Held up
COIN+2.5 bp51%1661588Held up
INTC+7.3 bp60%1661588Held up
META+7.5 bp65%1671598Held up
MRVL+6.4 bp60%1661588Held up
MSFT+5.4 bp60%1671598Held up
NFLX+11.8 bp67%1671598Held up
PLTR+5.7 bp57%1641568Held up
SMCI+7.9 bp61%1181126Underpowered
UBER+7.6 bp63%1671598Held up

A stock counts as held up or failed only once its own track clears 126 complete trading days. Below that it is too thin to judge.

stack5-near-relvol1005 of 5 checks · within 0.25% of the band · at least 1.00x usual volume
37.5%no evidence cap
51%Hit rate 51%, credited 51%
38%Regime breadth 38%, credited 38%, 4 partitions strictly negative
50%Stability over time 50%, credited 50%, 2 partitions strictly negative
53%Instrument breadth 53%, credited 53%, 7 partitions strictly negative
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable45924239
stack5-touch-relvol1255 of 5 checks · exact band touch · at least 1.25x usual volume
37.5%capped at 50%
54%Hit rate 54%, credited 54%
38%Regime breadth 38%, credited 38%, 1 partitions strictly negative, evidence gate unmet
50%Stability over time 50%, credited 50%, 2 partitions strictly negative
58%Instrument breadth 58%, credited 58%, 6 partitions strictly negative
Read-only result. There was no opportunity or no execution power, so the components are not a measurement of anything and nothing here may be ordered.1 check incompleteRead-out only20428133

Stack 5 · exact band touch · relvol ≥ 1.25x is a read-out only: 33 modelled fills against a floor of 60, so its components are not a measurement of anything. Most of its sealed sessions carried no decidable bar at all. On the M15 grid a regular session has 26 bars and the relative-volume baseline consumes the first 20, leaving six; this variant needs all five checks AND a volume premium on one of those six, and in this specimen corpus that almost never happens. Nine of the sessions are early closes, where the 14 bars an early close carries are consumed by the baseline outright and nothing is even attempted. A day with no decidable bar is NOT a day with no edge: it is excluded from every rate below rather than counted as a loss, because a strategy that was never given a chance did not fail.

What it is
5 of 5 checks · exact band touch · at least 1.25x usual volume
The strict corner on both structure and participation. Expected to trade rarely and, if the reversal premise holds anywhere, to hold up best on the highest-volatility names.
Consistency score
37.5%
The weakest of the four evidence checks, not their average. It cannot exceed 50%, because that is the thinnest evidence ratio behind any component.
Historical return
+550.8 bp over the window · +2.7 bp a trading day
Deepest drawdown −972.0 bp. Raw return is not the score. Over a short window it is dominated by noise, one session can own it, and it says nothing about repeatability. The return and its drawdown are reported because they were asked for; the number to rank on is the composite, which is the MINIMUM of four consistency components and is capped by the thinnest evidence behind any of them.
Enough activity to judge
Too few modelled fills
33 modelled fills against a floor of 60. No. This remains a read-only result and cannot be compared fairly.
Dependent on one time period
Yes — remove the best of the four time blocks and the positive result disappears. That is a fortnight, not a strategy.
Technical result identity

Saved-result fingerprint: 49fa58ee…4cfa5da7 .

Trading-day breakdown

Kind of sessionSessionsCounted in the rates?
Complete485Every sealed session in the window.
Opportunity204Yes — at least one bar was decidable.
No decidable bar281No — nothing was ever attempted, so there is no result to score. 9 early closes.
Stood aside188Yes — bars were decidable and the strategy chose not to act. A no-EDGE day, not a no-opportunity day.

A session with no decidable bar is not a session with no edge. On the M15 grid an early close carries 14 bars against a 20-bar relative-volume baseline, so no bar is ever decidable and half the roster legitimately gets no chance to trade. Those sessions are counted and excluded from every rate; a session where the strategy evaluated and stood aside is counted IN.

The four components

ComponentMeasuredCreditedHeldFailedEvidence
Hit rate. The share of opportunity cells whose result beat the equal-weight benchmark. A cumulative return cannot tell you whether it came from many small wins or one enormous one; this can.54%54%1,925 / 3,5370204 opportunity sessions · needs 126
Regime breadth. How many of the eight fixed regime cells it held up in — out of eight, never out of the ones that happened to be observed. A strategy that only works in one regime is a regime bet, which is a respectable thing to hold provided nobody calls it consistent.38%38%3 / 814 regime cells at the per-cell floor · needs 8 — check incomplete
Stability over time. The observed window cut into four consecutive blocks, each judged on its own. An edge that lives entirely in one fortnight is not consistency.50%50%2 / 424 consecutive blocks at the per-cell floor · needs 4
Instrument breadth. How many instruments of the declared universe it held up on. This is the axis the wave design spends its budget to buy — eight variants over twenty instruments rather than two hundred and fifty-six over two.58%58%11 / 19617 instruments at the session floor · needs 4

Evidence · what is still needed

  • Regime breadth: 4 of 8 regime cells at the per-cell floor — 4 short, so this component is credited at most 50%.

Market conditions · 3 of 8 held up

Every planned condition is listed, including conditions with too little data. A condition below 20 trading days is too thin to judge and counts as neither.

  • Rising · volatile · thin12 sess · thin
  • Rising · volatile+2.2 bp
  • Rising · calm · thin10 sess · thin
  • Rising · calm+9.6 bp
  • Falling · volatile · thin16 sess · thin
  • Falling · volatile−0.6 bp
  • Falling · calm · thin10 sess · thin
  • Falling · calm+8.1 bp

Time periods · 2 of 4 held up

  • 2024-08-192025-01-10−2.0 bp
  • 2025-01-132025-06-06+2.5 bp
  • 2025-06-092025-10-31+9.5 bp
  • 2025-11-032026-03-27−3.7 bp

Per stock · 11 held up · 6 failed · 2 underpowered

StockReturn vs controlHit rateTrading daysOpportunityNo barVerdict
MU+6.5 bp60%485204281Held up
SNDK+4.4 bp56%733142Underpowered
NVDA−1.1 bp51%482202280Failed
GOOGL+6.2 bp61%484203281Held up
TSLA−0.3 bp49%485204281Failed
SPY+8.0 bp65%484203281Control · held out
AAPL−2.2 bp44%485204281Failed
AMD+1.4 bp52%483203280Held up
AMZN−2.6 bp47%482202280Failed
AVGO+7.3 bp65%485204281Held up
BA+7.0 bp63%483203280Held up
COIN+8.7 bp64%485204281Held up
INTC+3.2 bp58%485204281Held up
META+5.1 bp60%484203281Held up
MRVL−2.7 bp46%483203280Failed
MSFT−0.3 bp49%485204281Failed
NFLX+1.7 bp50%484203281Held up
PLTR+3.6 bp53%484203281Held up
SMCI+2.7 bp52%1185068Underpowered
UBER+2.7 bp56%483203280Held up

A stock counts as held up or failed only once its own track clears 126 complete trading days. Below that it is too thin to judge.

stack5-touch-relvol1005 of 5 checks · exact band touch · at least 1.00x usual volume
5.3%no evidence cap
48%Hit rate 48%, credited 48%
25%Regime breadth 25%, credited 25%, 5 partitions strictly negative
50%Stability over time 50%, credited 50%, 2 partitions strictly negative
5%Instrument breadth 5%, credited 5%, 16 partitions strictly negative
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46024193
stack5-near-relvol1255 of 5 checks · within 0.25% of the band · at least 1.25x usual volume
0.0%no evidence cap
42%Hit rate 42%, credited 42%
13%Regime breadth 13%, credited 13%, 7 partitions strictly negative
0%Stability over time 0%, credited 0%, 4 partitions strictly negative
0%Instrument breadth 0%, credited 0%, 17 partitions strictly negative
Complete evidence. Every gate is met, so this score may be ranked against its peers.Rankable46024212
2 rows expanded.Historical results only. Nothing can graduate from this table without separate validation and review.
Results · nothing scored yet

The first-arrival path. A score exists only once every work unit of a sealed wave has been replayed, so a wave that is still running has no results — and this says so rather than showing a partial one or an empty table with eight blank rows.

Results

Historical results appear only after a complete test is saved.

No test batch has produced a saved result.

A result appears only after every planned replay finishes. This page does not guess or show an incomplete test as if it were finished.