FRAMEWORK17 May 2026 · 8 min read · v7.2

Setup performance: which patterns actually make YOU money

Most traders know their overall win rate. Almost none know which setup types are pulling the average up and which ones are dragging it down. v7.2's Setup Performance subtab fixes that: every BUY journal entry gets classified into one of eight setup types — bull flag, catalyst play, earnings runup, breakout from base, pullback at support, oversold bounce, trend continuation, or "other" — and the subtab shows per-type win rate, expectancy in R, profit factor, best/worst ticker. Plus sample-size bands that keep you honest about which numbers you can trust yet.

The problem with overall win rate

Most journals report one number for everything: "55% win rate, 1.4R average winner, 0.9R average loser." The number is technically correct. It is also useless for the decision that actually matters — which trade should I take tomorrow?

A 55% overall win rate hides what's underneath it. It can be 80% pullback-at-support and 30% catalyst plays-you-shouldn't-be-taking. It can be 90% in one regime and 25% in another. It can be 70% on tickers you've held before and 35% on first-time names. It can be 65% on the first hour of the session and 40% on the rest of the day. The single average is the arithmetic mean of bets you'd love to make more of and bets you'd love to stop making entirely — and you can't tell them apart from the average alone.

The most expensive number in trading is the average win rate that lets you keep taking the trades you shouldn't be taking.

What v7.2 actually does

Every BUY entry in the journal gets classified by a priority-ordered detector (_classifySetup()) into one of eight setup types:

  1. bull_flag — tight 3-8 bar consolidation off a recent breakout, declining volume, no break of the flag's lower edge
  2. catalyst_play — entry within 1 session of a detected catalyst (earnings beat, M&A, regulatory clearance, scale-insider buy)
  3. earnings_runup — entry 1-10 sessions before a known earnings date, no other catalyst, IV expansion present
  4. breakout_from_base — clean break of a 20+ bar consolidation top with volume >1.5×
  5. pullback_at_support — entry near a structural support level (primary_S from the levels module), prior trend was up, ADX > 20
  6. oversold_bounce — RSI < 30 reversal, no other obvious setup, often "I'm catching a knife"
  7. trend_continuation — in an established uptrend, EMA21 > EMA50 > EMA200, no specific entry trigger beyond "the trend is intact"
  8. other — everything that doesn't fit. The "I just felt like it" bucket. Important — you want to see how many of your trades end up here

The priority ordering matters. A trade that's both "near a known earnings date" and "near support" gets catalyst_play rather than pullback_at_support — the catalyst is the higher-information label, so we attribute the outcome to the catalyst lens, not the support lens. (This is a calibration choice; you can argue with the order, but you can't argue both labels apply equally.)

For each setup type, the subtab shows:

Sample-size bands — don't believe small numbers

Per-setup math is dangerous below a certain sample size. A "100% win rate on bull flags" reading from 3 trades is noise, not signal. The subtab gates display by sample size:

The bands are deliberately conservative. Most retail traders over-trust small-sample wins ("I'm 4-0 on this setup, I love it") and over-trust small-sample losses ("0-3, this setup doesn't work for me"). Both are coin-flip data dressed up as conclusions. The display rules force you to see "developing" rather than "winning" until you've genuinely paid the cost of running 15+ of that setup.

What this actually tells you about yourself

After 50-100 closed BUY entries, the subtab starts saying useful things. A pattern most users see in their first honest look at it:

The honest implication: most traders' edge is narrower than they think it is, and what looks like "I'm a 55% trader" is actually "I'm a 75% trader on pullbacks who keeps cancelling that edge with catalyst plays I'm 32% on."

Where to find it + how to use it

Open the dashboard → ③ Performance tab → 🎯 Setup Performance subtab. The view materializes from your journal's closed BUY entries — no extra logging required on your part beyond what you already do. Setup classification runs once per audit cycle for new entries.

Two practical reading patterns:

  1. Monthly review — first weekend of the month, pull up the subtab. Note any setup type that crossed a sample-size band threshold. Note any that materially changed expectancy. Adjust which setups you're actively scanning for next month accordingly.
  2. Before adding a new ticker to the watchlist — if the new entry would be (say) a catalyst play, check your historical catalyst-play expectancy first. If you're 30% on catalyst plays with negative expectancy and the new entry is a catalyst play, that's the framework asking you a hard question before you take the trade.

What it explicitly doesn't do

A few honest limitations worth naming:

The deeper point

Swing Deck's whole pitch is discipline applied to a process. Setup performance is what that looks like applied to the trader's own history rather than to the next trade. Without it, the trader has to trust their gut about which setups work for them — and the gut is famously bad at this, because the trades you remember vividly aren't a representative sample.

Per-setup expectancy is the framework letting you discover what your own data says — with sample-size guardrails so you don't over-trust the noise, with explicit setup-type labels so you can compare apples to apples, with the worst-ticker breakdown so you can see whether a bad setup is one specific ticker tanking the average or a genuine pattern weakness. The trader doesn't have to be intuitive about this anymore. The math is just there.

Most retail tools sell their AI as the edge. Swing Deck sells the discipline of measuring your own edge honestly, then forcing yourself to act on that measurement. Setup performance is the place that happens.

Claim a Founding Slot — $14.50/mo

Part of the v7.2 release. Full release notes from v6.5 through v7.8: /docs/release-notes. Adjacent reading: The 13 risk pillars — what each one actually protects against.


Disclosure: Swing Deck is built and operated by one person. The product is local-first; positions, broker tokens, and journal entries never leave your machine. AI features use your own API keys (BYOK). We don't proxy your data through our servers. Pricing as of 2026-05-17. Past performance is not indicative of future results. Nothing in this post is investment advice; it's a description of what software does. The win-rate / expectancy framings in this post are illustrative — your actual numbers depend on your own trading history.