qea stock-ranking model
Portfolio demoA static snapshot of a personal quant research platform — 500 current members of a liquid500 universe, daily history since 2016, exported 2026-11-04 from the live 56.9 GB DuckDB. Every chart and table is the real tool's own output.How this demo works →← Ben Meyer's portfolio

A stock-ranking model, explained

Every evening, a frozen model ranks about 500 of the most‑traded US stocks.

This is what it does, how it did on ten years of data it had never seen, and how it has done live since July 1 — with the give-or-take left on every number.

The stocks it ranks, one dot each; its current picks are lit.
Live trading days since July 1
86evenings with picks since July 1, 2026: the first Jul 7, 2026, the latest Nov 4, 2026
The picks vs. their sector peers, since July 1
— shown when JavaScript is on   each day's edge added up, on paper, before trading costs
A decade it never saw, 2016–2026
+0.05%a day give or take 0.02% roughly +12% a year over sector peers, before trading costs, give or take 5%. About half of it may simply come from holding market-sensitive stocks — ones that rise and fall further than the market.
The model's picks right now
48stocks chosen on Nov 4, 2026, held in equal amounts · see them New picks each evening after a US trading day.
Start the story

01The idea in a minute

Prices in, a ranked list out, every evening.

Five steps, the same every night. None of them reads company accounts or the news: the model sees only prices and trading volumes — each stock's own, and its sector's and the market's to compare against.

  1. 500 The universe The 500 most-traded US stocks, re-picked every month by how much money changes hands in each (shares traded times price) — including companies that later disappeared, not only today's survivors (with one gap, described under the open questions).
  2. 19 Nineteen signals Measurements built from prices and volumes alone: how much a stock swings, where its price sits against its 200-day average (its average closing price over the last 200 trading days), how it has moved lately, and how it compares with its sector and the market.
  3. 2015 A frozen model A gradient-boosted model — many small decision trees, each correcting the last — learned from 2005–2015, once. It has not been retrained since.
  4. #1 A ranking Each evening it scores every stock and ranks them from favourite to least favourite.
  5. 48 The picks The top tenth, held in equal amounts. It only ever buys — it never bets on a stock falling (what traders call selling short). A stock joins in the top 10% and stays until it drops out of the top 30%, so it is usually held for several days and about a fifth of the list changes each day.

The trade you could actually make

  1. Day 1 · 4:00 pm ETThe market closes.
  2. Day 1 · that eveningThe model ranks every stock.
  3. Day 2 · 9:30 am ETBuy the picks at the open.
  4. Day 3 · 9:30 am ETSell at the open.

Every result on this page is measured that way unless it says otherwise — from the next morning's open to the open after — and against the average stock in the same sector, so a day when the whole market rises counts for nothing on its own. The picks do lean toward market-sensitive stocks, though — ones that rise and fall further than the market — and how much of the result that lean explains is taken up under Does it work?

The latest picks were made on November 4, 2026.

02How the model sees the market

It leans toward stocks that move a lot, and weighs where each one sits against its long-run trend.

Each dot is one of today's stocks. Across: how much it typically moves in a day — its average daily price range over the last 14 trading days, as a share of its price. Up: how far its price sits above or below its 200-day average. The model's current picks are lit. Hover or tap a dot to see which stock it is; click to open it.

the model's current picks every other stock a few extreme stocks, drawn at the chart's edge dashed: the median stock's daily move, and a price right at its 200-day average

This picture needs JavaScript. Explore stocks lists the same stocks as a table.

 

It does not simply buy the most volatile names. How much a stock swings is about a third of what the model pays attention to, and how far it sits from its 200-day average — a common gauge of a stock's long-run trend — about 28%. It weighs the two together, so a volatile stock can rank high or low depending on where it sits; the line under the chart says where today's picks sit.

03Does it work?

On a decade it had never seen, the picks beat their sector peers — by a little, and unevenly.

The model learned from 2005–2015. Everything from January 2016 to September 2026 was new to it: 2,684 trading days on which to check whether its picks did better than the average stock in their own sector. About half of the edge it found may simply come from holding market-sensitive stocks; what the model adds beyond that is not yet distinguishable from zero.

+0.05%a day, on average

give or take 0.02%

