What actually happened after each signal
A signal nobody has measured is just a decoration, so we measured ours. Across 391 coins and 225 days of price history, the same code that labels today produced 9,571 past labels.
Median return after each label
2026-03-22 → 2026-11-02 · one reading every 7 days per coin
| Signal on the day | Windows | +7d | +30d | +90d | Higher after 30d | Higher after 90d |
|---|---|---|---|---|---|---|
| Strong buy | 710 | -0.8% | -4.5% | -19.0% | 42% | 29% |
| Buy | 1,053 | -1.8% | -6.6% | -25.1% | 40% | 22% |
| Neutral | 1,256 | -0.6% | -1.5% | -17.9% | 46% | 28% |
| Sell | 1,423 | -0.6% | -0.6% | -14.0% | 48% | 33% |
| Strong sell | 3,891 | -0.2% | +0.0% | -2.2% | 49% | 46% |
| Every window (baseline) | 8,333 | -0.5% | -1.1% | -10.0% | 47% | 37% |
Ninety days out, the whole distribution
medians hide the tails, so both deciles are shown
| Signal | Median | Mean | Worst decile | Best decile | Windows |
|---|---|---|---|---|---|
| Strong buy | -19.0% | -0.6% | -54.5% | +49.9% | 294 |
| Buy | -25.1% | -11.4% | -48.8% | +39.2% | 524 |
| Neutral | -17.9% | -5.7% | -44.2% | +44.9% | 785 |
| Sell | -14.0% | +0.1% | -39.5% | +52.4% | 872 |
| Strong sell | -2.2% | +20.4% | -37.5% | +59.5% | 2,489 |
| Every window (baseline) | -10.0% | +8.1% | -42.0% | +54.3% | 4,964 |
Reading the table
Over 30 days the buy bucket returned -6.6% against a -1.1% baseline, so the label carried no measurable advantage. Only 40% of buy readings were in profit a month later, a shade below the 47% baseline. Even the strongest readings failed to separate: strong buy returned -4.5% over 30 days against a -1.1% baseline.
Honest verdict on ranking: buy sits below neutral over 30 days, and strong sell (+0.0%) finished ahead of both buy (-6.6%) and neutral (-1.5%). Sell labels added nothing on the downside: -0.6% over 30 days against a -1.1% baseline, so they flagged weakness that was already the norm. Horizon does not rescue it either: the buy bucket sits 15.1% below from the baseline at three months, against 5.5% below at one.
Because the median coin returned -10.0% over 90 days in this window, a bullish label needs to beat that, not merely finish positive. Medians and means disagree, and that is the real shape of this market: the median 90-day window lost +10.0% while the mean gained +8.1%, because a handful of enormous winners carry the average. Labels are not evenly spread: 24% of all scored days were bullish and 60% bearish.
Dispersion dwarfs the medians: the best tenth of strong-buy windows gained +49.9% over 90 days while the worst tenth returned -54.5%.
How this was measured, and what it cannot tell you
Method. The live scoring engine was replayed day by day. For each coin, a window of daily candles ending on day t was handed to the same function that labels coins today, so the label for day t uses only closes up to and including day t. Forward returns were then read from the closes at t+7, t+30 and t+90. Windows start after 220 candles, because the 200-day average needs that much history, and one reading is taken every 7 days per coin.
Survivorship bias. The universe is the coins this site tracks now. Tokens that collapsed, delisted or were abandoned before today are largely absent, which flatters every row in the table, the baseline most of all. Treat the absolute numbers as optimistic and the differences between rows as the part worth reading. Where candles carry no highs or lows — 18.6% of the sample — the score rests on six checks instead of ten.
Overlapping windows. Consecutive readings for the same coin share most of their forward period, and coins move together, so the window count is much larger than the number of genuinely independent observations. Confidence intervals would be wider than the sample size suggests.
Exchange and cost differences. Candles come from Binance USDT pairs where they exist and from CoinGecko daily series otherwise, so prices differ from what another venue printed on the same day. Nothing here subtracts trading fees, spreads, slippage or funding, and every entry and exit is assumed to happen exactly at a 00:00 UTC close.
What it is not. This is a measurement of a fixed set of technical checks on past data, not a strategy, a forecast or advice. Past distributions do not carry forward, the sample covers one broad market cycle at most, and a label that separated outcomes historically can stop doing so the moment conditions change. Read it as a sanity check on the labels you see elsewhere on this site, alongside the methodology and the trending archive.
Common questions
Is there look-ahead bias in these numbers?
No. The label for a given day is produced from a candle series that is cut off at that day, so the engine cannot see the prices it is being measured against. Forward returns are read only after the label exists.
Does a buy label mean the price will rise?
It does not. It means only that, in this sample, days scoring above 60 on ten fixed technical checks were followed by a median -6.6% over the next month, with a very wide spread around that median. A median is not a forecast for any single coin.
Why compare against a baseline instead of zero?
Because the sample has its own drift — the median 90-day window in it returned -10.0%. A label is only worth something if it beats a randomly chosen day in the same period, whether that baseline happens to be positive or negative, which is why the baseline row sits at the bottom of every table.
How often is this recalculated?
Once a week. Replaying the engine over 9,571 historical days is the most expensive job on the site, so the result is cached and refreshed on a weekly cycle rather than daily; the date of the run is shown above the table.
Why do some cells show a dash?
A cell is only printed when at least 40 windows fall into that bucket. Rare labels on short price histories do not produce enough observations to be worth a number, and a thin sample presented as a result would be worse than no result.
Does this include fees, or trending coins specifically?
Neither. Returns are raw close-to-close moves with no costs deducted. The sample is every coin with enough price history that the site tracks, not only the ones on a trending list, so it measures the technical signal rather than the trending signal.