Skip to content

v5.30.0

Choose a tag to compare

@dgunning dgunning released this 15 Apr 22:22
· 193 commits to main since this release

What's New

Proxy Season Analysis

New ProxySeason and ProxyContest classes for grouping proxy filings by season and detecting contested director elections. Market-wide discovery is available via proxy_contests(). (#773)

Proxy HTML Data Extractors

Structured extraction from DEF 14A proxy statements now covers Summary Compensation Tables (executive pay), CEO pay ratio with footnote cross-validation, voting proposals, beneficial ownership tables, director compensation tables, and audit fees by category.

Full-Text Search Enhancements

EFTS search is enriched with relevance scores, aggregations, filtering, and pagination. A new .grep() method provides universal content search across filings.

Bug Fixes

  • Fiscal year labels for non-calendar FYE companies — Period labels for companies with early fiscal year ends (Jan–Mar) now follow the industry-standard convention (e.g., NVIDIA Q3 ending Oct 2025 is labeled "Q3 2026"). (#779)
  • Empty statements from forward-looking schedule data — Companies with XBRL-tagged footnote amortization schedules no longer produce phantom future periods that displace real quarterly data. (#781)
  • Missing XBRL instance from SEC — XBRL instance documents are now fetched directly from SEC when the local feed file lacks them. (#778)
  • XBRL parsing for bytes content — Parser hardened to handle bytes content and missing entity info without errors.
  • Concept panel display in viewer.search() — Restored section separator newlines inside Concept panels that were incorrectly removed in v5.29.0. (#776)

Performance

  • Replaced BeautifulSoup with lxml for proxy HTML parsing — faster and more memory-efficient.