The two best pre-earnings setups in the morning scan - the ticker, the entry price, the targets and the stop-loss - in your inbox right after the open.
Every number on this site is a measurement, and every measurement has a method. This page is that method, in full: the five factors that make the 0-100 score, and the one options measurement behind the 3-day, 7-day and 14-day price ranges. Where a measurement could not be taken we print n/a - never a zero.
The score is built from five factors and the total is capped at 100. Four of them come from the analyst book and the options market; one comes from the earnings history.
| Factor | What it measures | Points |
|---|---|---|
| Analyst coverage | One point for every analyst covering the stock, up to 25. | 25 |
| Buy conviction | The share of ratings that are Buy or Strong Buy (bullish = strong buy + buy; total = bullish + hold + sell), as a percentage, multiplied by 0.25 and capped at 25. 100% bullish ratings earn the full 25 points. | 25 |
| Strong Buy count | Two points for every Strong Buy rating, up to 20. | 20 |
| 14-day implied move | The options market's implied 14-day move, as a percentage of the current price, capped at 15. A 10% implied move earns 10 points. | 15 |
| Earnings sentiment | Recent earnings history: Positive = 15, Mixed = 7, Negative = 0. | 15 |
| Total | Capped at 100 | 100 |
A score of 75 or more is flagged Strong Buy, and a score of 50 or more is Watch. A row scoring under 50 is not published in the table at all - we would rather show fewer names than show a name we do not rate.
One measured number. Each row's band is built from ONE number: the at-the-money straddle - the call plus the put at the same strike, at the strike nearest the current price - quoted on the nearest listed expiry that still has time left. A straddle is the options market's own price for how far a stock is expected to move, so it is the one number here that is not invented.
Square root of time. Moves grow with the square root of time, not linearly. The move over h days is therefore:
move(h) = straddle * sqrt(h / T)
T is the number of days to that expiry. So a 4-day expiry is scaled by sqrt(3/4), sqrt(7/4) and sqrt(14/4) for the 3-day, 7-day and 14-day bands; an 18-day expiry is scaled by sqrt(3/18), sqrt(7/18) and sqrt(14/18).
Both ends of the band. Long = current price + move(h). Short = current price - move(h). The move is identical on both sides: a straddle prices the SIZE of a move, not its direction. The table shows the Long line above the Short line, each with its signed percentage.
Earnings. When the expiry we quote falls after the earnings date, the straddle's price already contains the market's expectation of the print - that is the whole point of quoting it.
Checkable. Every row also publishes the implied volatility the band came from, so a reader can check the arithmetic. The score's fourth factor IS the published 14-day implied move, so the score and the table always come from the same measurement.
One scan row, worked through by hand. Everything below is computed from the price, the at-the-money straddle, the expiry it was quoted on, and the implied volatility we publish - nothing here is typed in.
| Horizon | Multiplier | Move | Move % | Long | Short |
|---|---|---|---|---|---|
| 3-day | 1.0000 | $34.45 | 15.94% | Long $250.55 (+15.94%) | Short $181.65 (-15.94%) |
| 7-day | 1.5275 | $52.62 | 24.35% | Long $268.72 (+24.35%) | Short $163.48 (-24.35%) |
| 14-day | 2.1602 | $74.42 | 34.44% | Long $290.52 (+34.44%) | Short $141.68 (-34.44%) |
Every row is move(h) = straddle * sqrt(h / T), and Long is the price plus that move while Short is the price minus it.
Prices and options chains from Yahoo Finance. Analyst ratings from Yahoo Finance's recommendations endpoint. News headlines from Google News RSS, filtered by the company name. Earnings dates from Yahoo Finance's calendar.
This page is not financial advice. The band is an estimate of the market's implied move, not a promise: options prices move, and actual results may differ.
The table itself is on the scanner, and every row we publish is downloadable from the open data.