Home

Methodology

How ThickerPeek works: which sources we ingest, how we score sentiment, which models we use for digests + theses, and how often everything refreshes. Honest about what it is and what it isn't.

Data sources

News: Yahoo Finance RSS per ticker (free, ~10–30 articles per stock per day), supplemented by Finnhub company-news endpoint. Duplicates detected via title-hash and SHA-256 of the URL.

Earnings + analyst data: Finnhub free tier (60 calls/min). Earnings calendar, EPS history, analyst snapshots, price targets, rating changes, insider transactions, insider sentiment.

Financials (income / balance / cashflow): Finnhub /stock/financials-reported, stored as raw line-item JSON because companies report different concepts (US-GAAP vs IFRS).

Holders + options chain + key stats: Yahoo's unofficial quoteSummary endpoint. Best coverage for US-listings; EU-listings are inconsistent.

Macro: FRED (St. Louis Fed) for US yields, fed funds, VIX, oil. Yahoo for EU indices (AEX, DAX, CAC, FTSE) — TD's free tier rejects EU data.

Prices: Yahoo daily candles for end-of-day stock prices. No real-time intraday — we don't run an execution platform.

AI layer

Sentiment + materiality classifier: regex-based template-headline matching. No LLM — deliberately chosen for speed + cost + reproducibility. ~70% accuracy on finance headlines tested against a manually labeled set. This is NOT full-article sentiment analysis; it's rapid headline bucketing.

Daily AI digest per stock: Anthropic Claude Haiku 4.5 (default; configurable at /settings/ai). Input: last 24h headlines + materiality scores + recent earnings. Output: 200-500 word summary, sentiment call, flagged risks, direction (warming/stable/cooling). ~€0.001-0.003 per digest.

Theses (bull/bear): Claude Sonnet 4.5 for heavier thesis snapshots. Generates short summary + long version + bull case + bear case + pivot-from-previous. Regenerated on demand or via cron when digest direction shifts strongly from previous.

Decisions engine top-5 setups: deterministic filter (RSI ∈ [35,70], conviction ≥50, earnings ≥3d, etc.) across all 165 stocks → ranked top-5 → Claude writes entry plan per setup. No AI in the ranking itself — only in the written explanation.

Per-stock Q&A: single-shot Haiku call with the full stock context (digest, news, financials, analyst, insider, thesis) pre-injected. No tool loop, no retrieval — feed all relevant data, get a focused answer.

Refresh cadence

News collection: daily 22:30 CET (after US close + before EU open next day). ~5,000 articles/day.

Classify (sentiment + materiality): every 10 min, automatic on newly unclassified articles.

Digests: daily 22:35 CET, one per stock with activity in the last 24h.

Decisions engine: daily 22:45 CET on weekdays. Top-5 setups for the next trading day.

Earnings + analyst snapshots: daily 06:00 CET via fundamentals sync.

Financial statements + holders: weekly (quarterly filings don't change more often).

Macro (FRED + Yahoo indices): daily 04:00 CET.

Alerts: after each classify batch (~10 min) + after each price-sync (~5 min in market hours). 4h cooldown per alert.

Privacy + isolation

All data is per-user isolated at the DB level via row-level user_id filtering. Watchlists, theses, alerts, notes — all yours, not someone else's.

Shared content (digests, news summaries, sentiment scores) is one per symbol — not per user. That keeps AI costs radically low (one digest serves all watchers of a stock) and means we DON'T show per-user AI spend — it's shared.

No third-party analytics. No Google, no Facebook, no Hotjar. Anonymous activity logs with weekly-rotated session IDs for product debugging, nothing more.

What it ISN'T

Not investment advice. Not registered as an investment advisor with the AFM. AI output is research, not recommendations. Decisions are your responsibility.

No execution. We don't route orders, open positions, or close losses. For execution, find a broker.

No real-time data. Prices are EOD candles; news ingest runs on a 5–30 min delay. For day-trading this is the wrong tool.

No perfect coverage. Yahoo + Finnhub have gaps for non-US listings, recently published tickers, micro-caps. We leave empty sections empty rather than guess.

AI can be wrong. Sentiment classifier ~70%. Digest AI hallucinates less than a chatbot because we feed structured input, but it's still a statistical model. Citations + raw data are there for verification.