What our AI Score actually did next

Every score we publish is logged the day it is issued. Once a horizon has fully elapsed we grade it against what the stock really did — and against SPY over the identical window. This page is that record, including the parts that do not flatter us.

A hit means the stock beat SPY over the window, not merely that it rose. Cells with fewer than 30 observations are shown as too few rather than as a number. The underlying data is public.

How to read these numbers

Three figures appear for each horizon. They answer different questions, and two of them can look good for reasons that have nothing to do with the score.

Hit rate vs SPY
How often the stock beat the index.

Of the signals whose window has fully elapsed, the share where the stock's return was higher than SPY's over the exact same days. 50% is the coin-flip line, so the number to compare against is 50, not 0. A stock that gained while the index gained more counts here as a miss.

Mean excess return
How much it beat or lagged the index, on average.

The stock's return minus SPY's return over the same window, averaged across every settled signal. Positive means the average signal outpaced the index; negative means it lagged. It is an average, so a handful of large moves can carry it — which is why the band table also shows medians.

Top − bottom band
The gap between what we rated highest and lowest.

Average excess return of the Strong Buy band minus that of the Strong Sell band. Positive means the two extremes separated in the direction they should. Read it last: the extreme bands are the smallest groups on the page by design, so this figure moves the most on the least evidence.

One rule covers all three: a large number of signals is not the same as a long history. Thousands of stocks scored across a few mornings tell you about those mornings. Each section prints how many separate scoring days it rests on, and says plainly when that is too few.

1 week (5 trading days)

5,925 settled signals across 1,009 symbols on 6 separate entry days, Oct 30, 2025 – Sep 7, 2026 (3,960 repeat gradings of a position already counted are excluded)

Read this as a sample, not a record. These outcomes start from only 6 separate entry days. Every stock bought on one close shares that month's market, so scoring a thousand of them produces one observation repeated a thousand times, not a thousand independent bets. We publish it anyway because waiting until it looks better would be worse — but it needs scores issued on 12+ days, across different market conditions, before any of these figures means much.

Hit rate vs SPY
48.3%
share that beat the index
Mean excess return
−0.35%
average vs SPY
Top − bottom band
+4.42%
Strong Buy less Strong Sell
By score band
BandSignalsHit rate vs SPYMean returnMean vs SPYMedian vs SPY
Strong Buy 80–1007054.3%+2.70%+3.14%+1.18%
Buy 65–8029049.7%−0.58%−0.14%−0.09%
Hold 45–652,34449.7%−0.64%−0.22%0.00%
Sell 30–452,31049.9%−0.68%−0.24%0.00%
Strong Sell 0–3091140.0%−1.74%−1.27%−0.92%
By score decile — the test is whether this rises monotonically
DecileScore rangeSignalsHit rate vs SPYMean vs SPY
1 (lowest)21.6–26.459236.3%−1.59%
226.4–34.259344.5%−0.83%
334.2–38.359243.4%−0.88%
438.3–40.459353.6%+0.23%
540.4–43.359254.7%+0.07%
643.3–47.959349.4%−0.38%
747.9–51.359244.6%−0.65%
851.3–54.859352.3%+0.24%
954.8–61.159255.4%+0.15%
10 (highest scores)61.1–96.059348.9%+0.16%
Last 90 days: 45.6% hit rate, −0.47% vs SPY over 2,926 signals
Last 365 days: 48.3% hit rate, −0.35% vs SPY over 5,925 signals

1 month (21 trading days)

3,966 settled signals across 1,002 symbols on 4 separate entry days, Oct 30, 2025 – Aug 10, 2026 (3,946 repeat gradings of a position already counted are excluded)

Read this as a sample, not a record. These outcomes start from only 4 separate entry days. Every stock bought on one close shares that month's market, so scoring a thousand of them produces one observation repeated a thousand times, not a thousand independent bets. We publish it anyway because waiting until it looks better would be worse — but it needs scores issued on 12+ days, across different market conditions, before any of these figures means much.

