# Earnings Task 2a - gap diagnostic ### Data quality gate Approved earnings window: 2020-01-22 to 2026-07-17. Source mode: dolthub_public_bulk_clone. | check | result | |---|---:| | Prod symbols requested / tradable | 506 / 505 | | Manifest complete + live counts match | True | | Prod symbols with pre-2021 bars | 491 (97.2%) | | SPY benchmark depth | 2649 rows, 2016-01-04 to 2026-07-17 | | Snapshot depth gate | True | | Bulk source windows / requests logged | 1/1 / 1 | | Source repository / pinned commit | https://www.dolthub.com/repositories/post-no-preference/earnings @ 9n0et3hpj9j7vue8f3qsldon3qa5sdjj | | Source license / upstream provider documented | CC-BY-SA-4.0 / False | | Existing-source conflicts preserved | 940 rows / 1526 fields | | Symbols with >=8 announcements | 498 (98.6%) | | Symbols with >=8 paired announcements | 495 (98.0%) | | Events with estimate + actual | 12311/12414 (99.2%) | | Duplicate rows in keyed table | 0 | | Duplicate / restated payload rows fetched | 0 / 940 | | Mean announcements per active symbol-year | 4.08 (expected about 4) | | Symbols far off (<2 or >6/year, incl. zero) | 1 | | Recognised BMO/AMC/during | 92.8% (reliable=True) | | Point-in-time policy | announce_date_plus_1_trading_day_for_all_events | | SUE price fallback | not_used | Deduplication: 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 Far-off announcement-rate symbols: SPCX ### Experiment 2a - earnings-gap risk diagnostic Verdict: **INFORMATIONAL**. Report-only; no filter arm or implementation. Trade cohort is restricted to the approved earnings-coverage window 2020-01-22 to 2026-07-17; 0 simulated trades outside that window were excluded. | cohort | count | fraction | |---|---:|---:| | Realized net R <= -1.0 | 266 | - | | Losses with announcement strictly inside hold | 23 | 0.0865 | | All trades with announcement strictly inside hold | 115 | 0.2003 | | Entry cohort | count | mean R | median R | win rate | p05 R | p95 R | |---|---:|---:|---:|---:|---:|---:| | Within 3 sessions before earnings | 27 | 0.4837 | -1.0265 | 0.3333 | -1.1463 | 5.981 | | All other entries | 547 | 0.2734 | -0.8316 | 0.3565 | -1.1228 | 4.5888 | Tail deltas (pre minus other): p05=-0.0235, p95=1.3922. Registered directional tail condition is not present. | Exit cohort | count | mean R | median R | win rate | p05 R | p95 R | |---|---:|---:|---:|---:|---:|---:| | Stops within 1 session after earnings | 26 | -0.6434 | -0.9753 | 0.2308 | -2.4614 | 1.1142 | | All other stops | 433 | -0.5035 | -1.0278 | 0.1963 | -1.1373 | 1.3591 | | All other exits | 548 | 0.3273 | -0.8361 | 0.3613 | -1.0644 | 4.7224 |