Every big move in a US stock worth $2 billion or more gets one label after the close. The day's labels are fingerprinted and published before the next open, then scored in public 5 and 21 trading days later. Nothing can be quietly deleted later: every label counts.
Live from the public ledger. Each day's file gets a SHA-256 fingerprint, chained to the day before, so no past label can be changed without breaking every link after it.
The verdict stays at not enough scored labels yet until there are at least 300 scored labels of each kind and the difference is statistically significant (t ≥ 2, with moves grouped by week or month so one busy day can't count hundreds of times). We publish it either way. Check the chain yourself — one Python file, no packages.
Moves of at least 2 standard deviations of the stock's own recent behaviour and at least 3%, after taking out the market.
fact company news — an SEC filing, earnings that moved it hard. flow no company news — index changes, fund flows, rotation, tax selling.
The day's file is hashed into a public chain. The labels themselves go public 30 days later — anyone can check they match.
Real news tends to keep moving a stock; no-news moves tend to stall. Did fact moves keep going further than flow moves? The scorecard shows the answer, good or bad.
{"ticker":"EXAMPLE","date":"2026-10-05","dir":1,"z":3.4,"label":"fact",
"reasons":["8-K 1.01 material agreement"],"window":["2026-10-01","2026-10-05"],
"version":"ff-1"}
The format of one label (an illustration, not a real record).
The public chain, labels after 30 days, the scorecard.
Tonight's labels, by email, web and API.
One label for one ticker, paid per request — built for agents that need to know why something moved.
The week's biggest moves and what was really behind them.
Paid plans open once the scorecard has a verdict. Prices may change before launch.