Form 4 Filings Historical Data: A Researcher's Guide

Form 4 filings historical data consists of archived SEC documents that record changes in beneficial ownership by corporate insiders, including officers, directors, and major shareholders. Researchers use this data to analyze insider trading patterns, test market efficiency hypotheses, and build predictive signals. Point-in-time accuracy is critical because filing delays and subsequent amendments can introduce lookahead bias if not properly handled.

What Are Form 4 Filings and Why Do Researchers Need Historical Data?

Form 4 is the document that corporate insiders must file with the SEC whenever they buy, sell, or otherwise transfer shares of their company's stock. This includes open-market purchases, sales, stock option exercises, restricted stock grants, and gifts. Each filing captures the insider's name, their relationship to the company, the transaction date, the number of shares involved, the price per share, and their remaining holdings after the transaction.

Historical Form 4 data matters because insider transactions are legally required disclosures that reflect the actions of people with deep knowledge of their companies. Researchers studying market efficiency, information asymmetry, or predictive signals need clean, timestamped records of these transactions to test whether insider activity correlates with future stock returns. Without historical depth, you cannot run meaningful backtests or longitudinal studies.

Form 4 vs Form 5: Understanding the Difference

Form 4 and Form 5 both report insider transactions, but they serve different purposes and have different deadlines. Form 4 must be filed within two business days of the transaction. This is the primary source for timely insider trading data. Form 5 is an annual filing used to report transactions that were exempt from Form 4 requirements or that should have been reported earlier but were missed.

For researchers, this distinction matters because Form 5 filings arrive much later—up to 45 days after the fiscal year ends. If your dataset only includes Form 4, you may miss certain transactions. If it includes both, you need to account for the delayed reporting in Form 5 when constructing point-in-time datasets. A complete historical dataset should include both forms, clearly labeled, so you can decide how to handle the different reporting lags.

Transaction Codes: P, S, A, M, and What They Mean

Every Form 4 transaction is tagged with a code that describes the type of transaction. The most common codes researchers encounter are P, S, A, and M. Code P indicates an open-market purchase—the insider bought shares on the open market with their own money. Code S is a sale. Code A represents a grant or award, typically restricted stock or options given as compensation. Code M is the exercise of a derivative security, usually a stock option.

These codes are essential for filtering and interpreting insider activity. An open-market purchase (P) is generally considered a stronger signal than a stock award (A), because the insider is voluntarily committing capital. Sales (S) can be informative but are often driven by diversification or liquidity needs rather than negative information. Option exercises (M) are mechanical and usually less informative unless paired with an immediate sale. When building insider trading signals, researchers typically focus on P and S codes and may exclude A and M to reduce noise.

Filing Lag and Point-in-Time Data: Avoiding Lookahead Bias

Form 4 filings are due within two business days of the transaction, but insiders sometimes file late. The transaction date and the filing date are not the same. If you assume that all insider transactions were public knowledge on the transaction date, you introduce lookahead bias into your backtest. A point-in-time dataset must use the filing date—the date the information became publicly available—not the transaction date.

This is one of the most common mistakes in insider trading research. If your dataset only provides the transaction date and you treat that as the signal date, your results will be overstated. You need a dataset that includes both the transaction date and the filing date, and your backtest should assume the signal becomes available on the filing date (or the next trading day, to be conservative). Survivorship-bias-free historical data with accurate timestamps is essential for valid inference.

How Researchers Test Insider-Signal Studies Point-in-Time

A typical insider-signal study asks whether insider purchases predict positive abnormal returns. To test this properly, you need to reconstruct what information was available at each point in time. Start by filtering Form 4 filings to open-market purchases (code P). Use the filing date to determine when the signal became public. Then measure forward returns from that date, accounting for market movements and risk factors.

You should also control for confounding factors. Insiders often buy after price declines, so you need to separate the insider signal from simple mean reversion. Multiple insiders buying in the same period may be a stronger signal than a single purchase. And you should exclude transactions under 10b5-1 plans if you want to isolate discretionary trades, since 10b5-1 plans are pre-scheduled and less informative. A clean dataset will flag whether a transaction was under a 10b5-1 plan, making this filter straightforward.

Where to Get Survivorship-Bias-Free Form 4 Historical Data

FinzData provides every insider purchase, sale, grant, option exercise, and gift reported to the SEC since 2006. The dataset includes all Form 4 and Form 5 filings, updated weekly, with fields for the transaction date, insider name, role, shares, price, value, shares held after the transaction, and whether the trade was under a 10b5-1 plan. This allows you to filter by transaction code, isolate open-market purchases, and construct point-in-time signals using accurate filing dates.

You can access the data through a Python client. For example, `yf.Ticker("NVDA").insider_transactions` retrieves all insider transactions for a given ticker, and `yf.Client().insider_transactions("NVDA", code="P")` filters to open-market buys only. The last 12 months of data are free; full history is available on a look-back basis.

Frequently asked questions

What is the difference between Form 4 and Form 5?

Form 4 must be filed within two business days of an insider transaction and is the primary source for timely data. Form 5 is an annual filing used for transactions that were exempt from Form 4 or reported late. Researchers need both for complete coverage but must account for the different reporting lags.

What do the transaction codes P, S, A, and M mean?

P is an open-market purchase, S is a sale, A is a grant or award (usually compensation), and M is the exercise of a derivative security like a stock option. Open-market purchases (P) are generally considered the most informative signal.

Why is filing lag important in insider trading research?

Form 4 filings are due within two business days, but the transaction date and filing date are different. If you use the transaction date instead of the filing date in a backtest, you introduce lookahead bias by assuming information was public before it actually was.

How do I avoid lookahead bias when testing insider signals?

Use the filing date, not the transaction date, to determine when the insider signal became public. Construct your dataset point-in-time, meaning you only use information that was actually available on each historical date. This requires a dataset with accurate filing timestamps.

What is a 10b5-1 plan and why does it matter?

A 10b5-1 plan is a pre-arranged trading plan that allows insiders to schedule trades in advance. Transactions under these plans are less informative because they are not discretionary. Researchers often exclude them when testing insider signals, so a dataset that flags 10b5-1 transactions is useful.

Start free   See all datasets