Earnings backfill sourced from the public DoltHub earnings repo at a pinned commit rather than the FMP API: reproducible for anyone re-running the study, and it burns no request quota. 12,414 events, 98.6% of symbols with >=8 announcements, 99.2% paired actual/estimate, no keyed duplicates. 2a earnings-gap diagnostic: INFORMATIONAL, no filter shipped. The pre-earnings cohort's right tail was better, so the registered avoid-earnings condition failed. Note the raw 23/266 vs 115/574 incidence gap is largely a duration confound -- severe losses stop out fast and have less time to span an announcement -- so it is not evidence that holding through earnings is safe. 2b SUE: FAIL against the pre-registered +0.03 bar (unconditional IC +0.0151 over 56 reliable windows, momentum-conditional +0.0213). Signs stable across eras, so this is a clean null rather than an ambiguous one, consistent with post-earnings drift having decayed in large caps. Closes the Tier-1 arc: Task 1 dead on deep evidence, Task 2 dead here, Task 3 complete as diagnostic. No in-sample research thread remains open. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
76 lines
2.3 KiB
JSON
76 lines
2.3 KiB
JSON
{
|
|
"mode": "dolthub_public_bulk_clone",
|
|
"window": {
|
|
"from": "2020-01-22",
|
|
"to": "2026-07-17"
|
|
},
|
|
"coverage_amendment": {
|
|
"approved_by_user": true,
|
|
"reason": "FMP free tier blocks historical bulk earnings",
|
|
"original_start": "2016-01-04",
|
|
"amended_announcement_start": "2020-01-22"
|
|
},
|
|
"source": {
|
|
"repository": "https://www.dolthub.com/repositories/post-no-preference/earnings",
|
|
"commit": "9n0et3hpj9j7vue8f3qsldon3qa5sdjj",
|
|
"license": "CC-BY-SA-4.0",
|
|
"upstream_provider_documented": false
|
|
},
|
|
"bulk_windows_total": 1,
|
|
"bulk_windows_done": 1,
|
|
"bulk_requests_logged_total": 1,
|
|
"bulk_exports": 2,
|
|
"calendar": {
|
|
"raw_rows": 117482,
|
|
"universe_rows_in_window": 12342,
|
|
"deduped_rows_in_window": 12342,
|
|
"duplicate_rows": 0,
|
|
"restated_rows": 0
|
|
},
|
|
"eps_history": {
|
|
"raw_rows": 165050,
|
|
"universe_rows": 18515,
|
|
"deduped_rows": 18515,
|
|
"duplicate_rows": 0,
|
|
"restated_rows": 0,
|
|
"complete_actual_and_estimate": 18304
|
|
},
|
|
"pairing": {
|
|
"method": "minimum-cost monotonic alignment per symbol",
|
|
"allowed_announce_minus_period_end_days": [
|
|
-14,
|
|
90
|
|
],
|
|
"matched_calendar_events": 12271,
|
|
"unmatched_calendar_events": 71,
|
|
"unmatched_periods_in_pairing_window": 538,
|
|
"announce_minus_period_end_days": {
|
|
"min": -10,
|
|
"median": 30,
|
|
"max": 89
|
|
},
|
|
"pre_2020_eps_history_use": "trailing_surprise_stdev_only; never treated as an announcement or live signal event"
|
|
},
|
|
"duplicate_rows_logged_total": 0,
|
|
"restated_rows_logged_total": 940,
|
|
"conflicting_existing_rows": 940,
|
|
"conflicting_existing_fields": 1526,
|
|
"preserved_existing_fields": 2945,
|
|
"existing_enrichment_events_not_in_dolthub_calendar": 72,
|
|
"dedupe_policy": "UNIQUE(symbol, announce_date); normalise dot/dash symbols; retain one calendar row per key; preserve existing non-null session/EPS values from the prior FMP/Alpha Vantage partial backfill, then fill nulls and all remaining symbols from DoltHub; attach DoltHub period-end alignment",
|
|
"events_in_window": 12414,
|
|
"events_with_actual_and_estimate": 12311,
|
|
"symbols_done": 506,
|
|
"symbols_universe": 506,
|
|
"symbols_with_dolthub_calendar": 504,
|
|
"symbols_without_dolthub_calendar": [
|
|
"RHM",
|
|
"SPCX"
|
|
],
|
|
"announce_date_range": {
|
|
"min": "2020-01-22",
|
|
"max": "2026-07-17"
|
|
},
|
|
"complete": true
|
|
}
|