Hit rate vs SPY
53.6%
share that beat the index
Mean excess return
+0.42%
average vs SPY
Top − bottom band
+6.01%
Strong Buy less Strong Sell
By score band
BandSignalsHit rate vs SPYMean returnMean vs SPYMedian vs SPY
Strong Buy 80–1004654.3%+5.23%+5.47%+3.34%
Buy 65–8020441.2%−1.02%−0.80%−2.50%
Hold 45–651,61053.4%0.00%+0.21%+0.64%
Sell 30–451,51356.6%+0.70%+1.02%+1.00%
Strong Sell 0–3059350.6%−0.85%−0.54%+0.09%
By score decile — the test is whether this rises monotonically
DecileScore rangeSignalsHit rate vs SPYMean vs SPY
1 (lowest)21.6–26.539646.0%−1.36%
226.6–34.439753.1%+0.07%
334.4–39.039649.2%+0.43%
439.0–40.939759.4%+1.34%
540.9–44.039763.0%+2.00%
644.0–48.539654.0%+0.32%
748.5–52.039756.2%+0.34%
852.0–55.439655.3%0.00%
955.4–61.539753.1%+0.98%
10 (highest scores)61.6–96.039746.1%+0.09%
Last 90 days: 38.0% hit rate, −1.85% vs SPY over 972 signals
Last 365 days: 53.6% hit rate, +0.42% vs SPY over 3,966 signals

1 quarter (63 trading days)

2,971 settled signals across 993 symbols on 3 separate entry days, Oct 30, 2025 – Jan 25, 2026 (1,985 repeat gradings of a position already counted are excluded)

Read this as a sample, not a record. These outcomes start from only 3 separate entry days. Every stock bought on one close shares that month's market, so scoring a thousand of them produces one observation repeated a thousand times, not a thousand independent bets. We publish it anyway because waiting until it looks better would be worse — but it needs scores issued on 12+ days, across different market conditions, before any of these figures means much.

Hit rate vs SPY
54.3%
share that beat the index
Mean excess return
+2.51%
average vs SPY
Top − bottom band
+25.38%
Strong Buy less Strong Sell
By score band
BandSignalsHit rate vs SPYMean returnMean vs SPYMedian vs SPY
Strong Buy 80–1003658.3%+28.10%+25.96%+13.05%
Buy 65–8016346.0%+3.28%+1.26%−2.31%
Hold 45–651,25153.7%+3.77%+1.74%+1.60%
Sell 30–451,09157.6%+5.52%+3.58%+2.65%
Strong Sell 0–3043050.7%+2.47%+0.58%+0.43%
By score decile — the test is whether this rises monotonically
DecileScore rangeSignalsHit rate vs SPYMean vs SPY
1 (lowest)21.6–26.829744.8%−1.04%
226.8–34.929756.9%+2.30%
334.9–39.529753.5%+1.19%
439.5–41.529761.3%+6.95%
541.5–44.629760.9%+3.97%
644.6–49.529754.2%+2.32%
749.5–53.429753.9%+2.18%
853.4–55.929752.5%−0.27%
955.9–62.729754.2%+2.39%
10 (highest scores)62.7–96.029851.0%+5.13%
Last 365 days: 54.3% hit rate, +2.51% vs SPY over 2,971 signals

Methodology

  • What is graded. The AI Score as published on the site, logged for every symbol on every run. Scores are never revised after the fact, so a graded signal is the number a visitor could have seen that day.
  • Horizons. 5, 21 and 63 trading days — bar offsets in the daily series, so holidays do not shorten a window.
  • Entry and exit. Both are closing prices from the same daily series: the first close on or after the score was issued, and the close N trading days later. No intraday entries, no slippage assumptions in our favour.
  • Benchmark. SPY over the identical window. Excess return is the stock's return minus SPY's, and a hit is a positive excess return. A stock that gained 3% while the index gained 5% counts as a miss.
  • What is excluded. Only fully elapsed horizons appear. Signals we cannot resolve — a delisting, a gap in price history — are left out rather than treated as flat, and the count of settled signals is shown beside every figure so you can see the base.
  • Sample size vs. sample span. Cells with fewer than 30 settled signals are shown as “too few” rather than as a number. Separately, we report how many distinct days a horizon's scores were issued on, because breadth is not the same as time: a thousand stocks scored in one week is one market observation, not a thousand. Until a horizon spans 12+ scoring days, we label it a sample rather than a record.
  • Repeated gradings are collapsed. The scoring job has sometimes run more than once for the same position — twice in one morning, or on a Saturday and again on the Sunday, both of which buy at the next Monday close. We key on the entry bar, not on the clock, and keep the last score for each bar per stock. Counting them separately would let one day's market carry two or three times the weight of any other, and would inflate the number of independent days we claim to have.
  • A ranking measure is withheld for now. A per-day rank correlation between score and forward excess return is still computed and still published in the JSON at /api/proof, but it is off this page while the measure is reworked: across the entry days graded so far it varies more between days than its own average, so quoting a single figure would imply a stability it does not have. It returns when it is measured over enough separate entry days to mean something.
  • Why no probability curve. The AI Score is a cross-sectional rank, not a probability, so plotting it as a calibration curve would imply a precision it does not claim. The honest test for a rank is monotonicity — do higher deciles really do better.
  • Returns are not risk-adjusted and exclude dividends, commissions and taxes. Past behaviour of a score is not a forecast, and nothing here is investment advice.

