Skip to content

Release 4.17.0 - Storage Management & Financial Data Fixes

Choose a tag to compare

@dgunning dgunning released this 05 Oct 18:22
· 2078 commits to main since this release

Major Features

🗄️ Storage Management Dashboard (FEAT-436)

Comprehensive tools for local storage visibility, analytics, and optimization:

  • Storage Analytics: New storage_info() function with Rich Panel display
  • Filing Availability: check_filing() and check_filings_batch() for offline detection
  • Storage Analysis: analyze_storage() provides optimization recommendations
  • Optimization Operations: optimize_storage(), cleanup_storage(), clear_cache()
  • Safety Features: All destructive operations default to dry-run mode
  • Coverage: 12 comprehensive tests
from edgar import storage_info, analyze_storage, optimize_storage

# View storage statistics
info = storage_info()  # Beautiful Rich panel display

# Get optimization recommendations
analysis = analyze_storage()

# Compress files to save space (dry-run first)
result = optimize_storage(dry_run=True)
result = optimize_storage(dry_run=False)

Fixed Issues

📊 Duplicate Quarterly Periods

Eliminated duplicate fiscal periods in quarterly balance sheets:

  • Problem: Quarterly statements showed duplicate periods (e.g., "Q3 2025" twice with different values: $331.2B and $365.0B)
  • Root Cause: SEC Facts API tags ALL facts with filing's fiscal_year/fiscal_period, including comparative data from prior periods
  • Solution: Enhanced quarterly period selection logic with fiscal year-end validation
    • Added validate_quarterly_period_end() to verify period_end matches expected month
    • Added detect_fiscal_year_end() to automatically detect company's fiscal year end
    • ±1 month tolerance for 52/53-week calendars
  • Impact: Clean, accurate quarterly financial statements for all companies
  • Coverage: 10 regression tests across Apple, Microsoft, Google, Amazon
# Before: ['Q3 2025', 'Q2 2025', 'Q3 2025', 'Q1 2025']  ❌ Duplicate!
# After:  ['Q3 2025', 'Q2 2025', 'Q1 2025', 'Q3 2024']  ✅ Unique!
Company("AAPL").balance_sheet(annual=False)

💰 Issue #452: DNUT Fiscal Year Fix

Fixed incorrect revenue for companies with fiscal year-end changes:

  • Problem: DNUT FY 2023 revenue showed $1.530B instead of correct $1.686B
  • Root Cause: SEC API provides duplicate periods with inconsistent fiscal_year values during FY-end transitions
  • Solution: Added fiscal year validation to filter invalid fiscal_year/period_end combinations
  • Impact: Accurate financial values for companies during fiscal year-end transitions
  • Testing: Regression test verifies DNUT FY 2023 revenue

Installation

pip install --upgrade edgartools

Full Changelog

See CHANGELOG.md for complete details.