How to Read a Form 4 Insider Trading Filing
How to read a Form 4 insider filing, from the Section 16 filer rules to what each transaction code means, with data from a full year of SEC filings.
How to read a Form 4 comes down to two small tables and a single letter. A Form 4 is the filing a corporate insider sends to the SEC when their holdings in their own company change, and it lands within two business days of the transaction. Work through the fields below and any headline about insider buying or selling can be checked against the document itself.
Who has to file a Form 4?
Section 16 of the Securities Exchange Act of 1934 puts the obligation on a short list of people at each US-listed company:
- Officers, meaning the policy-making executives the company itself names, not every employee carrying a manager title.
- Directors, every member of the board, whether or not they work at the company.
- Any beneficial owner of more than 10% of a registered class of the company's equity.
- Nobody else. An engineer selling vested shares files nothing. A fund holding 4% of the float files nothing.
Each reporting person has their own SEC identifier, a CIK, which follows them from employer to employer. One person's filing history sits in one place even when they serve on four boards.
How fast does a Form 4 have to be filed?
The deadline is what makes the form worth reading: it is filed before the end of the second business day following the transaction date. Business days and calendar days are different things, and the filings show it. The panel below buckets every reported transaction line by the calendar days between the transaction date and the filing date, over the twelve months to July 2026.
The exact SQL behind every number
SELECT
multiIf(
f.lag_days = 0, 'Same day',
f.lag_days = 1, '1 calendar day',
f.lag_days = 2, '2 calendar days',
f.lag_days = 3, '3 calendar days',
f.lag_days <= 7, '4 to 7 days',
'More than 7 days') AS lag_bucket,
count() AS transaction_count,
round(100 * count() / any(t.total_lines), 1) AS share_pct
FROM
(
SELECT dateDiff('day', transaction_date, filing_date) AS lag_days
FROM global_markets.stocks_form4
WHERE filing_date >= toDate('2025-08-01')
AND filing_date < toDate('2026-08-01')
AND form_type = '4'
AND transaction_date >= toDate('2025-06-01')
AND transaction_date <= filing_date
) AS f
CROSS JOIN
(
SELECT count() AS total_lines
FROM global_markets.stocks_form4
WHERE filing_date >= toDate('2025-08-01')
AND filing_date < toDate('2026-08-01')
AND form_type = '4'
AND transaction_date >= toDate('2025-06-01')
AND transaction_date <= filing_date
) AS t
GROUP BY lag_bucket
ORDER BY min(f.lag_days)About 34.6% of reported lines arrive two calendar days after the transaction and 21.6% arrive the next day. A Friday trade filed on Tuesday is on time at four calendar days, which is why the mass sits across one to four days rather than stopping cleanly at two. The tail past a week holds 2.8% of lines, where late filings and corrections live.
Form 3, Form 4 and Form 5
Form 3 is the opening balance. A new officer, director or 10% owner files it within ten days of taking the role, listing what they already hold, with no transaction attached.
Form 4 reports a change: a purchase, a sale, a grant, an exercise, a gift.
Form 5 is the annual sweep-up, filed within 45 days of the company's fiscal year end for small or exempt items eligible for deferral. It is the form most often absent, since an insider who reported everything on time has nothing left to file.
How to read a Form 4 line by line
The body of the filing is two tables. Table I covers non-derivative securities, meaning ordinary common stock. Each row carries the transaction date, a transaction code, the shares acquired or disposed, a price per share, the total shares owned following the transaction, and a direct or indirect ownership flag. Table II covers derivative securities: options, restricted stock units, warrants, convertible notes. It repeats those fields and adds the exercise or conversion price, the exercise and expiration dates, and the title and share count of the underlying security.
The transaction code carries most of the meaning.
Pis an open-market or private purchase. Cash left the insider's own account.Sis an open-market or private sale.Ais a grant, award or other acquisition from the company, which is compensation being delivered.Mis the exercise or conversion of a derivative security into the underlying stock.Fis shares handed back to the issuer to cover tax withholding on a vest.Gis a bona fide gift.Dis a disposition back to the issuer, andCis a conversion of a derivative security.Xis the exercise of an in-the-money option.
The exact SQL behind every number
SELECT
multiIf(
f.transaction_code = 'P', 'P: open-market purchase',
f.transaction_code = 'S', 'S: open-market sale',
f.transaction_code = 'A', 'A: grant or award',
f.transaction_code = 'M', 'M: derivative exercise',
f.transaction_code = 'F', 'F: withheld for tax',
f.transaction_code = 'G', 'G: gift',
'All other codes') AS code,
count() AS line_count,
round(100 * count() / any(t.total_lines), 1) AS share_pct
FROM global_markets.stocks_form4 AS f
CROSS JOIN
(
SELECT count() AS total_lines
FROM global_markets.stocks_form4
WHERE filing_date >= toDate('2025-08-01')
AND filing_date < toDate('2026-08-01')
AND form_type = '4'
AND transaction_code != ''
) AS t
WHERE f.filing_date >= toDate('2025-08-01')
AND f.filing_date < toDate('2026-08-01')
AND f.form_type = '4'
AND f.transaction_code != ''
GROUP BY code
ORDER BY multiIf(
code LIKE 'P:%', 1,
code LIKE 'S:%', 2,
code LIKE 'A:%', 3,
code LIKE 'M:%', 4,
code LIKE 'F:%', 5,
code LIKE 'G:%', 6,
7)Across the twelve months to July 2026, grants under code A account for 23.4% of reported lines, tax withholdings under F for 11.3% and exercises under M for 20%. Open-market purchases, code P, the rows most headlines are hunting for, come to 6.3%, against 27.4% for sales. Three of those six codes describe a compensation plan being executed rather than a discretionary trade.
Why an insider sale headline is often two rows
A headline announcing that an insider sold several million dollars of stock usually describes two lines on one document. An M row converts options or units into shares at the exercise price. An S row then sells some or all of those shares, often the same day, often under a plan adopted months earlier. The dollar figure in the headline is the S row's shares multiplied by its price. The M row above it, and the shares-owned-following column beside it, are what put that figure in context.
The exact SQL behind every number
SELECT
toString(toStartOfMonth(filed_on)) AS month,
countIf(has_m > 0 AND has_s > 0) AS exercise_and_sale_count,
countIf(has_m = 0 AND has_s > 0) AS sale_only_count,
round(100 * countIf(has_m > 0 AND has_s > 0) / countIf(has_s > 0), 1) AS paired_share_pct
FROM
(
SELECT
accession_number,
min(filing_date) AS filed_on,
max(transaction_code = 'M') AS has_m,
max(transaction_code = 'S') AS has_s
FROM global_markets.stocks_form4
WHERE filing_date >= toDate('2025-08-01')
AND filing_date < toDate('2026-08-01')
AND form_type = '4'
GROUP BY accession_number
)
GROUP BY month
HAVING countIf(has_s > 0) > 0
ORDER BY monthThe panel takes Form 4 filings containing at least one sale and splits them by whether the same document also contains an exercise or conversion. In the first month of the window, 21.7% of filings with a sale also carried an exercise. In the final month it was 25.2%. Reading the S row on its own leaves out the row that produced the shares.
Does the 10b5-1 checkbox mean the sale was scheduled?
Near the top of the form, under the reporting person's name, sits a checkbox for transactions made under a Rule 10b5-1(c) trading arrangement, along with the plan's adoption date. Filers relying on that rule's affirmative defense check it. Since the SEC's 2022 amendments took effect in 2023, such a plan carries a cooling-off period before its first trade: for officers and directors, the later of 90 days after adoption or two business days after the company files results for the quarter of adoption, capped at 120 days.
The box tells you the trade date was fixed in advance by a written plan. It tells you nothing about the size of the remaining position, the reason the plan was adopted, or what the same person does outside it. An empty box covers everything else, including routine sales made in an open window.
What does indirect ownership mean on a Form 4?
Every row ends with a direct or indirect flag. Direct means the reporting person holds the securities in their own name. Indirect means the securities sit in another wrapper the person is deemed to beneficially own: a family trust, an LLC, a spouse's account, a 401(k). The nature of the indirect holding is spelled out in a footnote, usually in a few words such as "by trust" or "by family limited partnership". Adding up only the direct rows undercounts the position, and the split is uneven across transaction types.
The exact SQL behind every number
SELECT
multiIf(
transaction_code = 'P', 'P: purchase',
transaction_code = 'S', 'S: sale',
transaction_code = 'A', 'A: grant',
transaction_code = 'M', 'M: exercise',
transaction_code = 'F', 'F: tax withholding',
'G: gift') AS code,
count() AS line_count,
round(100 * countIf(upper(direct_or_indirect) LIKE 'I%') / count(), 1) AS indirect_pct
FROM global_markets.stocks_form4
WHERE filing_date >= toDate('2025-08-01')
AND filing_date < toDate('2026-08-01')
AND form_type = '4'
AND transaction_code IN ('P', 'S', 'A', 'M', 'F', 'G')
AND (upper(direct_or_indirect) LIKE 'D%' OR upper(direct_or_indirect) LIKE 'I%')
GROUP BY code
ORDER BY multiIf(
code LIKE 'P%', 1,
code LIKE 'S%', 2,
code LIKE 'A%', 3,
code LIKE 'M%', 4,
code LIKE 'F%', 5,
6)Gifts under code G are booked as indirect on 45.5% of lines, against 50.4% for open-market purchases and 4.7% for company grants. Grants arrive where the compensation plan pays them, in the person's own name. Long-held family positions are the ones sitting in trusts and partnerships.
How do I look up a Form 4 myself?
- Company search on EDGAR: pull the issuer by ticker or CIK and filter the form type to 4, which returns every insider at that company.
- Reporting-person search: the insider's own CIK page lists their filings across every issuer they touch.
- EDGAR full-text search covers filing text from 2001 forward, the place to search footnote language such as a plan adoption date.
- The EDGAR daily index lists every document filed on a given day, the route to reconstructing a complete day of Form 4s rather than sampling one.
Every filing carries an accession number, the primary key of the document. Quote it alongside a claim and anyone can pull the same page.
Where Form 4 sits on the disclosure clock
Two business days is quick by US disclosure standards. Institutional position reports arrive 45 days after quarter end, a lag laid out in when 13F filings are due. Exchange short interest arrives as a twice-monthly snapshot with its own publication delay, covered in FINRA short interest data. For the wider map of what gets filed and when, the most common SEC filings places Form 4 next to the 8-K and the 10-Q. Insider filings and unusual options activity both get read as sentiment, and only one of the two is a signed legal document carrying a named filer.
Full data notes
Every panel above reads Form 4 documents with a filing date from August 1, 2025 through July 31, 2026. Panels are line-level except the exercise-and-sale panel, which groups by accession number, so one filing counts once however many rows it carries. The filing-lag panel keeps only transactions dated on or after June 1, 2025 and on or before their own filing date, which drops mis-stamped rows and very old restated transactions from the buckets.
Amendments are one reason two data providers publish different insider-buying counts for the same week. A Form 4/A restates a Form 4 already on file, and a count that treats both documents as separate events reports the transaction twice.
The exact SQL behind every number
SELECT
toString(toStartOfMonth(filing_date)) AS month,
uniqExactIf(accession_number, form_type = '4') AS original_count,
uniqExactIf(accession_number, form_type = '4/A') AS amendment_count,
round(100 * uniqExactIf(accession_number, form_type = '4/A')
/ uniqExact(accession_number), 2) AS amendment_pct
FROM global_markets.stocks_form4
WHERE filing_date >= toDate('2025-08-01')
AND filing_date < toDate('2026-08-01')
AND form_type IN ('4', '4/A')
GROUP BY month
HAVING uniqExact(accession_number) > 0
ORDER BY monthAmendments were 1.24% of Form 4 documents in the first month of the window and 1.68% in the last. Counting distinct accession numbers keeps originals and amendments apart.
FAQ
What is a Form 4 filing?
A Form 4 reports a change in a corporate insider's ownership of their own company's securities. Officers, directors and owners of more than 10% of a class of equity file it under Section 16, within two business days of the transaction.
How long does an insider have to file a Form 4?
Before the end of the second business day following the transaction date. That is much shorter than the 45 days an institutional manager gets after quarter end for a 13F, which makes Form 4 one of the timeliest disclosures in US markets.
What does transaction code M mean on a Form 4?
Code M is the exercise or conversion of a derivative security into the underlying stock, such as an option being exercised or a restricted stock unit converting into shares. An M row is frequently paired with an S row on the same filing when the resulting shares are sold.
What is a Form 4/A?
A Form 4/A amends a Form 4 already on file, correcting share counts, prices or footnotes. Insider-buying tallies differ between data providers largely by how each one treats amendments.
Does a Form 4 sale mean an insider is bearish?
Not on its own. Sales appear on Form 4 alongside tax withholding, scheduled plan sales and gifts, and the transaction code plus the 10b5-1 checkbox are what separate them. The filing records what happened, and it states no reason.
Every panel here carries the exact SQL underneath it. To move the window, or ask the same question about a single filer, run it on the Strasmore terminal.