How to Read a 10-K Annual Report Filing
How to read a 10-K: what each item covers, from the business and risk factors to the audited notes, plus filing deadlines and how to pull one from EDGAR.
How to read a 10-K: go in through the item numbers, not the first page. A 10-K is the audited annual filing a US public company sends to the SEC, and it follows a fixed sequence of numbered items that has held steady for about two decades. Learn the sequence once and you can find the business description, the risk factors, management's own account of the year, and the audited statements in any company's filing, in roughly the same place every time. For the wider map of what else a company sends to EDGAR, start with the most common SEC filings.
What is a 10-K, and how is it different from the annual report?
The glossy book with photographs and a shareholder letter is the annual report to shareholders, a communications document a company has wide latitude over. The 10-K is the regulated filing: fixed structure, audited statements, signed certifications from the chief executive and chief financial officer, and legal liability attached to what it says.
The 10-Q is the quarterly cousin: shorter, unaudited (an auditor reviews it rather than audits it), and covering only the first three fiscal quarters. The fourth quarter arrives folded into the 10-K instead, which is why a reader lining up four quarters has to back it out of the annual figures. Our note on H1 and H2 reporting periods works through the same arithmetic for half-year reporters.
What are the items in a 10-K?
Every 10-K runs four parts in order, and the items inside them carry stable numbers.
- Item 1, Business: what the company sells, to whom, and under what regulation.
- Item 1A, Risk Factors: the catalogue of what could go wrong, drafted by the company's lawyers.
- Item 1C, Cybersecurity: security risk management and governance, new for fiscal years ending after December 15, 2023.
- Item 2, Properties: plants, stores, data centers, owned against leased.
- Item 3, Legal Proceedings: material litigation, in the company's own characterization.
- Item 5, Market for Common Equity: dividend history, fourth-quarter share repurchases, and equity plan detail.
- Item 7, Management's Discussion and Analysis (MD&A): the year in the company's words, segment by segment, with liquidity at the end.
- Item 7A, Market Risk: quantitative exposure to interest rates, currencies, and commodity prices.
- Item 8, Financial Statements and Supplementary Data: the audited statements and the notes behind them.
- Item 9A, Controls and Procedures: management's assessment of internal control over financial reporting.
Parts III and IV hold governance, pay and ownership (Items 10 through 14, usually incorporated by reference to the proxy statement) and the exhibit list (Item 15), where credit agreements and material contracts sit.
Section labels are also how a filing gets indexed. The panel below counts how often each label is captured across annual filings since 2020, and how much text sits under it.
| section | filing_count | company_count | avg_thousand_characters |
|---|---|---|---|
| business | 4970 | 1625 | 46.5 |
| risk_factors | 4957 | 1621 | 69.9 |
| mda | 194 | 194 | 55.1 |
The exact SQL behind every number
SELECT
section AS section,
uniqExact(cik, period_end) AS filing_count,
uniqExact(cik) AS company_count,
round(avg(length(text)) / 1000.0, 1) AS avg_thousand_characters
FROM global_markets.stocks_10k_sections
WHERE period_end >= '2020-01-01'
AND section != ''
AND length(text) > 0
GROUP BY section
ORDER BY filing_count DESC
LIMIT 12The panel holds 3 section labels. The most frequently captured of them, business, appears in 4970 separate annual filings from 1625 companies, and averages 46.5 thousand characters of text.
Where the information in a 10-K actually sits
Practised readers work from the back. Item 7, the MD&A, is the most readable part of the document and the most managed, prose the company controls. Item 8 is where the audited numbers live, and the notes are where the detail that moves a model sits: revenue recognition policy, segment and geographic breakouts, lease and debt maturity schedules, the tax reconciliation, stock compensation, commitments and contingencies. Item 9A deserves two minutes: a disclosed material weakness in internal control over financial reporting shows up there in plain language.
A 10-K also accumulates: companies rarely delete risk language once it is in. The panel below traces one filer over a decade. Apple's fiscal year ends in late September, so "fiscal 2025" and "calendar 2025" are different windows.
| year | section_count | thousand_characters |
|---|---|---|
| 2018 | 2 | 86 |
| 2024 | 2 | 85 |
| 2025 | 2 | 84 |
The exact SQL behind every number
WITH per_section AS (
SELECT
toYear(period_end) AS fiscal_year,
section AS section,
max(length(text)) AS section_characters
FROM global_markets.stocks_10k_sections
WHERE ticker = 'AAPL'
AND period_end >= '2016-01-01'
AND section != ''
GROUP BY fiscal_year, section
)
SELECT
toString(fiscal_year) AS year,
count() AS section_count,
round(sum(section_characters) / 1000.0) AS thousand_characters
FROM per_section
GROUP BY fiscal_year
ORDER BY fiscal_yearThe trace covers 3 fiscal years. The earliest, ending in 2018, carries about 86 thousand characters of captured section text. The most recent, ending in 2025, carries about 84 thousand across 2 captured sections.
What is in Item 1A, the risk factors?
Item 1A is the longest item in most filings and the least differentiated. Read it by hunting the specific paragraphs: language naming a customer, a plant, a regulator or a dollar figure was written for this company, while language about general economic conditions came off a template. The year-over-year diff is the part worth tracking.
The panel below counts how many companies carry at least one risk disclosure under each of the largest taxonomy categories, across filings indexed since the start of 2024.
| risk_category | company_count |
|---|---|
| financial_and_market | 804 |
| strategic_and_competitive | 796 |
| regulatory_and_compliance | 785 |
| external_and_systemic | 779 |
| operational_and_execution | 775 |
| technology_and_information | 731 |
| governance_and_stakeholder | 697 |
The exact SQL behind every number
SELECT
primary_category AS risk_category,
uniqExact(ticker) AS company_count
FROM global_markets.stocks_risk_factors
WHERE filing_date >= '2024-01-01'
AND ticker != ''
AND primary_category != ''
GROUP BY risk_category
ORDER BY company_count DESC
LIMIT 10The broadest category in the panel, financial_and_market, covers 804 companies. The smallest of the 7 shown, governance_and_stakeholder, still covers 697.
When is a 10-K due, and what happens when one is late?
The deadline turns on filer status, which turns on public float, the market value of shares held by people other than insiders and affiliates.
- Large accelerated filer, float of $700 million or more: 60 days after fiscal year end.
- Accelerated filer, float from $75 million up to $700 million: 75 days.
- Non-accelerated filer, everything below that: 90 days.
Those tiers have been in place since the mid-2000s. For the 10-Q the equivalents are 40 days for both accelerated tiers and 45 for everyone else.
A filer that cannot make the date files a Form 12b-25, which EDGAR indexes as NT 10-K. Filing it by the original due date buys up to 15 extra calendar days for an annual report, 5 for a quarterly.
The annual-filing family on EDGAR is wider than one form.
| filing_label | filing_count |
|---|---|
| Annual report (10-K) | 17696 |
| Late notice (NT 10-K) | 2008 |
| Amended annual report (10-K/A) | 1847 |
| Other 10-K variants | 41 |
The exact SQL behind every number
SELECT
multiIf(
form_type = '10-K', 'Annual report (10-K)',
form_type LIKE 'NT 10-K%', 'Late notice (NT 10-K)',
form_type LIKE '10-K/A%', 'Amended annual report (10-K/A)',
'Other 10-K variants'
) AS filing_label,
uniqExact(accession_number) AS filing_count
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date >= '2024-01-01'
AND filing_date < '2026-10-01'
AND (form_type LIKE '10-K%' OR form_type LIKE 'NT 10-K%')
GROUP BY filing_label
ORDER BY filing_count DESCAcross calendar 2024 through September 2026, the largest block in the panel is Annual report (10-K), at 17696 filings. The next line down, Late notice (NT 10-K), covers 2008.
Deadlines pinned to fiscal year end give the filing calendar a rhythm. Most US companies close their books on December 31, which puts their 60, 75 and 90 day windows inside the first quarter.
| month | month_name | filing_count | share_of_filings_pct |
|---|---|---|---|
| 1 | January | 286 | 1.6 |
| 2 | February | 5600 | 31 |
| 3 | March | 7854 | 43.4 |
| 4 | April | 1255 | 6.9 |
| 5 | May | 463 | 2.6 |
| 6 | June | 414 | 2.3 |
| 7 | July | 298 | 1.6 |
| 8 | August | 361 | 2 |
| 9 | September | 464 | 2.6 |
| 10 | October | 280 | 1.5 |
| 11 | November | 442 | 2.4 |
| 12 | December | 375 | 2.1 |
The exact SQL behind every number
WITH annual_filings AS (
SELECT
toMonth(filing_date) AS filing_month,
arrayElement(
['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'],
toUInt8(toMonth(filing_date))
) AS month_name,
accession_number AS accession_number
FROM global_markets.stocks_sec_edgar_index
WHERE form_type = '10-K'
AND filing_date >= '2023-10-01'
AND filing_date < '2026-10-01'
)
SELECT
filing_month AS month,
any(month_name) AS month_name,
uniqExact(accession_number) AS filing_count,
round(100.0 * uniqExact(accession_number) / (SELECT uniqExact(accession_number) FROM annual_filings), 1) AS share_of_filings_pct
FROM annual_filings
GROUP BY filing_month
ORDER BY filing_monthFebruary carries 31% of the three-year total, or 5600 filings. July carries 1.6%, at 298 filings. The months outside the bulge belong to off-calendar fiscal years, retailers closing in January and software firms closing in June among them. For when a company's turn comes, our guide to finding a stock's earnings date covers the reporting calendar alongside the filing one.
How do I pull and read a 10-K myself?
Two access paths matter. EDGAR full-text search covers filing text from 2001 forward, so a phrase from a risk factor or a customer name can be matched across every filer at once. The second is the structured data: every figure in Item 8 is tagged in XBRL, so the statements can be pulled as data rather than retyped from a PDF.
A workable reading order for a company new to you: Item 1 for the business, then Item 8 and its notes, then Item 7 for how management frames what the notes showed, then Item 1A.
Insider transactions and institutional ownership live in other forms. See how to read a Form 4 for insider buying and selling, and 13F filing deadlines for the quarterly institutional holdings reports.
How these panels were counted
The section panels read captured 10-K text. A label missing from a given filing means that section was not captured, not that the company omitted the item, so read the counts as index coverage rather than a census. Item numbers, filer-status tiers and deadlines come from the filing rules, not from the data panels.
FAQ
What is the difference between a 10-K and an annual report?
The 10-K is the SEC filing: a fixed set of numbered items, audited financial statements, and officer certifications. The annual report to shareholders is a communications document whose contents are largely up to the company.
When is a company's 10-K due?
60 days after fiscal year end for a large accelerated filer (public float of $700 million or more), 75 days for an accelerated filer ($75 million up to $700 million), and 90 days for a non-accelerated filer.
What is an NT 10-K?
It is the EDGAR label for Form 12b-25, the notification a company files when it will miss its 10-K deadline. Filing it on time extends the deadline by up to 15 calendar days, and the form states the reason for the delay.
Which part of a 10-K has the most information?
The notes to the financial statements, inside Item 8. Segment detail, revenue recognition policy, debt and lease maturities, tax reconciliation and contingencies are disclosed there rather than on the face of the statements.
Every panel above ships with its SQL, so each count can be checked line by line. The same questions can be asked in plain English on the Strasmore terminal.