Fix label_price_unavailable: preserve future entry_dates as pending
Pre-market label_generator runs request future-dated price windows from Stock Oracle, which correctly returns 404 because the data does not yet exist. The labeler was swallowing this as label_status='unavailable' with entry_date=None. Snapshot export then filtered these rows out, so live PEAD trading silently lost candidates whose entry_dates fell on later trading days (e.g., post-market 8-K filings late Friday → Monday open entry). This explains today's missed RKLB/SNDK/AKAM/MNST/AMD/MRNA even though their 8-Ks parsed correctly. Changes: - libs/labeler/label_generator.py: in 404/empty-bars path, when entry_date >= today, preserve entry_date and mark label_status='pending'. New log event label_price_pending_future_window distinguishes from real data-unavailable failures (past dates still log label_price_unavailable). - libs/export/snapshot_export.py: include 'pending' in the label_status filter so today's not-yet-labeled events flow into the live snapshot. - apps/pipeline/label_generator/main.py: regeneration logic also retries existing 'unavailable' rows whose entry_date is null or future to recover events already mis-labeled in the DB. - tests/unit/test_labeler.py: regression test reproducing the RKLB/SNDK/AKAM failure mode and asserting label_status='pending' with entry_date preserved. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>main
parent
4067dab700
commit
27de44c8d8
Loading…
Reference in New Issue