{"readiness":{"total_closed_trades":91,"preliminary_ready":true,"dynamic_weights_ready":true,"empirical_sizing_ready":false,"calibration_quality":"dynamic_weights"},"by_thesis_type":{"total_closed":91,"by_thesis_type":[{"thesis_type":"TECHNICAL_OVERSOLD","n":69,"win_rate":0.478,"avg_pnl_r":null},{"thesis_type":"INSIDER_BUYING","n":12,"win_rate":null,"avg_pnl_r":null,"note":"Only 12 trade(s) — need 20 for a preliminary read"},{"thesis_type":"EARNINGS_MISS","n":6,"win_rate":null,"avg_pnl_r":null,"note":"Only 6 trade(s) — need 20 for a preliminary read"},{"thesis_type":"ANALYST_DOWNGRADE","n":3,"win_rate":null,"avg_pnl_r":null,"note":"Only 3 trade(s) — need 20 for a preliminary read"},{"thesis_type":"POSITIVE_CATALYST","n":1,"win_rate":null,"avg_pnl_r":null,"note":"Only 1 trade(s) — need 20 for a preliminary read"}]},"missing_signal_impact":{"total_closed":91,"by_signal":[{"signal":"price_vs_20d_low","missing":{"n":0,"win_rate":null,"avg_pnl_r":null},"present":{"n":91,"win_rate":0.484,"avg_pnl_r":null},"ready":false,"note":"Need 20+ trades in both cohorts (have missing=0, present=91)"},{"signal":"rsi_14","missing":{"n":0,"win_rate":null,"avg_pnl_r":null},"present":{"n":91,"win_rate":0.484,"avg_pnl_r":null},"ready":false,"note":"Need 20+ trades in both cohorts (have missing=0, present=91)"},{"signal":"volume_spike","missing":{"n":0,"win_rate":null,"avg_pnl_r":null},"present":{"n":91,"win_rate":0.484,"avg_pnl_r":null},"ready":false,"note":"Need 20+ trades in both cohorts (have missing=0, present=91)"},{"signal":"insider_buying_30d","missing":{"n":0,"win_rate":null,"avg_pnl_r":null},"present":{"n":91,"win_rate":0.484,"avg_pnl_r":null},"ready":false,"note":"Need 20+ trades in both cohorts (have missing=0, present=91)"},{"signal":"short_interest_pct","missing":{"n":91,"win_rate":0.484,"avg_pnl_r":null},"present":{"n":0,"win_rate":null,"avg_pnl_r":null},"ready":false,"note":"Need 20+ trades in both cohorts (have missing=91, present=0)"},{"signal":"sector_relative_strength","missing":{"n":0,"win_rate":null,"avg_pnl_r":null},"present":{"n":91,"win_rate":0.484,"avg_pnl_r":null},"ready":false,"note":"Need 20+ trades in both cohorts (have missing=0, present=91)"},{"signal":"cash_burn_months","missing":{"n":91,"win_rate":0.484,"avg_pnl_r":null},"present":{"n":0,"win_rate":null,"avg_pnl_r":null},"ready":false,"note":"Need 20+ trades in both cohorts (have missing=91, present=0)"},{"signal":"news_sentiment","missing":{"n":20,"win_rate":0.55,"avg_pnl_r":null},"present":{"n":71,"win_rate":0.465,"avg_pnl_r":null},"ready":true,"note":null},{"signal":"social_sentiment","missing":{"n":15,"win_rate":0.4,"avg_pnl_r":null},"present":{"n":76,"win_rate":0.5,"avg_pnl_r":null},"ready":false,"note":"Need 20+ trades in both cohorts (have missing=15, present=76)"}]}}