Insiders as a seventh factor in a multi-factor model
The canonical factors of an equity quant fund, value, momentum, quality, low-vol, size, profitability, are tired. They still work, but their signal-to-noise ratio decays each year. Adding a correctly constructed insider factor can contribute a decorrelated selection signal (selection skill validated out-of-sample; net-of-costs alpha is not demonstrated, see /methodologie#disclosure). Here's how to integrate the Sigma score into an existing pipeline in under a day, across 43 regulators (AMF, SEC, BaFin, SIX SER, RNS, and more).
Data schema: what the API returns
Each Sigma filing is a normalised record: id, market (1 of 43 regulators: FR/US/DE/CH/UK/...), transaction and publication dates, ticker, ISIN, CIK (US only), insider name, harmonised role (CEO/CFO/Chairman/Director/Other), nature (Acquisition/Disposal/Option/Award), volume, unit price, total amount normalised to EUR and USD, % of market cap, 100-point composite score. Filings are served at `/api/v1/declarations` with filters `market`, `score_gte`, `pubDate_gte`.
Factor construction
Per ticker, aggregate net buys over the last 60 days, weighted by Sigma score. Normalise by market cap. Z-score cross-sectionally by market and sector (so that a single market or sector doesn't dominate). You get an InsiderZ factor per ticker, updated daily, comparable to your model's other z-scores. Combine linearly (or via a meta-learner) with value, momentum and quality. The filtered Sigma subset (signalScore ≥ 40, cluster, mid-cap, executive role, n=3864) shows a T+90 win rate of 51.5% and a mean return of +2.6% per trade (T+90, not annualized) over 2022-2025; read as upper bound (Bailey-Lopez de Prado deflated Sharpe is negative, see /methodologie#disclosure).
Sizing and turnover
Insider buys are rare, a few hundred high-score filings per month across all 43 regulators combined. Two implications: (1) keep the factor's weight modest in your meta-model (5-15% of total risk is reasonable), (2) lower turnover than for momentum. A 60-90-day carry per signal matches the signal's historical observation window (T+90) in our backtests. A high-score signal that hasn't performed by T+120 days should be exited, the post-filing run-up is typically consumed.
Pitfalls to avoid
Three classic biases. (1) Look-ahead: use `pubDate` (the public date), not `transactionDate` (the market didn't know yet). Sigma exposes both. (2) Survivorship: delisted companies must remain in the backtest at their last known price. Sigma keeps the historical filings of delisted entities, but their price history is no longer available after delisting, so they drop out of the published performance aggregates: control this bias with your own pricing reference data. (3) Cluster trades: one insider splitting a buy across three days isn't three signals. Use the `insiderId` field to deduplicate.
Concrete integration
On the Quant tier (€129/mo), a daily 17:00 UTC cron pulls the last 24h of filings across the 43 regulators in a single call, writes to your data lake, and feeds your morning scoring pipeline. Unlimited webhooks, bulk CSV/Parquet exports, 5 user seats, portfolio attribution. For structured funds, a custom Enterprise tier exposes a full historical Parquet dump (2020+) on S3, refreshed daily.
Getting started
Create a Free account to browse the site (50 profiles/day, read-only). To reproduce our backtests and measure the InsiderZ factor's correlation with your model, API access starts on Pro (€39/mo, 10k req/mo, MCP, 5-year history). Quant (€129/mo) adds bulk Parquet exports and portfolio attribution. Full methodology (formula, bounds, documented biases) on /methodologie. Any question: sales@insiders-trades-sigma.app.