How the score itself is built: scoring methodology. Bands: Strong Buy 80–100, Buy 65–80, Hold 45–65, Sell 30–45, Strong Sell 0–30.

Last graded Sep 27, 2026. Updated daily after the scoring run.

Questions about this page

Including the uncomfortable ones. If an answer here contradicts something in our marketing, this page is the one that is right.

Is this a backtest?

No. A backtest applies today's rules to yesterday's prices, which is how a strategy ends up looking better than it ever was. Every figure here comes from a score that was published on the site on the day it was issued, logged at that moment, and graded later against what happened next. Scores are never revised after the fact, so nothing on this page had the benefit of hindsight.

Why measure against SPY instead of just whether the stock went up?

Because in a rising market almost everything goes up, and a score that rides that would look skilful while adding nothing. The only question worth asking is whether you would have been better off than in a plain index fund over the identical days. So a stock that gained 3% while the index gained 5% is counted as a miss here, even though it made money.

A hit rate near 50% sounds like a coin flip. Why publish it?

Because it is what the record says so far. A page that only appeared once the numbers were flattering would be worthless as evidence, and you would have no way to tell the difference. The figures move as more windows settle, in either direction, and we would rather you watch them move than take our word for a snapshot.

Is a ranking measure coming back to this page?

Yes. A per-day ranking statistic used to sit alongside these cards and has been withheld while the measure is reworked: on the entry days graded so far it varied more between days than its own average, which makes it something you cannot act on rather than a finding. It is still computed and still published in full in the JSON at /api/proof, so nothing is being withheld from anyone who wants it — it is off the page until it needs fewer caveats than it has digits.

Longer horizons look better. Does that mean the score works over months?

Not on this evidence. When nearly every score decile shows a positive average against the index at a longer horizon, the likeliest explanation is that a broadly spread set of stocks beat a benchmark concentrated in its largest members — a market effect, not selection skill. Separating the two needs a ranking measure taken across many more entry days than have been graded.

Should I buy everything in the top band?

No, and nothing here is investment advice. The score is one input for narrowing a list, to be used alongside the fundamentals, the filings and your own position sizing. On this page it is explicitly not yet established as a reliable ranking of future returns, which is the strongest reason we can give you not to trade it mechanically.

Why do some cells say "too few" instead of a number?

A group with fewer than 30 settled signals is shown as "too few" rather than as a percentage. Small groups produce loud, meaningless numbers, and the easiest way to manufacture an impressive track record is to quote one. Blanking them is deliberate: the sample size is printed beside every row so you can see exactly what is being withheld and why.

Are these all the scores you issue?

These are the ones that can be settled. A signal appears only after its full window has elapsed and there is a complete daily price series covering that window — a delisting or a gap in price history makes a signal ungradable. Those are left out rather than counted as flat, because scoring an unknown as a zero would quietly flatter the result.

Why is there no equity curve or dollar return?

Because the score is a ranking, not a portfolio. Turning it into an equity curve means choosing position sizes, rebalancing dates and cash rules — decisions that would do more to shape the chart than the score itself, while looking like a result the score produced. We publish the ranking's behaviour and leave the portfolio construction visible in our tools instead.

Are dividends, fees and risk included?

No. Returns are price-to-price on closing prices, and exclude dividends, commissions, taxes and slippage. They are also not risk-adjusted: there is no adjustment for volatility, beta or drawdown, so a band could beat the index on average while being a rougher ride than the index.

How often does this page update, and can I get the data?

The grading job runs daily after the scoring run, so windows appear here the day they settle. The same figures the page renders are available as JSON at /api/proof, including the sample sizes behind every cell.

Still unanswered? How the score is built · The raw figures as JSON · Ask us