Date: 2026-05-15
Scope: Cross-asset-class review of outcome resolution, stat updates (trust_score, forward_wr, symbol/strategy win rates), GitHub Actions coverage, and classification correctness.
Goal: Identify zero/blank fields, misrouting, and broken feedback loops that prevent accurate per-asset-class and per-strategy performance measurement.
at_raw_picksuniversal_pick_resolver.py (or equivalent) detects close → writes to at_signal_outcomesdashboard_generator.py + strategy_health logic updates:
- strategy_health table / JSON (per-strategy WR, PF, forward_wr, etc.)
- Symbol-level tracking (symbol_track_wr, FWD WR%)
- asset_class_health aggregate
- trust_score / at_issue_trust_score enrichmentat_signal_outcomes coverage: Historically ~0.08% (121 resolved out of 145k+). Even after resolver-v2 improvements, many asset classes still have thin resolved samples (BOND n=11 total, FUTURES effectively 0 in its own tile).dashboard_generator.py has multiple fallback paths (at_issue_trust_score, forward_wr from pick metadata). When the resolver does not write these fields, downstream calculations fall back to defaults or stale values.forward_wr / trust_score fields in the live payload.symbol_track_wr because they are emitted by many different scanners without consistent tracking.Verdict: The feedback loop (close → update strategy/symbol stats → influence future scoring) is partially broken for thin or noisy asset classes. This directly contributes to the "why aren't win rates higher?" problem when good signals (Polymarket, Kalshi, CopyTrader) exist but the system cannot reliably measure or promote them.
dashboard_generator.py:_derive_asset_class)_COMMODITY_ROOTS vs _INDEX_FUTURES_ROOTS (improved after historical ZN=F → BOND bugs).Verdict: Classification has improved, but the downstream effect (FUTURES appearing dead, Penny/Meme dragging EQUITY/CRYPTO) is still present because the routing + emitter logic was never fully cleaned up after the big triage.
bond-agent.yml style jobs + COT-specific workflows. Relatively good coverage.non_crypto_agent + equity-specific scanners. Decent.etf_sector_emitter.py. Coverage is lighter.Missing: Systematic per-asset-class "health check" jobs that verify at_signal_outcomes population, forward_wr freshness, and trust_score distribution for that class.
From dashboard_data.json (2026-05-15) and subagent reports:
- BOND: n=11 resolved (extremely low). Many strategy-level forward_wr / trust fields blank or defaulted.
- FUTURES: n=0 in its own tile (misleading).
- PENNY/MEME: High volume of emissions but very low resolved outcomes with usable forward_wr / symbol_track_wr. Many "0/0" or blank win-rate entries.
- FOREX: Thin resolved sample; several strategies show blank or near-zero forward metrics.
- COMMODITY: Surface numbers look good, but after COT deduplication the effective independent n for the flagship strategy collapses dramatically.
forward_wr, trust_score, and per-symbol/per-strategy win rates (even for low-volume classes).Because of the above gaps, even when good external signals (top Polymarket/Kalshi traders, quality CopyTraders) are present, the system often cannot:
- Accurately measure their forward performance (low resolved n + blank forward_wr).
- Promote them with proper trust_score.
- Show clean per-asset-class statistics in /audit.
This is one of the structural reasons win rates per asset class appear lower than the "smart money" data would suggest.
This report should be read alongside the 8 asset-class 90-day plans and the 4 strategy-type assessments. It explains why some of the recommended fixes (especially for BOND, FUTURES, PENNY_MEME, and the prediction-market layers) are necessary before those classes can contribute real, measurable edge.
reports/data_flow_integrity_audit_2026-05-15.md ·
90-Day Plan — May 15 2026 Edition · generated by tools/generate_90day_plan_pages.py