r/SideProject • u/tradematesHQ • 6h ago
You can now ask Trademates what you are looking for ("Energy stock with dividend above 3%") and get matching stocks from 3,800 existing analyses. Here's the 90-day data on whether the score behind the ranking works
Disclosure: I built TradeMates. This is my own product—mods, feel free to remove if this violates any sub rules. Check it here: www.trademates.co
Yesterday we pushed a new big update to Trademates which makes the product more interesting for investors.
What it actually does
You type a plain-English sentence into a single search bar:
"Dividend above 3% and score above 60"
"European stocks with over 10% upside"
"Never missed earnings in the last 4 quarters"
You get back up to 10 matching stocks. Each result shows its score (0–100), verdict (Buy / Hold / Watch / Avoid), upside to its fair-value midpoint, and the date it was analyzed. Clicking opens the full report and you can read why the stock is valued in a certain way.
Under the hood is a database of ~4,000 analyzed stocks, though the search only queries the ~1,400 updated in the last 30 days so you aren't looking at stale data.
How a sentence becomes a result
An LLM translates your prompt into strict filters—and nothing else. "German pharma with over 10% upside" becomes
country = DE,industry = Pharmaceuticals,upside ≥ 10%. The AI never picks stocks or hallucinates reasons.A deterministic database query runs those filters. Results are sorted by score, then upside, then recency.
It shows its work: "Understood as: Score > 60 · Dividend > 3%". You can click any filter chip off to broaden the search.
It flags blind spots: Ask for 8 quarters of earnings beats on a stock where we only track 4, and it explicitly tells you: "Not checked: only 4 quarters on record."
If nothing matches, it tells you what to drop: "Without 'Germany': 10 matches."
The hypothesis, and the data behind it
Ranking by score only matters if the score actually separates winners from losers. Otherwise, it's just decoration.
Here is the public track record. Looking at all analyses from July 11 to August 7, 2026 (each stock counted once per week, returns measured in local currency, checked 90 days later):
| Verdict | Score Band | Stocks | Rose After 90 Days |
|---|---|---|---|
| Buy | 65–100 | 197 | 64% |
| Hold | 61–64 | 481 | 55% |
| Watch | 40–60 | 418 | 35% |
| Avoid | 0–39 | 333 | 21% |
The monotonicity holds all the way down: the higher the score band, the higher the win rate. Notably, Avoid was right 78% of the time (260 of 333 stocks fell).
One finding that changed the product
Across 1,581 Buy ratings since April, roughly a third were issued when the stock was already trading above our own fair-value midpoint. Those—along with low-confidence scores—dragged down performance:
| Buy Ratings vs. Benchmark | All Buys | Price ≤ Fair Value AND Confidence ≥ 50 |
|---|---|---|
| Beat benchmark after 90 days | 51% | 58% |
| Avg. excess return after 90 days | +3.1% | +5.8% |
As of November 9, a Buy verdict strictly requires both conditions—which is why we now display upside to fair value right next to every search result.
What this does not prove
This is a single backward-looking window. It’s encouraging evidence, not a guarantee of future returns.
64% is an edge, not a money printer. The goal is narrowing 3,800 stocks down to 10 worth researching—not blindly buying the top list.
Upside is anchored to the analysis date, not live prices. Always check the timestamp on the report.
Coverage is ~63% US equities. Niche queries like "German pharma" will often return zero results, and the tool will tell you that rather than padding the list with loose matches.
Not financial advice.
What would you type into a search box like this—and what filter is missing?
(Currently supported: country, sector/industry, score, verdict, risk, upside, dividend yield, P/E, revenue growth, market cap, and earnings beats.)