Skip to main content
Reads

Terminal8 min readUpdated Jul 9, 2026

How to Track What Happens to a Screen's Cohort

A stock screen answers one question: who clears the bar tonight. It says nothing about what happened to that group of names afterward. bo | track 1m freezes today's breakout cohort of 50 names and reports how the group's aggregate health moved across the month, so you can see whether a screen's names actually go anywhere as a group instead of trusting the one anecdote that worked.

Key takeaways · 6

  1. A stock screen answers who qualifies tonight; it tells you nothing about what happened to those names next. bo | track 1m answers the second question by freezing today's 50-name breakout cohort and following the group across the window.
  2. The command reports the cohort's aggregate health, not any single ticker: median RS, median ADR, percent above the 50-day line, percent off the 52-week high, and stage migration, each drawn as a sparkline path from start to now.
  3. It is survivorship-free. track follows the same frozen members for the whole window, so a name that faded still counts in the group averages. There is no quiet dropping of the losers to flatter the result.
  4. On the 2026-07-08 breakout cohort the breadth improved hard: percent above the 50-day line ran from 52.0% to 80.0%, and percent off the 52-week high recovered from -24.9% to -15.5%. The group that broke out was strengthening into it.
  5. The window is the argument: bo | track 1w, bo | track 3m, out to 1y. A one-week path is noise; a month or a quarter of steady improvement is a cohort that grew into its breakout rather than one that faded from it.
  6. Every number is end-of-day and point-in-time. track reports how a cohort's conditions evolved; it never tells you what to do about them.

The question a screen cannot answer

To see what actually happened to a group of stocks after they qualified for a screen, freeze the cohort the day it fired and track the group's aggregate health forward. In the tickerstance terminal that is one command, bo | track 1m. It takes the 50 names on tonight's breakout screen, holds that exact list fixed, and reports how the group did over the last month: whether its median relative strength rose, whether more of it climbed back above the 50-day line, whether it pulled closer to its highs. The group-level path, not the story of the one name that ran, is the honest way to judge whether a screen works.

A screen is a snapshot. bo lists every stock posting a 4% breakout on volume tonight, and that is genuinely useful, but it is silent about consequences. Run it, note the 50 names, and a month later you are left with memory and a couple of screenshots. The name that doubled is easy to recall; the fifteen that stalled quietly disappear from the story. That is how a trader talks himself into believing a screen works when the cohort as a whole went nowhere.

The fix is to stop reasoning from anecdotes and start measuring the group. If you freeze the whole cohort and compute its aggregate health at the start of the window and again now, you get a number, not a feeling. track is the consumer that does exactly that, and it does it on the same end-of-day data the rest of the terminal runs on.

From snapshot to measured path

A screen answers "who qualifies tonight." Tracking answers "what became of the group." Those are different measurements and track keeps them separate. Give it a screen and a window and it does two things: it freezes the cohort, locking in the exact members the screen returned tonight, and then it walks that frozen list back across the window, computing group aggregates on every trading day so you get a path, not just two endpoints.

The aggregates are chosen to describe the health of a group rather than the fate of a stock. Median RS is the middle relative-strength rank across the cohort, so it moves when the group as a whole gains or loses ground on the market, not when one name spikes. Median ADR is the group's typical daily range, a read on how much the cohort is moving. Percent above the 50-day line is breadth inside the cohort: what share of the names are trading above their own 50-day moving average, the classic line between an intact and a broken trend. Percent off the 52-week high measures how far, on average, the group sits below its own highs. Stage migration counts how the members are distributed across Weinstein's four stages, so you can watch the bars shift from basing toward advancing.

Two more columns round it out. Percent qualifying re-runs the original screen's own condition (here bo4=1, the 4% breakout flag) against the cohort each day, which for a one-day event like a breakout is naturally near zero once the day passes. Advancers minus decliners is the simplest tally of all: how many of the frozen names are net higher over the window versus lower. Each metric is drawn as a small sparkline so the shape of the path, steady climb or round trip, is visible at a glance.

