SEC 10-K Company Analysis
Use this skill to analyze one company from a SQLite SEC filings database and produce distinct, data-grounded QA pairs.
Inputs you need
- Company identifier: CIK preferred (or ticker/name if unavailable).
- Database connection or path.
- Target output count if specified; otherwise produce 12–20 distinct QA pairs.
Required workflow
Step 1: Schema discovery
Always inspect tables first before querying. Confirm exact column names — never assume aliases.
Key schema facts:
filings table: columns are cik, form, filing_date, report_date, accession_number (NOT form_type)
financial_facts table: columns include fact_name, fact_value, unit, fiscal_year, fiscal_period, end_date, accession_number, form_type, dimension_segment, dimension_geography
- If a query fails with "no such column", inspect the table schema and correct immediately — do not retry the same failing query.
Step 2: Company identity
SELECT * FROM companies WHERE cik = '<CIK>'
SELECT cik, ticker, exchange FROM company_tickers WHERE cik = '<CIK>'
Step 3: Filing context
SELECT cik, form, filing_date, report_date, accession_number
FROM filings WHERE cik = '<CIK>' AND form = '10-K'
ORDER BY filing_date DESC LIMIT 10
Identify the 3–5 most recent annual 10-K accession numbers for trend queries.
Step 4: Metric discovery (do this before bulk queries)
-- All available fact names for this company
SELECT DISTINCT fact_name FROM financial_facts
WHERE cik = '<CIK>' AND form_type = '10-K'
ORDER BY fact_name LIMIT 300
-- Revenue alias search
SELECT DISTINCT fact_name FROM financial_facts
WHERE cik = '<CIK>' AND form_type = '10-K'
AND (fact_name LIKE '%Revenue%' OR fact_name LIKE '%Sales%'
OR fact_name LIKE '%ContractWithCustomer%')
Revenue/income labels vary by company — discover actuals first, then use them.
Step 5: Pull evidence in two rounds
Round A — Core multi-year trends (query with form_type = '10-K', ordered by end_date):
- Revenue, net income, operating income, gross profit
- Total assets, liabilities, stockholders' equity
- Operating cash flow, investing cash flow, financing cash flow
- Long-term debt, shares outstanding, diluted EPS
- Dividends per share, interest expense, income tax expense
Round B — Detail and niche metrics (pull what's available; skip silently if absent):
- Comprehensive income, accumulated OCI
- Working capital components: accounts receivable, inventory, accounts payable
- Debt carrying amount, weighted average interest rate, debt fair value
- Operating lease right-of-use assets, operating lease income
- Depreciation and amortization (separate from D&A combined if available)
- Impairment charges, restructuring charges
- Share-based compensation, deferred revenue, deferred tax
- Segment or geography data (
dimension_segment, dimension_geography filters)
- Industry-specific metrics: R&D expense (pharma/tech), benefits/claims expense (insurance), lease revenue (REITs), investment income (financial), capex intensity
Step 6: Generate QA pairs from evidence
Submit a QA pair immediately when you have multi-datapoint support for a non-trivial conclusion. Keep exploring after each submission — aim for 12–20 distinct pairs covering different angles.
QA angle checklist
Work through as many distinct angles as the data supports:
- Revenue growth drivers and volatility
- Profitability trajectory (operating income, net income, margins)
- Earnings quality: cash flow vs accounting income (OCF vs net income gap)
- Capital allocation: dividends, buybacks, capex balance
- Balance sheet evolution: leverage, equity growth, asset mix
- Debt profile: level, interest rate, maturity, fair vs carrying value
- Liquidity: cash position, working capital components (AR, inventory, AP)
- Per-share trends: EPS, dividend per share, share count trajectory
- Comprehensive income vs net income (OCI items, forex, hedging)
- Cost structure shifts: COGS, SG&A, R&D as % of revenue
- D&A and capex as signals of asset intensity and growth investment
- Impairment and restructuring as transformation/risk signals
- Tax rate dynamics: effective rate, deferred taxes, tax benefits
- Segment or geographic concentration (if data present)
- Industry-specific metrics (claims ratio, R&D intensity, lease income, etc.)
- Lease obligations and right-of-use assets
- Pension / post-retirement benefit obligations (if material)
- Deferred revenue and contract liability trends
Do not repeat the same thesis with different wording. Each QA should occupy a distinct analytical position.
QA style
Question form: "How has X evolved from Y to Z?" or "What does [metric trend] reveal about [business quality]?" Questions should be specific enough to be graded against retrieved data, but broad enough to require synthesis.
Answer form: 1–2 sentences. Lead with a concrete trend or comparison (include specific values and period references), then state the implication. Do not include more than 3–4 numbers per answer — prefer qualitative synthesis over numeric recaps.
Good example:
q: How does AvalonBay's operating cash flow compare to its dividend obligations, and what does this indicate about sustainability?
a: Operating cash flow of $1.61B in 2024 comfortably exceeds dividend payments of $969M (~1.65× coverage), and the pattern has held consistently from 2022–2024, indicating strong and sustainable dividend coverage.
Poor (too numeric, no synthesis):
a: OCF was $1.61B in 2024, $1.52B in 2023, $1.42B in 2022. Dividends were $969M, $935M, $891M.
Edge-case handling
- Missing expected metrics: search for alternate
fact_name values; never invent absent fields.
- Empty results: relax one filter at a time (remove accession constraint, widen date range, try alternate tag names).
- Mixed annual/quarterly facts: keep 10-K trend analysis annual-focused; filter by
form_type = '10-K' and use fiscal_period if needed to isolate FY facts.
- Duplicate facts for same period: prefer the latest accession number; document only stable comparisons.
- Query errors: read the error, correct schema usage, and continue — do not retry the identical failing query.
Output format
For each QA pair:
q: one analytical question with clear scope and period.
a: concise answer grounded in retrieved facts (values, direction, period, implication).
Quality bar:
- Evidence-grounded, non-redundant, specific.
- No unsupported claims or speculation.
- Answers interpretable without extra context.
- Covers enough distinct angles that a reader gains a comprehensive financial picture of the company.
1---2name: sec-10k-company-analysis-53description: Analyze a company in an SEC 10-K SQLite database and produce high-quality evidence-grounded financial QA pairs. Use this whenever the user asks to analyze a company by CIK/ticker, inspect 10-K financial trends, generate finance QA datasets, or work with filings/financial_facts tables.4---56# SEC 10-K Company Analysis78Use this skill to analyze one company from a SQLite SEC filings database and produce distinct, data-grounded QA pairs.910## Inputs you need11- Company identifier: CIK preferred (or ticker/name if unavailable).12- Database connection or path.13- Target output count if specified; otherwise produce **12–20 distinct QA pairs**.1415## Required workflow1617### Step 1: Schema discovery18Always inspect tables first before querying. Confirm exact column names — never assume aliases.1920Key schema facts:21- `filings` table: columns are `cik`, `form`, `filing_date`, `report_date`, `accession_number` (NOT `form_type`)22- `financial_facts` table: columns include `fact_name`, `fact_value`, `unit`, `fiscal_year`, `fiscal_period`, `end_date`, `accession_number`, `form_type`, `dimension_segment`, `dimension_geography`23- If a query fails with "no such column", inspect the table schema and correct immediately — do not retry the same failing query.2425### Step 2: Company identity26```sql27SELECT * FROM companies WHERE cik = '<CIK>'28SELECT cik, ticker, exchange FROM company_tickers WHERE cik = '<CIK>'29```3031### Step 3: Filing context32```sql33SELECT cik, form, filing_date, report_date, accession_number34FROM filings WHERE cik = '<CIK>' AND form = '10-K'35ORDER BY filing_date DESC LIMIT 1036```37Identify the 3–5 most recent annual 10-K accession numbers for trend queries.3839### Step 4: Metric discovery (do this before bulk queries)40```sql41-- All available fact names for this company42SELECT DISTINCT fact_name FROM financial_facts43WHERE cik = '<CIK>' AND form_type = '10-K'44ORDER BY fact_name LIMIT 3004546-- Revenue alias search47SELECT DISTINCT fact_name FROM financial_facts48WHERE cik = '<CIK>' AND form_type = '10-K'49AND (fact_name LIKE '%Revenue%' OR fact_name LIKE '%Sales%'50 OR fact_name LIKE '%ContractWithCustomer%')51```52Revenue/income labels vary by company — discover actuals first, then use them.5354### Step 5: Pull evidence in two rounds5556**Round A — Core multi-year trends** (query with `form_type = '10-K'`, ordered by `end_date`):57- Revenue, net income, operating income, gross profit58- Total assets, liabilities, stockholders' equity59- Operating cash flow, investing cash flow, financing cash flow60- Long-term debt, shares outstanding, diluted EPS61- Dividends per share, interest expense, income tax expense6263**Round B — Detail and niche metrics** (pull what's available; skip silently if absent):64- Comprehensive income, accumulated OCI65- Working capital components: accounts receivable, inventory, accounts payable66- Debt carrying amount, weighted average interest rate, debt fair value67- Operating lease right-of-use assets, operating lease income68- Depreciation and amortization (separate from D&A combined if available)69- Impairment charges, restructuring charges70- Share-based compensation, deferred revenue, deferred tax71- Segment or geography data (`dimension_segment`, `dimension_geography` filters)72- Industry-specific metrics: R&D expense (pharma/tech), benefits/claims expense (insurance), lease revenue (REITs), investment income (financial), capex intensity7374### Step 6: Generate QA pairs from evidence7576Submit a QA pair immediately when you have multi-datapoint support for a non-trivial conclusion. Keep exploring after each submission — aim for **12–20 distinct pairs** covering different angles.7778## QA angle checklist7980Work through as many distinct angles as the data supports:81821. Revenue growth drivers and volatility832. Profitability trajectory (operating income, net income, margins)843. Earnings quality: cash flow vs accounting income (OCF vs net income gap)854. Capital allocation: dividends, buybacks, capex balance865. Balance sheet evolution: leverage, equity growth, asset mix876. Debt profile: level, interest rate, maturity, fair vs carrying value887. Liquidity: cash position, working capital components (AR, inventory, AP)898. Per-share trends: EPS, dividend per share, share count trajectory909. Comprehensive income vs net income (OCI items, forex, hedging)9110. Cost structure shifts: COGS, SG&A, R&D as % of revenue9211. D&A and capex as signals of asset intensity and growth investment9312. Impairment and restructuring as transformation/risk signals9413. Tax rate dynamics: effective rate, deferred taxes, tax benefits9514. Segment or geographic concentration (if data present)9615. Industry-specific metrics (claims ratio, R&D intensity, lease income, etc.)9716. Lease obligations and right-of-use assets9817. Pension / post-retirement benefit obligations (if material)9918. Deferred revenue and contract liability trends100101Do not repeat the same thesis with different wording. Each QA should occupy a **distinct analytical position**.102103## QA style104105**Question form**: "How has X evolved from Y to Z?" or "What does [metric trend] reveal about [business quality]?" Questions should be specific enough to be graded against retrieved data, but broad enough to require synthesis.106107**Answer form**: 1–2 sentences. Lead with a concrete trend or comparison (include specific values and period references), then state the implication. Do not include more than 3–4 numbers per answer — prefer qualitative synthesis over numeric recaps.108109Good example:110> q: How does AvalonBay's operating cash flow compare to its dividend obligations, and what does this indicate about sustainability?111> a: Operating cash flow of $1.61B in 2024 comfortably exceeds dividend payments of $969M (~1.65× coverage), and the pattern has held consistently from 2022–2024, indicating strong and sustainable dividend coverage.112113Poor (too numeric, no synthesis):114> a: OCF was $1.61B in 2024, $1.52B in 2023, $1.42B in 2022. Dividends were $969M, $935M, $891M.115116## Edge-case handling117118- **Missing expected metrics**: search for alternate `fact_name` values; never invent absent fields.119- **Empty results**: relax one filter at a time (remove accession constraint, widen date range, try alternate tag names).120- **Mixed annual/quarterly facts**: keep 10-K trend analysis annual-focused; filter by `form_type = '10-K'` and use `fiscal_period` if needed to isolate FY facts.121- **Duplicate facts for same period**: prefer the latest accession number; document only stable comparisons.122- **Query errors**: read the error, correct schema usage, and continue — do not retry the identical failing query.123124## Output format125126For each QA pair:127- `q`: one analytical question with clear scope and period.128- `a`: concise answer grounded in retrieved facts (values, direction, period, implication).129130Quality bar:131- Evidence-grounded, non-redundant, specific.132- No unsupported claims or speculation.133- Answers interpretable without extra context.134- Covers enough distinct angles that a reader gains a comprehensive financial picture of the company.