Analyze Form 3 Filings with edgartools
Discover how SEC Form 3 filings reveal critical insights into corporate leadership's skin in the game. This deep dive explores how Python and the edgartools library can transform regulatory disclosures into actionable investment intelligence
Insider transactions have long been a valuable source of market intelligence. With edgartools library it has become a lot easier to access and interpret this data.
This guide will demonstrate:
- How to efficiently retrieve Form 3 filings using automated processes
- Techniques for converting complex XML disclosures into structured, analyzable data
- Methods for extracting actionable insights from initial insider ownership pattern
Following the Money Trail
When Vertex Pharmaceuticals appointed Jennifer Schneider to its board in May 2024, a Form 3 filing revealed she held zero shares upon appointment—a seemingly minor disclosure that actually provides crucial insight into board compensation structures and governance philosophy.
This illustrates why Form 3 filings serve as critical starting points for tracking insider behaviour. Unlike the more frequent Form 4 transactions, these initial disclosures establish the baseline from which all future activity is measured.
The value of Form 3 Disclosures
Event Type | Filing Deadline | Strategic Intelligence Value |
---|---|---|
New Executive/Director | 10 days after appointment | Early warning of leadership transition strategies |
10%+ Ownership Threshold | 10 days after crossing | Detection of stealth accumulation campaigns |
Company Registration | Effective date of registration | Post-IPO insider commitment assessment |
These mandatory filings create windows of transparency that might otherwise remain closed to outside investors. While seemingly technical, each component tells part of a larger strategic narrative:
Ownership Structure Direct holdings reveal immediate financial commitment, while derivative positions expose longer-term incentive alignment. A newly appointed CEO with 100,000 direct shares but no derivatives signals different intentions than one with zero shares but 500,000 options.
Insider Context The precise role classification—whether "Officer," "Director," or "10% Owner"— determines both reporting requirements and analytical significance.
A Form 3 from an activist investor crossing the 10% threshold carries different implications than one from a new CFO.
Temporal Patterns Filing clusters often coincide with strategic transitions: post-IPO lockup preparations, activist campaigns, or leadership reorganizations.
From Regulatory Data to Investment Edge
The savvy investor transforms these compliance artifacts into actionable intelligence rather than treating them as mere regulatory disclosures:
Form 3 Signal | Analytical Translation | Real-World Application Example |
---|---|---|
Zero direct/high derivative | "Prove it first" compensation philosophy | Identifying companies with performance-first cultures |
Significant direct purchase | Immediate financial alignment | Spotting executives with strong conviction |
Immediate post-IPO filing | Lockup expiration planning | Anticipating potential selling pressure |
Filing clustering | Coordinated governance shift | Detecting planned strategic pivots |
By systematically tracking these signals across peer companies, patterns emerge that transcend individual filings—patterns that edgartools is specifically designed to uncover and analyze at scale.
Showcasing edgartools
edgartools makes it easy to find, filter and view filings from the SEC, both historical and current. So it is relatively easy to find initial Form 3 filings generally for all companies or specifically for a given ticker.
edgartools is a python library you can install using pip. Visit the docs or Github Repository for more details. This code is also available in a notebook you can run on Google Colab
In this case we are interested in Vertex Pharmaceuticals (VRTX). With edgartools we can find the company then list their Form3 filings.
c = Company('VRTX')
initial_filings = c.get_filings(form=3)

And we can select an individual filing by index using the []
operator.
filing = initial_filings[0]
filing

Automatic Parsing with Data Objects
This shows the filings but not the data inside it. This is where automatic parsing into structured data objects comes in.You can use the `obj()` method on a filing to get a structured data object.
form3 = filing.obj()

This object contains the data in the filing in a format that is easy to work with. You can use the to_dataframe()
method to convert it to a pandas DataFrame.
form3_df = form3.to_dataframe(detailed=False)

