ilia
6b62ae96f7
Phase 2: Disclosure Timing Correlation Engine
COMPLETE: Match congressional trades to prior market alerts
New Module:
- src/pote/monitoring/disclosure_correlator.py: Core correlation engine
* get_alerts_before_trade(): Find alerts before trade date
* calculate_timing_score(): Score suspicious timing (0-100 scale)
- Factors: alert count, severity, recency, type
- Thresholds: 60+ = suspicious, 80+ = highly suspicious
* analyze_trade(): Complete trade analysis with timing
* analyze_recent_disclosures(): Batch analysis of new filings
* get_official_timing_pattern(): Historical pattern analysis
* get_ticker_timing_analysis(): Per-stock timing patterns
Timing Score Algorithm:
- Base score: alert count × 5 + avg severity × 2
- Recency bonus: +10 per alert within 7 days
- Severity bonus: +15 per high-severity (7+) alert
- Total score: 0-100 (capped)
- Interpretation:
* 80-100: Highly suspicious (likely timing advantage)
* 60-79: Suspicious (possible timing advantage)
* 40-59: Notable (some unusual activity)
* 0-39: Normal (no significant pattern)
New Script:
- scripts/analyze_disclosure_timing.py: CLI analysis tool
* Analyze recent disclosures (--days N)
* Filter by timing score (--min-score)
* Analyze specific official (--official NAME)
* Analyze specific ticker (--ticker SYMBOL)
* Text/JSON output formats
* Detailed reports with prior alerts
Usage Examples:
# Find suspicious trades filed recently
python scripts/analyze_disclosure_timing.py --days 30 --min-score 60
# Analyze specific official
python scripts/analyze_disclosure_timing.py --official "Nancy Pelosi"
# Analyze specific ticker
python scripts/analyze_disclosure_timing.py --ticker NVDA
Report Includes:
- Timing score and suspicion level
- Prior alert details (count, severity, timing)
- Official name, ticker, trade details
- Assessment and reasoning
- Top suspicious trades ranked
Next: Phase 3 - Pattern Detection across officials/stocks
2025-12-15 15:17:09 -05:00
..
2025-12-15 11:33:21 -05:00
2025-12-15 15:17:09 -05:00
2025-12-15 11:33:21 -05:00
2025-12-15 11:33:21 -05:00
2025-12-15 14:55:05 -05:00
2025-12-15 11:33:21 -05:00
2025-12-14 20:45:34 -05:00
2025-12-15 15:00:42 -05:00
2025-12-14 20:45:34 -05:00
2025-12-14 20:45:34 -05:00
2025-12-15 15:00:42 -05:00
2025-12-14 20:45:34 -05:00
2025-12-15 15:10:49 -05:00
2025-12-15 15:00:42 -05:00
2025-12-14 21:05:35 -05:00
2025-12-15 11:33:21 -05:00
2025-12-15 14:55:05 -05:00