How the data works
A full account of where our data comes from, how transactions are scored, and what gets filtered out.
Data sources by market
All data is sourced from official regulatory filings under MAR Article 19 (EU Market Abuse Regulation). Each regulator publishes filings in a different format; InsidersAlpha maintains a dedicated parser for each.
| Country | Regulator | Format | Latency |
|---|---|---|---|
| ๐ฉ๐ช Germany | BaFin | XML / HTML | T+1 |
| ๐ซ๐ท France | AMF | JSON API | T+1 |
| ๐ณ๐ฑ Netherlands | AFM | XML export | T+1 |
| ๐ฌ๐ง United Kingdom | FCA NSM | JSON API | T+1 |
| ๐ธ๐ช Sweden | Finansinspektionen | Nasdaq Nordic API | T+1 |
| ๐ณ๐ด Norway | Finanstilsynet | Nasdaq Nordic API | T+1 |
| ๐ฉ๐ฐ Denmark | Finanstilsynet | Nasdaq Nordic API + PDF | T+1 |
| ๐ซ๐ฎ Finland | FIN-FSA | Nasdaq Nordic API | T+1 |
| ๐ง๐ช Belgium | FSMA | HTML detail pages | T+1 |
| ๐ช๐ธ Spain | CNMV | JSON API | T+1 |
| ๐ฎ๐น Italy | CONSOB (eMarket) | PDF (ESMA form) | T+1 |
| ๐จ๐ญ Switzerland | SER-AG | JSON API | T+1 |
| ๐ฐ๐ท South Korea | DART | XML API | T+1 |
Scrapers run nightly via GitHub Actions. T+1 means filings published today appear in InsidersAlpha by the following morning.
Conviction scoring
Every buy transaction receives a Conviction Score (0โ100) based on four weighted factors:
| Factor | Weight | How it's measured |
|---|---|---|
| 30-day win rate | 25% | % of this insider's past buys that were up 30 days later |
| 30-day avg return | 20% | Average % gain 30 days after purchase, normalised to โ20%โ+20% range |
| 90-day win rate | 35% | % of past buys up 90 days later (stronger medium-term signal) |
| 90-day avg return | 20% | Average % gain 90 days after purchase |
Score thresholds: Elite โฅ80 ยท Strong โฅ60 ยท Average โฅ40 ยท Weak โฅ20 ยท Poor <20
Scores are capped at outlier returns of +200% to prevent penny-stock anomalies from distorting the model. New insiders with fewer than 3 tracked buys display no score.
Signal badges
Four event-driven signals fire independently of conviction score:
Price Dip
The insider purchased after a significant drawdown in the stock price (typically >10% from recent high). Research by Lakonishok & Lee (2001) shows insider buys on weakness carry stronger predictive power than buys at highs.
Repetitive Buying
The same insider made multiple purchase transactions within a 14-day window. Repeated buying at similar price levels signals intentional accumulation rather than a one-off rebalance.
Cluster Buy
Two or more distinct insiders at the same company bought shares within 14 days of each other. Academic meta-analyses (Seyhun 1988, Jeng et al. 2003) consistently show cluster buys outperform single-insider buys on a 90-day horizon by ~4 percentage points.
Pre-Earnings
The purchase occurred 30โ60 days before a known upcoming earnings date โ inside the typical pre-announcement blackout window. This is the most restrictive window insiders operate in, making voluntary purchases especially noteworthy.
Insider ranking
The Top Insiders leaderboard ranks individuals by Conviction Score across all their tracked purchases. To appear on the leaderboard, an insider must have at least 3 recorded buy transactions with tracked post-trade performance data.
Rankings update nightly alongside the data refresh.
What we filter out
Not all filings in regulatory databases represent meaningful market activity. The following are excluded:
- Zero-price transactions โ grants, vesting events, and stock awards where no cash changed hands
- Corporate entity notifications โ where a holding company files without an identifiable individual; the entity is noted as via entity when the underlying PDMR is known
- SELL transactions โ included in the database but excluded from conviction scoring (sells are less informative: insiders sell for many reasons unrelated to outlook)
- Buyback programmes โ company share repurchases are tracked separately in the Buybacks section and excluded from insider transaction analysis
- Parse artifacts โ automated quality checks reject filings where the extracted name matches known garbage patterns (boilerplate text, role descriptions)
Update frequency
Data refreshes daily. GitHub Actions runs scrapers for all 13 markets every night (UTC). New filings published by regulators during the previous 24 hours are collected, parsed, scored, and available in InsidersAlpha by the following morning.
Performance tracking (post-trade returns at 30/90/180/365 days) also runs nightly, updating as each horizon matures.