Replace invalid resolution bets with forward learning

This commit is contained in:
Theodore Song
2026-08-21 19:56:21 -04:00
parent 95947c4df6
commit ab165b0617
8 changed files with 284 additions and 179 deletions
+45 -64
View File
@@ -1,89 +1,70 @@
{
"generated_at": "2026-08-21T23:16:59.364Z",
"strategy": "resolution-window-no-50-55-safe-non-sports-v2",
"generated_at": "2026-08-21T23:44:53.304Z",
"strategy": "resolution-window-no-50-55-forward-shadow-v3",
"selection": {
"markets_requested": 3000,
"markets_with_history": 2954,
"discovery_markets_requested": 3000,
"discovery_markets_with_history": 2918,
"disjoint_holdout_markets_requested": 3000,
"disjoint_holdout_markets_with_history": 2394,
"disjoint_holdout_offset": 3000,
"order": "closedTime descending",
"horizon_days_tested": [2, 3, 4, 5, 6, 7, 8, 9, 10],
"horizon_days_enabled": [3, 4, 5, 6],
"horizon_days_tested": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 21, 30],
"horizon_days_enabled": [],
"horizon_days_observed": [4],
"modeled_round_trip_cost_cents": 1,
"history_fidelity_minutes": 1440,
"cluster_unit": "Polymarket event",
"decision_unit": "one highest-volume eligible contract per Polymarket event and rule",
"production_contract_filter": "non-Sports and no path-dependent barrier, numeric range, currency range, exact score, or post-count contract"
},
"rules": {
"discovery_rule": {
"side": "NO",
"midpoint_min_inclusive": 0.5,
"midpoint_max_exclusive": 0.55,
"3_day": {
"events": 121,
"event_mean_return": 0.2451763293,
"event_lower_90": 0.1577733713,
"train_events": 85,
"train_event_lower_90": 0.1314547114,
"holdout_events": 40,
"holdout_event_lower_90": 0.0991402647,
"chronological_thirds_event_lower_90": [0.052193276, 0.0937543342, 0.1174259244]
},
"4_day": {
"events": 144,
"event_mean_return": 0.381453985,
"event_lower_90": 0.3139573933,
"train_events": 102,
"train_event_lower_90": 0.3031863842,
"holdout_events": 47,
"holdout_event_lower_90": 0.2716756304,
"chronological_thirds_event_lower_90": [0.3388899636, 0.2711632708, 0.2004748563]
},
"5_day": {
"events": 105,
"event_mean_return": 0.3686092965,
"event_lower_90": 0.2938832777,
"train_events": 77,
"train_event_lower_90": 0.2686815198,
"holdout_events": 30,
"holdout_event_lower_90": 0.3000837037,
"chronological_thirds_event_lower_90": [0.2828281426, 0.1431972556, 0.3007470066]
},
"6_day": {
"events": 87,
"event_mean_return": 0.4393573265,
"event_lower_90": 0.3767305502,
"train_events": 60,
"train_event_lower_90": 0.3308720214,
"holdout_events": 29,
"holdout_event_lower_90": 0.4367621838,
"chronological_thirds_event_lower_90": [0.2863423727, 0.3447299413, 0.3561383759]
}
"horizon_days": 4,
"events": 145,
"event_mean_return": 0.3842272785,
"event_lower_90": 0.2612426599,
"train_events": 102,
"train_event_lower_90": 0.290934746,
"holdout_events": 46,
"holdout_event_lower_90": 0.0382807805,
"chronological_thirds_event_lower_90": [0.2464004239, 0.1620997356, 0.1521274303]
},
"rejected_windows": {
"2_day": "The chronological holdout lower 90% bound was negative.",
"7_day": "The exact safe non-Sports cohort had a negative middle-segment lower 90% bound.",
"8_day": "Not retained after the contiguous 3-6 day production window passed more strongly.",
"9_day": "Not retained after the contiguous 3-6 day production window passed more strongly.",
"10_day": "The exact safe non-Sports cohort had a negative middle-segment lower 90% bound.",
"adjacent_price_bands": "The 45-50% band lacked sufficient holdout evidence and the 55-60% band was unstable across shorter horizons."
"disjoint_holdout": {
"events": 65,
"event_mean_return": 0.3545949134,
"event_lower_90": 0.1660920142,
"train_events": 49,
"train_event_lower_90": 0.1409018264,
"holdout_events": 16,
"holdout_event_lower_90": -0.047341047,
"chronological_thirds_event_lower_90": [0.2174015607, -0.352501396, -0.0402576867],
"passed_strict_gate": false
},
"production_constraints": {
"capital_enabled": false,
"safe_contract_only": true,
"sports_excluded": true,
"minimum_total_volume_usd": 15000,
"minimum_live_liquidity_usd": 1400,
"maximum_spread": 0.03,
"entry": "executable NO ask plus 0.25 cents slippage",
"modeled_entry": "executable NO ask plus 0.25 cents slippage",
"maximum_entry_friction_cents": 1,
"resolution_windows_days": [[2.5, 3.5], [3.5, 4.5], [4.5, 5.5], [5.5, 6.5]],
"initial_position_pct": 0.5,
"total_cap_pct": 3,
"one_owner_per_event": true,
"observation_window_days": [3.5, 4.5],
"one_observation_per_event": true,
"promotion_events": 40,
"promotion_lower_90_minimum": 0.01,
"promoted_position_pct": 0.5,
"promoted_total_cap_pct": 3,
"exit": "verified market settlement only"
},
"finding": "The prior 3-6 day capital permission was invalid because it averaged multiple correlated contracts inside an event. After selecting one decision per event, only the four-day safe rule survived the recent discovery sample, and it failed the strict all-segment gate in a disjoint older sample. Production therefore records zero-capital forward outcomes only.",
"limitations": [
"Final volume is used to select one contract per event and was not known at the historical decision time.",
"The resolved archive cannot reconstruct contemporaneous historical liquidity or order-book depth.",
"Recent closed-market selection can reflect a temporary question-construction regime.",
"Published midpoint history is not a fill guarantee; production therefore applies current executable pricing and liquidity gates.",
"This audit authorizes only bounded paper trading and does not guarantee future profit."
"Published midpoint history is not a fill guarantee.",
"Forward promotion would authorize bounded paper trading only and would not guarantee profit."
],
"reproduce": "SETTLEMENT_MARKETS=3000 SETTLEMENT_HORIZONS=3,4,5,6,7,8,9,10 SETTLEMENT_COST_CENTS=1 SETTLEMENT_ORDER=closedTime SETTLEMENT_ASCENDING=false SETTLEMENT_TARGET_ONLY=1 SETTLEMENT_TARGET_RULES=buy_no_50_55_safe_non_sports node scripts/evaluate-settlements.mjs"
"reproduce_discovery": "SETTLEMENT_MARKETS=3000 SETTLEMENT_HORIZONS=1,2,3,4,5,6,7,8,9,10,14,21,30 SETTLEMENT_COST_CENTS=1 SETTLEMENT_ORDER=closedTime SETTLEMENT_ASCENDING=false SETTLEMENT_FINE_GRID=true SETTLEMENT_SURVIVORS_ONLY=1 node scripts/evaluate-settlements.mjs",
"reproduce_disjoint_holdout": "SETTLEMENT_MARKETS=3000 SETTLEMENT_SKIP=3000 SETTLEMENT_HORIZONS=4,5 SETTLEMENT_COST_CENTS=1 SETTLEMENT_ORDER=closedTime SETTLEMENT_ASCENDING=false SETTLEMENT_TARGET_ONLY=1 SETTLEMENT_TARGET_RULES=buy_no_50_55,buy_no_50_55_safe_non_sports,buy_safe_no_50_55 node scripts/evaluate-settlements.mjs"
}