Methodology
Last updated: 2026-04-25
This page documents how NewsProbe.io produces the analytics shown on the Service. We publish this for transparency, in line with the principles of MAR Art. 20 on objective presentation of investment analysis.
News ingestion
We pull news headlines from Finnhub on a recurring schedule. Each article is deduplicated by source URL.
AI summaries
Each article is processed by an Anthropic Claude model (Sonnet 4.6 at the time of writing). The model is instructed to produce a 2-sentence neutral summary and to extract referenced tickers with a relevance score from 0 to 1. The exact prompt is versioned in our repository at src/mastra/prompts/news-analyst.md.
Sentiment score
The same model assigns a sentiment score on a continuous scale from −1 (strongly bearish) to +1 (strongly bullish). The score reflects the article's tone toward the referenced tickers. It is not a price prediction.
Per-ticker daily sentiment shown on ticker pages is a relevance-weighted average of articles published that day.
Theme clustering
Articles are embedded with OpenAI text-embedding-3-large (1536 dimensions). Embeddings are stored in a Postgres pgvector index. A nightly clustering job groups articles around centroids and surfaces the resulting "themes" on /themes.
News-impact statistics
For each ticker, we compute how the price moved at H+24, H+72, and H+7d after each historical news event with relevance ≥ 0.6, using daily bars from Polygon.io. Aggregate statistics ("on $X, news with sentiment ≤ −0.5 produced an average −1.8% over 24h") are computed by simple averaging over the displayed period.
These statistics are descriptive of the past, not predictive of the future. They reflect a small sample size and ignore many confounding factors (overall market direction, sector rotation, earnings windows). Do not use them as a trading signal.
Trade Reviewer
Closed trades you log in your Journal are sent to a Claude Sonnet 4.6 agent that returns a structured analysis: a score (0–100), identified behavioral biases (from a fixed taxonomy of 8: FOMO, revenge, over-leverage, no-stop, early-exit, chasing, confirmation_bias, overconfidence), and lessons. The exact prompt is versioned at src/mastra/prompts/trade-reviewer.md.
The Reviewer is instructed never to recommend future trades. A regex sanitizer additionally strips forward-looking language from its output.
Limits and known biases
- AI models can hallucinate. We mitigate via low temperatures and structured-output validation, but errors do occur.
- Sentiment scoring depends on training data and may be skewed for less-covered or non-English-language tickers.
- News-impact statistics are sensitive to small sample sizes; we display the sample count alongside the average.
- Polygon free-tier daily bars do not include intraday context.
Reporting an issue
If you spot an inaccurate summary, sentiment score, or analysis, please report it at feedback@newsprobe.io with the article URL or trade ID.