SEC Form 4 Insider Trading Screener: Build, Filter, Trade
You can wake up to a screen full of Form 4 filings and still have no idea what's tradable. One insider is buying, another is exercising options, a third is filing a tax withholding, and your feed makes them all look equally important. A sec form 4 insider trading screener only works when it behaves like a trading system, not a news ticker.
That distinction matters because the SEC's Form 4 is the raw input for insider analysis. It must generally be filed before the end of the second business day after a transaction, and it reports the transaction date, security type, price, amount, ownership nature, and post-transaction holdings, which is why it's the foundational raw input for insider-trading screeners (SEC Form 4 data and guidance). The filings are also high-volume, with the SEC's insider-transaction datasets spanning January 2006 through June 2026 and commercial providers estimating roughly 150,000 to 200,000 Form 4 filings per year across about 5,000 to 6,000 domestic issuers (SEC insider transactions datasets).
Why Most Form 4 Screeners Fail Before Lunch
A bad screener doesn't fail because the data is wrong. It fails because it treats every filing like a signal, so the trader gets buried under grants, option exercises, gifts, and tax-related disposals before the market opens. That's how a useful idea turns into a cluttered inbox.
A sec form 4 insider trading screener has to do three things well: separate voluntary open-market buying from mechanical transactions, translate activity into dollar conviction instead of raw share counts, and rank the result by whether the position is tradeable. If a screen can't do those three things, it mostly produces noise.
Practical rule: if you can't explain why a filing reflects discretionary buying instead of compensation mechanics, don't trade it.
The default mistake is to sort by buy and sell counts. That looks tidy in a marketing screenshot, but it mixes the strongest signal on Form 4, Code P, with a pile of irrelevant entries. A single open-market buy from a CFO can matter more than a dozen lines of compensation activity because the filing is telling you something different about capital allocation, not just ownership mechanics.
The right way to think about the feed is infrastructure. Parse the fields, normalize the units, then apply filters in a sequence that compounds signal rather than diluting it. The best screens don't start broad and stay broad. They start with clean transaction type, then move to who bought, then to how much they bought, then to whether the market can absorb the trade.
The Form 4 Fields and Codes That Actually Matter
The fields that matter most are the ones that tell you whether the insider made an economic decision. On Form 4, the headline share count is not enough. The work starts with the transaction code, the reporting owner's role, the price paid, the post-transaction holdings, and the footnotes that explain whether the trade was discretionary or mechanical (How to read SEC Form 4).
Read the codes before you read the shares
Code P is the cleanest bullish signal, because it reflects an open-market purchase. Code S is an open-market sale, but it needs context because sales are often routine diversification or plan-driven activity. Code F usually reflects tax withholding, Code M is an option exercise, Code G is a gift, and derivative activity belongs in the context bucket, not the primary signal bucket (SEC Form 4 guidance; transaction code hygiene guidance).
The role matters just as much. A CFO purchase generally deserves more attention than a director purchase because it comes from an operating insider with direct visibility into capital allocation, margins, and reporting cadence. A 10% owner can also matter, but the motivation can be different, especially when the filer is a fund or a control investor.
The price column is where a lot of false confidence dies. A purchase of a low-priced stock can carry more conviction in dollars than a much larger share count in a high-priced stock.
That's why dollars beat shares as the first conviction filter. Share counts are incomparable across issuers with different prices. A trade of the same dollar size means something very different in a cheap stock than in a high-priced one. The post-transaction holdings field matters too, because it shows whether the insider is building, trimming, or just moving around vesting-related paper.
| Form 4 Transaction Codes: Signal vs. Noise | |||
|---|---|---|---|
| Code | Description | Signal Class | Screener Action |
| P | Open-market purchase | Strong signal | Keep |
| S | Open-market sale | Conditional signal | Keep only with context |
| F | Tax withholding disposition | Noise for conviction screening | Exclude |
| M | Option exercise or conversion | Mechanical unless paired with retention | Exclude from core buy screen |
| G | Gift | Non-economic transfer | Exclude |
| D | Disposition to issuer or derivative-related disposition | Usually structural | Exclude from core buy screen |
The Core Filter Stack for Real Insider Conviction
A usable screener behaves like a funnel. Every rule removes something that looks interesting but doesn't trade well, or doesn't mean what it appears to mean. If you apply the filters in the wrong order, you end up optimizing for volume instead of edge.
Start with transaction hygiene
The first filter is simple. Include Code P only, and exclude pre-scheduled 10b5-1 activity plus derivatives. The reason is obvious from the trading perspective. You want insider discretion, not a mechanical calendar. If the insider didn't decide in the moment to allocate capital, the market signal is thinner.
Then narrow the reporting owner universe to insiders who usually matter most for operational read-throughs, such as CEO, CFO, COO, President, and 10% owners. The SEC's own filing framework makes those roles visible on the report, and the role hierarchy is one of the few ways to separate casual ownership changes from conviction buys (SEC Form 4 instructions).
Add size and liquidity filters
Next, use dollar value floors instead of share thresholds. Dollar floors adapt to share price and avoid the trap of calling a large share count meaningful when the actual capital commitment is small. Then add average daily liquidity and float constraints so the alert can be entered and exited without moving the stock.
A tradeable alert should also be judged against the insider's own history. A small purchase from a normally inactive executive can matter more than a routine buy from someone who accumulates constantly. That's where a transaction-to-activity ratio helps. It flags whether the current purchase is large relative to the insider's normal behavior, which is often more informative than the raw print.
Tradeable means two things, not one. It has to be informative, and it has to be executable.
Finally, layer in cluster buying. When two or more insiders buy inside a short window, the signal often improves because it reduces the odds that you're staring at a one-off personal portfolio decision. The important thing is not to treat cluster activity as a magic filter. It works best after code hygiene, role selection, dollar thresholds, and liquidity checks have already cut away the junk.
Example Queries for Different Watchlist Styles
A good screener doesn't need to be rewritten every time you change your universe. It needs different settings. The same core logic can behave very differently depending on whether you're watching mega-cap names, growth stocks, or thin micro-caps.
Large-cap and mid-cap setups
For an S&P 500 watchlist, the screen can be tighter because liquidity is usually better. A practical configuration might look like P only, roles CEO/CFO/President, min $250,000, cluster yes, liquidity high, weekly review. In a large-cap universe, single-insider buys can still matter, but the workflow is usually built around a smaller number of alerts and a more selective cadence.
For a mid-cap growth basket, loosen the dollar floor and pay more attention to follow-through. A CFO purchase in that universe often carries more interpretive weight than a board-level buy because the market expects growth companies to have more volatility in conviction and more frequent technical noise. That's where the screen has to separate genuine accumulation from ordinary compensation flow.
Small-cap and thematic baskets
Small-cap micro-caps under $300M market cap need a different posture. Liquidity filters become more important than role filters, because a great-looking insider buy can still be untradeable. In that universe, cluster buying tends to matter more than a single large print, but only if the names can absorb the trade.
For a thematic basket, like AI infrastructure, the screen should be built around the theme's liquidity reality instead of the theme's narrative quality. If the universe is narrow, a modest purchase can surface more quickly than in a broad market scan. That means the cadence can shift from daily to weekly when volume is low, or stay daily when filings are frequent enough to justify it.
| Sample Filter Configurations by Watchlist Style | |||||
|---|---|---|---|---|---|
| Watchlist | Min $ Bought | Transaction Codes | Roles | Cluster Rule | Cadence |
| Large-cap | Higher floor | P only | CEO, CFO, President | 2+ insiders | Daily or weekly |
| Mid-cap growth | Moderate floor | P only | CEO, CFO, COO | 2+ insiders | Daily |
| Small-cap micro-cap | Higher liquidity sensitivity | P only | CEO, CFO, 10% owner | 2+ insiders within a short window | Weekly if volume is thin |
| Thematic basket | Flexible by liquidity | P only | Senior officers | Cluster preferred | Daily or weekly |
What the Research Says About Insider Purchase Returns
A clean Form 4 screen can produce a tradable signal, but the edge depends on how the trade is defined and executed. A University of Amsterdam study found average abnormal returns of about 2.163% from the filing date through four days after for purchase filings. Its stricter clean sample still showed 2.037% (University of Amsterdam study).
A separate 2025 finance paper reaches a more practical conclusion. Short-horizon effects can weaken or turn negative when trade sizes are restricted to realistic, scalable dollar amounts and liquidity is included in the test (2025 finance paper). A screen that ranks every purchase equally can therefore produce impressive event-study results without producing positions that a trader can enter or exit efficiently.