That is +4.93 basis points (hundredths of a percent) a day, give or take 1.83 — about 2.7 times its give-or-take away from zero, so luck alone is an unlikely explanation, though not an impossible one. Added up over a year of trading days it comes to roughly +12%, before trading costs.

Every day's edge, added up

2016 – 2026

This chart needs JavaScript; the average above is the same record.

The picks' daily edge over the average stock in their sector, summed day by day (not compounded), before trading costs. Rising stretches are where the edge showed up; flat or falling ones — some of them whole years — are where it did not.

Year by year

the average day in each year; whiskers show its give or take once — twice that is the usual line for “probably not luck”

This chart needs JavaScript.

 
Show the numbers
YearAverage dayGive or take Trading daysDays ahead

What that number is made of

Where the ranking works

Only the top tenth

Below the model's favourite tenth, its ranking stops telling better stocks from worse: the second-best tenth is not reliably better than the middle. Everything rests on the top tenth, which is why the picks are only those names.

When it is earned

Mostly overnight

Most of the edge has shown up between one day's close and the next morning's open — clearly so in 2016–2021; since 2022 it has split more evenly between night and day. The ranking is ready on Day 1's evening, too late for that first night — but the edge carries into the next night too, from Day 2's close to Day 3's open, and the trade above holds the picks through it.

