The Problem with 10-Ks
Knowing how to analyze a 10-K with AI is now one of the most powerful edges available to retail investors. A typical 10-K annual report runs 80 to 300 pages — most retail investors never read them, an information gap that institutional investors have exploited for decades. Large language models have changed the calculus: you can now extract the key insights from a 10-K in under two minutes. This guide shows you exactly how.
What to Look for in a 10-K
- Item 1 (Business): What the company does, its competitive position, and key products/services
- Item 1A (Risk Factors): Management’s own disclosure of what could go wrong — often the most honest part of the document
- Item 7 (MD&A): Management’s discussion and analysis — explains the “why” behind the numbers
- Item 8 (Financial Statements): The actual numbers — income statement, balance sheet, cash flow
- Footnotes: Where accounting complexity hides — revenue recognition policies, off-balance-sheet items, related-party transactions
Step-by-Step: AI-Powered 10-K Analysis
Step 1: Get the 10-K Text
Download from SEC EDGAR (sec.gov). Use the HTML or TXT version rather than PDF for cleaner copy-pasting. Many financial platforms also provide structured versions of filings.
💡 Pro Tip: For Claude specifically, you can paste an entire 10-K section (up to 200,000 tokens) in one go — no need to chunk the document. For ChatGPT, paste one section at a time (Risk Factors, MD&A, Footnotes) to stay within context limits and get more focused analysis.
Step 2: Summarize the Risk Factors
“Here are the risk factors from [Company X]’s most recent 10-K. Identify the 5 most material risks — those most likely to actually impact the business — and explain why each is significant. Ignore generic boilerplate and focus on company-specific risks. [paste text]”
Step 3: Extract the MD&A Narrative
“Summarize the MD&A section of this 10-K. Focus on: (1) key drivers of revenue change vs. prior year, (2) margin trends and explanations, (3) forward-looking commentary and guidance, (4) any change in business strategy. [paste text]”
Step 4: Flag Accounting Red Flags
“Review these financial statement footnotes and flag any potential red flags: unusual revenue recognition policies, significant related-party transactions, changes in accounting estimates, large off-balance-sheet commitments, or material contingent liabilities. [paste footnotes]”
Step 5: Compare Year-Over-Year
“Compare these two risk factor sections from [Company X]’s 10-K in [Year A] and [Year B]. What new risks appeared? What was removed? What does this suggest about how management’s view of the business has changed?”
Quick Reference: 10-K Analysis Workflow
| Phase | Prompt Focus | What to Look For | Time Saved |
|---|---|---|---|
| Risk Factors (Item 1A) | Find the 5 most material company-specific risks | New risks vs. prior year; anything added or removed | 45 min → 2 min |
| MD&A (Item 7) | Revenue drivers, margin trends, guidance changes | Management tone; unexplained changes in metrics | 60 min → 5 min |
| Financial Footnotes | Flag accounting red flags and unusual policies | Revenue recognition changes; off-balance-sheet items | 90 min → 5 min |
| Earnings Call | Actual vs. guided; management confidence; surprises | Tone vs. prior quarters; quality of analyst Q&A | 60 min → 3 min |
| YoY Risk Diff | What changed between Year A and Year B risk factors? | New risks = escalating concern; removed risks = resolved or hidden | 30 min → 2 min |
⚠️ Watch Out: Never use AI-generated financial figures without verifying against the actual filing. AI can confidently state a wrong revenue number, an incorrect EPS, or a fabricated analyst rating. Use AI for qualitative analysis and framework; verify every specific number independently from SEC filings or financial data providers.
Using Python to Automate 10-K Retrieval
For investors who want to analyze multiple companies at scale, the SEC’s EDGAR API provides programmatic access to filings:
import requests
def get_recent_10k(cik):
url = f"https://data.sec.gov/submissions/CIK{cik.zfill(10)}.json"
response = requests.get(url, headers={"User-Agent": "YourName contact@email.com"})
data = response.json()
filings = data['filings']['recent']
for i, form_type in enumerate(filings['form']):
if form_type == '10-K':
return {
'accession': filings['accessionNumber'][i],
'date': filings['filingDate'][i]
}
return None
Combined with an LLM API, you can build a pipeline that automatically downloads and summarizes 10-Ks for an entire watchlist. See our Python stock screener tutorial for a foundation to extend.
Applying the Same Approach to Earnings Calls
The same techniques apply to quarterly earnings transcripts, which are shorter and more forward-looking than 10-Ks:
“Summarize this earnings call. Focus on: (1) actual vs. guided revenue/EPS, (2) management tone and confidence level, (3) changes to forward guidance, (4) the most important analyst questions and responses, (5) any material surprises. [paste transcript]”
Conclusion
AI-powered 10-K analysis doesn’t replace the need to understand financial statements — it dramatically accelerates getting up to speed on a company. Investors who master how to analyze a 10-K with AI can cover 10x more companies with the same time investment.
Pair these techniques with solid financial statement analysis skills and valuation frameworks for a complete research process.
More in the AI Investing Series
- How to Use AI Tools to Screen Stocks in 2025
- AI vs. Traditional Fundamental Analysis: What’s Actually Better?
- The Best AI Investing Tools of 2025 (Free and Paid)
- How Hedge Funds Use Machine Learning: What Retail Investors Can Learn
Get cutting-edge AI investing techniques delivered weekly. Subscribe to Market Digests.