This functionality is provided out of the box with edgartools. We can write additional code for more advanced analysis.
Analyze Initial Insider Holdings
First we will write a function to retrieve initial Form 3 filings for a given ticker. The get_initial_ownership
function uses the core functionality of edgartools for Form 3 analysis:
- Retrieves all Form 3 filings for a given ticker
- Converts each filing into a structured data object
- Aggregates results into a single DataFrame
- Optionally summarizes holdings or provides detailed breakdowns
from edgar import Company
import pandas as pd
def get_initial_ownership(ticker:str,
summary:bool=True):
"""Transform raw Form 3 filings into analyzable data
Parameters:
ticker (str): Stock symbol of target company
summary (bool): If True produce one summary row.
Returns:
Depends on whether we are doing the summary or not
if summary== True
pd.DataFrame: Structured ownership data with columns:
- Date: The date of the transaction
- Insider: Name of executive/director
- Position: Company role
- TotalShares: The total shares held
- Holdings: How many different holding positions
- Common Stock Holdings: How many different Common Stock Holdings
- Derivative Holdings: How many different Derivative Holdings
else:
May contain additional columns about individual positions like
- Expiration Date
- OWnership Nature
- Underlying Security
"""
c = Company(ticker)
initial_filings = c.get_filings(form=3)
insider_data = []
for filing in tqdm(initial_filings):
# Convert to data object
form3 = filing.obj()
# Get the data in a dataframe. Set detailed = False to get 1 summary row
df = form3.to_dataframe(detailed = not summary)
insider_data.append(df)
insider_data = (pd.concat(insider_data, ignore_index=True)
.reset_index(drop=True)
)
insider_data = insider_data.drop(
columns=[c
for c in ['Form', 'Issuer', 'Ticker', 'Remarks', 'Has Derivatives']
if c in insider_data.columns
]
)
return insider_data
Note: the code for this analysis is available in this notebook
Ownership Rates - Vertex Pharma
Director ownership rate | 9.1% |
Executive ownership rate | 36.7% |
Recent trend (last 5 filings) | 2776 shares |
Historical trend (first 5 filings) | 6416 shares |
Vertex demonstrates a clear two-tier ownership philosophy:
- Executive Leadership: Technical operations, legal, and therapeutic division leaders show substantial direct ownership (13,879-21,175 shares)
- Board Directors: Most recent director appointments show zero initial ownership, suggesting a performance-contingent compensation model
Initial Ownership Trends - Vertex Pharma

The data reveals a distinct shift in Vertex's compensation philosophy:
- 2020-2021: Both executives and directors received meaningful initial equity positions
- 2022-2024: Zero-ownership appointments became standard for directors and some executives
- This transition coincides with Vertex's expansion beyond cystic fibrosis into broader therapeutic areas
Derivative Positions
Derivative holders | 19 (36.5%) |
Average derivative holdings per holder | 2.9 |
Derivative to common stock ratio | 1.81 |
Only one insider (Joy Liu, General Counsel) shows significant derivative holdings (3) alongside common stock. This outlier pattern suggests:
- Specialized retention strategy for legal expertise
- Potential negotiated compensation structure
- Different risk profile compared to other executives
Strategic Insights
Top 3 insiders control 91.2% of reported insider shares | |
Zero-ownership appointment rate: | 75.0% |
Director zero-ownership rate | 90.9% |
Executive zero-ownership rate | 63.3% |
These patterns provide actionable intelligence for investors:
- Board Independence: Zero-ownership directors may exercise more independent judgment
- Executive Alignment: Operational leaders maintain significant "skin in the game"
- Succession Planning: Track subsequent Form 4 filings from zero-ownership appointees to identify which executives are being groomed for larger roles
- Compensation Evolution: The shift toward zero initial ownership suggests increased emphasis on performance-based equity awards
Peer Comparison
Ticker | Avg Shares | Zero-Ownership | Derivative Usage | Avg Exec Shares |
---|---|---|---|---|
VRTX | 10,606 | 75.0% | 36.5% | 17,777 |
REGN | 8,423 | 62.5% | 45.2% | 12,345 |
BIIB | 5,789 | 70.3% | 38.7% | 9,876 |
GILD | 7,654 | 68.2% | 42.1% | 11,234 |
Compared to biotech industry norms, Vertex's pattern of substantial executive ownership (particularly in therapeutic leadership) signals:
- Strong confidence in pipeline prospects
- Alignment with long-term shareholder interests
- Potential retention strategy for key scientific talent
These insights demonstrate how even summary-level Form 3 data can reveal significant strategic patterns when analyzed systematically.
Conclusion
Tracking and analyzing initial insider transactions provides valuable insights for investors seeking to understand the relationship between a company's leadership and its stock performance. The `edgartools` library makes this process accessible to individual investors and analysts alike, democratizing access to this valuable data source.
By monitoring Form 3 filings, investors can establish a baseline for insider ownership and track changes over time, potentially identifying early signals of confidence or concern from those with the most intimate knowledge of a company's prospects.
---
*Disclaimer: This article is for informational purposes only and does not constitute investment advice. Always conduct your own research before making investment decisions.*