Why Form 4 Codes M and S Appear Together: Measuring Exercise-and-Sell Events
Across 74,332 Form 4 exercise events, 37.8% included a same-filing sale and nearly three quarters of those paired events sold approximately all exercised shares.
An insider exercises 10,000 options. Another row in the same Form 4 reports a sale of 10,000 shares.
A row-by-row feed can describe the first line as an acquisition and the second as bearish selling. The filing-level interpretation is different: the owner exercised a derivative and sold approximately all of the resulting common shares in the same reported event.
Using the complete July 29, 2026 InsiderAlpha Form 4 Research Database, we measured 74,332 non-derivative code M acquisition events from 2007 through July 2026.
The central finding is operationally important:
28,107 events, or 37.8%, contained a code
Sdisposition for the same accession, owner, ticker and transaction date. Of those paired events, 74.2% sold approximately 95% to 105% of the shares acquired through the exercise.
This is why a serious Form 4 screener cannot interpret every S row independently.
What codes M and S mean
The official SEC Form 4 instructions define:
- code
Mas an exercise or conversion of a derivative security exempted under Rule 16b-3; - code
Sas an open-market or private sale of a non-derivative or derivative security.
Form 4 separates derivative securities in Table II from underlying non-derivative holdings in Table I. The database preserves that distinction through transaction_table, along with the acquired/disposed direction, accession number and transaction sequence.
For this study, an exercise event begins with a current Table I/non-derivative code M acquisition. That avoids double-counting the corresponding derivative disposition reported for the same exercise.
How often an exercise included a sale
| Exercise classification | Events | Share | Issuers | Owners | Mature 180D events |
|---|---|---|---|---|---|
M + S in the same filing and transaction date | 28,107 | 37.8% | 531 | 5,284 | 26,688 |
M without a same-filing, same-date S | 46,225 | 62.2% | 604 | 7,373 | 41,492 |
The paired cohort exercised a median of 10,000 shares. The unpaired cohort exercised a median of 3,385 shares.
This classification does not prove that the sale financed the exercise price, covered taxes or reflected a particular trading plan. It establishes a narrower fact: both economic legs were reported for the same owner, issuer, accession and date.
How much of the exercise was sold
For paired events, we calculated:
sell-through ratio = code S shares sold / code M shares acquired
| Same-event shares sold relative to shares exercised | Events | Share of paired events | Median ratio | Median disclosed sale value | Median 180D |
|---|---|---|---|---|---|
| Under 25% | 622 | 2.2% | 16.7% | $197,716 | +3.86% |
| 25% to under 75% | 2,618 | 9.3% | 53.7% | $737,491 | +5.17% |
| 75% to under 95% | 1,228 | 4.4% | 84.4% | $1,435,355 | +4.35% |
| Approximately 100% | 20,842 | 74.2% | 100.0% | $1,274,587 | +4.34% |
| Over 105% | 2,797 | 10.0% | 150.0% | $1,743,780 | +5.30% |
Approximately 100% means a ratio from 95% through 105%, allowing for filing tranches and small differences between the exercise and sale legs.
A ratio above 105% does not mean the filing is mathematically invalid. It can indicate that the owner sold shares from an existing position in addition to shares obtained through the exercise. That cohort needs remaining-holdings and footnote context rather than forced relabeling.
Why row-level classification fails
Consider a simplified filing:
| Code | Direction | Shares | Row-level interpretation |
|---|---|---|---|
M | Acquired | 10,000 | Exercise created common shares |
S | Disposed | 10,000 | Approximately all exercised shares were sold |
If a pipeline reads only the first row, it can mistake an exercise for conviction buying. If it reads only the second, it can mistake a connected monetization event for a standalone discretionary sale.
The correct unit is not always a filing line. For exercise-and-sell classification, the useful identity is:
accession × ticker × reporting owner × transaction date
Security title, transaction table, ownership form and footnotes should remain available for the final interpretation.
Exercise-and-sale frequency by role
The pairing rate differed by normalized role, but the median sell-through ratio was 100% for every large role cohort.
| Role | Exercise events | Included same-event sale | Median sell-through among paired events |
|---|---|---|---|
| Chair | 1,505 | 51.6% | 100% |
| CEO | 9,706 | 47.1% | 100% |
| President | 9,482 | 42.4% | 100% |
| VP | 3,817 | 39.6% | 100% |
| COO | 2,050 | 38.9% | 100% |
| CFO | 5,905 | 36.6% | 100% |
| Director | 13,682 | 33.9% | 100% |
| Other Officer | 6,361 | 29.0% | 100% |
These are descriptive frequencies. Role composition, compensation design, issuer maturity and reporting coverage differ across cohorts.
Raw outcomes versus the matched comparison
The pooled return table does not make exercise-and-sale events look mechanically bearish:
| Exercise classification | Median 30D | Median 90D | Median 180D | Positive at 180D |
|---|---|---|---|---|
M + S in the same event | +0.71% | +2.37% | +4.50% | 60.5% |
M without same-event S | +0.80% | +2.26% | +4.19% | 58.5% |
The paired cohort had a slightly higher pooled 180-day median. Pooled comparisons, however, can be dominated by different issuers and years.
We therefore compared paired and unpaired exercise events within the same ticker-year, requiring at least three mature events in each cohort.
| Matched ticker-year diagnostic | Result |
|---|---|
| Matched ticker-years | 1,055 |
| Median paired-minus-unpaired 180D spread | -2.33 pp |
| Ticker-years where paired events had a lower median | 60.9% |
| Bootstrap 95% interval | -3.26 to -1.51 pp |
The reversal is the useful finding. The pooled population and the within-issuer-year comparison answer different questions. After controlling partially for issuer and calendar year, exercises accompanied by sales were associated with lower subsequent absolute returns than exercises without a same-event sale.
That association is not proof of private information or a tradable effect. It does show that M + S and standalone M are economically different event classes and should not be collapsed into one exercise category.
Has the pairing rate changed?
| Period | Exercise events | Included same-event sale | Approximately full sale among paired events |
|---|---|---|---|
| 2007–2015 | 6,169 | 53.5% | 77.3% |
| 2016–2022 | 41,043 | 40.6% | 74.3% |
| 2023–2026 | 27,120 | 30.0% | 72.6% |
The observed same-event pairing rate declined across these broad periods, while selling approximately all exercised shares remained the dominant paired pattern.
This trend should be interpreted cautiously. Historical source completeness, compensation practices, filing construction and the unfinished 2026 return window can all affect the composition. The table is a coverage diagnostic and a hypothesis for further research, not evidence of one causal change.
A reproducible DuckDB pattern
The core classification can be expressed without a proprietary score:
WITH relevant_rows AS (
SELECT
accession_number,
"Ticker" AS ticker,
reporting_owner_cik,
"Date" AS transaction_date,
"Type" AS transaction_code,
"Shares" AS shares
FROM transactions
WHERE COALESCE(is_current, TRUE)
AND transaction_table = 'non_derivative'
AND (
("Type" = 'M' AND acquired_disposed = 'A')
OR ("Type" = 'S' AND acquired_disposed = 'D')
)
AND "Shares" > 0
AND accession_number IS NOT NULL
), owner_events AS (
SELECT
accession_number,
ticker,
reporting_owner_cik,
transaction_date,
SUM(CASE WHEN transaction_code = 'M' THEN shares ELSE 0 END)
AS exercised_shares,
SUM(CASE WHEN transaction_code = 'S' THEN shares ELSE 0 END)
AS sold_shares
FROM relevant_rows
GROUP BY 1, 2, 3, 4
)
SELECT
*,
sold_shares / NULLIF(exercised_shares, 0) AS sell_through_ratio
FROM owner_events
WHERE exercised_shares > 0;
A production implementation should add a fallback owner key when CIK is missing and retain security titles, transaction sequences, ownership nature and filing notes for auditability.
What a screener should do
A defensible pipeline should:
- classify code
Mas an exercise, not an open-market purchase; - inspect code
Srows inside the same accession before labeling a sale as standalone; - calculate the exercise-to-sale ratio instead of counting both legs as independent signals;
- retain post-transaction holdings and footnotes to distinguish partial retention from apparent full monetization;
- separate same-event classification from later sales that require a longer tracing window;
- use
accepted_atwhen testing what public users could have known.
The broader code distribution is documented in Form 4 Transaction Codes in Practice. The companion screener implementation guide shows how to apply canonicalization and owner-event aggregation before ranking activity.
Limitations
- Same accession and date establish reported co-occurrence, not the insider's motive.
- The study does not prove that sale proceeds funded the exercise or covered taxes.
- Code
Sincludes private as well as open-market sales under the SEC definition. - Same-event matching misses sales reported in later filings or on later dates.
- Ratios above 100% can include shares from pre-existing holdings.
- Returns are absolute security-price changes from the transaction-date close, not benchmark-adjusted alpha.
- The matched ticker-year comparison does not control for role, plan status, option expiration, earnings windows or owner-specific behavior.
- Repeated events from the same owner and issuer are not fully independent.
This is a descriptive event study and data-engineering framework, not investment advice.
Conclusion
Code M and code S often describe two legs of one reported sequence. In the complete release, more than one third of non-derivative exercise events included a same-filing, same-date sale, and nearly three quarters of those paired events sold approximately all exercised shares.
The practical conclusion is not to ignore every exercise-linked sale. It is to classify the sequence before assigning meaning. The matched comparison suggests that paired and unpaired exercises behave differently, while the limitations prevent turning that association into a universal trading rule.
Researchers can inspect the connected fields in the free 10,000-row sample, obtain the complete DuckDB release for reproducible analysis or query targeted filings through the InsiderAlpha API.
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