Methodology
How the data flows from SEC EDGAR to this site, what a cluster is, and what we deliberately don't do.
What this site is
Insider Atlas is a descriptive research site built on public SEC filings. Most insider-data sites show you transactions and let you draw your own conclusions; Insider Atlas shows you the transactions, what the academic literature has found about patterns like them, and where the two diverge. It never turns those records into a recommendation or a security-level outcome — it says “3 insiders bought $X of stock in the same week,” cites the papers that studied that pattern, and stops there.
What this site is NOT
This is the part you should read twice.
- Not investment advice. Nothing here is a recommendation to buy, sell, or hold any security. No page on this site tells you what to do with money.
- Not a prediction engine. There are no forecasts, no backtests, and no security scores. The literature pages rank empirical support in published research, not future performance.
- Not a trading tool. The data is at least a day old by construction (see the update lag below), and the academic evidence says most of what insiders file is uninformative anyway (Cohen, Malloy & Pomorski 2012).
- Not a substitute for the filings. Every row links to its EDGAR source; when in doubt, the filing is the truth and this site is a lossy summary of it.
If a cluster event on this site looks exciting, the correct next step is to read the underlying filings and the cited papers — not to trade.
Data flow and provenance
Everything on this site comes from a daily batch pipeline against SEC EDGAR — no real-time feed, no vendor data, no scraping of other aggregators. The provenance chain for any number you see is:
SEC accession number → EDGAR archive URL → normalized JSON in the repository → this page.
- 6pm ET, weekdays — a scheduled job fetches the day’s Form 4 index from EDGAR
(
master.YYYYMMDD.idxunder the daily index). - For each Form 4 / 4A accession, the pipeline fetches the primary ownership XML document from the EDGAR archives.
- The XML is parsed (Table I non-derivative + Table II derivative rows, footnotes,
relationship flags) and normalized into a versioned JSON schema. Every record
keeps its accession number and a resolvable
sec.govarchive URL. - Normalized filings are committed to the repository as
data/form4/YYYY-MM-DD.json— an append-only public audit trail. - Company metadata (
ingest/company_metadata.py) enriches each issuer with its SIC code, SIC description, sector mapping, and exchange fromdata.sec.gov/submissions/(cached 7 days). - Cluster detection (
ingest/cluster_detector.py) runs over the ingested window, writing one file per ISO week todata/clusters/. - Aggregation (
ingest/aggregator.py) produces the per-company, per-insider, per-sector, and site-wide JSON the pages are built from. - The static site is rebuilt from the committed JSON. What you see is exactly what is in the repository.
The pipeline respects SEC fair-access rules: at most 10 requests per second (we run at 9 with backoff on 429/503) and a User-Agent that identifies the project and a contact address.
If you find a row you can’t trace to a filing, that’s a bug — please report it.
Update lag
Timeliness is bounded in two places, and we disclose both rather than pretend otherwise:
- The SEC’s side: Section 16 requires a Form 4 to be filed within 2 business days of the transaction. A trade executed Monday can legally surface Wednesday evening.
- Our side: we re-ingest once per day (~6pm ET, weekdays) and rebuild the site from the committed data. Every page carries a “Data as of” stamp; there is no real-time feed and no LIVE indicator anywhere, because neither would be honest.
In the worst case a transaction appears here roughly three business days after it happened. Amended filings (Form 4/A) can also restate transactions from much earlier dates — cluster files for past weeks may therefore change when amendments arrive.
Cluster definition (v0.2)
A cluster event is: 3 or more distinct insiders at the same issuer making same-direction trades (all acquisitions or all dispositions) within the same ISO calendar week, with total reported value of at least $100,000.
The detection algorithm, in the order it runs:
- Every transaction is bucketed by (ISO week of trade date, issuer CIK).
- Routine transactions are filtered out first — codes
A,D,F,I,M(grants, dispositions to the issuer, tax withholding, discretionary plan moves, option exercises under Rule 16b-3). Detection runs on the opportunistic remainder. - Buckets with mixed direction after the routine filter (some insiders acquiring, some disposing) are rejected outright.
- Buckets with 3+ distinct insider CIKs and ≥ $100k total reported value become cluster events.
- A bucket whose activity is entirely routine is still evaluated over the routine
transactions, and — if it qualifies — surfaces as a routine-only window
(
routine = true). These are excluded from every headline cluster count and shown only behind a drill-down, because the literature finds them uninformative.
Notes on the construction:
- The 3-insider / same-week construction follows Lakonishok & Lee (2001), whose “strong buy” definition required agreement across multiple insiders.
- The routine-code exclusion is a lightweight proxy for the Cohen, Malloy & Pomorski (2012) finding that more than half of Form 4 activity is routine and carries essentially no documented return association. (Their original classifier uses 5-year per-insider trading histories; the code-based proxy is the locked v1 compromise.)
- Concentration tiers on cluster cards (WATCH 3–4 insiders, ELEVATED 5–7, HIGH 8+) describe the insider count only. They are labels, not scores.
- Joint filings: one Form 4 can be filed jointly by several related reporting owners (a fund, its adviser, its general partner). The shared transactions are counted once in event dollar totals, but each co-filer counts as a member — so a single joint filing can technically satisfy the 3-insider threshold with related entities. The “source filings” count on each cluster page shows how many independent filings back the event; treat 1-filing clusters skeptically.
- Implausible values: occasionally a filer enters the aggregate dollar amount in both the shares and price fields, producing trillion-dollar rows. Any single transaction over $10B is flagged, shown with its provenance, and excluded from all dollar totals.
- Rule 10b5-1 plan trades are flagged, not excluded — you can filter them yourself.
There is no SEC definition of a “cluster”; other sites use windows from 7 to 90 days. Ours is deliberately the tight end, and the definition is versioned — if it changes, the version stamps on cluster pages change with it.
Routine vs opportunistic
The single most important split on this site, exposed everywhere rather than buried:
| Routine | Opportunistic | |
|---|---|---|
| Codes | A D F I M | P S G and the rest |
| Typical reality | scheduled grants, tax withholding, option exercises | discretionary open-market buys and sells |
| Literature verdict | essentially no information (C/M/P 2012) | where the documented associations concentrate |
| Treatment here | badged routine, excluded from headline cluster counts, visible on drill-in | drives cluster detection, sector flows, and KPIs |
All dollar aggregates on this site (sector heatmap, KPI chips, company/insider flow columns) use opportunistic transactions only, so a wave of January option grants doesn’t masquerade as conviction buying.
Heatmap metric
Each sector cell’s fill encodes net open-market flow ÷ gross flow over the trailing
7 days, using non-routine codes only: (buys − sells) / (buys + sells), clamped to
[−1, +1]. Equal cell sizes are deliberate — the grid compares direction and intensity
across sectors, not market size. Color is never the only encoding: every cell carries a
signed mono caption.
Dates
Form 4 has at least four dates. We keep them separate and you should too:
| Date | Meaning |
|---|---|
| Trade date | When the transaction executed (drives cluster-week bucketing) |
| Filing date | When EDGAR accepted the form (drives public availability, 2-business-day rule) |
| Signature date | When the form was signed — never used as trade date |
| Data as of | The last completed batch on this site |
13F institutional holdings (Phase 3)
Quarterly Form 13F-HR reports, ingested per quarter from EDGAR
(ingest/13f_quarterly.py). Every 13F-HR filed in the 45-day window after
quarter-end is scanned (cover page + summary), and the top 50 managers by
reported 13(f) value get their full information table ingested, plus their
previous-quarter report for change classification. Positions are matched
across quarters by (CUSIP, put/call flag, shares-vs-principal type) after
summing rows split by investment discretion; each position is classified
NEW / INCREASED / DECREASED / UNCHANGED / CLOSED. When no previous-quarter
report is matched, changes show as no data — never as “no change”.
13F cluster events are the Form 4 analog with the manager as the entity and the quarter as the window: 3+ tracked managers reporting the same position as NEW or INCREASED in the same quarter, over open equity positions only (no puts/calls, no principal-amount rows) with a $1M combined added-value noise floor (Form 4 uses $100k; 13F positions run an order larger). The framing is always “N managers added X” — with a 45-day lag and quarter-end snapshots, a shared add is routinely index membership or style flow (Lewellen 2011), not coordinated conviction.
Standing 13F caveats (rendered on every holdings page, not just here): 45-day filing lag; long-only US-listed 13(f) securities — no shorts, no international, options too partial to interpret; positions are quarter-end snapshots that miss intra-quarter round trips; only managers over $100M in 13(f) securities file, and positions under 10,000 shares and $200,000 may be omitted. Sector labels on manager pages are joined from the Form 4 pipeline’s issuer metadata, so their coverage is partial by construction.
What 50 years of literature supports — the full synthesis
This is the complete signal-support synthesis the site is built from, reproduced in full rather than distilled. Every rank below describes empirical support in published research — the strength and durability of documented historical associations — never a forecast, score, or recommendation. The papers themselves are annotated on the literature pages.
Empirical support ladder
| Rank | Pattern (as studied) | Published support | How this site handles it |
|---|---|---|---|
| A | Opportunistic open-market purchases (Cohen, Malloy & Pomorski 2012 style) | Strongest modern evidence | Routine/opportunistic labels everywhere; never collapsed into raw “buy” |
| A− | Cluster purchases (≥2–3 distinct insiders) | Strong, multi-decade (Lakonishok & Lee 2001 onward) | Insider counts, roles (CEO/CFO/director), and window length shown on every cluster |
| B | Purchase-intensity net purchase ratio, especially small caps and high book-to-market after controls | Strong historical (Seyhun 1986; Lakonishok & Lee 2001) | Size context noted; no security-level scoring built on it |
| B− | Purchases at high-information-asymmetry firms (R&D-heavy, illiquid) | Strong but conditional (Aboody & Lev 2000) | Sector context shown; asymmetry never turned into a score |
| C | Aggregate insider buy ratio as market-level timing | Moderate (Seyhun 1988/1992) | Treated as macro context only, never per-security |
| C− | Form 144 planned sales / non-execution | Emerging, thinner peer review | Descriptive join to Form 4 if ever added; uncertainty labeled |
| D | Average Form 4 sales | Weak, often null (Lakonishok & Lee 2001; Jeng, Metrick & Zeckhauser 2003) | Liquidity/diversification caveat on every sales view; no “insider dumping” alarmism |
| D | Routine calendar sales and most 10b5-1 plan sales | Noise in the return-association literature | Filtered from headlines or flagged as plan trades |
| E | Raw “more 13F holders this quarter” | Ambiguous, often uninformative (Lewellen 2011) | Separate 13F module with index-membership and size caveats |
| E | Extreme multi-institution buy herds | Short-run flow with documented long-run reversal risk | Framed as crowding description, never “smart money” |
What the literature treats as noise
For return association in published research, the following are noise, and this site never headlines them:
- Isolated small-dollar Form 4 sales after large option exercises.
- Routine annual diversification sales.
- A single large-shareholder secondary sale without officer participation.
- Dollar-weighted measures dominated by one block trade.
- Equal-weighted small-cap abnormal returns quoted without liquidity and cost adjustment.
- 13F ownership-percentage changes that simply track index reconstitution.
The ten principles this site is built on
The synthesis distills into ten commitments, all of them visible in the UI:
- Buy ≠ sell asymmetry is a first-class UI fact, not a footnote.
- Size stratification context accompanies any return-association claim quoted from the literature.
- Routine vs opportunistic flags appear wherever the data allow.
- Cluster definition transparency: N insiders, window length, and included roles are stated and versioned (v0.2, above).
- Form-type literacy: Form 4 is an executed trade, Form 144 is an intent, 13F is a quarterly snapshot — never conflated.
- Horizon honesty: announcement-window reactions (Brochet 2010), multi-month drift, and implementable-after-costs results (Seyhun 1986; Jeng, Metrick & Zeckhauser 2003) are different findings and cited as such.
- No survivorship shortcuts: quoted results come from delisting-aware samples, reported both equal- and value-weighted where the papers do.
- No productized backtest hero charts: the site’s job is context for public data, not selling a strategy.
- The ladder of papers is citable end-to-end — a reader can move from Jaffe (1974) → Seyhun (1986) → Lakonishok & Lee (2001) → Jeng, Metrick & Zeckhauser (2003) → Cohen, Malloy & Pomorski (2012) without marketing mythology.
- The dead-cat-bounce callout sits next to every sales visualization: sales often reflect liquidity and diversification, not a forecast of decline.
One-sentence takeaway
Across five decades of published research, insiders’ open-market purchases — especially non-routine, multi-insider clusters at smaller, high-asymmetry firms — carry the most durable documented associations; average sales and raw institutional headcount changes largely do not.
What we deliberately don’t do
- No forecasts, backtests, or security scores. The literature pages rank empirical support in published research, not company-level outcomes.
- No fake liveness. Every data view carries a “Data as of” stamp; there is no green LIVE dot anywhere.
- No sell-side alarmism. Average insider sales are not a reliable negative signal (Lakonishok & Lee 2001; Jeng, Metrick & Zeckhauser 2003) — sales visualizations on this site always carry that caveat, and sell-direction cluster pages carry it too.
- No non-public data. If it isn’t in an EDGAR filing, it isn’t here.
What makes this different
| Capability | OpenInsider | HedgeFollow | WhaleWisdom | Insider Atlas |
|---|---|---|---|---|
| Form 4 ingestion | Yes | Yes | Yes | Yes |
| 13F-HR holdings | No | Partial | Yes (paid) | Yes (free, quarterly) |
| Cluster detection | Basic filter | No | No | First-class |
| Routine vs opportunistic split | No | No | No | Yes (Cohen/Malloy/Pomorski) |
| Annotated academic bibliography | No | No | No | Yes (20 papers) |
| Sector heatmap | No | No | No | Yes (grid v1) |
| Insider profiles | Basic | No | No | Career + transaction history |
| Mobile readable | Poor | OK | OK | Card-stack default |
| Public provenance (EDGAR link per row) | Partial | No | No | Every row |
| Cost | Free | Freemium | Paid | Free |