Disclosure Alpha

June 29, 2026 · View on GitHub

Disclosure Alpha quickstart: install, set SEC User-Agent, score a 10-K from the CLI

Python 3.11+ PyPI License: Apache-2.0 Documentation CI Research ρ≈0.87 GitHub

Deterministic SEC filing analytics — parse, score, diff. No LLM required.
Extract sections, measure tone and boilerplate, detect year-over-year changes, and screen peers.

Quick start

Requires Python 3.11+.

1. Install from PyPI

pip install "disclosure-alpha"

For HTTP API and MCP: pip install "disclosure-alpha[api,mcp]". Full options: Installation.

2. Set your SEC User-Agent (required for --ticker / EDGAR only; skip for local --html scoring)

export SEC_USER_AGENT="YourName your@email.com"

See SEC EDGAR setup.

3. Score a filing

disclosure-alpha score --ticker AAPL --fiscal-year 2025 --form 10-K \
  | jq '.scores.overall_disclosure_risk_score'
from disclosure_alpha import score_filing_ticker
result = score_filing_ticker("AAPL", 2025, form_type="10-K")
print(result.scores.overall_disclosure_risk_score)

What it is

Open-source, deterministic SEC filing analytics for 10-K and 10-Q HTML. Reproducible JSON scores from text metrics, boolean risk flags, and section diffs — one pipeline across CLI, Python SDK, HTTP API, OpenBB Workspace, and MCP. 8-K is supported via local --html or the MCP Builder bundle only (not --ticker, EDGAR, or HTTP ticker routes).

What it is not:

  • Not investment advice or a trading signal
  • Not a substitute for reading the filing

Full scope and limits: Scope and claims.

Integration surfaces

Six entry points, one deterministic pipeline. Not sure which to pick? See Choose your surface.

You are…EntryInstall extra
Terminal / scriptsdisclosure-alpha(base)
Notebooks / appsimport disclosure_alpha(base)
REST screener or dashboarddisclosure-alpha-api[api]
OpenBB Workspace analystdisclosure-alpha-api + OpenBB guide[api,mcp]
AI agent (ticker scoring)disclosure-alpha-mcp-analyst[mcp]
Agent with raw HTMLdisclosure-alpha-mcp-builder[mcp]

HTTP matrix tiers apply to single-ticker GET GET /v1/company/{ticker}/disclosure-matrix only: tier=lite (headline score), tier=standard (components + metrics), tier=analyst (provenance for audit). Panel POST /v1/panel/disclosure-matrix has no tier param — use include / fields. See HTTP guides.

disclosure-alpha-api              # HTTP + OpenBB Workspace backend on :8000
disclosure-alpha-mcp-analyst      # MCP analyst bundle

Guides, Postman collections, and MCP reference: Guides.

OpenBB Workspace

Score filings in OpenBB Workspace with a self-hosted backend — overall score, components, active flags, and section changes in one widget.

pip install "disclosure-alpha[api,mcp]"
export SEC_USER_AGENT="YourName your@email.com"
disclosure-alpha-api

In Workspace: Apps → Connect backendhttp://127.0.0.1:8000My Apps → Disclosure Alpha → CompanyRun. Connect Disclosure Alpha Analyst MCP from the app page for Copilot scoring tools.

Disclosure Alpha Company widget in OpenBB Workspace showing AJG FY2025 10-K scores, flags, and section changes

OpenBB Copilot can summarize the widget; that is an OpenBB feature, not part of Disclosure Alpha.

Quickstart: OpenBB Workspace · Full guide: OpenBB guide

Capabilities

Deterministic scores — ten computed components (nine headline-weighted, 0–100), section extraction, year-over-year change detection. Canonical component list: Score catalog. Score scale: Understanding scores.

TaskHow
Score one companydisclosure-alpha score --ticker AAPL --fiscal-year 2025 --form 10-K
Score in OpenBB Workspacedisclosure-alpha-api + Workspace connect → OpenBB quickstart
Screen up to 25 tickersHTTP POST /v1/panel/disclosure-matrix (no tier; use include / fields)
Compare year-over-year--prior-html prior.html or HTTP compare=prior
Work offline (no EDGAR)disclosure-alpha score --html filing.html --form 10-K
Inspect raw signalsdisclosure-alpha metrics … or GET /disclosure-metrics
Pull boolean risk flagsGET /disclosure-flags
# Screen a peer set (start disclosure-alpha-api first)
curl -s -X POST "http://localhost:8000/v1/panel/disclosure-matrix" \
  -H "Content-Type: application/json" \
  -d '{"tickers": ["AAPL", "MSFT", "GOOGL"], "fiscal_year": 2025, "form_type": "10-K"}'

# Year-over-year from local HTML (no network)
disclosure-alpha score --html current.html --form 10-K --prior-html prior.html

Copy-paste recipes: Workflows. Pipeline overview: Methodology.

Example output

Single filing score (synthetic 10-K):

{
  "scores": {
    "overall_disclosure_risk_score": 17.84,
    "score_coverage_ratio": 0.7778,
    "components": {
      "risk_factor_intensity_score": 8.62,
      "boilerplate_risk_score": 42.53,
      "legal_regulatory_risk_score": 25.34
    }
  },
  "versions": {
    "parser_version": "section_extractor_v1",
    "metrics_engine_version": "text_metrics_v4",
    "dictionary_version": "built_in_dictionaries_v3",
    "scoring_model_version": "deterministic_scoring_v2",
    "analytics_config_id": "builtin_default"
  }
}

More examples: Examples gallery and Workflows.

Research-backed

S&P 500 FY2025 Item 1A · deterministic_scoring_v2 · full evidence →

CheckResult
Analysis cohort478 firms (503-name universe)
Specificity vs NERSpearman ρ ≈ 0.87 (n=478)
Boilerplate vs LS4-gram proxySpearman ρ ≈ 0.92 (n=478)
Post-filing vol (90d)Q5/Q1 ≈ 1.15 (n=435)

Construct checks use independent references. Vol association is descriptive only — not investment advice or alpha. Scope: Scope and claims.

Documentation

I want to…Start here
Prove it works in five minutesFirst successful run
Evaluate whether to trust thisEvidence and validation
Understand the numbersUnderstanding scores
Score in terminalQuickstart CLI
Build a screenerHTTP guidesWorkflows
Use in PythonQuickstart Python
Score in OpenBB WorkspaceQuickstart OpenBB
Copy-paste examplesExamples gallery

License

Apache-2.0. See LICENSE. Changelog · Releases

Contributors

See CONTRIBUTING.md for development setup, tests, and docs build. Report security issues via SECURITY.md.