From Form 4 Rows to Research Events: A Reproducible Signal Framework
An evidence-based workflow for turning 1.63 million ownership records into defensible purchase events—without inventing market-cap, benchmark or momentum controls.
A large Form 4 table is not a large collection of insider bets. It is a record of many economically different ownership events.
The July 29, 2026 InsiderAlpha release contains 1,633,946 publishable transaction rows. Only 49,046 rows—3.00% of the release—carry transaction code P. Awards, derivative exercises and tax-related dispositions account for far more records than reported purchases.
The first step in signal research is therefore not optimizing a threshold. It is defining the event correctly.
Raw filing rows are a feature reservoir. A defensible signal begins with transaction semantics, canonical identity and an explicit unit of analysis.
Start with the SEC transaction code
The largest categories in the release are:
| Form 4 category | Transaction codes | Rows | Share of release |
|---|---|---|---|
| Awards, options and tax events | A, M, F | 969,088 | 59.31% |
| Open-market or private sales | S | 499,814 | 30.59% |
| Open-market or private purchases | P | 49,046 | 3.00% |
| Gifts | G | 48,137 | 2.95% |
| Other codes | Multiple | 67,861 | 4.15% |
The labels follow the SEC Form 4 instructions. Code P includes private purchases as well as open-market purchases. Code F can represent shares delivered or withheld for an exercise price or tax liability; it should not be treated as an ordinary market sale.
This distinction immediately removes the most damaging research error: converting every acquisition into a discretionary buy and every disposition into a discretionary sell.
A row is not an event
One filing can contain several securities, transaction lines or transaction dates. In the canonical portion of this release, 797,266 original Form 4 transaction lines map to 346,675 filings—an average of 2.30 lines per filing.
For a security-price event study, we collapse code P and S rows to one ticker–transaction date–transaction code company-day. When several lines share that identity, the median post-transaction return represents the day.
We use dates from January 1, 2007 onward and require a calculated 180-day price outcome. This creates 14,485 mature purchase company-days and 107,338 mature sale company-days.
The baseline comparison
| Code | Mature company-days | Issuers | Median 30D | Median 90D | Median 180D | Positive at 180D |
|---|---|---|---|---|---|---|
| P: purchase | 14,485 | 988 | +1.95% | +4.95% | +8.07% | 65.2% |
| S: sale | 107,338 | 1,132 | +0.88% | +3.02% | +5.58% | 60.7% |
The purchase-minus-sale median spread is positive at each horizon. That is descriptive evidence of different subsequent price paths, not proof of an executable edge. Purchases and sales occur at different times, for different issuers and under different motivations.
Most importantly, these are absolute security returns. They do not subtract SPY, Russell 2000 or a sector benchmark.
Dollar value alone does not create a monotonic signal
It is tempting to treat a larger disclosed purchase as stronger conviction. The available field is nominal transaction value, not purchase value divided by market capitalization or personal wealth. Those concepts should not be conflated.
After summing calculated transaction value at the company-day level, the observed 180-day outcomes were:
| Disclosed company-day value | Events | Median 180D | Positive outcomes |
|---|---|---|---|
| Under $10K | 2,059 | +7.35% | 65.5% |
| $10K–$50K | 2,189 | +9.06% | 67.7% |
| $50K–$250K | 4,072 | +7.85% | 64.9% |
| $250K–$1M | 2,993 | +8.72% | 63.6% |
| $1M+ | 3,172 | +7.25% | 65.0% |
There is no monotonic increase. The million-dollar cohort did not produce the highest median or win rate. Nominal size may still matter in interaction with issuer size or insider holdings, but this release alone does not support calling it “dollar conviction relative to market cap.”
Cluster context adds information
The release defines a 30-day cluster as at least three distinct reporting owners with code P for the same issuer. After company-day aggregation:
| Purchase context | Events | Median 90D | Median 180D | Positive at 180D |
|---|---|---|---|---|
| Non-cluster | 12,285 | +4.75% | +7.80% | 64.9% |
| Cluster-classified | 2,200 | +6.84% | +9.80% | 66.4% |
The improvement is modest but persists in a matched-issuer diagnostic described in our cluster-buy study. Cluster context earns a place as a feature; it does not turn every purchase into a trade.
A defensible research sequence
A reproducible pipeline should proceed in this order:
- Interpret the code. Separate
PandSfrom awards, exercises, gifts and tax withholding. - Resolve canonical identity. Retain accession number, filing table and transaction sequence where available.
- Handle amendments. Use
is_currentandsuperseded_by_idrather than double-counting corrected records. - Choose the unit of analysis. Filing, transaction line, reporting-owner event, company-day and cluster episode answer different questions.
- Respect public availability. A tradable backtest must begin after
accepted_at, not on the private transaction date. - Add external controls explicitly. Market cap, benchmarks, liquidity and technical indicators are not present merely because a return field exists.
- Report distributions. Medians, win rates, interquartile ranges and sample counts are more informative than a single right-tail-sensitive mean.
- Validate out of sample. Feature selection and performance evaluation should not use the same period.
Limitations
The release contains both SEC-linked and validated historical records. Roughly half of all rows are sec_verified; the remaining validated_legacy population has explicit provenance but no canonical accession number. Sector metadata and return coverage are not complete for every row. Missing values remain null rather than being imputed.
Post-transaction returns are descriptive historical measurements. They do not establish causality, forecast future returns or represent investment advice. Complete definitions are available in the data dictionary and methodology.
Conclusion
The most important signal-engineering decision happens before modeling: deciding what the record means and what constitutes one event.
The corrected evidence supports three restrained conclusions. Code P is a small fraction of ownership data; purchase company-days had stronger descriptive outcomes than sale company-days; and cluster context added more information than nominal purchase value alone. None of those findings removes the need for filing-time execution, benchmark controls or out-of-sample testing.
Researchers can inspect 10,000 real rows in the free sample or use the API for targeted transaction, issuer and reporting-owner queries.
Inspect before purchasing
Preview 10,000 real rows and all 64 fields
Validate the schema and research workflow before buying the 1,633,946-row release. No email or account is required for the sample.
- Reproduce a published report
- Run the included queries with DuckDB
- CSV, Parquet and DuckDB in the full release
- Three months of API access included
One-time payment · instant download · regular price $199