Holding only overnight, from each close to the next open, was tried too: it earns less than trading that often would cost (see ideas that didn't pan out).

Where the size comes from

About half may come from holding market-sensitive stocks

The picks lean toward market-sensitive stocks: ones that rise and fall further than the market when it moves. (A different measure from the daily move plotted earlier, which counts any move, not only those that follow the market.) Such stocks tend to gain more than their sector peers when the market rises. Roughly half of the average day may simply come from that lean, on one way of measuring it, and what is left over is too small, so far, to tell apart from zero.

The lean cuts both ways: the same stocks tend to fall further than their peers when the market falls, so it should cost the picks in a falling market. 2022, a falling year for the market, is the one year below zero — though only slightly, within its give or take.

A second check points the same way. The picks' own returns — not measured against their sector — move about 1.6 times as much as the S&P 500 index of large US companies, as drawn above. Set aside the part that simply follows the index and about +0.014% a day (+1.42 basis points) is left, again too small to tell apart from zero. The two checks measure different things, so their sizes need not match; they agree on that last point.

So it is not yet shown that the model adds anything beyond that lean. The headline above includes it.

What trading costs

Costs eat into it quickly

Each stock swapped in costs a round trip — buying it, and later selling it — and about a fifth of the picks are swapped each day. At a round-trip cost of 0.025%, 0.10% or 0.20% (2.5, 10 or 20 basis points), roughly +0.044%, +0.029% or +0.009% a day is left, against +0.049% before costs, each give or take about 0.018%, as the headline is. At 0.10% or 0.20%, what is left cannot be told apart from zero.

Where the truth falls: the lowest, 0.025%, is about what published studies find for the very largest US companies, and the picks lean toward more volatile stocks, which tend to cost more to trade; the project's working assumption is 0.10%, and 0.20% is a deliberately harsh case. It breaks even near a round-trip cost of 0.24% (24 basis points). The real cost of trading at the open has not been measured, because no real trades have been made.

04Live since July 1

86 live trading days so far, from the same frozen model.

From July 1, 2026, every evening the model scored counts as a live trading day. It is a paper record: each evening's picks are written down and scored as if bought at the next open and sold at the open after, against sector peers. No real trades have been logged yet.

31 of these days were scored after the fact, in catch-up runs — one when the nightly runs were first set up in early August, which filled in the evenings back to July 7, the first with picks, and others after missed nightly runs; it was the same frozen model either way.

Live trading days 86 counted from Jul 1, 2026; the first with picks Jul 7, 2026, the latest Nov 4, 2026
Ahead of sector peers, added up — shown when JavaScript is on  
The average live day — shown when JavaScript is on  
Days the picks came out ahead — shown when JavaScript is on  

The live days, added up

Jul 7, 2026 – Nov 4, 2026

This chart needs JavaScript.

Top: the live days added up, beside the dashed pace the tested decade's average day would have set. Bottom: each day on its own. A day's result arrives two mornings after it is scored, so the newest days have none yet.

Is it the same edge?

Dot: the average day. Thick bar: give or take once. Thin bar: twice — the usual line for “probably not luck”.

This comparison needs JavaScript. The tested decade's average day, with its give-or-take, is under Does it work?

 

How long until we know

86 of about 250 live trading days

About a year of trading days — roughly 250 — is what the live record needs before it can say much either way, and even then it will catch a large miss more easily than it can confirm an edge as small as the tested one. 164 to go: at one a weekday, about 8 more months.

05Today's picks

48 names, picked on November 4, 2026.

What the model holds after its latest run. A stock joins in the top tenth and stays until it drops out of the top 30%, so some of today's picks now rank below the top tenth, though still inside the top 30%. Each card shows the two things the model weighs most: how much the stock typically moves in a day — drawn as a bar, with a tick at the median stock — and where it sits against its 200-day average. Open one to see its history.

The cards need JavaScript. Explore stocks lists every stock with the model's rank beside it.

06The guardrails

Four habits that make it harder to fool ourselves.

Most models that look good on history do so because someone kept adjusting them until they did. These habits stand in the way of that here, and each can be checked on the working pages.

  1. Rules first, results second.Every test's pass-or-fail rule was written down before the test ran, so no threshold was chosen after seeing the answer. Every test and its rule
  2. A test on shuffled data.The whole pipeline was run on data whose outcomes had been shuffled, where there is nothing to find — and it found nothing. A pipeline that finds patterns in noise would have shown it there. The research log
  3. Never retuned.The model has not been adjusted on recent data. Every number on this page comes from the one model, trained once. The model's record
  4. Failures stay on the record.Ideas that did not work are kept and written up, not quietly deleted — a few of them are listed below. The ones set aside

07What we don't know yet

Four open questions.

  • Whether live will match the test.The model never learned from the tested decade, but the people who designed it could see those years, so a record kept going forward is the cleaner check. It is short: about a year of live days is needed before it can say much either way about the tested edge.
  • What trading really costs.No real trades have been logged yet, so the cost of trading at the open is an estimate, not a measurement.
  • A gap in the test data.Stocks without a current sector label were left out of the test — on an average day, about 8% of the stocks in its list. The data vendor labels only companies still listed, so the ones left out include companies that later failed, which could flatter the result, and companies that were taken over, often at a premium, which could work the other way. Which way it went, and by how much, has not been measured yet.
  • Why it varies so much by year.The edge has been uneven: slightly below zero in 2022 (within its give or take), large in 2020 and 2025. A decade is not many years to learn a pattern like that from.

08Ideas that didn't pan out

Tried, measured, set aside.

Six ideas that were tried or weighed and did not make it in. Each shows its verdict; open one for the reason.

  • Finer ways to use the rankingOnly the top tenth carries the edge.

    Weighting names by score, concentrating the picks, splitting them into slices: the top tenth is the only part of the ranking that works, so there was nothing finer to use.

  • Leaning the training toward recent yearsDid slightly worse.

    Did not help — if anything it did slightly worse. (A second version, trained on data up to mid-2025 and on the trade you could actually make, is tracked beside this one each night without being traded; it is not part of any number on this page.)

  • Switching on or sizing by market moodNot reliable.

    Turning the picks up or down with how volatile the market is, or how far apart stocks' moves are, was not reliable.

  • An overnight-only versionEarns less than it costs to trade.

    Buying at each close and selling at the next open catches the part of the edge that shows up overnight, but it trades every name every day, and that earns less than it would cost to trade that often.

  • The model against a simpler rankingToo few days to tell apart.

    Comparing the picks with a plain sort on one measure, such as how strongly each stock moves with the market: too few days to tell the two apart. That comparison now builds up night by night instead.

  • Betting against its least-favourite stocksNot pursued.

    Selling short the bottom of the list was not pursued: below the top tenth the ranking stops telling better stocks from worse, so the bottom is not reliably worse than the middle.

09Go deeper

Under the hood, for the curious.

The working pages behind this story: every test, every caveat and every nightly run, in the project's own vocabulary.

A research project, not investment advice. “qe” is short for quantitative equity: stock research done with numbers. Prices as of November 4, 2026.