Method

How the daily screen is computed.

The same process every trading day, on the same names, with the same rules. This page describes what it does.

The universe

Twenty-nine semiconductor names.

The screen reads a fixed list of twenty-nine US-listed semiconductor and semiconductor-equipment names: INTC, AMD, NVDA, TSM, ASML, AVGO, QCOM, MU, TXN, AMAT, LRCX, KLAC, ADI, NXPI, MCHP, ON, STM, MRVL, TER, MKSI, ACLS, ONTO, VECO, MPWR, WDC, STX, SWKS, LSCC and ENTG. The list does not change from day to day.

The data

Daily closes, fetched fresh each morning.

Prices are daily bars from Polygon, adjusted for splits and dividends, fetched each run for the last 900 calendar days. The run reads the previous session’s close; every figure in a report is as of that close.

If the latest bars are not the previous session’s, the run stops. It does not screen on older prices and send the result anyway: a report either describes the session it names or it is not sent.

The screen runs at 05:10 ET on NYSE trading days and the report is sent at 06:00 ET. Weekends and exchange holidays are skipped by the calendar, not by hand.

A run that starts late still sends, as soon as its work is done. A run that has not started by 09:00 ET does not send at all; the day is reported to us instead. So a trading day can pass with no email, and when one does, that is the rule working rather than something missed.

The filtered mean

Each name against its own recent history.

For each name the screen takes a fixed window of recent closes, sets aside the outliers among them, and computes the mean and standard deviation of what remains. That pair is the filtered mean and the filtered standard deviation. The window and the outlier rule are the same for every name on every day.

The z-score is the latest close minus the filtered mean, divided by the filtered standard deviation.

The band

One band, ±2. An approach zone of 0.25.

A name is past the band when |z| is 2 or more: below the mean at z −2 or lower, above it at +2 or higher. A name with |z| between 1.75 and 2 is approaching the band; it is listed as such and is never the top name and never placed in a list.

Days past band is the number of consecutive sessions the name has been beyond the band. It says how long the stretch has lasted, not whether it is early or late. The screen also counts how many consecutive sessions the name has sat on its current side of the filtered mean.

The model fit

One loose fit on the past year of prices.

An Ornstein–Uhlenbeck fit on the log price: a regression of each day’s change on the previous level, over a long window of recent sessions. A name passes when the regression’s estimated pull toward a level falls inside a set range. Passing describes the past year of prices; it says nothing about the next move.

The check is loose: in simulation it passes about half of pure random walks. It adds 0.25 to the rank score and never decides whether a name is listed. In a two-year backtest, names that passed did not do better than names that did not. The label reads Fit passes when the name fits, No fit when it does not.

The rank score

Stretch, recent move, and fit, weighted.

The rank score combines three things: stretch, which is how far the name sits from its filtered mean; impulse, the size of its latest one- and two-session moves; and the fit, whether the check above passes. Stretch carries the most weight.

Each list holds the names past the band on its side of the mean, ordered by rank score, at most five. A side with no name past the band is empty; nothing is added to fill it. The score orders the list; it has not been shown to predict returns.

The tape

Moves and pairs.

Largest moves are close-to-close returns over one and two sessions; a name’s move is the larger of the two in magnitude. The report shows the top five.

Strongest pairs are correlations of daily returns over the screen’s window, ranked by magnitude. The report shows the top five.

The earnings gate

Five trading days either side.

An earnings calendar is loaded each run. Any name past the band with an earnings date within 5 NYSE trading days, before or after, is held: it stays visible, with the date and the distance, and is not the top name. Within 2 trading days the event risk is marked High; otherwise Elevated.

If the calendar cannot be loaded, the gate cannot run and the report says so at the top: no name in that report has been checked against an earnings date.

Top of the screen

One name, or none.

The top name is the highest rank score among names past the band and clear of the earnings window, comparing the top of the below-mean list with the top of the above-mean list. It is the most stretched name by that score, not a forecast.

When no name has crossed the band, there is no top name. The report says so, names the widest stretch of the day and where it sits relative to the band, and lists any names approaching it. An empty day is the process working, not a gap in it.

What ran today

Four counts, each a subset of the last.

Every report ends with the day’s path through the screen: how many names were screened, how many of those crossed the band, how many of those cleared the earnings gate, and whether that left a top name. Each count is a subset of the one before it, and each is the number the run recorded, not one worked out afterwards.

Beneath it, for reference, the report gives the model-fit count: how many names pass the one-year AR(1) fit. That adds to the rank score; it is not a gate.

The same block states the band and the earnings window the run used, and whether each data source answered.

What we have tested

Two years, no measurable effect.

We replayed the exact daily screen over two years of daily prices, 2024-09-23 to 2026-09-22, for the 30 names. Each flagged name was scored by its return over the next 1, 5, 10 and 20 sessions, entering at the next open, relative to the equal-weight average of the 30 names, signed so that a positive number means the name moved back toward its mean relative to the group. All figures are before trading costs. The test was pre-registered: the plan was fixed and committed before any result was computed.

The primary result: names past the band returned −0.09% (−9 basis points) over the next five sessions on average, with a 95% interval from −0.48% to +0.33%. That is no measurable effect. That rules out a reversal larger than about a third of a percent over five sessions; a smaller one cannot be ruled out.

No ranking, top-name or fit-label effect was shown. The daily top name averaged +0.49% over five sessions, but with an interval too wide to tell, roughly −1.0% to +2.0%. Names whose fit passed did not do better than names whose fit did not; if anything they did worse, though not by a margin the test could distinguish from chance. No result survived correction for the number of tests. A longer-history test, about ten years, is planned under the same fixed plan, with the years before 2024-09-23 reported separately as an out-of-sample check.

Access

Access is by request.

Each request is reviewed by Eleven Delta Partners before alerts are enabled.

Request access