Form 4 transaction codes, fully decoded

Every Form 4 includes a one-letter code that tells you exactly what kind of transaction occurred. P and S get most of the attention, but the other dozen codes carry meaning too.

Quick reference

| Code | Meaning | Typical signal | |---|---|---| | P | Open-market or private purchase | Strongest bullish signal | | S | Open-market or private sale | Noisier; many non-info reasons | | A | Grant, award, or other acquisition | Compensation, not a signal | | M | Exercise of derivative security (option/RSU vest) | Largely mechanical | | F | Payment of exercise price or tax withholding via shares | Mechanical, often paired with M | | D | Sale or disposition back to the issuer | Often buyback-related | | G | Bona fide gift | Estate planning, not a market signal | | X | Exercise of in-the-money or at-the-money derivative | Mechanical | | C | Conversion of derivative security | Mechanical | | W | Acquisition or disposition by will or laws of descent | Estate event | | I | Discretionary transaction subject to issuer rules | Rare, plan-related | | L | Small acquisition under §16a-6 | Below reporting threshold | | U | Disposition pursuant to a tender offer | M&A event | | Z | Voting trust deposit or withdrawal | Structural, not a trade |

The two codes that matter most

P — Open-market purchase. This is the code traders look for. The insider used their own money to buy stock at market prices. Empirically the cleanest bullish signal in the entire Form 4 universe. A CEO P is stronger than a director P. A million-dollar P is stronger than a $20k P.

S — Open-market sale. Bearish-ish, but noisy. Insiders sell for many reasons that have nothing to do with the company's prospects: paying for a house, diversifying after IPO lockup, satisfying tax bills, executing a pre-arranged 10b5-1 plan. Treat S codes with skepticism, especially when they're inside a Rule 10b5-1 plan (look at the footnotes — there will usually be a reference to the plan adoption date).

The compensation codes

A — Grant or award. Stock or option grant from the company. This is comp, not conviction. A large grant looks impressive in dollar terms but conveys nothing about how the insider feels about the stock.

M — Exercise of derivative. The insider exercised an option, vested RSUs, or otherwise turned a derivative into common shares. Largely mechanical because options have expiration dates and vesting schedules — people exercise on a calendar, not on a thesis.

F — Payment via share withholding. When an insider exercises options or vests RSUs, they typically owe taxes or have to cover the strike price. F records shares withheld to settle that obligation. Always paired with a corresponding M or A line. Treat as mechanical.

The structural codes

D — Disposition to issuer. Used when shares go *back* to the company. Common in buyback tender programs, forfeitures, and certain compensation clawbacks. Not a market signal about valuation.

G — Gift. Estate planning, charitable giving, or family transfer. Often clusters around year-end for tax purposes. A G removes shares from the insider's column but doesn't reflect a view on the stock.

X, C, W, U, Z, I, L — These are rarer codes covering specific corporate actions. Most strategies safely ignore them, but they appear in the data and your parser should not crash on them.

How to filter on transaction code via API

If you're trying to detect informational buying, restrict to code P and ignore everything else:

curl "https://api.edgarkit.com/v1/filings?form_type=4&transaction_code=P&min_value=100000&limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns recent Form 4 filings with at least one open-market purchase of $100k or more. Drop the transaction_code filter if you also want option exercises; raise min_value if you only want larger transactions.

Cluster signal versus single-filer signal

A single P is interesting. Three or more P codes by different insiders at the same issuer within a 7- to 14-day window is the cluster-buying signal that academic studies most often validate. Build the cluster window over the API by joining filings on issuer_cik and grouping by week.

Common mistakes when reading codes

  • Treating M+F pairs as bearish. They're a tax-paying mechanic, not a sale of conviction.
  • Counting A grants as insider commitment. It's compensation. The insider didn't choose to buy at that price.
  • Ignoring 10b5-1 footnotes on S codes. A pre-arranged sale is much weaker bearish signal than a discretionary sale.
  • Filtering out everything except P. You miss U (tender offers) and some compensation context that matters for relative ownership.

FAQ

What's the most bullish Form 4 transaction code?

P — open-market purchase. The insider chose to put their own cash into the company's stock at market prices.

Is an M exercise bullish or bearish?

Neither, by itself. It's mechanical — options have expiration dates and people exercise on the calendar, not on conviction. Pay more attention to what happens *after* the M: if the insider holds the resulting shares (no paired S), that's a mild positive. If they sell immediately (cash exercise pattern), it's neutral-to-mildly-negative.

Do 10b5-1 plan sales show up differently on Form 4?

The transaction code is still S, but a footnote on the filing references the plan and the date it was adopted. Many quant filters discount S codes that cite a 10b5-1 plan because the sale was scheduled months in advance.

What does the "A" in "Form 4/A" mean?

Different thing. The /A after a form name (Form 4/A, 10-K/A, etc.) means *amendment*. It's a corrected version of a previously filed Form 4. The transaction code inside the amended filing still uses the standard single-letter codes.