Back to Editorial
2026-08-29//InsiderAlpha Research//Updated 2026-08-29

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 S disposition 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 M as an exercise or conversion of a derivative security exempted under Rule 16b-3;
  • code S as 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 classificationEventsShareIssuersOwnersMature 180D events
M + S in the same filing and transaction date28,10737.8%5315,28426,688
M without a same-filing, same-date S46,22562.2%6047,37341,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 exercisedEventsShare of paired eventsMedian ratioMedian disclosed sale valueMedian 180D
Under 25%6222.2%16.7%$197,716+3.86%
25% to under 75%2,6189.3%53.7%$737,491+5.17%
75% to under 95%1,2284.4%84.4%$1,435,355+4.35%
Approximately 100%20,84274.2%100.0%$1,274,587+4.34%
Over 105%2,79710.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:

CodeDirectionSharesRow-level interpretation
MAcquired10,000Exercise created common shares
SDisposed10,000Approximately 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.

RoleExercise eventsIncluded same-event saleMedian sell-through among paired events
Chair1,50551.6%100%
CEO9,70647.1%100%
President9,48242.4%100%
VP3,81739.6%100%
COO2,05038.9%100%
CFO5,90536.6%100%
Director13,68233.9%100%
Other Officer6,36129.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 classificationMedian 30DMedian 90DMedian 180DPositive 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 diagnosticResult
Matched ticker-years1,055
Median paired-minus-unpaired 180D spread-2.33 pp
Ticker-years where paired events had a lower median60.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?

PeriodExercise eventsIncluded same-event saleApproximately full sale among paired events
2007–20156,16953.5%77.3%
2016–202241,04340.6%74.3%
2023–202627,12030.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:

SQL
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:

  1. classify code M as an exercise, not an open-market purchase;
  2. inspect code S rows inside the same accession before labeling a sale as standalone;
  3. calculate the exercise-to-sale ratio instead of counting both legs as independent signals;
  4. retain post-transaction holdings and footnotes to distinguish partial retention from apparent full monetization;
  5. separate same-event classification from later sales that require a longer tracing window;
  6. use accepted_at when 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 S includes 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
Download 10,000-row sample
Buy full dataset · $99Review full release details

One-time payment · instant download · regular price $199

Tags
Form 4Transaction CodesOption ExercisesInsider SalesData Engineering