Paid · $30/mo
Brooks Daily Bias API
One HTTP call tells you what kind of day the market is having — and how sure the model is. Five day types, calibrated probabilities, tested only on years the model never saw.
Email for an API key Read the API reference
What you get
Experienced price-action traders glance at a chart and say “this looks like a trend day.” That judgement is trainable. We distilled the day-type reading from the Al Brooks price-action tradition into a small model, trained it on 16 years of S&P 500 E-mini 5-minute bars, and tested it only on years it had never seen. The API gives you three things: the model’s probability distribution over five day types for the session that is running right now, a shortlist of the historical days whose shape most closely matches today, and a database of the tradition’s famous probability claims measured against 3,946 real trading days. It is context for a decision, not a decision.
The five day types
| Class | What it means |
|---|---|
TrendUp | Buyers hold the session. The close lands near the high, pullbacks are shallow, and dips get bought rather than sold. |
TrendDown | The mirror image. Sellers hold the session, rallies are short and shallow, and the close lands near the low. |
Range | Price oscillates inside a band. Both edges get rejected, and no attempt to leave the band sticks. |
TrendingRange | The day moves in steps: a range, a break, then another range higher (or lower). The direction is real, but delivered in blocks rather than one push. |
Reversal | The session commits one way, fails, and spends the rest of the day going the other way. The extreme made early gets taken out. |
The five classes are mutually exclusive labels for one session. In the labelled reference set the largest class covers about 37% of days, which is the baseline any honest accuracy number has to beat.
The three endpoints
Base URL https://api.quantdata.uk. One header,
X-API-Key: qd_.... No SDK, no OAuth, no session state. Full parameter and error
tables live in the API reference.
GET /v1/read/{symbol} — today’s day-type probabilities
The core endpoint. Returns the calibrated probability distribution for the session in progress, plus the quote the read was computed from so you can sanity-check it. Probabilities are sorted highest first.
$ curl -H "X-API-Key: qd_live_9f3c..." \
https://api.quantdata.uk/v1/read/NVDA
{
"symbol": "NVDA",
"session": "2026-07-24",
"session_window": "rth",
"bars": 54,
"quote": {
"open": 178.42,
"high": 181.06,
"low": 177.85,
"last": 180.63,
"prev_close": 177.91,
"change_pct": 1.53
},
"source": "leandata",
"probs": {
"TrendUp": 0.34,
"Reversal": 0.22,
"TrendingRange": 0.21,
"Range": 0.2,
"TrendDown": 0.03
},
"top2_coverage_note": "ES-trained model; equities are out-of-distribution — descriptive use",
"disclaimer": "Educational analytics, not investment advice."
}
Read that response as: the model’s single best guess is a trend-up day at 34%, but the top
two scenarios together only cover 56% — this is not a high-conviction read, and the reversal
script is very much alive. Add ?session=asia for 24-hour futures only.
GET /v1/match/{symbol} — similar historical days
Shape-matches the current session against an intraday library of S&P 500 E-mini days from
2010 to 2026 and returns the nearest analogs with their day-type labels. Use it as a sanity
check on the probabilities: if the three closest historical shapes all closed as trend-up days,
that is worth knowing. k defaults to 3 and caps at 10.
$ curl -H "X-API-Key: qd_live_9f3c..." \
"https://api.quantdata.uk/v1/match/NVDA?k=3"
{
"symbol": "NVDA",
"session": "2026-07-24",
"similar_days": [
{ "date": "2018-04-10", "similarity": 0.912, "day_type": "TrendUp" },
{ "date": "2023-11-02", "similarity": 0.889, "day_type": "TrendingRange" },
{ "date": "2015-10-05", "similarity": 0.871, "day_type": "TrendUp" }
],
"note": "similarity=shape correlation vs ES intraday library (2010-2026)"
} Similarity is a shape correlation, not a causal claim. Two days can look identical and end differently — that is exactly why the model returns a distribution instead of a label.
GET /v1/claims — the fact-check database
The measured version of the price-action tradition’s probability folklore. Every verdict carries the number the classroom teaches, the number we measured, and the sample size. No symbol, no arguments — it is a static research artefact you can cache.
$ curl -H "X-API-Key: qd_live_9f3c..." \
https://api.quantdata.uk/v1/claims
{
"instrument": "ES 5min RTH 2010-2026",
"meta": "directions correct, numbers inflated 7-10pp — trust the direction, discount the number",
"verdicts": [
{
"id": "opening-extreme-90min",
"claim": "90 minutes in, one side's daily extreme is already set",
"brooks": 90,
"measured": 81.2,
"n": 3946
},
{
"id": "bull-day-low-early",
"claim": "on a bull day the low forms in the first third of the session",
"brooks": 90,
"measured": 83.3,
"n": 3946
},
{
"id": "tr-breakout-fail",
"claim": "trading-range breakouts fail (the \"80% rule\")",
"brooks": 80,
"measured": { "within_5_bars": 52.0, "within_10_bars": 62.4, "within_20_bars": 69.7 },
"n": "5000-9700 events"
}
]
} The scoreboard
All numbers below are from strictly held-out years the model never saw during training. Five classes, so a coin flip is 20% and the majority-class baseline is 37%.
Calibration is the part people skip and the part that matters most for an agent. An uncalibrated 70% is a vibe. A calibrated 70% is a number you can put into an expected-value calculation. The full training log and evaluation protocol are on the methodology page.
The famous claims, fact-checked
Price-action classrooms quote “80%” and “90%” constantly. We tested the
claims one at a time against 3,946 S&P 500 E-mini trading days of 5-minute data, 2010 to
2026. This table is free, and it ships inside /v1/claims.
| Claim | Classroom says | Measured | Sample |
|---|---|---|---|
| 90 minutes after the open, one side’s daily extreme is already in place | 90% | 81.2% | 3,946 days |
| On a bull day, the low of the day forms in the first third of the session | 90% | 83.3% | 3,946 days |
| After an opening-range breakout, the opposite extreme holds | 90% | 83.5% | 3,578 days |
| Trading-range breakouts fail (the famous “80% rule”) | 80% | 52% / 62% / 70% within 5 / 10 / 20 bars | ~5,000–9,700 events |
Meta-verdict: the directions are all correct, the numbers are systematically inflated by 7 to 10 percentage points. Every claim we tested pointed the right way — these are real phenomena, not superstition — but each one was taught with a rounder, bigger number than the data supports. The practical rule is: trust the direction, discount the number by about ten percent. The “80% rule” is the worst offender; it does not reach 80% under any definition of range tightness we tried.
Two more checkpoints on the same claim family, for anyone reconstructing the timeline: after the first 5-minute bar one extreme is set 26.3% of the time (taught as 20%), and after 35 minutes 58.3% (taught as 50%). On bear days the high forms early 80.4% of the time (taught as 90%). Both early checkpoints run above the taught number while the late ones run below it — the curve is flatter than the tradition believes at both ends.
Honest limits
Publishing where a model fails is not modesty, it is the only way the successes mean anything. Three limits matter before you buy.
It is an ES model
The model was trained on S&P 500 E-mini futures. Individual stocks are out of distribution: NVDA has earnings gaps, single-name news and a different volatility regime. Single-stock reads are descriptive — a useful summary of the shape the session has drawn — not predictions. The API says so in every response.
Asia session: NO_GO
We pre-registered a test of whether the day-type gate transfers zero-shot to the Asian
session and it came back negative. The verdict is published as
NO_GO. ?session=asia exists for 24-hour futures because people
ask for it, but the US day session is the only window the model was validated on, and that
is what you get by default.
It never says buy or sell
There is no signal endpoint, no entry, no stop, no target. The output is a probability distribution and a set of historical analogs. If your agent turns that into a trade, that is your agent’s decision and your risk — and we would rather you use it as a confirmation layer than a trigger.
Who this is for
A good fit
- Students of price action who want an answer key: make your own read of today’s chart, then call the API and compare. Deliberate practice with feedback.
- People building trading agents who need session context in one line of code, with probabilities that are actually calibrated.
- Researchers and sceptics who want measured base rates instead of course slides.
A bad fit
- Anyone looking for entries, exits or alerts. This is a context layer; there is no signal in the box.
- Crypto, gold and FX traders. The related volume research found an outright anti-signature on BTC, ETH and gold — see Weis Wave.
- High-frequency work. The unit of analysis is a 5-minute bar and a session, not a tick.
- Anyone who needs the number to be big. Our honest numbers are 52–66%. If that is disappointing, the products promising 90% are one search away, and they are lying.
Pairs with Weis Wave
The strongest result in this whole project is not either product alone — it is the two together. Gating a Weis Wave bullish volume event on a TrendUp day-type read lifted the measured win rate from 50.8% to 56.5% on ES, and replicated zero-shot on NQ (56.1% vs 45.3%) and QQQ (54.3% vs 44.3%). That is why the two APIs bundle for $50/mo instead of $60. Details and the full pre-registration on the Weis Wave page.
Frequently asked
What is a day type?
A day type is a one-word summary of how a whole trading session behaved: did it trend, did it chop sideways, did it turn around? Price-action traders have used the idea informally for decades — "today is a trend day" — because the label changes how you read every bar that follows. The Brooks Daily Bias API turns that judgement into five named classes with probabilities attached: TrendUp, TrendDown, Range, TrendingRange and Reversal. It is a description of the session so far, not a forecast of the close.
Does the famous "80% of range breakouts fail" rule actually work?
Not at 80%. Measured on 3,946 S&P 500 E-mini trading days from 2010 to 2026, breakouts from a trading range failed 52% of the time within 5 bars, 62% within 10 bars and 70% within 20 bars. The direction of the claim is right — breakouts really do fail more often than they run — but the number never reaches 80% under any definition we tested, including varying how tight the range has to be. That pattern repeats across the tradition: directions correct, numbers inflated by roughly 7 to 10 percentage points.
Is this investment advice?
No. Quant Data publishes descriptive analytics and developer tooling for people learning quantitative trading. The API never returns a buy or sell instruction, never sets a price target, and never sizes a position. It reports what a model trained on historical data thinks the current session resembles, plus measured base rates. Trading involves risk of loss and past performance does not guarantee future results.
Which symbols can I call?
US tickers (NVDA, TSLA, SPY), US futures with a =F suffix (ES=F, NQ=F, GC=F), Hong Kong stocks as digits plus .HK (3690.HK), China A-shares as 6-digit codes (600519), and crypto pairs such as BTC-USD. A symbol with no data returns a 404 that suggests the likely correct ticker, and a 404 is never charged.
Do I need to be a programmer to use it?
No. The API is one HTTP request with one header, which means any AI agent that can call a URL can use it for you — Claude, ChatGPT with a custom action, Cursor, an n8n or Dify workflow. Paste the system prompt from the API reference into your agent, add your key, and ask questions in plain language.
Get a key
Billing is manual and deliberately low-tech: email us one sentence about what you are building,
we reply with a payment link, and your qd_ key follows. Usually within a day. No
signup form, no card on file, no dark patterns.
Email quantdata@agentmail.to See pricing
Brooks Daily Bias API $30/mo · Weis Wave API $30/mo · both together $50/mo. Quant Data is an independent research project and is not affiliated with or endorsed by Al Brooks. If you want to learn the method itself, buy his books.