Home / Guides / 8-K events
8-K events

Monitor executive and director changes with 8-K Item 5.02

Pull 8-K Item 5.02 filings with their text, count which roles changed, and extract the sentence that names a new CEO or CFO.

Item 5.02 of Form 8-K covers the departure, election or appointment of directors and principal officers, plus new compensatory arrangements. Companies file it within four business days of the event, so it is the fastest public record of a CEO resignation, a new CFO or a board change.

This tutorial reads the Item 5.02 feed, counts which roles each filing mentions, and pulls the key sentence from each disclosure.

Get the filings with text

GET /v1/form-8k/executive-changes returns Item 5.02 filings newest first, each with the extracted item text. Pages hold up to 100 filings; use from to page further.

import os
import re
from collections import Counter
import requests

BASE = "https://secfeedapi.com"
HEADERS = {"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"}

r = requests.get(f"{BASE}/v1/form-8k/executive-changes", params={"startDate": "2026-10-01", "size": 100}, headers=HEADERS, timeout=120)
r.raise_for_status()
data = r.json()
print("Item 5.02 filings since 2026-10-01:", data["total"], "| with text in this page:", sum(1 for f in data["filings"] if f.get("text")))

ROLES = {"CEO": r"chief executive officer", "CFO": r"chief financial officer", "COO": r"chief operating officer",
         "Director": r"\bdirector\b|board of directors", "General counsel": r"general counsel|chief legal officer"}
EVENTS = {"departure": r"resign|retire|depart|terminat|step down|stepped down", "appointment": r"appoint|elect|named|hired"}

roles, events = Counter(), Counter()
HEADING = re.compile(r"^\s*item\s*5\.02.{0,300}?compensatory arrangements of certain officers\.?", re.I | re.S)  # the item title itself says "Departure ... Appointment"

for f in data["filings"]:
    text = HEADING.sub("", f.get("text") or "").lower()
    for k, p in ROLES.items():
        if re.search(p, text):
            roles[k] += 1
    for k, p in EVENTS.items():
        if re.search(p, text):
            events[k] += 1
print("Filings mentioning each role:", dict(roles.most_common()))
print("Filings mentioning each event:", dict(events.most_common()))
print()
for f in data["filings"][:6]:
    text = re.sub(r"\s+", " ", HEADING.sub("", f.get("text") or "")).strip()
    hit = re.search(r"[^.]*(chief executive officer|chief financial officer)[^.]*\.", text, re.I)
    print(f["filed"], f["company"][:40])
    print("   ", (hit.group(0).strip()[:220] if hit else text[:220]))

Output:

Item 5.02 filings since 2026-10-01: 305 | with text in this page: 97
Filings mentioning each role: {'Director': 70, 'CEO': 37, 'CFO': 30, 'General counsel': 15, 'COO': 13}
Filings mentioning each event: {'departure': 76, 'appointment': 64}

2026-10-13 Avery Dennison Corp
    (c) On October 9, 2026, the Board of Directors (the “Board”) of Avery Dennison Corporation, a Delaware corporation (the “Company”), elected Helen J. Sheirbon as President, Solutions Group, and an “executive officer” of t
2026-10-13 TUTOR PERINI CORP
    Gary Smalley, Chief Executive Officer and President, remarked, “Sid has been an exceptional member of our Board for the past 13 years, providing thoughtful oversight and sound business judgment that have helped shape Tut
2026-10-13 CSX CORP
    On October 12, 2026, CSX Corporation (the "Company" or "CSX") announced that Michael A. Cory is retiring from the Company. In connection with his retirement and in order to facilitate a smooth transition of his responsib
2026-10-13 DANAHER CORP /DE/
    Comas, age 62, joined the Company in 1991 and served as Executive Vice President from April 2005 through December 2020, including as Chief Financial Officer from April 2005 through December 2018.
2026-10-13 Bausch & Lomb Corp
    On October 12, 2026, Bausch + Lomb Corporation (the “Company”) announced that Brent Saunders, Chief Executive Officer of the Company and a member of the Company’s board of directors (the “Board”), and the Board have mutu
2026-10-13 Dauch Corp
    Iles will succeed Christopher May as Chief Financial Officer on December 1, 2026.

How the classification works

The text of every Item 5.02 starts with the item heading, "Departure of Directors or Certain Officers; Election of Directors; Appointment of Certain Officers; Compensatory Arrangements of Certain Officers." That heading contains both "departure" and "appointment," so the script strips it before matching keywords. Without that step every filing would count as both.

Of the 97 filings with text on this page:

  • 70 mention a director or the board, the most common case
  • 37 mention the chief executive officer and 30 the chief financial officer
  • 76 describe a departure (resignation, retirement, termination) and 64 an appointment or election

Keyword matching is a first pass. A filing that names the CEO may only quote them, as in the Tutor Perini example above, so read the extracted sentence before acting on a match.

Make it a daily alert

Run the request each morning with startDate set to yesterday and keep filings where the cleaned text matches chief executive officer|chief financial officer together with resign|retire|appoint. Add cik to follow a watchlist. For real-time delivery, subscribe to new 8-K filings with the real-time stream and fetch the item text when one arrives.

The item text is extracted from the filing on request, so the first call for a new filing takes a moment longer than later calls.

Next steps

More 8-k events guides

Run this guide with your own key

500 free API calls a month. Every example on this page works on the free plan.

Get free API key →