SEC EDGAR filing analysis — 10-K, 10-Q, 8-K, proxy statements, insider Form 4. Extract key financials, risk factors, management discussion, and generate investment signals from US public company filings.
60
75%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./a_全网优秀资源/10_大模型/07_skill包/vibe_trading_skills/edgar-sec-filings/SKILL.mdThe canonical home for this skill is edgar-sec-filings in HKUDS/Vibe-Trading
Analyze US public company filings from SEC EDGAR to extract fundamental insights, risk signals, and investment-relevant information. Covers annual reports (10-K), quarterly reports (10-Q), current events (8-K), proxy statements (DEF 14A), and insider transactions (Form 4).
This skill provides the analytical framework for interpreting SEC filings. Data retrieval uses read_url tool with EDGAR URLs or yfinance Ticker objects for structured financial data.
| Filing | Frequency | Key Content | Signal Value |
|---|---|---|---|
| 10-K | Annual | Full-year financials, risk factors, MD&A, segment data | Comprehensive fundamental view |
| 10-Q | Quarterly | Quarterly financials, interim MD&A, legal updates | Trend confirmation / inflection detection |
| 8-K | Event-driven | Material events: M&A, CEO change, restatement, guidance | Catalyst / risk trigger |
| DEF 14A | Annual (proxy) | Executive comp, board composition, shareholder proposals | Governance quality signal |
| Form 4 | Within 2 days | Insider buys / sells | Insider conviction signal |
| 13F | Quarterly | Institutional holdings >$100M AUM | Smart money positioning |
| SC 13D/G | Event-driven | >5% ownership stake disclosure | Activist / strategic investor signal |
# Company filings search
# https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK={ticker}&type={filing_type}
# Example: Apple 10-K filings
url = "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=AAPL&type=10-K&dateb=&owner=include&count=10"
# EDGAR full-text search (EFTS)
# https://efts.sec.gov/LATEST/search-index?q={query}&dateRange=custom&startdt={start}&enddt={end}import yfinance as yf
ticker = yf.Ticker("AAPL")
# Financial statements (derived from 10-K/10-Q)
income = ticker.financials # Annual income statement
income_q = ticker.quarterly_financials # Quarterly
balance = ticker.balance_sheet # Balance sheet
cashflow = ticker.cashflow # Cash flow statement
# Insider transactions (derived from Form 4)
insider = ticker.insider_transactions
# Institutional holders (derived from 13F)
institutions = ticker.institutional_holders
major = ticker.major_holdersIncome Statement Focus:
Balance Sheet Focus:
Cash Flow Focus:
The MD&A section is the most qualitative and forward-looking part of the filing.
Key extraction targets:
Tone analysis signals:
# Simplified tone scoring
positive_words = ["growth", "improvement", "strong", "exceeded", "momentum", "opportunity"]
negative_words = ["challenging", "decline", "uncertainty", "headwind", "pressure", "risk"]
cautious_words = ["moderate", "cautious", "prudent", "measured", "selective"]
# Count frequency change vs prior filing
# Rising negative word count = deteriorating outlook
# Rising cautious words = management hedgingRisk factor change detection (10-K vs prior 10-K):
| Change Type | Signal | Action |
|---|---|---|
| New risk factor added | Material new risk identified | Deep dive on the specific risk |
| Risk factor removed | Risk resolved or deemed immaterial | Positive signal if genuine resolution |
| Language intensified | Risk escalating | Review exposure and hedging |
| Order changed (moved higher) | Risk priority elevated | Assess potential impact magnitude |
Common risk categories for US equities:
| Event Type | 8-K Item | Typical Price Impact | Time Sensitivity |
|---|---|---|---|
| Earnings pre-release | 2.02 | High | Immediate |
| M&A announcement | 1.01 | Very high | Immediate |
| CEO / CFO departure | 5.02 | Medium-high | Same day |
| Restatement | 4.02 | Very high (negative) | Immediate |
| Guidance revision | 7.01/8.01 | High | Same day |
| Credit agreement change | 1.01 | Low-medium | Monitor |
| Share repurchase program | 8.01 | Low positive | Background signal |
| Dividend change | 8.01 | Medium | Same day |
# High-priority 8-K events
if item == "4.02": # Restatement
signal = "strong_negative" # Restatements destroy trust
action = "review_all_prior_financials"
elif item == "2.02" and surprise_direction == "negative":
signal = "negative" # Earnings pre-announcement miss
elif item == "5.02" and role in ["CEO", "CFO"]:
signal = "uncertainty" # C-suite departure = governance risk
elif item == "1.01" and event_type == "acquisition":
signal = "evaluate" # M&A: acquirer usually -2 to -5%, target +20-40%| Pattern | Signal | Confidence |
|---|---|---|
| Cluster buying: 3+ insiders buying within 30 days | Strong bullish | High |
| CEO/CFO large open-market purchase (>$500K) | Bullish | High |
| Insider buying after price decline >20% | Contrarian bullish | Medium-high |
| Cluster selling at all-time highs | Neutral to mildly bearish | Low (may be pre-planned) |
| CFO selling >50% of holdings | Bearish | Medium |
| 10b5-1 plan sales | Neutral | Low (pre-programmed) |
Key distinctions:
# Insider signal scoring
def score_insider_activity(transactions, lookback_days=90):
buys = [t for t in transactions if t.type == "Purchase" and t.days_ago <= lookback_days]
sells = [t for t in transactions if t.type == "Sale" and t.days_ago <= lookback_days]
buy_value = sum(t.value for t in buys)
sell_value = sum(t.value for t in sells)
# Filter out 10b5-1 plan sales
organic_sells = [s for s in sells if not s.is_10b5_1]
if len(buys) >= 3 and buy_value > 1_000_000:
return "strong_bullish"
elif buy_value > sell_value * 2:
return "bullish"
elif len(organic_sells) >= 3 and sell_value > 5_000_000:
return "bearish_watch"
else:
return "neutral"Key metrics:
Institutional quality tiers:
# 13F change detection
def analyze_13f_changes(current_holders, prior_holders):
new_positions = current_holders - prior_holders # New entries
closed_positions = prior_holders - current_holders # Exits
# Flag: multiple Tier 1 funds initiating
tier1_new = [h for h in new_positions if h.tier == 1]
if len(tier1_new) >= 2:
signal = "strong_smart_money_accumulation"
return signalfiling_score = {
"financial_health": 0, # -2 to +2: based on 10-K/10-Q financials
"management_tone": 0, # -2 to +2: MD&A sentiment shift
"risk_factor_change": 0, # -2 to +2: new risks vs resolved risks
"insider_activity": 0, # -2 to +2: net insider buying/selling
"institutional_flow": 0, # -2 to +2: 13F position changes
"event_catalyst": 0, # -2 to +2: recent 8-K impact
}
# Total range: -12 to +12
# > +6: strong fundamental bullish
# +2 to +6: mild bullish
# -2 to +2: neutral
# < -2: fundamental caution## SEC Filing Analysis — [Ticker]
### Filing Summary
- **Latest 10-K/10-Q**: [date], [period]
- **Recent 8-K events**: [list material events]
- **Insider activity (90d)**: [net buy/sell summary]
### Financial Health
- Revenue trend: [accelerating / stable / decelerating]
- Margin trajectory: [expanding / stable / compressing]
- FCF conversion: [strong / adequate / weak]
- Balance sheet: [net cash / moderate leverage / high leverage]
### MD&A Tone Shift
- vs prior filing: [more optimistic / unchanged / more cautious]
- Key language changes: [specific quotes or paraphrases]
### Risk Factor Changes
- New risks: [list any new risk factors added]
- Intensified risks: [list risks with stronger language]
- Resolved risks: [list removed risk factors]
### Insider & Institutional Signals
- Insider net activity: [cluster buy / neutral / cluster sell]
- Institutional positioning: [accumulation / stable / distribution]
### Composite Signal
| Dimension | Score (-2~+2) | Basis |
|-----------|---------------|-------|
| Financial health | +1 | Revenue accelerating, margins stable |
| Management tone | -1 | More cautious language in MD&A |
| ... | ... | ... |
### Investment Implication
- Direction: [bullish / bearish / neutral]
- Confidence: [high / medium / low]
- Key monitoring: [next earnings date, upcoming 8-K triggers]b612402
Canonical home
since Jul 24, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.