Technical writing
SEC Schedule 13D Filings: The Federal Database Behind Activist Investor Stakes
Schedule 13D is the federal filing an investor must submit when they cross five percent beneficial ownership of a US public company with intent to influence it — the document that turns a quiet stake into a public campaign. Together with its passive sibling Schedule 13G, it forms the beneficial-ownership disclosure record that surfaces activist toeholds, proxy fights, and breakup demands in near real time, and it is the dataset behind nearly every headline that begins with a hedge fund “taking a stake” in a company.
What It Is
Schedule 13D and Schedule 13G are the disclosure instruments created by Section 13(d) of the Securities Exchange Act of 1934, added by the Williams Act of 1968. The Williams Act was Congress's response to the rise of the cash tender offer and the corporate raider: a regime designed to give a target company's shareholders and management advance warning when a single person or coordinated group began accumulating a controlling block. Section 13(d) requires that any person or group acquiring beneficial ownership of more than five percent of a registered voting class of equity securities disclose that position publicly, on a prescribed schedule, with the SEC.
The five-percent threshold is the trigger. Below it, an investor can accumulate shares in a public company without any beneficial-ownership filing under Section 13(d). The moment aggregate beneficial ownership of a covered class crosses five percent, the clock starts and a filing becomes mandatory. The threshold is measured against the shares outstanding of the specific class — not against the investor's total portfolio and not against a blended count across share classes — so a company with multiple classes of voting stock can have separate five-percent thresholds for each.
Section 13(d) provides two routes to compliance, and the choice between them is the central analytical distinction in the entire dataset:
- Schedule 13D — the activist schedule. This is the full disclosure, required of any beneficial owner above five percent who does not qualify for the abbreviated 13G route. Its defining feature is Item 4, “Purpose of Transaction,” in which the filer must state what they intend to do. A 13D is the form filed by an investor who may seek to influence or control the issuer — to win board seats, push a sale or breakup, oppose a merger, or change management. Filing a 13D is the formal signal that a position is not merely an investment but a campaign.
- Schedule 13G — the passive schedule. This is the short-form alternative available to investors who hold their stake passively, without any purpose of changing or influencing control of the issuer. It is the form used by index funds, mutual fund complexes, pension funds, and other institutional holders who cross five percent simply through ordinary asset management. Three categories of filer qualify: “qualified institutional investors” (registered investment advisers, banks, insurance companies, and similar regulated entities that acquired the securities in the ordinary course of business and not to influence control), “passive investors” (anyone holding less than twenty percent with no control intent), and “exempt investors.” A 13G filer who holds twenty percent or more loses passive-investor eligibility and must use the institutional category or convert to a 13D.
The two schedules are filed against the same five-percent threshold but represent opposite postures. A 13D says “I am here and I may act.” A 13G says “I am here but I am passive.” That single distinction — intent — is what makes the beneficial-ownership dataset valuable to anyone tracking corporate control, and it is why the most important event in the data is not a new filing but a filer switching from 13G to 13D.
Filing Timeline
The deadlines for beneficial-ownership filings were rewritten by the SEC's 2023 amendments to the Section 13(d) and 13(g) rules, which took effect in 2024 and represented the most significant change to the regime in decades. Understanding both the historical and the current deadlines matters, because any longitudinal dataset spans the regime change.
The historical regime. For more than five decades, an investor crossing the five-percent threshold had ten calendar days to file an initial Schedule 13D. Schedule 13G deadlines were looser still: qualified institutional investors could file within 45 days after the end of the calendar year in which they crossed five percent, with an accelerated deadline only if they crossed ten percent. The ten-day 13D window was widely criticized. During those ten days, the acquirer remained free to continue buying shares while the market had no disclosure of the accumulating position — a window activists used to enlarge a stake at pre-announcement prices before the filing moved the stock.
The 2023 amendments. The SEC shortened the initial Schedule 13D deadline from ten calendar days to five business days after crossing five percent. It accelerated the 13G timeline as well: qualified institutional investors must now file an initial 13G within 45 days after the end of the calendar quarter (rather than the calendar year) in which they cross five percent, and passive investors must file within five business days. The amendments also tightened amendment deadlines — material changes to a 13D must now be reported within two business days — and the SEC moved beneficial-ownership filings toward structured, machine-readable submission. The net effect is a meaningfully faster public disclosure of activist accumulation than existed before 2024.
Amendments and the cooling-off concept. A Schedule 13D is a living document. Once filed, it must be amended promptly to reflect any material change — a change of one percent or more in the size of the position is deemed material per se, as are material changes in the filer's stated intent. An investor who files a 13D stating a passive investment purpose and then decides to seek board seats must amend Item 4 to disclose the new purpose. The amendment trail is itself a rich dataset: the sequence of 13D amendments on a single target reconstructs the arc of a campaign, from initial toehold through escalating demands to settlement or proxy contest.
Group formation and the “group” problem. Section 13(d)(3) provides that when two or more persons act together for the purpose of acquiring, holding, or voting securities, they are treated as a single “group” whose combined beneficial ownership is aggregated for the five-percent test. Group formation can itself be a triggering event: if several investors who each hold below five percent agree to act in concert and their combined holdings exceed five percent, the group must file. This is the most legally contested area of the regime — what constitutes “acting together” short of a formal agreement is the subject of substantial litigation — and it is the hardest dimension to capture in data, because group membership is self-declared on the cover pages of the schedule.
The Fields
A structured extract of the beneficial-ownership corpus — modeled here as the tablesec_schedule13d_positions — reduces each filing to the core fields that drive analysis. The columns map to the cover pages and key items of the schedule:
accession_number. The EDGAR accession number uniquely identifying the filing. The join key to the underlying documents on the EDGAR archive and to the amendment chain — successive amendments share the target and filer but each carries its own accession number.filing_date. The date the schedule was accepted by EDGAR. For event studies of the announcement effect, the filing date (or, more precisely, the filing timestamp relative to market hours) is the event date. Note the distinction from the underlying transaction dates: the schedule discloses a position as of a date that may precede the filing by up to the statutory window.form_type. The schedule type — “SC 13D,” “SC 13G,” and their amendment variants (“SC 13D/A,” “SC 13G/A”). This field carries the single most important signal in the dataset: whether the filing is the activist 13D or the passive 13G, and whether it is an initial filing or an amendment.filer_cikandfiler_name. The Central Index Key and name of the reporting person. In practice the filer is frequently not a natural person but a stack of entities — a limited partnership that holds the shares, a general partner, an investment manager, and the individual principal — all listed as joint filers on the cover pages. The filer CIK is the stable identifier for tracking a fund across campaigns, while the name string varies across filings and entity layers.target_issuer_name. The name of the company whose securities are the subject of the filing — the target. Joining the target to its own EDGAR CIK links the 13D to the company's proxy statements, 8-K filings, and financial reports.target_cusip. The CUSIP identifier of the specific security class. The CUSIP appears prominently on the cover page of every schedule and is the cleanest machine-readable identifier of the exact security, more precise than the issuer name for a multi-class company.target_ticker. The exchange ticker of the target, where resolvable. The ticker is the practical join key to market-price data for measuring the announcement effect, though it must be derived — the schedule itself reports CUSIP and issuer name rather than ticker.aggregate_shares. The total number of shares beneficially owned by the filer or group as reported on the cover page. “Beneficial ownership” here is a legal construct that includes shares the filer has the right to acquire within 60 days (through options or convertible instruments), so the aggregate share count can exceed the shares actually held outright.percent_of_class. The reported percentage of the outstanding class that the aggregate position represents. This is the headline number — the figure quoted when a fund “discloses an X percent stake” — and the field that ranks campaigns by size. It is self-reported and computed against a shares-outstanding figure that the filer must specify.purpose_snippet. Extracted free text from Item 4, “Purpose of Transaction.” This is the analytically richest field in the entire dataset and has no analog in passive 13G filings. Item 4 is where the filer states intent in prose: boilerplate language about acquiring shares “for investment purposes,” or escalated language reserving the right to seek board representation, engage with management and other shareholders, propose strategic alternatives including a sale of the company, or oppose a pending transaction. The transition in Item 4 language from passive boilerplate to explicit demands — tracked across a 13D and its amendments — is the textual signature of an activist campaign escalating.
The asymmetry between 13D and 13G in this schema is the key point. A 13G is a thin record: a filer, a target, a share count, a percentage, and a checkbox asserting passivity. A 13D carries all of that plus Item 4 — the statement of intent that converts ownership data into a narrative about corporate control.
The Activist Playbook
Schedule 13D is the public starting gun for shareholder activism, and the modern activist investor has a recognizable repertoire of moves that the filing and its amendments document. The names that recur in the dataset are a roster of the discipline's major practitioners.
Carl Icahn is the archetype, with a multi-decade record of 13D campaigns through Icahn Enterprises and affiliated entities across companies ranging from RJR Nabisco and TWA in earlier eras to Apple, Netflix, Herbalife, Dell, and many others. His filings are a case study in the Item 4 escalation pattern: an initial stake disclosed with measured language, followed by amendments demanding board seats, share buybacks, spinoffs, or a sale. Elliott Management, led by Paul Singer, runs one of the largest and most systematic activist operations, known for deeply researched campaigns, a willingness to pursue litigation, and demands ranging from operational change to outright sale across technology, industrial, and energy targets. Pershing Square, led by Bill Ackman, is associated with concentrated, high-conviction positions and very public campaigns — both successful ones and conspicuous failures — including long battles such as the one over Herbalife and turnaround theses at companies like Canadian Pacific and Chipotle.
Starboard Value, led by Jeff Smith, is known for operational and governance campaigns and for one of the most complete proxy victories in the field's history, when it replaced the entire board of Darden Restaurants. Third Point, led by Dan Loeb, became known partly for the pointed, sometimes acerbic public letters attached to or accompanying its filings, in campaigns at companies including Yahoo, Sony, and others. ValueAct Capital takes a comparatively collaborative posture, often seeking a single board seat and working with management rather than running public proxy fights, with a portfolio spanning software and industrials. Trian Partners, led by Nelson Peltz, runs large-cap operational campaigns at consumer and industrial giants — among them Procter & Gamble, where Peltz waged one of the largest proxy contests in corporate history, as well as Heinz, Mondelez, and others.
The mechanics these investors deploy follow a recognizable sequence:
- The toehold. The fund accumulates shares quietly up to and across the five-percent threshold, then files the initial 13D. The accumulation window before the filing — narrowed by the 2023 amendments but never zero — lets the fund build a position at prices that do not yet reflect the campaign.
- Board representation. The most common single demand. The activist seeks one or more seats on the board, either through negotiation with the company (a settlement that adds the activist's nominees) or through a proxy contest if negotiation fails.
- The proxy fight. When the company resists, the activist solicits other shareholders' votes to elect a dissident slate of directors at the annual meeting. Proxy contests are expensive and public, and the 13D amendment trail typically tracks the escalation toward one.
- Strategic alternatives, breakup, and sale. The activist may demand that the company explore “strategic alternatives” — code for a sale of the company or a breakup into separately valued pieces — or may oppose a pending merger the activist considers underpriced. These demands surface directly in the Item 4 text.
- Capital return. Demands for share buybacks, special dividends, or changes to capital allocation, on the thesis that the company is hoarding cash or underleveraged.
The 13D announcement effect. The empirical regularity that anchors the entire dataset is the stock-price pop on the public disclosure of an activist 13D. The canonical study is Brav, Jiang, Partnoy, and Thomas (2008) in the Journal of Finance, which documented average abnormal returns of roughly six to seven percent in the window around a 13D filing announcing an activist campaign, with no subsequent reversal — evidence that the market reads the filing as credible information about future value creation rather than as transient noise. The magnitude varies with the identity of the filer (campaigns by funds with strong track records move prices more), the size of the stake, and the specificity of the Item 4 demands. The persistence of this effect is what makes real-time monitoring of new 13D filings a genuine information edge, and it is why the filings are scrutinized within minutes of hitting EDGAR.
13D Versus 13G
Because the two schedules share a threshold but signal opposite intent, the boundary between them — and movement across it — is the most informative feature of the dataset.
A passive holder files 13G. An institution that owns more than five percent of thousands of companies through index and mutual funds — the largest asset managers each appear on 13G filings for a substantial fraction of the entire US public market — files 13G as a matter of routine compliance, with no implication of any intent to influence those companies. The volume of 13G filings dwarfs 13D filings, and the overwhelming majority of beneficial ownership crossings are passive institutional positions carrying no control signal whatsoever. For activist analysis, the 13G universe is mostly background.
Crossing from 13G to 13D is the turn-activist signal. The single most valuable event in the beneficial-ownership data is a filer who previously reported a position on Schedule 13G — asserting passivity — switching to Schedule 13D. The switch is a legal admission that the filer's purpose has changed from passive investment to a posture that may seek to influence or control the issuer. A 13G filer who decides to engage with management, nominate directors, or push for strategic change loses passive eligibility and must convert to a 13D, disclosing the new purpose in Item 4. Detecting these conversions — matching a new 13D against a prior 13G by the same filer on the same target — identifies the precise moment a holder became an activist, often before the campaign is otherwise public. Conversely, an activist who has concluded a campaign and reverted to passivity may switch from 13D back to 13G, signaling the end of the engagement.
The eligibility rules reinforce the distinction. A passive 13G filer who accumulates twenty percent or more can no longer claim passive-investor status and must move to the institutional 13G category or to 13D. And a filer who takes any of the actions inconsistent with passivity — soliciting proxies, proposing a transaction, seeking board seats — forfeits 13G eligibility regardless of stake size. The form-type field, tracked over time per filer-target pair, is therefore a direct readout of intent transitions.
What You Can Do With It
The structured beneficial-ownership corpus supports a range of analyses that are difficult or impossible from any single filing read in isolation:
- Build an activist-campaign tracker. Filter the corpus to
form_typeof SC 13D and its amendments, group by filer CIK and target, and order each group by filing date to reconstruct the full arc of every campaign — initial stake, escalating Item 4 demands across amendments, and final position. The amendment chain converts a pile of documents into a timeline. - Measure the 13D announcement effect. Join initial 13D filings to market price data by resolved ticker and run an event study around the filing date, computing abnormal returns relative to a market or sector benchmark. Stratify by filer reputation, stake size, and the specificity of Item 4 language to estimate which campaign characteristics predict the largest price response.
- Map which funds target which sectors. Join targets to their industry classifications and aggregate by filer to profile each activist's sector specialization — which funds concentrate in technology versus consumer versus industrials — and to detect shifts in a fund's focus over time.
- Detect group accumulation. Parse the joint-filer cover pages to identify declared groups, and look for clusters of separate filers crossing five percent on the same target within a short window — a pattern that can indicate a coordinated “wolf pack” even where the filers stop short of declaring a formal group.
- Surface 13G-to-13D conversions. Match new 13D filings against prior 13G filings by the same filer CIK on the same target CUSIP to generate a real-time feed of investors turning activist — arguably the highest-value signal the dataset produces.
- Text-mine Item 4 at scale. Classify the purpose snippets into a taxonomy of demand types — board representation, sale or breakup, capital return, opposition to a merger, management change — to study which demands are rising in frequency and which correlate with campaign success.
Python: Pulling and Ranking SC 13D Filings from EDGAR
The script below demonstrates the end-to-end workflow: querying the EDGAR full-text search index for recent Schedule 13D filings, resolving each filing's primary document, extracting the reported percent of class and the Item 4 purpose snippet, and ranking the most recent campaigns by disclosed stake size. The same scaffold extends to historical bulk analysis by iterating over the quarterly EDGAR index files and to conversion detection by retaining the form type and matching filers across targets over time.
import requests
import datetime
from collections import defaultdict
# ---------------------------------------------------------------------------
# SEC EDGAR Schedule 13D Activist Campaign Screen
# Sources:
# Full-text search: https://efts.sec.gov/LATEST/search-index?q=...&forms=SC%2013D
# Submissions API: https://data.sec.gov/submissions/CIK{cik:010d}.json
# Company tickers: https://www.sec.gov/files/company_tickers.json
#
# Strategy:
# 1. Query EDGAR full-text search for recent SC 13D filings.
# 2. For each hit, pull the filer CIK, target issuer, and accession number.
# 3. Fetch the filing's primary document to extract percent of class
# and the Item 4 purpose-of-transaction text.
# 4. Rank recent campaigns by reported percent of class.
# ---------------------------------------------------------------------------
HEADERS = {"User-Agent": "research@example.com (activist-screen research project)"}
EFTS = "https://efts.sec.gov/LATEST/search-index"
DATA = "https://data.sec.gov"
ARCHIVE = "https://www.sec.gov/Archives/edgar"
# -- 1. Query full-text search for recent SC 13D filings ----------------------
def recent_13d_filings(days_back: int = 30, size: int = 100) -> list[dict]:
"""Return recent Schedule 13D filings from the EDGAR full-text index."""
today = datetime.date.today()
start = today - datetime.timedelta(days=days_back)
params = {
"q": '"purpose of transaction"', # broad text present in Item 4
"forms": "SC 13D", # form-type filter
"dateRange": "custom",
"startdt": start.isoformat(),
"enddt": today.isoformat(),
"from": 0,
}
out: list[dict] = []
while True:
resp = requests.get(EFTS, params=params, headers=HEADERS, timeout=30)
resp.raise_for_status()
hits = resp.json().get("hits", {}).get("hits", [])
if not hits:
break
for h in hits:
src = h.get("_source", {})
# _id looks like "0001234567-25-000123:primarydoc.htm"
accession = h.get("_id", "").split(":")[0]
ciks = src.get("ciks", []) # filer CIK(s)
display = src.get("display_names", [])
out.append({
"accession": accession,
"filed": src.get("file_date", ""),
"form": src.get("file_type", ""),
"filer_ciks": ciks,
"names": display,
})
if len(out) >= size:
return out
params["from"] += len(hits)
return out
# -- 2. Fetch the filing index to locate the primary document -----------------
def primary_doc_url(accession: str, filer_cik: str) -> str:
"""Build the URL of the primary SC 13D document for an accession number."""
acc_nodash = accession.replace("-", "")
base = ARCHIVE + "/" + str(int(filer_cik)) + "/" + acc_nodash + "/"
idx = requests.get(base + "index.json", headers=HEADERS, timeout=20)
idx.raise_for_status()
for item in idx.json().get("directory", {}).get("item", []):
name = item.get("name", "")
if name.endswith(".htm") and "index" not in name.lower():
return base + name
raise ValueError("primary document not found for " + accession)
# -- 3. Extract percent of class and the Item 4 purpose snippet ---------------
def extract_fields(doc_text: str) -> dict:
"""Pull percent-of-class and a purpose snippet from filing HTML/text."""
import re
text = re.sub(r"<[^>]+>", " ", doc_text) # strip tags
text = re.sub(r"\s+", " ", text)
pct = None
m = re.search(r"Percent of [Cc]lass[^0-9]{0,40}([0-9]{1,3}(?:\.[0-9]+)?)\s*%", text)
if m:
pct = float(m.group(1))
snippet = ""
m = re.search(r"Purpose of (?:the )?Transaction(.{0,600})", text, re.IGNORECASE)
if m:
snippet = m.group(1).strip()[:400]
return {"percent_of_class": pct, "purpose_snippet": snippet}
# -- 4. Rank recent campaigns by reported stake size --------------------------
print("Fetching recent SC 13D filings ...")
filings = recent_13d_filings(days_back=30, size=60)
print(" Found " + str(len(filings)) + " filings")
rows: list[dict] = []
for f in filings:
cik = f["filer_ciks"][0] if f["filer_ciks"] else None
if not cik:
continue
try:
url = primary_doc_url(f["accession"], cik)
body = requests.get(url, headers=HEADERS, timeout=20).text
flds = extract_fields(body)
except Exception as e:
print(" skip " + f["accession"] + " -- " + str(e))
continue
rows.append({
"filer": f["names"][0] if f["names"] else cik,
"filed": f["filed"],
"percent": flds["percent_of_class"],
"purpose": flds["purpose_snippet"],
})
# Rank by reported percent of class (largest disclosed stakes first)
ranked = sorted(
[r for r in rows if r["percent"] is not None],
key=lambda r: r["percent"], reverse=True,
)
print("\nLargest recently disclosed 13D stakes:")
for r in ranked[:10]:
filer = r["filer"][:34].ljust(36)
pct = (str(r["percent"]) + "%").rjust(7)
print(" " + filer + " " + pct + " " + r["filed"])
if r["purpose"]:
print(" Item 4: " + r["purpose"][:90])
Several implementation notes apply. The EDGAR full-text search index covers filings from 2001 onward and supports a forms parameter that filters precisely to “SC 13D” or “SC 13G”; for the complete historical record before 2001, fall back to the quarterly bulk index files. Percent-of-class and Item 4 extraction by regular expression is a first approximation — production parsing should target the structured cover-page fields and the labeled Item 4 section rather than free-text matching, because the layout of the schedule HTML varies across filers and filing agents. For conversion detection, retain theform_type and filer_cik for every filing and key on the filer-plus-target pair to flag a 13D that follows a prior 13G. As with all EDGAR access, the SEC fair-access policy requires a descriptive User-Agent header with a contact email and a request rate at or below ten requests per second; ignoring the limit risks an IP block.
Caveats
The five-percent threshold misses sub-threshold stakes. Section 13(d) imposes no beneficial-ownership filing obligation below five percent. An investor can hold 4.9 percent of a company indefinitely with no 13D or 13G on the record, and activists sometimes operate deliberately just under the line to avoid disclosure while they build a thesis or coordinate. The dataset is therefore a record of disclosed positions above a bright line, not a complete census of large shareholders, and the absence of a filing does not mean the absence of a meaningful stake.
Derivative and synthetic exposure may be under-captured. Beneficial ownership for the five-percent test generally counts shares plus instruments exercisable within 60 days, but economic exposure obtained through cash-settled derivatives — total return swaps and similar instruments that confer economic interest without voting rights or a present right to acquire shares — has historically sat in a gray area. The contest over whether such swap exposure must be aggregated for the threshold has produced significant litigation, and an investor can build substantial economic exposure to a company through derivatives while reporting a smaller on-record share position, or none at all. Analysts should treat the reported aggregate share count as the disclosed legal position, not necessarily the filer's full economic interest.
Group attribution is complex and self-declared. Whether a set of investors constitutes a Section 13(d) group turns on a fact-intensive judgment about whether they are acting together, and group membership appears in the data only as the filers themselves declare it on the cover pages. Coordinated activity that stops short of a declared agreement — the “wolf pack” pattern of independent funds converging on the same target — may not be reported as a group even when the economic reality is coordinated pressure. Aggregating positions to the “true” controlling interest behind a campaign requires inference beyond what the filings disclose, and the boundaries of any group are exactly the question most likely to be litigated.
Self-reported figures and timing. The percent of class is computed by the filer against a shares-outstanding figure the filer specifies, and both the share count and the as-of date are self-reported. Late and amended filings are common, and the position a schedule discloses is a snapshot that may already have changed by the time it appears on EDGAR. For campaign-level analysis these caveats are usually second-order, but for precise position reconstruction they require care.
Related writing
Schedule 13D governs the entry of a large shareholder; once an investor crosses ten percent, every subsequent transaction is reported on Form 4. See SEC Form 4 Insider Trading: The Federal Database Behind Corporate Insider Stock Transactions.
For the other end of the SEC disclosure spectrum — capital raised privately rather than positions taken publicly — see SEC Form D: The Federal Database Behind Private Securities Offerings.
Schedule 13D is a mandatory beneficial-ownership disclosure regime; for a parallel mandatory disclosure regime covering influence rather than ownership, see FARA Registrations: The Federal Database Behind Foreign Influence in America.