The quarterly SEC filing containing unaudited financial statements and management discussion for each of the first three quarters of a company's fiscal year.
In Plain English
Between the comprehensive annual 10-K reports, companies file three quarterly updates called 10-Qs — one for each of the first three fiscal quarters (the fourth quarter is covered in the annual 10-K). The 10-Q is a lighter version of the annual report: unaudited financial statements, a condensed management discussion section, and an update to any material risk factors.
"Unaudited" doesn't mean unreviewed — auditors typically perform a "review" of quarterly financials, a less intensive process than the full audit required for the annual report. But it does mean the numbers are more preliminary and subject to revision.
The timing of 10-Q filing matters. Large accelerated filers must file within 40 days of quarter end; smaller companies have up to 45 days. The 10-Q often arrives after the earnings call, meaning analysts already have the headline numbers but the 10-Q provides the full disclosure including footnotes, segment details, and legal updates that the earnings call may have glossed over.
For NLP analysis, 10-Qs provide something the earnings call does not: a written, legally attested narrative that has been reviewed by lawyers and auditors. Management may be more candid in an earnings call Q&A, but 10-Q language has been carefully chosen and carries legal weight. Changes in 10-Q language from quarter to quarter — especially in the "liquidity and capital resources" section or the risk factor updates — are high-value signals.
Tracking 10-Q language changes at quarterly frequency (vs. annual for 10-K) gives you four opportunities per year to detect narrative shifts at each company.
Technical Definition
10-Q structure (abbreviated vs 10-K):
Part I – Financial Information:
- Item 1: Financial Statements (unaudited condensed)
- Item 2: Management's Discussion and Analysis
- Item 3: Quantitative and Qualitative Disclosures About Market Risk
- Item 4: Controls and Procedures
Part II – Other Information:
- Item 1: Legal Proceedings
- Item 1A: Risk Factors (update since last 10-K)
- Item 2: Unregistered Sales of Equity Securities and Use of Proceeds
- Item 5: Other Information
Filing deadlines: Large accelerated filers: 40 days after quarter end. Accelerated filers: 40 days. Non-accelerated: 45 days. Late filing = Form NT 10-Q.
Item 1A (Risk Factor updates) is particularly important: companies only need to include material changes to risk factors since the last annual report. A new risk factor appearing mid-year is a significant disclosure, as is a risk factor that has been expanded with additional specificity.
XBRL requirement: quarterly financial tables are XBRL-tagged, making structured data extraction straightforward. Narrative sections remain unstructured.
How VectorFin Uses This
VectorFin ingests 10-Q filings via SEC EDGAR's public API, processing the MD&A and updated risk factors sections as embeddings. The quarterly frequency of 10-Qs provides higher temporal resolution than the annual 10-K for tracking narrative evolution:
GET https://api.vectorfinancials.com/v1/embeddings/{ticker}
?source=filing&filing_type=10-Q§ion=mda&period=2024-Q3The sentiment_drift signal uses quarterly earnings call embeddings, but the 10-Q MD&A provides a complementary written narrative signal. Discrepancies between earnings call tone and 10-Q written language can be revealing — management may be more candid in written disclosures than in the investor-facing prepared remarks.
VectorFin aligns the 10-Q's filed_date as the effective_ts, ensuring backtests correctly exclude the filing until it was publicly available.
Code Example
import requests
import numpy as np
API_BASE = "https://api.vectorfinancials.com"
API_KEY = "vf_your_api_key_here"
def cosine_sim(a, b):
a, b = np.array(a), np.array(b)
return float(np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)))
# Cross-reference: compare earnings call tone with 10-Q written language
# Divergence may indicate management is more cautious in written form
ticker = "META"
period = "2024-Q3"
# Earnings call embeddings (spoken)
call_resp = requests.get(
f"{API_BASE}/v1/embeddings/{ticker}",
params={"period": period, "source": "earnings_call"},
headers={"X-API-Key": API_KEY},
)
call_embedding = np.mean([c["embedding"] for c in call_resp.json()["chunks"]], axis=0)
# 10-Q MD&A embeddings (written)
q_resp = requests.get(
f"{API_BASE}/v1/embeddings/{ticker}",
params={"period": period, "source": "filing",
"filing_type": "10-Q", "section": "mda"},
headers={"X-API-Key": API_KEY},
)
q_embedding = np.mean([c["embedding"] for c in q_resp.json()["chunks"]], axis=0)
similarity = cosine_sim(call_embedding, q_embedding)
print(f"{ticker} {period}")
print(f"Earnings call vs 10-Q MD&A semantic alignment: {similarity:.4f}")
if similarity < 0.85:
print("WARNING: Significant divergence between spoken and written narrative")
print("Investigate whether management is more cautious in written disclosures")External References
Put 10-Q Filing to work in your pipeline
Access AI-ready financial data — embeddings, signals, Iceberg tables.