Release v4.26.0 - AI-Native Crowdfunding & API Standardization
🎉 EdgarTools v4.26.0
This release brings major enhancements to crowdfunding filing analysis with AI-native workflows and comprehensive API standardization.
🌟 Highlights
📊 Campaign Lifecycle Tracking
Track complete crowdfunding offering lifecycles from initial filing through termination with the new Campaign class.
from edgar import Company
company = Company("0001656159")
filing = company.get_filings(form="C").latest()
campaign = filing.get_campaign()
print(campaign.to_context()) # AI-optimized summary
print(campaign.status) # Active, Terminated, Completed
print(campaign.total_raised) # Total amount raised
print(campaign.timeline) # Chronological filing historyFeatures:
- Automatic tracking of Form C, C/A, C-U, C-AR, and C-TR filings
- Timeline views with status tracking
- Campaign metrics and progress monitoring
- Integration with existing filing infrastructure
🤖 AI-Native API Standardization
Consistent .to_context() method across all core classes for seamless AI agent interaction.
Before (deprecated but still works):
company.text()
xbrl.text()After (recommended):
company.to_context()
xbrl.to_context()
filing.to_context()
filings.to_context()Impact: 58% token reduction for AI workflows with better API discoverability.
📄 Comprehensive Form C Documentation
969 lines of AI-native documentation for Form C crowdfunding filings with rich context generation at 3 detail levels.
✨ What's New
Added
-
Campaign Lifecycle Tracking (
edgar/offerings/campaign.py- 694 lines)- Complete offering lifecycle management
- Automatic filing grouping and tracking
- Status monitoring and timeline views
-
AI-Native Form C Documentation (
edgar/offerings/docs/FormC.md- 969 lines)- Comprehensive AI-optimized documentation
- Three detail levels: minimal/standard/full
- Enhanced issuer and offering information
-
Workflow Documentation
- AI-native workflow implementation plan
- Crowdfunding research goals
- Offering lifecycle examples
- Enhanced AI integration guide
Changed
-
API Standardization with
.to_context()- Migrated
Company.text()→Company.to_context() - Migrated
XBRL.text()→XBRL.to_context() - Added context methods to
FilingandFilingsclasses - Old
.text()methods deprecated with warnings - Migration timeline: Deprecated methods removed in v5.0
- Migrated
-
README Modernization
- Updated with modern visual design
- Performance comparison visualizations
- Enhanced AI-Native positioning
- Improved badge organization
Fixed
-
Issue #475: Multi-Period Cash Flow Statements Missing Data
- Fixed stitched cash flow statements showing limited data for Q2 and Q3
- Root cause: Incorrect deduplication treating quarterly and YTD as duplicates
- Solution: Three-part fix for deduplication, period preference, and labeling
- Affected companies: PYPL, KHC, and others tagging data to YTD periods
- Added 4 comprehensive tests
- GitHub Issue #475
-
Invalid Escape Sequence Fix
- Fixed deprecation warning in richtools.py docstring
📦 Installation
pip install --upgrade edgartoolsFor AI features:
pip install edgartools[ai]🔄 Migration Guide
Updating to .to_context() API
The .text() method is deprecated but still works with a warning:
# Update your code from:
context = company.text(detail='standard')
# To:
context = company.to_context(detail='standard')This change applies to:
Company.text()→Company.to_context()XBRL.text()→XBRL.to_context()
The old methods will be removed in version 5.0.
📊 Stats
- 19 files changed in crowdfunding enhancements
- 5,923 additions, 73 deletions (net: +5,850 lines)
- 5 files changed in bug fixes
- 295 additions, 21 deletions (net: +274 lines)
- 355 lines of new AI-native context tests
- 58% token reduction for AI workflows
🔗 Links
- PyPI: https://pypi.org/project/edgartools/4.26.0/
- Documentation: https://edgartools.readthedocs.io/
- Changelog: CHANGELOG.md
- Issues Fixed: #475
🙏 Thank You
Thank you to everyone who reported issues, provided feedback, and contributed to making EdgarTools better!
Full Changelog: v4.25.0...v4.26.0