Use the research as a calibration guide, not a promise of repeatable returns. Open-market buys matter most when they're clean, repeated, and context-rich. Cluster activity, senior insider participation, and a purchase large enough to matter relative to normal trading volume deserve more weight than a single isolated print.
The practical takeaway is to treat the screener as a tradable system. Filter for clean purchase codes, adjust thresholds for liquidity reality, and route only actionable alerts into the workflow. A feed that ranks buys and sells without those controls measures activity, not necessarily conviction.
Routing Alerts Into Email and Telegram Workflows
A screener becomes useful when it reaches you in time to act. Exporting a clean file is fine, but the workflow has to push alerts to the places where you already make decisions. That usually means email for structured review and Telegram for fast escalation.
Build the alert payload first
The minimum fields should be ticker, insider name, role, transaction code, dollar value, filing date, and days to next earnings. Those fields let a trader triage the alert without opening the filing immediately. If the payload includes the filing URL, even better, because it saves the manual jump back to EDGAR.
Email routing works best with priority tiers. P1 can be cluster buys above a high-value threshold, P2 can be single-insider buys above a lower threshold, and P3 can capture routine activity for later review. Telegram routing can mirror the same hierarchy through a webhook and chat-ID mapping, so the most interesting signals land in a fast channel and the rest stay in a digest.
Keep the feed clean
Deduplication matters because filings can generate multiple notifications if your parser sees amendments or repeated ownership rows. Weekend buffering matters too, because filings that hit outside normal market hours need to be grouped instead of spammed out one by one. Pre-earnings blackout tagging is also useful, because it keeps alerts from firing into windows where you've already decided not to trade.
A clean alert is not a bigger alert. It's a shorter path from filing to decision.
If you're using a service like Altymo, the value is in taking Form 4 activity and turning it into contextual buy and sell alerts that can be delivered by email or Telegram, while filtering for patterns such as CEO/CFO open-market buys, cluster activity, unusually large trades, repeated accumulation, and first-time buying after long inactivity. The point isn't more data. It's fewer, better-timed interruptions.
Backtesting and Interpreting What Comes Out
Backtesting insider screens is where a lot of traders get sloppy. They test the wrong timestamp, blend unrelated market caps together, or compare a micro-cap cluster to a mega-cap broad market benchmark and then act surprised when the result makes no sense.
Use the filing timestamp, not the story timestamp
Anchor every test to the actual filing date and time, then hold the position forward from there. That avoids look-ahead bias, which is easy to introduce when a trade is analyzed using information that wasn't public yet. Then compare the trade to a same-day, market-cap-matched universe so a small-cap win doesn't get mistaken for raw beta.
Segment the results by transaction code, dollar tier, and insider role. CEOs and directors do not trade the same way, and the screen shouldn't pretend they do. If the screen keeps catching good-looking buys but the follow-through is weak, the issue may be the filter design, not the hypothesis.
Watch the follow-through, not just the first print
Repeated purchases inside a short window are often more informative than a single filing. If the same insider keeps buying after the initial alert, that's usually worth more than the first event alone. Seasonality can also distort the picture, especially when compensation-related activity clusters around the calendar and your filter isn't tight enough.
| Backtest Segmentation Framework | ||
|---|---|---|
| Slice | Metric to Compare | Common Trap |
| Transaction code | Forward return by code | Mixing open-market buys with mechanical filings |
| Dollar tier | Performance by purchase size | Using share count instead of dollars |
| Insider role | Return by role category | Treating directors and executives as the same signal |
| Follow-on activity | Next filings after the alert | Ignoring repeated accumulation |
| Liquidity bucket | Return by tradeability | Testing names that can't actually be entered efficiently |
A good quarterly review is usually enough to keep the screen honest. If a filter stops adding information, retire it. The best screens don't get more complicated every quarter. They get stricter about what counts as a real trade.
If you want a workflow that turns Form 4 filings into alerts instead of clutter, Altymo is built around that problem. It scans insider filings, filters for the activity that matters, and delivers email or Telegram alerts so you can review the right transactions faster.