SEC 10-K Strategy Signal Extractor avatar

SEC 10-K Strategy Signal Extractor

Pricing

$2.00 / 1,000 successful sec 10-k section records

Go to Apify Store
SEC 10-K Strategy Signal Extractor

SEC 10-K Strategy Signal Extractor

Extract source-cited SEC 10-K Item 1, Item 1A, and Item 7, compare annual filings, and detect deterministic strategy and risk signals.

Pricing

$2.00 / 1,000 successful sec 10-k section records

Rating

0.0

(0)

Developer

TrueNorth

TrueNorth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 months ago

Last modified

Categories

Share

Turn public U.S. Securities and Exchange Commission (SEC) 10-K annual reports into source-cited sections and repeatable change data. Extract Item 1 (Business), Item 1A (Risk Factors), and Item 7 (Management's Discussion and Analysis, or MD&A), compare adjacent filings, and identify lexical strategy and risk signals.

This Actor uses only public SEC endpoints. It does not log in, bypass access controls, use proxies, or fall back to fixtures after live-source failures.

Why use this Actor?

  • Trace every extracted section to its SEC filing URL, document hash, heading, and normalized citation offsets.
  • Compare adjacent 10-K filings with bounded unified diffs and stable hashes.
  • Find rule-based changes across market, product, customer, competition, operations, risk, regulation, technology, geography, and capital allocation.
  • Request a bounded subset of SEC eXtensible Business Reporting Language (XBRL) Company Facts when source facts are useful beside narrative changes.
  • Receive explicit error rows for missing or ambiguous sections instead of silently accepting uncertain extraction.

This is not a generic SEC filing scraper or filing downloader. It is designed as an SEC 10-K extractor for deterministic, source-cited Item 1, Item 1A, and Item 7 extraction and adjacent annual-report change analysis.

Use cases

  • Monitor changes in company strategy, operations, competition, and risk disclosures.
  • Build auditable 10-K research datasets for analysts and due-diligence teams.
  • Compare risk factors and MD&A language across adjacent annual reports.
  • Feed cited filing sections, diffs, and lexical signals into downstream review workflows.

Input

Required:

  • companies: one to ten tickers or numeric CIKs, such as AAPL, BRK-B, or 0000320193.

Optional:

  • filingSelection: latest, latestPair (default), or fiscalYears.
  • fiscalYears: one to five years when filingSelection is fiscalYears.
  • sections: any of item1, item1a, and item7; all three by default.
  • includeCompanyFacts: attach bounded SEC Company Facts; default false.
  • companyFactConcepts: one to eight us-gaap:Tag or dei:Tag concepts.
  • maxFactPeriods: periods per concept, from 1 to 10; default 3.
  • maxDiffChars: emitted unified-diff bound, from 1,000 to 200,000; default 50,000.

Example:

{
"companies": ["AAPL", "0000789019"],
"filingSelection": "latestPair",
"sections": ["item1", "item1a", "item7"],
"includeCompanyFacts": false
}

Output

One dataset item represents one company, selected current filing, and requested section. Successful rows include:

  • issuer and filing identity;
  • normalized section text and SHA-256 hashes;
  • SEC document URL plus normalized citation offsets;
  • baseline comparison and bounded unified diff when requested;
  • deterministic lexical signals for market, product, customer, competition, operations, risk, regulation, technology, geography, and capital allocation;
  • optional bounded Company Facts;
  • explicit warnings or structured errors.

OUTPUT in default key-value store contains dataset ID and counts by status. Missing or ambiguous sections produce explicit error rows. Actor fails when no section succeeds.

Example dataset item, shortened to show core fields:

{
"schemaVersion": "1.0",
"recordType": "section",
"status": "ok",
"requestedIdentifier": "AAPL",
"company": {
"cik": "0000320193",
"ticker": "AAPL",
"name": "Apple Inc."
},
"filing": {
"accessionNumber": "0000320193-24-000123",
"form": "10-K",
"fiscalYear": 2024,
"documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm"
},
"section": {
"id": "item1",
"title": "Business",
"headingText": "ITEM 1. BUSINESS",
"charCount": 2188,
"citation": {
"documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm",
"startOffset": 17,
"endOffset": 2205
}
},
"comparison": null,
"signals": [],
"companyFacts": [],
"warnings": [],
"error": null
}

The full item also contains required filing identity, section text and SHA-256 hashes, complete citation fields, and every other field defined by the dataset schema.

Pricing

This Actor uses Pay Per Event pricing at

$2.00 per 1,000 successfully persisted section records
($0.002 per record). Each persisted section record with status: "ok" or status: "partial" charges one per-1000-section-records event at an eventPriceUsd of $0.002.

company_error records and section records with status: "error" are not charged. Records are charged only after dataset persistence succeeds, so a failed dataset write does not incur an event charge. Apify platform usage costs remain separate.

SEC fair-access identity

Live runs require SEC_USER_AGENT in deployment environment. Value must name application and monitored contact, for example:

export SEC_USER_AGENT="SEC 10-K Strategy Signal Extractor ops@example.com"

Identity is configuration, not public Actor input. Runtime restricts requests to data.sec.gov, SEC's canonical ticker mapping, and SEC Archives; limits request rate and concurrency; bounds responses and retries; honors Retry-After; and stops issuer work after repeated access blocking.

Local development

Requires Node.js 22+, pnpm 10.30.0, and Apify CLI.

corepack enable
pnpm install --frozen-lockfile
pnpm test
pnpm test:coverage
pnpm format
pnpm lint
pnpm typecheck
pnpm build
pnpm validate:schemas
apify validate-schema

Deterministic network-free Actor run:

LOCAL_FIXTURE_MODE=1 apify run --purge --input \
'{"companies":["AAPL"],"filingSelection":"latest","sections":["item1"],"includeCompanyFacts":false}'

Fixture mode reads synthetic files under tests/fixtures, is never an automatic fallback, and is rejected when APIFY_IS_AT_HOME=1.

Scope and disclaimer

Signals come from versioned lexical rules applied to changed filing sentences. They summarize source-text changes; they do not predict performance, determine materiality, or constitute legal, accounting, or investment advice. Verify important conclusions against linked SEC filings. Filing HTML varies by issuer and year; missing or ambiguous headings can produce error rows. The Actor processes 10-K filings, excludes 10-K/A amendments from filing selection in version 1, and limits each run to the documented input bounds.