bo | track 1m · 50 frozen namesA screen is a snapshot; track is the trajectory
startnowmedian RS7980% > 50-day line52%80%% off 52-week high-24.9%-15.5%advancers − decliners0+50survivorship-free: the same 50 names are measured start to finish, losers included

A screen is a snapshot; track follows the same 50 frozen names forward. On this cohort the breadth improved hard over the month, losers included.

The month-long path, row by row

Type bo | track 1m and the terminal freezes tonight's 50 breakout names and lays the group's month-long path out row by row. The header names the cohort and the window: 50 names, a 1m lookback running from 2026-06-05 to the 2026-07-08 close.

Read the columns left to right. METRIC names the aggregate. PATH is the sparkline, the shape of the month. START is the group reading at the open of the window, NOW is where it sits at tonight's close, and the change column (Δ) is the difference between them.

On this cohort, median RS edged from 79.0 to 80.0 and median ADR from 7.5% to 8.0%, so the typical name held its rank and its range. The two breadth rows are where the month shows up: percent above the 50-day line jumped from 52.0% to 80.0%, a 28-point gain, and percent off the 52-week high recovered from -24.9% to -15.5%, closing almost ten points of the gap to the highs. Stage migration shifted its bars toward Stage 2, percent qualifying sat at 0.0% (no fresh 4% breakouts a month on, as expected), and advancers minus decliners read 0 to +50: every one of the fifty frozen names finished the window net higher than it started. This is a cohort that broke out and then strengthened into the break, not one that popped and faded, and it is a single glance instead of fifty charts.

The tickerstance terminal showing the output of "bo | track 1m": a header reading "Track, 50 names, 1m (2026-06-05 to 2026-07-08)" over a table with columns METRIC, PATH (a sparkline), START, NOW, and a delta column headed with the Greek letter delta. Rows show Median RS 79.0 to 80.0, Median ADR 7.5% to 8.0%, percent above the 50-day line 52.0% to 80.0% (+28%), percent off the 52-week high -24.9% to -15.5% (+9.4%), a stage-migration bar shifted toward Stage 2, percent qualifying (bo4=1) 0.0% to 0.0%, and advancers minus decliners 0 to +50.
bo | track 1m on the 2026-07-08 close. The frozen cohort of 50 breakout names strengthened over the month: percent above the 50-day line went 52.0% to 80.0% and percent off the high recovered -24.9% to -15.5%, with all 50 names net higher.

Survivorship-free, and the window is the argument

The reason track can be trusted is that it never edits the roster. It freezes the members on the day the screen fires and reports on that exact list for the whole window, losers included. A name that broke out and then rolled over does not vanish from the averages; it drags them down, exactly as it should. That is what "survivorship-free" means and it is the whole point. Most claims that a screen "works" quietly survive only because the names that did not work were forgotten. Here they cannot be, because the same fifty names are measured start to finish.

The window argues the case. bo | track 1w shows the first few days after the break, which is mostly noise; a cohort can look strong or weak a week out on nothing more than the market's mood. bo | track 3m and the longer 6m and 1y windows show whether the group actually compounded or gave the move back. A month of steady improvement, like the one above, is a different claim than a spike that round-tripped, and the sparkline path makes the two easy to tell apart even when the endpoints happen to match.

The consumer is not special to breakouts. Any screen can be piped into it: freeze a Double Trouble list, a small-float RS cohort, a themed basket, and watch the group evolve on the same aggregates. track is a lens on cohort health, and the screen upstream just decides which cohort you are watching.

Typed live · 2026-07-08 closeWhat today’s breakout cohort did over the month

Typed live: bo | track 1m freezes the 50-name breakout cohort and draws the month-long path of its aggregate health.

What the cohort path proves and what it does not

