Skip to content

v5.15.0

Choose a tag to compare

@dgunning dgunning released this 09 Feb 15:16
· 1232 commits to main since this release

XBRL Statement Discovery

  • Statement discovery and access — New methods on the XBRL object to discover and access all available financial statements. Browse what's available before drilling into specific statements.
  • Redesigned XBRL display — Rich display for XBRL and Statements objects updated to match the design language with improved statement summaries, topic extraction, and classification.
  • to_context() on Statements — LLM-optimized text representation for passing XBRL statement data to language models.

AI Skills Redesign

  • Lean YAML skill architecture — Consolidated skills to a YAML-first architecture with 82% reduction in skill content. Five specialized skills: core, financials, holdings, ownership, reports.
  • Intent-based MCP tools — Redesigned MCP server from granular endpoints to 5 intent-based tools (edgar_company, edgar_search, edgar_filing, edgar_compare, edgar_ownership), removing deprecated legacy handlers.
  • LLM-as-judge evaluation framework — Added A/B testing framework for skills with judge scoring across correctness, api_usage, conciseness, and efficiency dimensions. 7 rounds of iterative improvement.
  • Symlinked skill install — install_skill() now uses symlinks so skills auto-sync with package updates.
  • LLM-friendly __str__ methods — Added __str__ and to_context() on Company, Filings, EntityFilings, and Financials for optimized LLM output.

API Consistency

  • cashflow_statement() — Renamed cash_flow() to cashflow_statement() for consistency with income_statement() and balance_sheet().

Fixed

  • Entity misclassified as company — Fixed entity classification bug where CORRESP filings caused individuals to be classified as companies. (#624)
  • OperatingExpenses mislabeled — Fixed statement line items labeled as 'Other' with flat hierarchy when they should be OperatingExpenses.
  • ALL-CAPS topic splitting — Fixed topic extraction incorrectly splitting all-caps statement names.
  • Filing.save()/load() — Serialize SGML content before pickling to fix save/load round-trip. (#631)
  • resolve_company() — Now properly rejects invalid company identifiers instead of returning placeholder entities.
  • Stock split date detection — Prefer 8-K instant facts for more accurate stock split dates. (Discussion #613)
  • Max document size — Raised to 160MB.