This report was drafted by Claude Fable and edited by me, a literal human. I'm a team of one.
Read the Tape deals five real S&P 500 charts a day. Sixty daily candles, ticker and dates hidden, prices rescaled so the first close is 100, and one question: does this close higher or lower five trading sessions from now. Everybody gets the same five charts. Nothing that identifies the stock reaches the browser until the call is made.
Because the chart is anonymous, anybody can take the same test, and we can put them all on the same scale. So we did. Below are the crowd, the classic technical playbook, three frontier language models, and the up only play that doesn't even consider the chart.
| who is calling | sample | right | 95% CI |
|---|---|---|---|
| Always up, never looks at the chart | 235 charts | 52.3 – 64.8 | |
| Wisdom of the crowd, the majority side | 235 charts | 48.9 – 61.5 | |
| Claude Opus 5, best of three models | 243 charts | 49.3 – 61.7 | |
| The average human call | 40,501 calls | · | |
| The textbook's net lean | 155 charts | 41.3 – 56.8 | |
| Fading the wisdom of the crowd | 235 charts | 38.5 – 51.1 |
The five objections below come from the Show HN thread, each linked to the part of the report that answers it. The full comments are quoted in their sections.
| what the thread said | what the data says |
|---|---|
| “You can beat it by always picking up” | Right, and by 5.5 points. Only 23.4% of 4,202 desks beat the rule, and practice does not close it. |
| “I would love to see an LLM's prediction in the stats” | Three frontier models, same blind charts. None beat always-up. All three are far better calibrated than the humans. |
| “Technical analysis is astrology for boys” | Backtested over 758,032 sessions. Seven of eleven patterns are noise, and both continuation patterns point the wrong way. |
| “Barely enough data in the charts to do TA properly” | We shipped six more indicators. Accuracy did not move. Stated confidence fell. |
| “You are going to train an ML model to do the inverse” | We ran the arithmetic. Fading the crowd scores 44.7%. The inverse is worse than the crowd. |
Each chart is 60 daily candles of a real S&P 500 constituent, from a random window whose decision point is at least 380 days in the past, prices normalised so the first visible close is 100 and volume divided by the window mean. The window is drawn by a seeded random pick, not chosen by hand. Before each call the server computes eleven classic signals on the visible bars only, trend, range position, momentum, RSI, MACD and Bollinger stretch, each carrying the direction the textbook assigns it, and stores them with the call. No lookahead: every signal is computed from bars the player can see.
The honesty note comes before any number, and it is the same one Tape Report No. 1 carried. Everyone plays the same five charts, so the calls are not independent observations. The window holds 40,501 calls from 4,202 desks, but the effective sample for anything chart-level is 241 charts, and that is what the intervals below are computed on. Every interval is 95% Wilson. This is seven weeks of one upward-drifting window and it cannot convict technical analysis of anything. What it can do is report the running score.
“You can beat it by always picking up”
"Yes - by always picking Up. Random stock on a random day has 53-55% chance of closing higher. Over 5 days, you will be right ~60%"
spizderCorrect, almost to the decimal. Across 40,501 calls players were right 53.9% of the time. A rule that ignores the chart entirely and calls up every time was right 59.4% on exactly the same calls, within a point of the comment's estimate. That gap has not closed in seven weeks.
It is not a handful of bad desks dragging an average down. Of the 4,202 desks that made at least five calls, 23.4% finished ahead of the always-up rule. And the share does not climb with practice: 19.3% of the 228 desks with 20 or more calls, 16.9% of the 118 with 50 or more. Those upper rows are thin and their intervals overlap each other, so the honest reading is "no visible improvement at the sample we have" rather than "practice makes you worse". The finding is that most desks fall short of the rule, not that the remainder have found an edge. Over five calls, chance alone puts desks on both sides.
| desks with | desks | share that beat always-up |
|---|---|---|
| 5 or more calls | 4,202 | |
| 20 or more calls | 228 | |
| 50 or more calls | 118 |
The mechanism is not subtle. 40.8% of all calls were down, in a market that rose. Up calls were right 61.3% of the time and down calls 43.2%. Players are not mispricing the charts so much as repeatedly betting against the drift that made the sample.
“I’d like to see an LLM’s prediction in the stats”
"Would love to see the “prediction” of a LLM in the stats after playing"
lejeanvaljeanSo we gave the test to three frontier models, one from each of the three labs: Claude Opus 5, GPT-5.6 and Gemini 3.1 Pro. Each one saw exactly what a player sees and nothing more, 60 rows of open, high, low, close and volume as plain numbers, prices rescaled so the first close is 100, no ticker, no dates, no indicator panel. Same question, same five-session horizon, one call per chart, no retries on a parsed answer and no best-of-n. Each model was reached through its own vendor command-line tool on our machine, so the exact command is publishable next to the numbers, and the prompt is published verbatim with the data.
| on the 243 charts all three answered | right | 95% CI | said |
|---|---|---|---|
| Always up, never looks at the chart | 51.3 – 63.7 | · | |
| Wisdom of the crowd, same charts | 48.9 – 61.5 | 73.8 | |
| Claude Opus 5 | 49.3 – 61.7 | 56.7 | |
| All three, majority vote | 48.4 – 60.9 | · | |
| Gemini 3.1 Pro | 46.0 – 58.5 | 59.6 | |
| GPT-5.6-sol | 44.4 – 56.8 | 56.3 |
The accuracy column is the boring half. The confidence column is the finding, and it is far less sensitive to the sample than the ordering above it.
Claude Opus 5 stated about as much confidence as it earned. GPT-5.6-sol said 56.3 and scored 50.6, Gemini 3.1 Pro said 59.6 and scored 52.3. Against them the humans said 73.8 and scored 53.9. On the same blind charts the models are wrong about as often as people and roughly right about how often that will be, which is the part people are not.
Score them as probability forecasts rather than as calls and the gap stops being cosmetic. Against a forecaster who states the base rate every time and never looks at a chart, Claude Opus 5 lands a Brier skill score of +0.005, GPT-5.6 -0.012 and Gemini 3.1 Pro -0.029. All three sit within three points of simply knowing the base rate. The humans sit at -0.212. Two caveats keep that honest: the human figure is computed across all 40,501 calls rather than these 243 charts, and the players answer through a three-position control with a 55% floor while the models could name any number from 50 to 100. Neither caveat is worth twenty points.
Three limits, and the first is the one that matters. These models have read the market's history. Normalising the prices and stripping the dates stops a lookup, but it cannot stop a model recognising a series from its shape, and we make no claim that it did not happen. What the test measures is what a model does with an anonymised chart, which is exactly what a reader would try. Second, 243 charts is still 243, not 40,000. Every interval in the table above spans more than twelve points and they all overlap, so the ordering inside the model rows is not a result. What survives the interval is the comparison the section exists to make, which is with the rule that never looks. Third, a language model reading numeric bars is not the same instrument as one reading a picture, and we did not test the picture.
No model refused a single chart. All three answered all 243, which is worth saying because a refusal rate that differed between models would have quietly biased the comparison. The three agreed with each other on only 155 of the 243, so they are not one opinion wearing three badges, and they still land in the same place.
“Technical analysis is astrology for boys”
"Technical analysis is astrology for boys."
xnxWe are not going to argue with that. We backtested it instead, on a sample far larger than the game will ever produce: eleven textbook patterns over 758,032 sessions, 153 tickers, 2005 to 2024, scored on the same five-session horizon the game uses. The base rate of an up move over that sample is 54.7%.
| pattern | textbook says | fired | up next | vs base | verdict |
|---|---|---|---|---|---|
| 60-day low breakdown | down | 32,189 | 58.0% | +3.3 | real, textbook backwards |
| RSI oversold | up | 21,040 | 57.8% | +3.1 | real, textbook right |
| Bullish engulfing | up | 8,426 | 56.0% | +1.3 | not distinguishable from noise |
| Shooting star | down | 6,672 | 55.9% | +1.1 | not distinguishable from noise |
| Death cross | down | 2,128 | 55.5% | +0.7 | not distinguishable from noise |
| Doji | none | 79,778 | 55.1% | +0.3 | not distinguishable from noise |
| Bearish engulfing | down | 14,930 | 54.8% | +0.0 | not distinguishable from noise |
| Golden cross | up | 2,190 | 54.8% | +0.0 | not distinguishable from noise |
| Hammer | up | 5,953 | 53.8% | -0.9 | not distinguishable from noise |
| 60-day high breakout | up | 79,949 | 52.6% | -2.1 | real, textbook backwards |
| RSI overbought | down | 55,842 | 52.4% | -2.3 | real, textbook right |
Seven of the eleven are indistinguishable from the base rate. Four survive a Bonferroni correction for eleven tests, and those four split cleanly in a way the textbook will not enjoy. The two mean-reversion signals point the way the book says. Both continuation signals point the opposite way. A close at a 60-day high, the textbook's bullish breakout, is followed by a weaker-than-average week. A close at a 60-day low, the textbook's bearish breakdown, is followed by the strongest week in the table. On this sample the breakdown is a buy signal wearing a sell label.
Before anyone reaches for that as a strategy: the largest effect in the table is 3.3 percentage points, on a base rate of 54.7%. The best rule in the book gets you from 54.7% to 58.0%, which is roughly where you already were by not reading the chart.
Our own charts agree, at much smaller n. On the 155 of 241 charts where the eleven signals carried a net lean, that lean was right 49.0% of the time, interval [41.3, 56.8], which is a coin. The deficit is one-sided and matches the players': the book's up-leans were right 53.4% of the time, its down-leans 40.4%.
“Barely enough data in the charts”
"It’s a fun game and it throws funny shade for getting the answers wrong, but who would have guessed and sized these answers right based on this sparse data without any additional context? There’s barely enough data in the charts to do TA properly."
gizajobThis one we could answer, because after the thread we shipped the extra data. On 22 July the game gained SMA200, ATR and a split moving-average panel, and on 26 July Bollinger bands and a MACD histogram. Every call since 24 July records which overlays the player switched on or off before committing, so we can compare the calls where somebody reached for the indicators against the calls where they did not.
| on that call the player | calls | desks | right | stated confidence | brier |
|---|---|---|---|---|---|
| left the panel alone | 9,061 | 749 | 52.2% | 74.6 | 0.3162 |
| switched an indicator on or off | 3,929 | 431 | 51.2% | 70.5 | 0.3040 |
More data did not make anyone more accurate. Pooled, the difference is a point the wrong way and not distinguishable from nothing (p=0.29). Comparing each desk only against itself, across the 96 desks with at least five calls on both sides, 39 were better with the indicators and 55 were better without (sign test p=0.12). That is a null, and at this sample it is the honest answer to the objection: the extra bars and the extra lines did not buy accuracy.
desks stated lower confidence on their indicator calls than on their untouched ones, by 2.8 points on average (sign test p=0.00013). We predicted the opposite. More instruments made people less sure, not more, and slightly better calibrated for it, without making them more right.
Two honest limits on that. It is observational and not randomised: a player chooses when to reach for an indicator, and if they reach on the charts they find hardest then the accuracy comparison is biased against the panel by construction. And it measures touching a control, not having one on screen, because two moving averages are on by default for everybody. A clean answer needs an experiment that withholds the panel at random, which we have not run.
“You’re going to train a model on the inverse”
"I 100% think you are going to harvest these decisions to train an ML model to do the inverse."
FajitaNachosIt is the best idea in the thread and we owe it an actual number, so we ran it. On the 235 released charts where the crowd was not exactly tied, the crowd's majority side was right 55.3% of the time, interval [48.9, 61.5]. Fading it therefore scores 44.7%. The inverse of the crowd is not a strategy. It is a worse strategy than the crowd.
The interesting part is why the crowd looks good here and still loses the scoreboard. The crowd's majority called up on 75.3% of charts, in a sample where 57.7% of charts rose. Most of the majority's 55.3% is inherited drift, not reading. Test it the other way: on the 58 charts where the majority said down, the market went up anyway on 56.9% of them. So the one place fading the crowd genuinely pays is its down calls, and "fade the crowd's down calls" is, of course, merely always-up.
An early read of this, on the first 52 settled charts, had fading the crowd comfortably ahead of following it, and we expected to publish it as the headline. At 235 charts it reversed and dissolved. We are reporting it because we said we would report it either way, and because "the crowd is not even reliably wrong" is a more useful sentence than the one we were hoping for.
Every call carries a stated confidence, and the confidence sizes a paper-money stake, which is a stronger elicitation than a costless slider. Across 40,501 forecasts mean stated confidence was 73.8% and realised accuracy 53.9%.
| stated confidence | calls | right |
|---|---|---|
| 55%, the floor | 8,052 | |
| 70% | 18,720 | |
| 90% | 13,715 |
Thirty-five points of stated confidence buy 3.9 points of accuracy. Scored as probabilities the calls make a Brier score of 0.3011 against 0.2485 for a forecaster who states the base rate every time and never looks at a chart. The Brier skill score is -0.212: stating how confident they were made players measurably worse than saying nothing.
One caveat we state every time this number appears. The control has three positions and its floor is 55%, so a player cannot state a coin flip, and part of the 19.9-point gap between stated and realised is imposed by the interface rather than expressed by the player. The flatness of the curve is not.
No. 2 reported that players raise their stake after a loss, the classic double-down. Comparing each desk only against itself, across 271 desks with at least five calls on both sides, the call after a loss is 0.0 points worse than the call after a win, and that is not distinguishable from no difference (127 desks better after a win, 138 better after a loss, sign test p=0.54). The 1.8-point drop we published was composition: a weak desk produces more after-loss calls than after-win calls by construction. The earlier figure was a real number computed the wrong way round, and this one supersedes it.
- One window, and it drifted up. The bearish signals' poor grades are partly the drift restated. In a falling seven weeks the market verdicts could flip. The claims about people, the flat confidence curve and the short bias, should not.
- These are our eleven rules, not all of technical analysis. A chartist will object that real technical analysis is more than eleven mechanical signals. We agree. The eleven are the part that can be tested, and the backtest script is published so the definitions can be argued with directly.
- A desk is not a person. No accounts and no login, so a browser that loses its storage becomes a new desk. Pooled per-call statistics are unaffected. Per-desk claims are held loosely and always with their n.
- The language models have read the market's history. They may recognise a series from its shape and we cannot rule it out. See the method note in that section.
- The five-day horizon is short and the sample is one market. Nothing here says anything about technical analysis on other horizons, other instruments, or as part of a risk-managed system rather than a directional call.
Everything above is derived from the files and scripts below, and all of them are published. They are generated rather than typed, which is the rule this desk works to: copy carries only numbers a script printed. The data files download from this page and are mirrored, with the code, in the open repo: github.com/wstock/readthetape-data.
241 settled charts, one row each: ticker, window, decision date, the five-day return, the eleven textbook signals at the decision point and their net lean, the number of calls, the crowd's up-share and the share it got right. 39,569 calls sit behind those rows and none of them is in the file. No player rows, no ids, no per-desk anything. Every decision point is at least 380 days old, so the tickers are safe to name.
The eleven-pattern table over 758,032 sessions, and the script that produced it. It runs against Yahoo data with no dependency on us, so the definitions can be disputed and rerun. MIT.
All 729 model calls, one row per model per chart, with the stated confidence and the outcome, plus the runner and the prompt verbatim and the exact command used for each of the three vendor tools. MIT.
How charts.csv is built, and the check on this page. chart_release.py rebuilds each chart from its ticker and decision date, recomputes the signals with the game's own code, and drops any chart whose outcome does not reproduce exactly; 14 of 255 were dropped that way. tr3_stats.py recomputes every chart-level figure in this report from charts.csv and llm_calls.csv alone, and its output ships beside the data as tr3.json.
Licence: data CC BY 4.0, code MIT. Corrections and refutations are welcome and will be published. The game deals five new blind charts at 00:00 UTC every day, so the sample grows by five charts a day and every figure here will be regraded in public.