Every reading in the path is end-of-day, stamped with the close it was computed from, and the terminal never pretends to know the intraday tape. A cohort that looks strong at tonight's close is a description of the sessions that have happened, not a forecast of the next one.

A short window is noise. One week of cohort data will wobble with the broad market, and a group can look strong or weak for reasons that have nothing to do with the screen that built it. The improvement worth weighing is persistence across a month or a quarter, ideally with breadth (percent above the 50-day line) and distance-from-highs both moving the same way, as they did here. That is also why the roster stays frozen: a moving roster would let a strong week disguise a weak cohort.

And the terminal reports conditions; it does not tell you what to do about them. "This breakout cohort's breadth went from 52% to 80% over the month" is a fact about the tape. Whether that says anything about your own book depends on your strategy, your timeframe, and your risk, and the terminal leaves that judgment entirely to you. track measures whether a screen's cohort went anywhere as a group. Acting on the answer is your call.

Where to freeze a cohort

The track consumer, the screens that feed it, and the sparkline paths are all in the tickerstance terminal, where a typed line asks the tape a question and a pipe answers a second one. The interactive terminal is a Pro feature at $28 a month, grandfathered, and everything it computes is end-of-day and point-in-time honest, with no "here is what to buy" attached. It reports what happened to a cohort; the trade is yours.

Open the terminal and type bo | track 1m to freeze tonight's breakout names and watch the group's month, then swap the window with bo | track 3m or point track at a different screen entirely. The trader who measures the whole cohort learns something the one who remembers the single winner never will.

Frequently asked questions

What does `bo | track` do in the tickerstance terminal?

It freezes the cohort of names returned by the bo breakout screen tonight and reports how that exact group's aggregate health evolved over a window you choose. bo | track 1m locks in the 50 breakout names and shows median RS, median ADR, percent above the 50-day line, percent off the 52-week high, stage migration, and advancers minus decliners, each as a sparkline path from the start of the window to the current close.

What is a screen cohort, and why track it over time?

A cohort is the fixed set of names a screen returned on a given day. A screen only tells you who qualifies tonight; it says nothing about what happened next. Tracking the cohort answers that second question by measuring the group's health across a window, so you can judge whether a screen's names actually go anywhere as a group instead of reasoning from the one name you happen to remember.

What does survivorship-free mean here?

It means track keeps the same frozen members for the entire window, losers included. A name that broke out and then rolled over stays in the averages and drags them down, exactly as it should. Most claims that a screen "works" survive only because the names that failed were forgotten; freezing the roster makes that impossible, because the identical set of names is measured from start to finish.

What metrics does track report for a cohort?

Median RS (the group's middle relative-strength rank), median ADR (typical daily range), percent above the 50-day line (breadth inside the cohort), percent off the 52-week high (average distance below the highs), stage migration (how members are distributed across Weinstein's four stages), percent qualifying (re-running the screen's own condition each day), and advancers minus decliners (how many names are net higher over the window). Each is drawn as a sparkline so the shape of the path is visible.

What is the difference between a screen and track?

A screen is a snapshot: bo lists every stock breaking out tonight. track is a time machine for that snapshot: it holds the list fixed and reports how the group's aggregate health changed over a window. The screen answers "who qualifies now"; track answers "what became of the group." Space-separated filters build the screen; the track stage consumes it.

Can I track a screen other than breakouts?

Yes. track is a general lens on cohort health, and any screen can be piped into it. Freeze a Double Trouble list, a small-float RS cohort, or a themed basket and watch the same aggregates evolve. The screen upstream decides which cohort you are watching; track just measures how that cohort moved across the window.

Is the cohort tracking data real-time?

No. The tickerstance terminal is end-of-day. Every reading along the path is stamped with the market close it was computed from, and there are deliberately no live intraday quotes. A cohort that looks strong at tonight's close describes the sessions that have already happened, not the next one. A single week of tracking is also mostly noise; persistence across a month or a quarter is what carries weight.