How this works
It keeps score in public, including when it loses.
Every 10 minutes, a small computer in my house reads 7 public news and social feeds. Sometimes a stock gets talked about far more than usual and no real news explains why. The computer writes that down as a hazard. Stocks like that tend to do slightly worse than the market over the next week. The excitement fades faster than the price. So the computer places a pretend bet against each one with fake money. It closes the bet 5 trading days later. It records every bet forever, win or lose. Right now it is right 58% of the time and averages +0.82% per bet.
Every 10 minutes it checks company filings, press releases, Reddit, StockTwits, and records of what politicians buy and sell. It has collected 64,352 items so far.
A systemd timer polls each source. It removes duplicates with a SHA-256 hash (Secure Hash Algorithm, 256-bit). Then it links each item to a stock ticker. It uses the filing's official company ID where one exists. It never guesses the ticker from the text.
Most 'news' is the same story repeated. About 51% of what it reads gets dropped as a near-copy of something it already saw.
It turns each item into a list of numbers that stands for its meaning. That list is called an embedding. It compares each one against everything from the last few weeks. It drops any item too close to a neighbour before that item can become an alert.
Sometimes a stock gets mentioned far more than its own normal rate. The system looks for a real filing or press release to explain it. If there isn't one, that is a hazard: attention without news.
It turns mention counts into a z-score against that ticker's own recent baseline. A stock that is always noisy does not trip it. It flags a spike that has no primary source inside a 6-hour window. It has found 1,363 hazards across 509 different stocks so far.
It puts a small, equal amount against every hazard priced between $5 and $100. It never places a single large bet. It places dozens of tiny ones, so no single stock can wreck it.
It starts with $1,000 of paper credits. Each day it risks 20% of the balance. It splits that evenly across every stock that qualifies. A 5-day hold recycles about 20% of the money per day. It cannot re-enter the same stock for 20 trading days.
Every bet closes after 5 trading days. It writes the outcome into a permanent record, whether the bet worked or not. That record is the actual product.
It measures returns in trading days, not calendar days. It starts from the closing price at the moment the alert became public. It uses prices adjusted for splits and dividends. It deducts realistic trading costs instead of hiding them in a footnote.
2 loops. The top loop runs every 10 minutes. It decides what is worth noticing. The bottom loop runs once a night. It marks its own homework and places the bets. Nothing here starts by hand.
Roughly 1,000 things read for every bet placed. The bars use a log scale, or the last one would be invisible.
This is the part worth understanding. It explains why the system does not care whether the market goes up or down.
It never bets that a stock will fall. It bets the stock will do worse than the whole stock market. It places 2 bets at once: 1 against the flagged stock, 1 for the market.
If the market crashes and the stock crashes harder, that is profit. If the market rises and the stock rises less, that is also profit. Only the gap matters. That is what "market-neutral" means. It is why a bad week for stocks is usually not a bad week for this.
These are actual rows from the database, best and worst. They are not illustrations. The last column is the only one that matters.
| Stock | Flagged | Price | Stock did | Market did | Result |
|---|---|---|---|---|---|
| PHOE | 2026-07-20 | $36.50 | -45.2% | -0.4% | +44.8% |
| CAST | 2026-06-22 | $9.84 | -43.1% | -0.5% | +42.6% |
| CAPR | 2026-07-27 | $7.00 | -40.0% | +2.5% | +42.5% |
| Stock | Flagged | Price | Stock did | Market did | Result |
|---|---|---|---|---|---|
| REPL | 2026-07-28 | $5.35 | +122.8% | +4.1% | -118.7% |
| REPL | 2026-07-29 | $5.41 | +118.7% | +5.5% | -113.1% |
| SLS | 2026-06-22 | $8.53 | +81.1% | -0.5% | -81.6% |
SLS went up 81% in 5 days while the system was betting against it. That is a short squeeze. It is the single biggest risk here. It is why every bet is tiny and spread across dozens of stocks. One uncapped bet like that would erase 25 ordinary wins.
I built Sentinel to find genuinely new, important news before the market noticed. It did find that news, 227 times. Those alerts turned out to be worth -1.19% over 186 measured cases. That is nothing. The idea was wrong.
The hazard flag was built to throw noise away. That flag was the part that worked. It sat unreported for weeks because I had deliberately kept it out of every screen that could have shown it. The signal was fine. The scoreboard was broken.
This is why the journal exists. It is why the losses are on this page. A system that shows only its wins cannot tell you which half of itself to throw away.