I

I tracked 3,519 stock picks from 23 Substacks – who makes money?

Hacker News

I tracked 3,519 stock picks from 23 Substacks – who makes money?

I subscribe to 23 paid investment newsletters on Substack (~$9,600/year). I couldn't keep up with reading them all, so I built a system to extract and evaluate every stock pick. *The pipeline:* - Crawls articles from Substack - Extracts high-conviction stock picks using Gemini's structured output — filters out casual ticker mentions and only counts calls where the author dedicates real analysis, specific data, or price targets - Tracks returns at 1d, 7d, 15d, 30d, and 60d post-publication using yfinance - Calculates alpha vs sector-specific ETF benchmarks (SOXX for semis, IGV for SaaS, XLF for financials, EWJ for Japan, SPY as fallback) - Deduplication: same author, same ticker within 14 days = one call. Cross-author calls are independent Total dataset: 3,519 high-conviction calls from 22 authors over 1 year. *Interesting technical challenges:* 1. AI extraction accuracy. Gemini is surprisingly good at identifying whether an author is making a real call vs. just mentioning a ticker in passing. We tag calls with conviction level (high/low) and direction (bullish/bearish). To validate this, we spot-checked against manual reads and cross-verified with alternative model outputs. Not perfect, but consistent enough to be useful. 2. Custom domain handling. Many Substack authors use custom domains (e.g., collyerbridge.com, lordfed.co.uk) which sometimes trigger Cloudflare challenges. We fall back to headless Playwright when the standard HTTP client gets blocked. 3. Benchmark selection. A naive "did the stock go up?" metric is meaningless in a bull market. We map each ticker to a sector ETF benchmark, so alpha = position return minus benchmark return over the same period. This separates genuine stock-picking skill from just being long in a rising market. 4. Deduplication logic. Authors often revisit the same thesis across multiple articles. Without dedup, a single stock mentioned in 5 articles would count as 5 independent "calls." We use a 14-day window per author per ticker — only the first mention counts. *Some findings (for context, not the point of this post):* - Top performer averaged +14.9% at 30d and +26.7% at 60d on long calls - The most expensive newsletters ($1,000+/year) were not the best performers - Authors with fewer, more targeted calls (15-80) tended to outperform those with 300+ calls - 30d vs 60d rankings shift significantly — deep value investors look much better at longer horizons - Short calls were harder for almost everyone *Stack:* Python, SQLite, Gemini API (structured output), yfinance, Playwright (optional) I wrote a more detailed breakdown with charts as an X thread: https://x.com/pyhrroll/status/2027374283669066045?s=20 Happy to discuss the methodology, architecture, or share the extraction prompts. The pipeline is ~2,000 lines of Python if there's interest in seeing the code.

Share card

Actual performance

4points
2comments
Did not reach leaderboard

Launch Intel predictions

Analyze your own launch →
Indie HackersFits the IH revenue-focused audience · Strong signals: para, gemini · Missing: supports, reddit linkedin, podcasting
97%97% predicted probability of success on Indie Hackers, based on ML models trained on real launch data.
best fitHighest predicted score across all platforms for this description.
Product HuntOn track for Day 1 leaderboard · Strong signals: model, new, context · Missing: mac, agents, macos
79%79% predicted probability of success on Product Hunt, based on ML models trained on real launch data.
Hacker NewsStrong engagement from HN community · Strong signals: lua, ide, pipe · Missing: https docs, excited, just released
59%59% predicted probability of success on Hacker News, based on ML models trained on real launch data.
nativeThis product was originally launched on this platform.
AppSumoMay struggle as an AppSumo deal · Strong signals: calls · Missing: plus, platform, intuitive
48%48% predicted probability of success on AppSumo, based on ML models trained on real launch data.
TrustMRRLess likely to generate early MRR · Strong signals: para · Missing: mobile apps, ios, personal
39%39% predicted probability of success on TrustMRR, based on ML models trained on real launch data.
Acquire.comPre-revenue stage for this audience · Strong signals: saas · Missing: arr, mrr, revenue
15%15% predicted probability of success on Acquire.com, based on ML models trained on real launch data.
BetaListMay not resonate with beta-testers · Strong signals: paid · Missing: web3, chat, crypto
0%0% predicted probability of success on BetaList, based on ML models trained on real launch data.

Incorrect prediction on native model

Similar products

Sportfolio.Money
Sportfolio.Money24%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Football picks stock market game

Indie Hackerscommitment-side-project
Us
Using Tensorflow to make stock picks like Jim Cramer51%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Using Tensorflow to make stock picks like Jim Cramer

Hacker News1
I
I Made an Extension That Makes You Money40%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

I Made an Extension That Makes You Money

Hacker News2
I
I analyzed 50 directories to see what makes money35%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

I analyzed 50 directories to see what makes money

Hacker News2
Ng
Ngx_pagespeed module for Ubuntu stock Nginx63%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Ngx_pagespeed module for Ubuntu stock Nginx

Hacker News4
De
Descriptiv – what's causing a stock to move53%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Descriptiv – what's causing a stock to move

Hacker News4
So
Socio.Stock53%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Socio.Stock

Hacker News2
balbottom
balbottom25%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Ban Stock

Indie Hackers
Ban Stock
Ban Stock25%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Ban Stock

Indie Hackers
Alpha Profitable
Alpha Profitable60%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Discover the Weekly Top 10 Stock Picks for Optimal Return

Indie Hackers1$200/mofinance