{"provider_key":"the_odds_api","summary":{"provider_key":"the_odds_api","provider_enabled":true,"counts":{"provider_sports":1,"supported_sports":1,"active_supported_sports":1,"unsupported_sports":0,"provider_events":1,"canonical_events":1,"active_provider_lines":6,"inactive_provider_lines":0,"open_pickable_lines":6,"pickable_line_sources":6,"active_pickable_line_sources":6,"active_option_sets":21,"stale_active_option_sets":0,"option_set_regeneration_periods":21,"option_set_regeneration_current":21,"option_set_regeneration_recommended":0,"option_set_regeneration_missing":0,"option_set_regeneration_stale":0,"option_set_regeneration_rules_changed":0,"option_set_regeneration_inventory_changed":0,"provider_requests":2,"failed_provider_requests":0,"recorded_request_cost":0,"inventory_job_runs":7,"failed_inventory_job_runs":0,"unresolved_mapping_candidates":0,"needs_review_picks":0,"provider_scores":0,"settled_provider_scores":0,"provider_stat_results":0,"canonical_event_results":0,"settled_canonical_event_results":0,"pending_score_refresh_targets":0,"pending_score_refresh_picks":0,"duplicate_pickable_source_groups":0,"duplicate_pickable_source_lines":0},"cost_window":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:43.391749Z","request_count_24h":2,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0,"unresolved_failure_groups_24h":[],"request_cost_24h":0,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"request_count_7d":2,"failed_request_count_7d":0,"unresolved_failed_request_count_7d":0,"unresolved_failure_groups_7d":[],"request_cost_7d":0,"latest_request_finished_at":"2026-06-05T17:11:09.860410Z","latest_request_type":"odds","latest_request_success":true,"latest_quota_remaining":null,"latest_quota_used":null,"latest_request_cost":0,"latest_objects_returned":1,"latest_object_limit_remaining":null,"latest_request_limit_remaining":null,"latest_response_notice":null,"latest_next_cursor":null},"sports_coverage":[{"provider_sport_key":"basketball_nba","canonical_sport_code":"basketball","canonical_league_code":"basketball_nba","mapping_status":"mapped","mapping_gap_reasons":[],"sport_group":"Basketball","sport_title":"NBA","coverage_status":"stocked","coverage_gap_reasons":[],"provider_events":1,"active_provider_lines":6,"open_pickable_lines":6,"provider_scores":0,"settled_provider_scores":0,"provider_stat_results":0,"canonical_event_results":0,"settled_canonical_event_results":0,"pending_score_refresh_picks":0,"pending_score_refresh_events":0,"unresolved_mapping_candidates":0,"unresolved_event_mapping_candidates":0,"last_event_refresh":null,"last_odds_refresh":"2026-06-05T17:11:09.860410Z","last_score_refresh":null,"latest_event_request":null,"latest_odds_request":null,"latest_score_request":null,"recommended_action":"none","recommended_action_reason":"Sport has open PickCenter pickable lines.","recommended_command":null}],"recent_job_runs":[{"id":"a0241a49-fa90-4693-a4e8-a99fc0489569","job_key":"run_refresh_policy","status":"succeeded","trigger":"manual","started_at":"2026-06-05T20:13:40.960328Z","finished_at":"2026-06-05T20:13:41.803236Z","summary_json":{"execute_live":true,"provider_key":"the_odds_api","run_mode":"local","max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"lookahead_days":14,"refresh_yield_lookback_hours":168,"request_scope":{"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null},"score_provider_sport_key":null,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"rebuild_local":true,"local_maintenance_regenerate_option_sets":true,"local_maintenance_prune_line_snapshots":true,"approved_plan_hash":null,"scheduled_profile_approval":null,"policy_plan":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:13:41.081564+00:00","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"lookahead_days":14,"skip_sports_refresh":false,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"commence_time_from":"2026-06-05T20:13:41.081564+00:00","commence_time_to":"2026-06-19T20:13:41.081564+00:00"},"sports_refresh":{"due":false,"estimated_credits":0,"last_success_at":"2026-06-05T17:11:09.860410+00:00","known_provider_sports":1,"active_supported_sports":1,"reason":"disabled_by_run_mode"},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"refresh_forecast":{"generated_at":"2026-06-05T20:13:41.081564+00:00","sports":{"component_enabled":true,"due":false,"last_success_at":"2026-06-05T17:11:09.860410+00:00","next_due_at":"2026-06-06T17:11:09.860410+00:00","stale_hours":24},"events":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"odds":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"scores":{"component_enabled":false,"due_count":0,"next_due_at":null},"policy":"Forecast is read-only and uses stored provider request timestamps plus configured freshness windows."},"events_refresh":{"candidate_count":0,"target_count":0,"skipped_target_count":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh broad event/team inventory across active supported sports before spending odds credits."},"odds_refresh":{"candidate_count":0,"selected_target_count":0,"skipped_target_count":0,"estimated_credits":0,"max_credits":90,"selection_credit_cap":90,"latest_quota_remaining":null,"targets":[],"skipped_targets":[],"policy":"Refresh broad odds only inside the explicit credit cap; low recent pickable yield ranks later unless explicitly prioritized."},"scores_refresh":{"target_count":0,"skipped_target_count":0,"estimated_provider_calls":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh scores only for provider sports with pending picked events that have started."},"local_inventory":{"uses_live_provider_calls":false,"steps":["build_pickable_universe","regenerate_active_option_sets_when_recommended","expire_started_inventory","lock_started_picks","score_pending_picks_from_stored_provider_scores"]},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"execution_preview":{"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[],"approval_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","approval_snapshot":{"version":1,"provider_key":"the_odds_api","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"skip_sports_refresh":false},"request_budget":{"estimated_credits":0,"uncapped_estimated_credits":0,"selection_credit_cap":120,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"targets":{"events":[],"odds":[],"scores":[]}},"estimated_total_request_credits":0,"uncapped_estimated_total_request_credits":0,"estimated_odds_credits":0,"latest_quota_remaining":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"approval_args":["--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168"],"execute_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168","--execute","--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168","execute_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168 --execute --approved-no-sports-refresh --approved-event-sports '' --approved-odds-sports '' --approved-score-sports '' --approved-plan-hash ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","dry_run_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":false,"rebuild_local":false},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":true,"rebuild_local":true,"approved_sports_refresh_due":false,"approved_event_sports":[],"approved_odds_sports":[],"approved_score_sports":[],"approved_plan_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":false},"policy":"Review the dry run, then execute only if the selected targets and estimated credits are acceptable."}},"provider_quota_health":{"provider_key":"the_odds_api","uses_live_provider_calls":false,"status":"ok","allowed":true,"blockers":[],"warnings":[],"planned_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"policy":"Final live refresh guard across selected sports, event, odds, and score provider calls."},"live_provider_calls":{"sports":0,"events":0,"odds":0,"scores":0,"skipped_scores":0,"estimated_odds_credits":0,"max_event_sports":null,"skipped_event_sports":0,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"estimated_total_request_credits":0,"commence_time_from":"2026-06-05T20:13:41.081564+00:00","commence_time_to":"2026-06-19T20:13:41.081564+00:00","actual_request_cost":0},"sports_refresh":{"executed":false,"failures":0},"events_refresh":{"executed":0,"failures":0},"odds_refresh":{"executed":0,"failures":0,"request_cost":0},"scores_refresh":{"executed":0,"failures":0,"request_cost":0,"skipped":0,"scores":0,"canonical_events_updated":0,"canonical_event_results":0,"settled_canonical_event_results":0,"retired_pickable_lines":0,"retired_pick_options":0},"local_inventory":{"executed":true,"regenerate_option_sets":true,"prune_line_snapshots":true,"rebuild":{"pickable_universe":{"eligible_lines":6,"provider_lines_seen":6},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"reason":"refresh_policy"},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0}},"maintenance":{"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T20:13:41.617512+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T20:13:41.617512+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"actual_request_cost":0},"error_message":null},{"id":"26f85f44-ce4c-4a4f-a320-e535c3a79ece","job_key":"run_refresh_policy","status":"succeeded","trigger":"manual","started_at":"2026-06-05T19:58:44.149355Z","finished_at":"2026-06-05T19:58:44.955503Z","summary_json":{"execute_live":true,"provider_key":"the_odds_api","run_mode":"local","max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"lookahead_days":14,"refresh_yield_lookback_hours":168,"request_scope":{"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null},"score_provider_sport_key":null,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"rebuild_local":true,"local_maintenance_regenerate_option_sets":true,"local_maintenance_prune_line_snapshots":true,"approved_plan_hash":null,"scheduled_profile_approval":null,"policy_plan":{"provider_key":"the_odds_api","generated_at":"2026-06-05T19:58:44.266767+00:00","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"lookahead_days":14,"skip_sports_refresh":false,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"commence_time_from":"2026-06-05T19:58:44.266767+00:00","commence_time_to":"2026-06-19T19:58:44.266767+00:00"},"sports_refresh":{"due":false,"estimated_credits":0,"last_success_at":"2026-06-05T17:11:09.860410+00:00","known_provider_sports":1,"active_supported_sports":1,"reason":"disabled_by_run_mode"},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"refresh_forecast":{"generated_at":"2026-06-05T19:58:44.266767+00:00","sports":{"component_enabled":true,"due":false,"last_success_at":"2026-06-05T17:11:09.860410+00:00","next_due_at":"2026-06-06T17:11:09.860410+00:00","stale_hours":24},"events":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"odds":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"scores":{"component_enabled":false,"due_count":0,"next_due_at":null},"policy":"Forecast is read-only and uses stored provider request timestamps plus configured freshness windows."},"events_refresh":{"candidate_count":0,"target_count":0,"skipped_target_count":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh broad event/team inventory across active supported sports before spending odds credits."},"odds_refresh":{"candidate_count":0,"selected_target_count":0,"skipped_target_count":0,"estimated_credits":0,"max_credits":90,"selection_credit_cap":90,"latest_quota_remaining":null,"targets":[],"skipped_targets":[],"policy":"Refresh broad odds only inside the explicit credit cap; low recent pickable yield ranks later unless explicitly prioritized."},"scores_refresh":{"target_count":0,"skipped_target_count":0,"estimated_provider_calls":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh scores only for provider sports with pending picked events that have started."},"local_inventory":{"uses_live_provider_calls":false,"steps":["build_pickable_universe","regenerate_active_option_sets_when_recommended","expire_started_inventory","lock_started_picks","score_pending_picks_from_stored_provider_scores"]},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"execution_preview":{"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[],"approval_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","approval_snapshot":{"version":1,"provider_key":"the_odds_api","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"skip_sports_refresh":false},"request_budget":{"estimated_credits":0,"uncapped_estimated_credits":0,"selection_credit_cap":120,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"targets":{"events":[],"odds":[],"scores":[]}},"estimated_total_request_credits":0,"uncapped_estimated_total_request_credits":0,"estimated_odds_credits":0,"latest_quota_remaining":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"approval_args":["--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168"],"execute_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168","--execute","--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168","execute_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168 --execute --approved-no-sports-refresh --approved-event-sports '' --approved-odds-sports '' --approved-score-sports '' --approved-plan-hash ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","dry_run_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":false,"rebuild_local":false},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":true,"rebuild_local":true,"approved_sports_refresh_due":false,"approved_event_sports":[],"approved_odds_sports":[],"approved_score_sports":[],"approved_plan_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":false},"policy":"Review the dry run, then execute only if the selected targets and estimated credits are acceptable."}},"provider_quota_health":{"provider_key":"the_odds_api","uses_live_provider_calls":false,"status":"ok","allowed":true,"blockers":[],"warnings":[],"planned_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"policy":"Final live refresh guard across selected sports, event, odds, and score provider calls."},"live_provider_calls":{"sports":0,"events":0,"odds":0,"scores":0,"skipped_scores":0,"estimated_odds_credits":0,"max_event_sports":null,"skipped_event_sports":0,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"estimated_total_request_credits":0,"commence_time_from":"2026-06-05T19:58:44.266767+00:00","commence_time_to":"2026-06-19T19:58:44.266767+00:00","actual_request_cost":0},"sports_refresh":{"executed":false,"failures":0},"events_refresh":{"executed":0,"failures":0},"odds_refresh":{"executed":0,"failures":0,"request_cost":0},"scores_refresh":{"executed":0,"failures":0,"request_cost":0,"skipped":0,"scores":0,"canonical_events_updated":0,"canonical_event_results":0,"settled_canonical_event_results":0,"retired_pickable_lines":0,"retired_pick_options":0},"local_inventory":{"executed":true,"regenerate_option_sets":true,"prune_line_snapshots":true,"rebuild":{"pickable_universe":{"eligible_lines":6,"provider_lines_seen":6},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"reason":"refresh_policy"},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0}},"maintenance":{"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T19:58:44.780774+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T19:58:44.780774+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"actual_request_cost":0},"error_message":null},{"id":"ab9e7323-120a-4933-9b26-c1c2cf10ff2b","job_key":"generate_active_option_sets","status":"succeeded","trigger":"manual","started_at":"2026-06-05T19:49:48.948316Z","finished_at":"2026-06-05T19:49:49.349193Z","summary_json":{"reason":"design_partner_beta","force":false,"eligible_periods":21,"option_sets":7,"options":42,"skipped_current":14,"regeneration_recommended":7,"status_counts":{"active_option_set_current":14,"no_active_option_set":7,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"3a77bfce-2f18-41f8-90ef-31a047f6a1ca","option_set_id":"3b68094f-cbe1-45c3-8feb-b965de899694","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"e819bfe6-7f0d-467c-b864-d8735c7bdae1","option_set_id":"1749265b-15be-4908-bdca-2fa014d7a143","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"f8cc3360-dc31-4cac-a1cf-62ba59350615","option_set_id":"d43fbb7d-0c5a-484d-af6c-2578fc062f25","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"de6d3a66-3e42-4e6d-a19f-285cd89c1d0a","option_set_id":"385e2279-0a48-4052-ae9d-53748b17349d","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"cec5bea0-8046-4b9d-b6ce-de9e870ed2a2","option_set_id":"dd5882ab-0a20-494a-b836-2054dc83a543","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"97629a38-f050-4724-89d2-08f0e945cd76","option_set_id":"8c0faaa6-62da-440c-b8f1-9f7c1ea5be49","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"59c1930c-6251-40cf-8e1c-23eabb2f7541","option_set_id":"a0db62fa-e01d-4374-9580-8d8087444cf4","options":6,"regeneration_status":"no_active_option_set","forced":false}]},"error_message":null},{"id":"45ce9ade-f403-42ba-a157-9168bc6088d8","job_key":"run_refresh_policy","status":"succeeded","trigger":"manual","started_at":"2026-06-05T19:43:43.362875Z","finished_at":"2026-06-05T19:43:44.136068Z","summary_json":{"execute_live":true,"provider_key":"the_odds_api","run_mode":"local","max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"lookahead_days":14,"refresh_yield_lookback_hours":168,"request_scope":{"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null},"score_provider_sport_key":null,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"rebuild_local":true,"local_maintenance_regenerate_option_sets":true,"local_maintenance_prune_line_snapshots":true,"approved_plan_hash":null,"scheduled_profile_approval":null,"policy_plan":{"provider_key":"the_odds_api","generated_at":"2026-06-05T19:43:43.494304+00:00","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"lookahead_days":14,"skip_sports_refresh":false,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"commence_time_from":"2026-06-05T19:43:43.494304+00:00","commence_time_to":"2026-06-19T19:43:43.494304+00:00"},"sports_refresh":{"due":false,"estimated_credits":0,"last_success_at":"2026-06-05T17:11:09.860410+00:00","known_provider_sports":1,"active_supported_sports":1,"reason":"disabled_by_run_mode"},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"refresh_forecast":{"generated_at":"2026-06-05T19:43:43.494304+00:00","sports":{"component_enabled":true,"due":false,"last_success_at":"2026-06-05T17:11:09.860410+00:00","next_due_at":"2026-06-06T17:11:09.860410+00:00","stale_hours":24},"events":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"odds":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"scores":{"component_enabled":false,"due_count":0,"next_due_at":null},"policy":"Forecast is read-only and uses stored provider request timestamps plus configured freshness windows."},"events_refresh":{"candidate_count":0,"target_count":0,"skipped_target_count":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh broad event/team inventory across active supported sports before spending odds credits."},"odds_refresh":{"candidate_count":0,"selected_target_count":0,"skipped_target_count":0,"estimated_credits":0,"max_credits":90,"selection_credit_cap":90,"latest_quota_remaining":null,"targets":[],"skipped_targets":[],"policy":"Refresh broad odds only inside the explicit credit cap; low recent pickable yield ranks later unless explicitly prioritized."},"scores_refresh":{"target_count":0,"skipped_target_count":0,"estimated_provider_calls":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh scores only for provider sports with pending picked events that have started."},"local_inventory":{"uses_live_provider_calls":false,"steps":["build_pickable_universe","regenerate_active_option_sets_when_recommended","expire_started_inventory","lock_started_picks","score_pending_picks_from_stored_provider_scores"]},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"execution_preview":{"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[],"approval_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","approval_snapshot":{"version":1,"provider_key":"the_odds_api","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"skip_sports_refresh":false},"request_budget":{"estimated_credits":0,"uncapped_estimated_credits":0,"selection_credit_cap":120,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"targets":{"events":[],"odds":[],"scores":[]}},"estimated_total_request_credits":0,"uncapped_estimated_total_request_credits":0,"estimated_odds_credits":0,"latest_quota_remaining":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"approval_args":["--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168"],"execute_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168","--execute","--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168","execute_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168 --execute --approved-no-sports-refresh --approved-event-sports '' --approved-odds-sports '' --approved-score-sports '' --approved-plan-hash ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","dry_run_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":false,"rebuild_local":false},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":true,"rebuild_local":true,"approved_sports_refresh_due":false,"approved_event_sports":[],"approved_odds_sports":[],"approved_score_sports":[],"approved_plan_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":false},"policy":"Review the dry run, then execute only if the selected targets and estimated credits are acceptable."}},"provider_quota_health":{"provider_key":"the_odds_api","uses_live_provider_calls":false,"status":"ok","allowed":true,"blockers":[],"warnings":[],"planned_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"policy":"Final live refresh guard across selected sports, event, odds, and score provider calls."},"live_provider_calls":{"sports":0,"events":0,"odds":0,"scores":0,"skipped_scores":0,"estimated_odds_credits":0,"max_event_sports":null,"skipped_event_sports":0,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"estimated_total_request_credits":0,"commence_time_from":"2026-06-05T19:43:43.494304+00:00","commence_time_to":"2026-06-19T19:43:43.494304+00:00","actual_request_cost":0},"sports_refresh":{"executed":false,"failures":0},"events_refresh":{"executed":0,"failures":0},"odds_refresh":{"executed":0,"failures":0,"request_cost":0},"scores_refresh":{"executed":0,"failures":0,"request_cost":0,"skipped":0,"scores":0,"canonical_events_updated":0,"canonical_event_results":0,"settled_canonical_event_results":0,"retired_pickable_lines":0,"retired_pick_options":0},"local_inventory":{"executed":true,"regenerate_option_sets":true,"prune_line_snapshots":true,"rebuild":{"pickable_universe":{"eligible_lines":6,"provider_lines_seen":6},"option_sets":{"eligible_periods":14,"option_sets":0,"options":0,"skipped_current":14,"regeneration_recommended":0,"status_counts":{"active_option_set_current":14,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"reason":"refresh_policy"},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0}},"maintenance":{"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T19:43:43.994783+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":14,"option_sets":0,"options":0,"skipped_current":14,"regeneration_recommended":0,"status_counts":{"active_option_set_current":14,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T19:43:43.994783+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":14,"option_sets":0,"options":0,"skipped_current":14,"regeneration_recommended":0,"status_counts":{"active_option_set_current":14,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"actual_request_cost":0},"error_message":null},{"id":"265b99f1-4a27-4e70-a62c-89bf4bb35014","job_key":"run_refresh_policy","status":"succeeded","trigger":"manual","started_at":"2026-06-05T19:29:24.074578Z","finished_at":"2026-06-05T19:29:24.797203Z","summary_json":{"execute_live":true,"provider_key":"the_odds_api","run_mode":"local","max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"lookahead_days":14,"refresh_yield_lookback_hours":168,"request_scope":{"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null},"score_provider_sport_key":null,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"rebuild_local":true,"local_maintenance_regenerate_option_sets":true,"local_maintenance_prune_line_snapshots":true,"approved_plan_hash":null,"scheduled_profile_approval":null,"policy_plan":{"provider_key":"the_odds_api","generated_at":"2026-06-05T19:29:24.243775+00:00","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"lookahead_days":14,"skip_sports_refresh":false,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"commence_time_from":"2026-06-05T19:29:24.243775+00:00","commence_time_to":"2026-06-19T19:29:24.243775+00:00"},"sports_refresh":{"due":false,"estimated_credits":0,"last_success_at":"2026-06-05T17:11:09.860410+00:00","known_provider_sports":1,"active_supported_sports":1,"reason":"disabled_by_run_mode"},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"refresh_forecast":{"generated_at":"2026-06-05T19:29:24.243775+00:00","sports":{"component_enabled":true,"due":false,"last_success_at":"2026-06-05T17:11:09.860410+00:00","next_due_at":"2026-06-06T17:11:09.860410+00:00","stale_hours":24},"events":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"odds":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"scores":{"component_enabled":false,"due_count":0,"next_due_at":null},"policy":"Forecast is read-only and uses stored provider request timestamps plus configured freshness windows."},"events_refresh":{"candidate_count":0,"target_count":0,"skipped_target_count":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh broad event/team inventory across active supported sports before spending odds credits."},"odds_refresh":{"candidate_count":0,"selected_target_count":0,"skipped_target_count":0,"estimated_credits":0,"max_credits":90,"selection_credit_cap":90,"latest_quota_remaining":null,"targets":[],"skipped_targets":[],"policy":"Refresh broad odds only inside the explicit credit cap; low recent pickable yield ranks later unless explicitly prioritized."},"scores_refresh":{"target_count":0,"skipped_target_count":0,"estimated_provider_calls":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh scores only for provider sports with pending picked events that have started."},"local_inventory":{"uses_live_provider_calls":false,"steps":["build_pickable_universe","regenerate_active_option_sets_when_recommended","expire_started_inventory","lock_started_picks","score_pending_picks_from_stored_provider_scores"]},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"execution_preview":{"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[],"approval_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","approval_snapshot":{"version":1,"provider_key":"the_odds_api","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"skip_sports_refresh":false},"request_budget":{"estimated_credits":0,"uncapped_estimated_credits":0,"selection_credit_cap":120,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"targets":{"events":[],"odds":[],"scores":[]}},"estimated_total_request_credits":0,"uncapped_estimated_total_request_credits":0,"estimated_odds_credits":0,"latest_quota_remaining":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"approval_args":["--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168"],"execute_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168","--execute","--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168","execute_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168 --execute --approved-no-sports-refresh --approved-event-sports '' --approved-odds-sports '' --approved-score-sports '' --approved-plan-hash ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","dry_run_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":false,"rebuild_local":false},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":true,"rebuild_local":true,"approved_sports_refresh_due":false,"approved_event_sports":[],"approved_odds_sports":[],"approved_score_sports":[],"approved_plan_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":false},"policy":"Review the dry run, then execute only if the selected targets and estimated credits are acceptable."}},"provider_quota_health":{"provider_key":"the_odds_api","uses_live_provider_calls":false,"status":"ok","allowed":true,"blockers":[],"warnings":[],"planned_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"policy":"Final live refresh guard across selected sports, event, odds, and score provider calls."},"live_provider_calls":{"sports":0,"events":0,"odds":0,"scores":0,"skipped_scores":0,"estimated_odds_credits":0,"max_event_sports":null,"skipped_event_sports":0,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"estimated_total_request_credits":0,"commence_time_from":"2026-06-05T19:29:24.243775+00:00","commence_time_to":"2026-06-19T19:29:24.243775+00:00","actual_request_cost":0},"sports_refresh":{"executed":false,"failures":0},"events_refresh":{"executed":0,"failures":0},"odds_refresh":{"executed":0,"failures":0,"request_cost":0},"scores_refresh":{"executed":0,"failures":0,"request_cost":0,"skipped":0,"scores":0,"canonical_events_updated":0,"canonical_event_results":0,"settled_canonical_event_results":0,"retired_pickable_lines":0,"retired_pick_options":0},"local_inventory":{"executed":true,"regenerate_option_sets":true,"prune_line_snapshots":true,"rebuild":{"pickable_universe":{"eligible_lines":6,"provider_lines_seen":6},"option_sets":{"eligible_periods":14,"option_sets":0,"options":0,"skipped_current":14,"regeneration_recommended":0,"status_counts":{"active_option_set_current":14,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"reason":"refresh_policy"},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0}},"maintenance":{"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T19:29:24.683779+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":14,"option_sets":0,"options":0,"skipped_current":14,"regeneration_recommended":0,"status_counts":{"active_option_set_current":14,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T19:29:24.683779+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":14,"option_sets":0,"options":0,"skipped_current":14,"regeneration_recommended":0,"status_counts":{"active_option_set_current":14,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"actual_request_cost":0},"error_message":null},{"id":"a9782439-e457-4238-bd6d-589727f9532c","job_key":"run_refresh_policy","status":"succeeded","trigger":"manual","started_at":"2026-06-05T19:29:13.679467Z","finished_at":"2026-06-05T19:29:14.519747Z","summary_json":{"execute_live":true,"provider_key":"the_odds_api","run_mode":"local","max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"lookahead_days":14,"refresh_yield_lookback_hours":168,"request_scope":{"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null},"score_provider_sport_key":null,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"rebuild_local":true,"local_maintenance_regenerate_option_sets":true,"local_maintenance_prune_line_snapshots":true,"approved_plan_hash":null,"scheduled_profile_approval":null,"policy_plan":{"provider_key":"the_odds_api","generated_at":"2026-06-05T19:29:13.815205+00:00","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"lookahead_days":14,"skip_sports_refresh":false,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"commence_time_from":"2026-06-05T19:29:13.815205+00:00","commence_time_to":"2026-06-19T19:29:13.815205+00:00"},"sports_refresh":{"due":false,"estimated_credits":0,"last_success_at":"2026-06-05T17:11:09.860410+00:00","known_provider_sports":1,"active_supported_sports":1,"reason":"disabled_by_run_mode"},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"refresh_forecast":{"generated_at":"2026-06-05T19:29:13.815205+00:00","sports":{"component_enabled":true,"due":false,"last_success_at":"2026-06-05T17:11:09.860410+00:00","next_due_at":"2026-06-06T17:11:09.860410+00:00","stale_hours":24},"events":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"odds":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"scores":{"component_enabled":false,"due_count":0,"next_due_at":null},"policy":"Forecast is read-only and uses stored provider request timestamps plus configured freshness windows."},"events_refresh":{"candidate_count":0,"target_count":0,"skipped_target_count":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh broad event/team inventory across active supported sports before spending odds credits."},"odds_refresh":{"candidate_count":0,"selected_target_count":0,"skipped_target_count":0,"estimated_credits":0,"max_credits":90,"selection_credit_cap":90,"latest_quota_remaining":null,"targets":[],"skipped_targets":[],"policy":"Refresh broad odds only inside the explicit credit cap; low recent pickable yield ranks later unless explicitly prioritized."},"scores_refresh":{"target_count":0,"skipped_target_count":0,"estimated_provider_calls":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh scores only for provider sports with pending picked events that have started."},"local_inventory":{"uses_live_provider_calls":false,"steps":["build_pickable_universe","regenerate_active_option_sets_when_recommended","expire_started_inventory","lock_started_picks","score_pending_picks_from_stored_provider_scores"]},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"execution_preview":{"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[],"approval_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","approval_snapshot":{"version":1,"provider_key":"the_odds_api","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"skip_sports_refresh":false},"request_budget":{"estimated_credits":0,"uncapped_estimated_credits":0,"selection_credit_cap":120,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"targets":{"events":[],"odds":[],"scores":[]}},"estimated_total_request_credits":0,"uncapped_estimated_total_request_credits":0,"estimated_odds_credits":0,"latest_quota_remaining":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"approval_args":["--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168"],"execute_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168","--execute","--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168","execute_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168 --execute --approved-no-sports-refresh --approved-event-sports '' --approved-odds-sports '' --approved-score-sports '' --approved-plan-hash ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","dry_run_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":false,"rebuild_local":false},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":true,"rebuild_local":true,"approved_sports_refresh_due":false,"approved_event_sports":[],"approved_odds_sports":[],"approved_score_sports":[],"approved_plan_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":false},"policy":"Review the dry run, then execute only if the selected targets and estimated credits are acceptable."}},"provider_quota_health":{"provider_key":"the_odds_api","uses_live_provider_calls":false,"status":"ok","allowed":true,"blockers":[],"warnings":[],"planned_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"policy":"Final live refresh guard across selected sports, event, odds, and score provider calls."},"live_provider_calls":{"sports":0,"events":0,"odds":0,"scores":0,"skipped_scores":0,"estimated_odds_credits":0,"max_event_sports":null,"skipped_event_sports":0,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"estimated_total_request_credits":0,"commence_time_from":"2026-06-05T19:29:13.815205+00:00","commence_time_to":"2026-06-19T19:29:13.815205+00:00","actual_request_cost":0},"sports_refresh":{"executed":false,"failures":0},"events_refresh":{"executed":0,"failures":0},"odds_refresh":{"executed":0,"failures":0,"request_cost":0},"scores_refresh":{"executed":0,"failures":0,"request_cost":0,"skipped":0,"scores":0,"canonical_events_updated":0,"canonical_event_results":0,"settled_canonical_event_results":0,"retired_pickable_lines":0,"retired_pick_options":0},"local_inventory":{"executed":true,"regenerate_option_sets":true,"prune_line_snapshots":true,"rebuild":{"pickable_universe":{"eligible_lines":6,"provider_lines_seen":6},"option_sets":{"eligible_periods":14,"option_sets":6,"options":36,"skipped_current":8,"regeneration_recommended":6,"status_counts":{"active_option_set_current":8,"no_active_option_set":6,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"reason":"refresh_policy"},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0}},"maintenance":{"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T19:29:14.374006+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":14,"option_sets":0,"options":0,"skipped_current":14,"regeneration_recommended":0,"status_counts":{"active_option_set_current":14,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T19:29:14.374006+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":14,"option_sets":0,"options":0,"skipped_current":14,"regeneration_recommended":0,"status_counts":{"active_option_set_current":14,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"actual_request_cost":0},"error_message":null},{"id":"6e8bf8b6-40f7-49af-ac75-0524bd8e3b6f","job_key":"seed_hosted_dev_game_loop","status":"succeeded","trigger":"manual","started_at":"2026-06-05T17:12:06.978053Z","finished_at":"2026-06-05T17:12:07.670086Z","summary_json":{"generate_option_sets":true,"set_default_marquees":true,"allow_reseed_with_active_picks":false,"uses_live_provider_calls":false,"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","competition_name":"Hosted Dev Weekly Game","pod_id":"d471ea55-d423-4502-8c26-6c097be19061","pod_name":"Hosted Dev PickCenter Pod","user_ids":["c389222d-911a-4202-9b3f-304541290f9e","b2354ec1-1988-4e33-9a56-747ee3fb4fe0","e8d8c378-7005-41ca-8c2a-43ff2f71533f"],"admin_user_id":"c389222d-911a-4202-9b3f-304541290f9e","memberships":3,"pick_period_ids":["7d9457fd-4202-4e11-bccd-c3f558e26832","885fee20-e919-4bc4-bd59-ef4ac1c3200d","102fe592-8cd1-48d5-abe5-e125baf15d7a","1c4311c0-b395-44e4-82b6-a902623b4e84","f79e9f04-f561-4815-b937-06f6bb5ab535","63e66ac5-c03a-482a-9cb1-078736d531e5","bbaa8452-19f4-4278-98ec-c4d263285ed4"],"current_pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832","option_generation":{"eligible_periods":7,"option_sets":7,"options":42,"skipped_current":0,"regeneration_recommended":7,"status_counts":{"active_option_set_current":0,"no_active_option_set":7,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832","option_set_id":"c65efab1-3be0-4e2a-a848-d19b581e4fcd","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"885fee20-e919-4bc4-bd59-ef4ac1c3200d","option_set_id":"c17c67b2-5cd4-4065-96a4-4962a85b2885","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"102fe592-8cd1-48d5-abe5-e125baf15d7a","option_set_id":"48750d1d-9914-4b08-8fc1-fa04fc66ad0c","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"1c4311c0-b395-44e4-82b6-a902623b4e84","option_set_id":"5ec92d6c-26d4-40dc-b17c-cb95bb641ef5","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"f79e9f04-f561-4815-b937-06f6bb5ab535","option_set_id":"9995b694-64bc-4afc-b4be-9f4586be0955","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"63e66ac5-c03a-482a-9cb1-078736d531e5","option_set_id":"5b07b9ea-8315-4318-b528-d3609c587369","options":6,"regeneration_status":"no_active_option_set","forced":false},{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"bbaa8452-19f4-4278-98ec-c4d263285ed4","option_set_id":"3f27d2be-c278-4db4-bf97-518743983f83","options":6,"regeneration_status":"no_active_option_set","forced":false}],"reason":"hosted_dev_seed","force":false},"marquee_events":[{"pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832","status":"selected","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","event_name":"Los Angeles Lakers at Boston Celtics"},{"pick_period_id":"885fee20-e919-4bc4-bd59-ef4ac1c3200d","status":"selected","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","event_name":"Los Angeles Lakers at Boston Celtics"},{"pick_period_id":"102fe592-8cd1-48d5-abe5-e125baf15d7a","status":"selected","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","event_name":"Los Angeles Lakers at Boston Celtics"},{"pick_period_id":"1c4311c0-b395-44e4-82b6-a902623b4e84","status":"selected","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","event_name":"Los Angeles Lakers at Boston Celtics"},{"pick_period_id":"f79e9f04-f561-4815-b937-06f6bb5ab535","status":"selected","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","event_name":"Los Angeles Lakers at Boston Celtics"},{"pick_period_id":"63e66ac5-c03a-482a-9cb1-078736d531e5","status":"selected","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","event_name":"Los Angeles Lakers at Boston Celtics"},{"pick_period_id":"bbaa8452-19f4-4278-98ec-c4d263285ed4","status":"selected","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","event_name":"Los Angeles Lakers at Boston Celtics"}]},"error_message":null}]},"provider_inventory_summary":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:48.576513Z","uses_live_provider_calls":false,"provider":{"registered":true,"enabled":true,"active_supported_sports":1,"supported_sports":1,"provider_sports":1},"canonical_inventory":{"provider_events":1,"canonical_events":1,"active_provider_lines":6,"inactive_provider_lines":0,"open_pickable_lines":6,"pickable_line_sources":6,"active_pickable_line_sources":6,"active_option_sets":21,"stale_active_option_sets":0,"option_set_regeneration_recommended":0,"option_set_regeneration_missing":0,"option_set_regeneration_stale":0,"option_set_regeneration_inventory_changed":0},"canonical_inventory_health":{"status":"healthy","uses_live_provider_calls":false,"thresholds":{"source_stale_cutoff":"2026-06-05T08:26:48.576513Z","source_max_age_seconds":43200,"lock_risk_cutoff":"2026-06-05T20:56:48.576513Z","close_to_lock_refresh_window_seconds":1800},"totals":{"open_eligible_lines":6,"open_eligible_events":1,"sport_count":1,"league_count":1,"market_count":3,"source_stale_lines":0,"serveable_source_stale_options":0,"serveable_source_stale_pickable_lines":0,"serveable_source_stale_events":0,"background_source_stale_lines":0,"near_lock_lines":0,"serveable_near_lock_options":0,"serveable_near_lock_pickable_lines":0,"serveable_near_lock_events":0,"background_near_lock_lines":0,"active_open_options":126,"serveable_open_options":126,"materialized_open_pickable_lines":6,"serveable_open_pickable_lines":6,"unmaterialized_open_pickable_lines":0,"active_option_sets":21,"serveable_option_sets":21,"max_source_age_seconds":11738,"min_seconds_to_lock":17060},"issue_counts":{},"market_counts":{"h2h":2,"spreads":2,"totals":2},"top_sports":[{"sport_code":"basketball","sport_title":"Basketball","open_eligible_lines":6,"open_eligible_events":1,"league_count":1,"next_commence_time":"2026-06-06T01:11:09Z","market_counts":{"h2h":2,"spreads":2,"totals":2}}],"recommended_actions":[]},"active_board_event_odds":{"limit":10,"max_estimated_request_cost":30,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"retry_backoff_targets":0,"retry_review_targets":0,"selected_estimated_request_cost":0,"deduped_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"deduped_full_market_estimated_request_cost":0,"execution_manifest":{"uses_live_provider_calls":false,"selected_target_count":0,"refreshable_target_count":0,"estimated_request_cost":0,"full_market_estimated_request_cost":0,"request_contracts_by_provider":{},"fallback_request_contract_providers":[],"request_contract_gaps_by_provider":{},"normalization_contracts_by_provider":{},"fallback_normalization_contract_providers":[],"normalization_contract_gaps_by_provider":{},"live_execution_blockers":[],"dry_run_api_requests":[],"execute_templates":[],"operator_commands":[],"execute_command_templates":[],"selected_provider_events":[],"live_provider_calls_require_execute_and_approval":false,"approval_policy":"Run each dry_run_api_request first, then execute only the corresponding execute_template after reviewing the dry-run approval hash and provider event identity.","batch_execute_api":null},"execution_handoff":{"dry_run_api_request":{"method":"POST","path":"/inventory/operations/active-board-event-odds-refresh","body":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320,"execute":false},"context":{"operation":"active_board_event_odds_refresh","selected_target_count":0,"skipped_target_count":0,"provider_events":[],"max_daily_request_credits":320,"max_estimated_request_cost":30,"estimated_request_cost":0,"worklist_totals":{"competitions":3,"periods_scanned":21,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"retry_backoff_targets":0,"retry_review_targets":0,"selected_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"deduped_estimated_request_cost":0,"deduped_full_market_estimated_request_cost":0,"skipped_unavailable_slots":13},"filters":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320},"request_contracts_by_provider":{},"normalization_contracts_by_provider":{},"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request_template":{"method":"POST","path":"/inventory/operations/active-board-event-odds-refresh","body":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320,"execute":true,"rebuild_local":true,"approved_provider_events":"<from dry-run approval.approved_provider_events>","approved_plan_hash":"<from dry-run approval.approved_plan_hash>"},"context":{"operation":"active_board_event_odds_refresh","selected_target_count":0,"skipped_target_count":0,"provider_events":[],"max_daily_request_credits":320,"max_estimated_request_cost":30,"estimated_request_cost":0,"worklist_totals":{"competitions":3,"periods_scanned":21,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"retry_backoff_targets":0,"retry_review_targets":0,"selected_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"deduped_estimated_request_cost":0,"deduped_full_market_estimated_request_cost":0,"skipped_unavailable_slots":13},"filters":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320},"request_contracts_by_provider":{},"normalization_contracts_by_provider":{},"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[],"request_contracts_by_provider":{},"normalization_contracts_by_provider":{}},"can_execute_live":false,"live_execution_blockers":[],"request_contracts_by_provider":{},"fallback_request_contract_providers":[],"request_contract_gaps_by_provider":{},"normalization_contracts_by_provider":{},"fallback_normalization_contract_providers":[],"normalization_contract_gaps_by_provider":{},"dry_run_command":"uv run python -m app.jobs.inventory active-board-event-odds-refresh --provider-key the_odds_api --limit 10 --max-estimated-request-cost 30 --limit-per-slot 500 --max-daily-request-credits 320 --json","execute_command_template":null,"execute_requires_dry_run_approval":false,"execution_uses_live_provider_calls":false},"selected_target_sample":[],"selected_urgency":{"status":"none","selected_targets":0,"urgent_targets":0,"source_stale_targets":0,"close_to_lock_targets":0,"proactive_targets":0,"no_reason_targets":0,"reason_counts":{},"max_source_age_seconds":null,"min_seconds_to_lock":null},"daily_remaining_partial_batch":{"available":false,"max_estimated_request_cost":320,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"selected_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"execution_manifest":{},"execution_handoff":{},"selected_target_sample":[],"selected_urgency":{"status":"none","selected_targets":0,"urgent_targets":0,"source_stale_targets":0,"close_to_lock_targets":0,"proactive_targets":0,"no_reason_targets":0,"reason_counts":{},"max_source_age_seconds":null,"min_seconds_to_lock":null}},"next_recovery_partial_batch":{"available":false,"available_at":null},"latest_refresh_job":null},"market_gap_summary":{"candidate_sports":0,"returned_items":0,"live_action_sports":0,"local_action_sports":0,"actionable_local_sports":0,"passive_wait_sports":0,"selected_event_refresh_sports":0,"selected_odds_refresh_sports":0,"coverage_limitation_status":"clear","coverage_limitation_passive_wait_sports":0,"missing_core_market_counts":{"h2h":0,"spreads":0,"totals":0},"recommended_operator_action":"No passive provider market-coverage waits are present.","uses_live_provider_calls":false},"quota":{"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"latest_quota_remaining":null,"latest_request_cost":0,"latest_request_type":"odds","latest_request_success":true,"latest_request_finished_at":"2026-06-05T17:11:09.860410Z","request_count_24h":2,"request_cost_24h":0,"request_cost_7d":0,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0},"latest_job_run":{"id":"a0241a49-fa90-4693-a4e8-a99fc0489569","job_key":"run_refresh_policy","status":"succeeded","trigger":"manual","started_at":"2026-06-05T20:13:40.960328Z","finished_at":"2026-06-05T20:13:41.803236Z","summary_json":{"execute_live":true,"provider_key":"the_odds_api","run_mode":"local","max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"lookahead_days":14,"refresh_yield_lookback_hours":168,"request_scope":{"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null},"score_provider_sport_key":null,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"rebuild_local":true,"local_maintenance_regenerate_option_sets":true,"local_maintenance_prune_line_snapshots":true,"approved_plan_hash":null,"scheduled_profile_approval":null,"policy_plan":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:13:41.081564+00:00","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"lookahead_days":14,"skip_sports_refresh":false,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"commence_time_from":"2026-06-05T20:13:41.081564+00:00","commence_time_to":"2026-06-19T20:13:41.081564+00:00"},"sports_refresh":{"due":false,"estimated_credits":0,"last_success_at":"2026-06-05T17:11:09.860410+00:00","known_provider_sports":1,"active_supported_sports":1,"reason":"disabled_by_run_mode"},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"refresh_forecast":{"generated_at":"2026-06-05T20:13:41.081564+00:00","sports":{"component_enabled":true,"due":false,"last_success_at":"2026-06-05T17:11:09.860410+00:00","next_due_at":"2026-06-06T17:11:09.860410+00:00","stale_hours":24},"events":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"odds":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"scores":{"component_enabled":false,"due_count":0,"next_due_at":null},"policy":"Forecast is read-only and uses stored provider request timestamps plus configured freshness windows."},"events_refresh":{"candidate_count":0,"target_count":0,"skipped_target_count":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh broad event/team inventory across active supported sports before spending odds credits."},"odds_refresh":{"candidate_count":0,"selected_target_count":0,"skipped_target_count":0,"estimated_credits":0,"max_credits":90,"selection_credit_cap":90,"latest_quota_remaining":null,"targets":[],"skipped_targets":[],"policy":"Refresh broad odds only inside the explicit credit cap; low recent pickable yield ranks later unless explicitly prioritized."},"scores_refresh":{"target_count":0,"skipped_target_count":0,"estimated_provider_calls":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh scores only for provider sports with pending picked events that have started."},"local_inventory":{"uses_live_provider_calls":false,"steps":["build_pickable_universe","regenerate_active_option_sets_when_recommended","expire_started_inventory","lock_started_picks","score_pending_picks_from_stored_provider_scores"]},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"execution_preview":{"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[],"approval_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","approval_snapshot":{"version":1,"provider_key":"the_odds_api","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"skip_sports_refresh":false},"request_budget":{"estimated_credits":0,"uncapped_estimated_credits":0,"selection_credit_cap":120,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"targets":{"events":[],"odds":[],"scores":[]}},"estimated_total_request_credits":0,"uncapped_estimated_total_request_credits":0,"estimated_odds_credits":0,"latest_quota_remaining":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"approval_args":["--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168"],"execute_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168","--execute","--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168","execute_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168 --execute --approved-no-sports-refresh --approved-event-sports '' --approved-odds-sports '' --approved-score-sports '' --approved-plan-hash ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","dry_run_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":false,"rebuild_local":false},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":true,"rebuild_local":true,"approved_sports_refresh_due":false,"approved_event_sports":[],"approved_odds_sports":[],"approved_score_sports":[],"approved_plan_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":false},"policy":"Review the dry run, then execute only if the selected targets and estimated credits are acceptable."}},"provider_quota_health":{"provider_key":"the_odds_api","uses_live_provider_calls":false,"status":"ok","allowed":true,"blockers":[],"warnings":[],"planned_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"policy":"Final live refresh guard across selected sports, event, odds, and score provider calls."},"live_provider_calls":{"sports":0,"events":0,"odds":0,"scores":0,"skipped_scores":0,"estimated_odds_credits":0,"max_event_sports":null,"skipped_event_sports":0,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"estimated_total_request_credits":0,"commence_time_from":"2026-06-05T20:13:41.081564+00:00","commence_time_to":"2026-06-19T20:13:41.081564+00:00","actual_request_cost":0},"sports_refresh":{"executed":false,"failures":0},"events_refresh":{"executed":0,"failures":0},"odds_refresh":{"executed":0,"failures":0,"request_cost":0},"scores_refresh":{"executed":0,"failures":0,"request_cost":0,"skipped":0,"scores":0,"canonical_events_updated":0,"canonical_event_results":0,"settled_canonical_event_results":0,"retired_pickable_lines":0,"retired_pick_options":0},"local_inventory":{"executed":true,"regenerate_option_sets":true,"prune_line_snapshots":true,"rebuild":{"pickable_universe":{"eligible_lines":6,"provider_lines_seen":6},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"reason":"refresh_policy"},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0}},"maintenance":{"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T20:13:41.617512+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T20:13:41.617512+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"actual_request_cost":0},"error_message":null},"latest_active_board_event_odds_refresh_job":null,"operator_next_action":{"key":"monitor","label":"Monitor inventory","uses_live_provider_calls":false,"reason":"Stored canonical inventory is present and no immediate active-board event odds batch is selected."}},"readiness":{"provider_key":"the_odds_api","status":"degraded","ready_for_picks":true,"blocker_count":0,"warning_count":1,"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"uses_live_provider_calls":true,"can_execute_live":true,"live_execution_blockers":[],"checks":[{"key":"provider_enabled","status":"ok","severity":"blocker","message":"Provider is enabled.","metadata":{"provider_key":"the_odds_api"}},{"key":"active_supported_sports","status":"ok","severity":"blocker","message":"1 active supported provider sports.","metadata":{"active_supported_sports":1}},{"key":"provider_inventory","status":"ok","severity":"blocker","message":"1 provider events and 6 active lines.","metadata":{"provider_events":1,"active_provider_lines":6}},{"key":"pickable_inventory","status":"ok","severity":"blocker","message":"6 open PickCenter pickable lines.","metadata":{"open_pickable_lines":6,"pickable_line_sources":6,"active_pickable_line_sources":6}},{"key":"provider_integration_boundary","status":"ok","severity":"info","message":"Product-facing pick and competition modules depend on PickCenter inventory boundaries.","metadata":{"monitored_modules":["modules/picks","modules/competitions"],"forbidden_markers":["app.modules.providers.the_odds_api","app.modules.providers.registry","TheOddsApi","ProviderResponse","ProviderUsage","make_provider_client","THE_ODDS_API","the_odds_api_","odds_api_key_for_jobs","odds_api_markets_list"],"scanned_files":10,"violation_count":0,"violations":[],"missing_modules":[],"uses_live_provider_calls":false}},{"key":"option_sets","status":"ok","severity":"info","message":"21 of 21 current competition periods have current option sets.","metadata":{"active_option_sets":21,"stale_active_option_sets":0,"current_competition_periods":21,"current_option_set_periods":21,"stale_current_option_set_periods":0,"option_set_regeneration_periods":21,"option_set_regeneration_recommended":0,"option_set_regeneration_missing":0,"option_set_regeneration_stale":0,"option_set_regeneration_rules_changed":0,"option_set_regeneration_inventory_changed":0,"recommended_command":null,"recommended_api":null,"regenerate_option_sets_api_request":null,"local_maintenance_api_request":null,"uses_live_provider_calls":false}},{"key":"pick_board_contracts","status":"ok","severity":"info","message":"21 selectable active pick board periods.","metadata":{"competitions":3,"periods":21,"selectable_periods":21,"unavailable_periods":0,"missing_option_sets":0,"stale_option_sets":0,"missing_marquee_periods":13,"open_options":126,"events":21,"event_odds_refresh_target_periods":0,"event_odds_refresh_targets":0,"event_odds_refresh_estimated_request_cost":0,"recommended_command":null,"recommended_api":null,"regenerate_option_sets_api_request":null,"event_odds_refresh_targets_api_request":null,"active_board_event_odds_refresh":null,"uses_live_provider_calls":false}},{"key":"canonical_cleanup","status":"ok","severity":"warning","message":"No canonical cleanup candidates found.","metadata":{"duplicate_team_candidates":0,"duplicate_event_candidates":0,"team_candidates_with_event_duplicates":0,"event_provider_event_mappings":0,"event_pickable_lines":0,"event_pick_options":0,"event_submitted_picks":0,"event_marquee_events":0,"worklist_api":"GET /inventory/operations/canonical-cleanup-worklist","uses_live_provider_calls":false}},{"key":"recent_job_runs","status":"ok","severity":"warning","message":"No recent inventory job failures.","metadata":{"recent_failed_job_runs":0,"recent_actionable_failed_job_runs":0,"recent_approval_gate_rejections":0}},{"key":"provider_request_failures","status":"ok","severity":"warning","message":"No unresolved provider request failures in the last 24 hours.","metadata":{"failed_provider_requests":0,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0,"unresolved_failure_groups_24h":[],"failed_request_count_7d":0,"unresolved_failed_request_count_7d":0,"unresolved_failure_groups_7d":[],"latest_request_success":true,"latest_request_type":"odds"}},{"key":"mapping_candidates","status":"ok","severity":"warning","message":"No unresolved provider mapping candidates.","metadata":{"unresolved_mapping_candidates":0}},{"key":"score_backlog","status":"ok","severity":"warning","message":"No pending score refresh targets or review picks.","metadata":{"pending_score_refresh_targets":0,"pending_score_refresh_picks":0,"needs_review_picks":0}},{"key":"duplicate_pickable_sources","status":"ok","severity":"warning","message":"No duplicate pickable source groups.","metadata":{"duplicate_pickable_source_groups":0,"duplicate_pickable_source_lines":0}},{"key":"provider_quota","status":"ok","severity":"warning","message":"Latest provider quota signal is sufficient or unavailable.","metadata":{"request_cost_24h":0,"request_cost_7d":0,"latest_quota_remaining":null,"selected_odds_refresh_estimated_credits":0,"quota_constrained_odds_targets":0}},{"key":"refresh_policy","status":"warning","severity":"warning","message":"Refresh policy has selected provider or score work.","metadata":{"due":true,"sports":0,"events":1,"odds":0,"scores":0,"skipped_odds":0,"selected_refresh_work":1,"skipped_refresh_work":0}}],"counts":{"provider_sports":1,"supported_sports":1,"active_supported_sports":1,"unsupported_sports":0,"provider_events":1,"canonical_events":1,"active_provider_lines":6,"inactive_provider_lines":0,"open_pickable_lines":6,"pickable_line_sources":6,"active_pickable_line_sources":6,"active_option_sets":21,"stale_active_option_sets":0,"option_set_regeneration_periods":21,"option_set_regeneration_current":21,"option_set_regeneration_recommended":0,"option_set_regeneration_missing":0,"option_set_regeneration_stale":0,"option_set_regeneration_rules_changed":0,"option_set_regeneration_inventory_changed":0,"provider_requests":2,"failed_provider_requests":0,"recorded_request_cost":0,"inventory_job_runs":7,"failed_inventory_job_runs":0,"unresolved_mapping_candidates":0,"needs_review_picks":0,"provider_scores":0,"settled_provider_scores":0,"provider_stat_results":0,"canonical_event_results":0,"settled_canonical_event_results":0,"pending_score_refresh_targets":0,"pending_score_refresh_picks":0,"duplicate_pickable_source_groups":0,"duplicate_pickable_source_lines":0},"cost_window":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:43.644688Z","request_count_24h":2,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0,"unresolved_failure_groups_24h":[],"request_cost_24h":0,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"request_count_7d":2,"failed_request_count_7d":0,"unresolved_failed_request_count_7d":0,"unresolved_failure_groups_7d":[],"request_cost_7d":0,"latest_request_finished_at":"2026-06-05T17:11:09.860410Z","latest_request_type":"odds","latest_request_success":true,"latest_quota_remaining":null,"latest_quota_used":null,"latest_request_cost":0,"latest_objects_returned":1,"latest_object_limit_remaining":null,"latest_request_limit_remaining":null,"latest_response_notice":null,"latest_next_cursor":null},"refresh_policy_due":{"due":true,"sports":0,"events":1,"odds":0,"scores":0,"skipped_odds":0},"refresh_policy_skipped_targets":{"total_skipped_target_count":0,"components":{"events":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"odds":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"scores":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]}},"daily_credit_recovery":null}},"breadth_summary":{"provider_key":"the_odds_api","provider_enabled":true,"generated_at":"2026-06-05T20:26:44.937569Z","filters":{"min_american_odds":null,"max_american_odds":null,"lookahead_days":14,"uses_provider_sport_lookahead_overrides":false,"provider_sport_lookahead_days":{}},"totals":{"provider_sports":1,"active_supported_sports":1,"stocked_sports":1,"empty_sports":0,"unsupported_sports":0,"lines_not_pickable_sports":0,"provider_lines":6,"active_provider_lines":6,"inactive_provider_lines":0,"open_pickable_lines":6,"eligible_line_count":6},"reason_counts":{"eligible_open_pickable":6},"top_reason_counts":[{"reason":"eligible_open_pickable","lines":6}],"recommended_action_counts":{"none":1},"worklist":[],"sports":[{"provider_sport_key":"basketball_nba","sport_title":"NBA","active":true,"pickcenter_supported":true,"has_outrights":false,"coverage_status":"stocked","coverage_gap_reasons":[],"mapping_status":"mapped","mapping_gap_reasons":[],"latest_event_request":null,"latest_odds_request":{"id":"b2bf8fa4-cd19-4602-b2e0-cad339fe08f1","inventory_job_run_id":null,"request_type":"odds","markets":"h2h,spreads,totals","regions":"us","bookmakers":null,"request_scope_json":{"provider_sport_key":"basketball_nba","provider_league_key":"basketball_nba","canonical_sport_code":"basketball","canonical_league_code":"basketball_nba","markets":"h2h,spreads,totals","regions":"us"},"success":true,"status_code":200,"request_cost":0,"quota_remaining":null,"objects_returned":1,"line_snapshots":6,"finished_at":"2026-06-05T17:11:09.860410Z","error_code":null,"error_message":null},"latest_score_request":null,"provider_events":1,"active_provider_lines":6,"open_pickable_lines":6,"market_coverage_status":"core_markets_complete","available_core_markets":["h2h","spreads","totals"],"missing_core_markets":[],"provider_line_count":6,"eligible_line_count":6,"eligibility_reason_counts":{"eligible_open_pickable":6},"lookahead_policy":null,"primary_blocker":null,"suggested_operator_action":"none","suggested_operator_action_reason":"Sport has open PickCenter pickable lines.","suggested_command":null,"suggested_api":null,"suggested_api_request":null}]},"lookahead_policy_recommendation":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:45.517955Z","uses_live_provider_calls":false,"filters":{"min_american_odds":null,"max_american_odds":null,"lookahead_days":14,"max_recommended_lookahead_days":null,"limit":25,"target":"all_currently_stored_future_provider_lines"},"totals":{"recommended_sports":0,"candidate_sports":0,"blocked_provider_lines":0,"omitted_candidate_sports":0},"provider_sport_lookahead_days":{},"env":{"name":"INVENTORY_PROVIDER_SPORT_LOOKAHEAD_DAYS","value":"","assignment":"INVENTORY_PROVIDER_SPORT_LOOKAHEAD_DAYS=''"},"local_rebuild_command":null,"api_request":{"method":"POST","path":"/inventory/operations/local-inventory-rebuild","body":{"provider_key":"the_odds_api","lookahead_days":14,"provider_sport_lookahead_days":{},"generation_reason":"lookahead_policy_recommendation"},"context":{"operation":"local_inventory_rebuild","provider_key":"the_odds_api","generation_reason":"lookahead_policy_recommendation","lookahead_days":14,"provider_sport_lookahead_days":{},"rebuild_scope":"stored_provider_inventory_to_pickcenter_pickables","provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"uses_live_provider_calls":false},"uses_live_provider_calls":false},"sports":[]},"refresh_yield":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:45.519582Z","window_hours":168,"totals":{"request_count":2,"successful_request_count":2,"failed_request_count":0,"request_cost":0,"objects_returned":2,"provider_sport_count":1,"provider_events":1,"active_provider_lines":6,"open_pickable_lines":6,"null_sport_request_count":1,"null_sport_request_cost":0,"open_pickable_lines_per_credit":null,"active_lines_per_credit":null,"provider_events_per_credit":null,"objects_returned_per_credit":null},"sports":[{"provider_key":"the_odds_api","provider_sport_key":"basketball_nba","sport_title":"NBA","coverage_status":"stocked","recommended_action":"none","request_count":1,"successful_request_count":1,"failed_request_count":0,"request_cost":0,"objects_returned":1,"request_types":["odds"],"first_request_at":"2026-06-05T17:11:09.860410Z","latest_request_at":"2026-06-05T17:11:09.860410Z","latest_quota_remaining":null,"latest_response_notice":null,"provider_events":1,"active_provider_lines":6,"open_pickable_lines":6,"active_lines_per_credit":null,"open_pickable_lines_per_credit":null,"provider_events_per_credit":null,"objects_returned_per_credit":null,"yield_status":"yielding_pickable_inventory"}]},"provider_quota_health":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:45.557655Z","uses_live_provider_calls":false,"status":"warning","allowed":true,"blockers":[],"warnings":["missing_latest_quota_signal"],"planned_request_credits":0,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"daily_remaining_credits_after_next_recovery":320,"latest_quota_remaining":null,"latest_quota_used":null,"latest_request_cost":0,"latest_request_type":"odds","latest_request_success":true,"latest_request_finished_at":"2026-06-05T17:11:09.860410Z","latest_objects_returned":1,"latest_object_limit_remaining":null,"latest_request_limit_remaining":null,"latest_response_notice":null,"latest_next_cursor":null,"request_count_24h":2,"request_count_7d":2,"request_cost_24h":0,"request_cost_7d":0,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0,"unresolved_failure_groups_24h":[],"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":["basketball_nba"],"odds_sport_keys":[],"score_sport_keys":[]},"refresh_policy_skipped_targets":{"total_skipped_target_count":0,"components":{"events":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"odds":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"scores":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]}},"daily_credit_recovery":null},"policy":"Stored provider request ledger only; no live provider quota probe is made."},"pick_period_inventory_fill_recommendation":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:49.434690Z","uses_live_provider_calls":false,"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[],"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832","pick_period":{"label":"Friday","starts_at":"2026-06-05T00:00:00Z","ends_at":"2026-06-06T00:00:00Z","status":"open"},"filters":{"min_american_odds":null,"max_american_odds":null,"lookahead_days":14,"refresh_yield_lookback_hours":168,"limit":5},"totals":{"candidate_sports":1,"recommended_sports":0,"period_open_pickable_lines":6,"period_events":1},"recommended_provider_sport_keys":[],"recommended_limits":{"max_event_sports":0,"max_odds_credits":0,"max_total_request_credits":0,"max_daily_request_credits":320,"event_refresh_credit_cost":0},"quota_health":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:49.418327Z","uses_live_provider_calls":false,"status":"warning","allowed":true,"blockers":[],"warnings":["missing_latest_quota_signal"],"planned_request_credits":0,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"daily_remaining_credits_after_next_recovery":320,"latest_quota_remaining":null,"latest_quota_used":null,"latest_request_cost":0,"latest_request_type":"odds","latest_request_success":true,"latest_request_finished_at":"2026-06-05T17:11:09.860410Z","latest_objects_returned":1,"latest_object_limit_remaining":null,"latest_request_limit_remaining":null,"latest_response_notice":null,"latest_next_cursor":null,"request_count_24h":2,"request_count_7d":2,"request_cost_24h":0,"request_cost_7d":0,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0,"unresolved_failure_groups_24h":[],"selected_live_targets":null,"refresh_policy_skipped_targets":{"total_skipped_target_count":0,"components":{"events":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"odds":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"scores":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]}},"daily_credit_recovery":null},"policy":"Stored provider request ledger only; no live provider quota probe is made."},"api_request":{"method":"POST","path":"/inventory/operations/pick-period-inventory-fill","body":{"provider_key":"the_odds_api","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832","provider_sport_keys":[],"max_event_sports":0,"max_odds_credits":0,"max_total_request_credits":0,"max_daily_request_credits":320,"lookahead_days":14,"force":true,"execute":false,"rebuild_local":true},"context":{"operation":"pick_period_inventory_fill","provider_key":"the_odds_api","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832","provider_sport_keys":[],"max_event_sports":0,"max_odds_credits":0,"max_total_request_credits":0,"max_daily_request_credits":320,"lookahead_days":14,"force":true,"rebuild_local":true,"selected_provider_sport_keys":{"events":[],"odds":[]},"requested_odds_credit_estimate":0,"quota_health":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:49.418327Z","uses_live_provider_calls":false,"status":"warning","allowed":true,"blockers":[],"warnings":["missing_latest_quota_signal"],"planned_request_credits":0,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"daily_remaining_credits_after_next_recovery":320,"latest_quota_remaining":null,"latest_quota_used":null,"latest_request_cost":0,"latest_request_type":"odds","latest_request_success":true,"latest_request_finished_at":"2026-06-05T17:11:09.860410Z","latest_objects_returned":1,"latest_object_limit_remaining":null,"latest_request_limit_remaining":null,"latest_response_notice":null,"latest_next_cursor":null,"request_count_24h":2,"request_count_7d":2,"request_cost_24h":0,"request_cost_7d":0,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0,"unresolved_failure_groups_24h":[],"selected_live_targets":null,"refresh_policy_skipped_targets":{"total_skipped_target_count":0,"components":{"events":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"odds":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"scores":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]}},"daily_credit_recovery":null},"policy":"Stored provider request ledger only; no live provider quota probe is made."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false,"live_provider_calls_require_execute_and_approval":true,"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"candidates":[{"provider_sport_key":"basketball_nba","sport_title":"NBA","recommended_action":"use_existing_period_inventory","reason":"Period already has selectable inventory for this sport; no provider refresh is needed.","primary_blocker":null,"coverage_status":"stocked","market_coverage_status":"core_markets_complete","market_coverage_gap_reasons":[],"available_core_markets":["h2h","spreads","totals"],"missing_core_markets":[],"missing_core_market_count":null,"missing_market_details":null,"active_provider_lines":6,"open_pickable_lines":6,"period_open_pickable_lines":6,"period_events":1,"refresh_yield":{"status":"yielding_pickable_inventory","request_cost":0,"open_pickable_lines":6,"open_pickable_lines_per_credit":null,"latest_request_at":"2026-06-05T17:11:09.860410Z"},"uses_live_provider_calls":false,"api_request":null}]},"provider_onboarding_readiness":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:47.039351Z","status":"ready","ready_for_onboarding":true,"blocker_count":0,"warning_count":0,"filters":{"max_daily_request_credits":320,"recent_job_limit":8},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"checks":[{"key":"provider_registered_enabled","status":"ok","severity":"blocker","message":"Provider is registered and enabled.","metadata":{"provider_key":"the_odds_api","provider_enabled":true,"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true}},{"key":"provider_adapter_contract","status":"ok","severity":"blocker","message":"Provider adapter has the required client and normalization hooks.","metadata":{"adapter_contract":{"status":"ready","required_hooks":["client_factory","sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"available_hooks":{"client_factory":true,"sport_normalizer":true,"event_normalizer":true,"line_input_builder":true,"score_normalizer":true,"odds_request_scope_factory":true,"odds_request_cost_estimator":true,"score_request_scope_factory":true,"score_request_cost_estimator":true},"missing_hooks":[],"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[],"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[],"score_request_scope_contract":"provider_owned","score_request_cost_contract":"provider_owned","score_request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"score_request_contract_gaps":[]},"adapter_contract_gaps":[]}},{"key":"provider_normalization_contract","status":"ok","severity":"blocker","message":"Provider owns its payload normalization hooks.","metadata":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[],"adapter_contract":{"status":"ready","required_hooks":["client_factory","sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"available_hooks":{"client_factory":true,"sport_normalizer":true,"event_normalizer":true,"line_input_builder":true,"score_normalizer":true,"odds_request_scope_factory":true,"odds_request_cost_estimator":true,"score_request_scope_factory":true,"score_request_cost_estimator":true},"missing_hooks":[],"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[],"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[],"score_request_scope_contract":"provider_owned","score_request_cost_contract":"provider_owned","score_request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"score_request_contract_gaps":[]},"uses_live_provider_calls":false}},{"key":"provider_capabilities","status":"ok","severity":"warning","message":"Provider supports odds, event refresh, and scores.","metadata":{"capability_gaps":[],"capability_status":"ready","adapter_contract":{"status":"ready","required_hooks":["client_factory","sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"available_hooks":{"client_factory":true,"sport_normalizer":true,"event_normalizer":true,"line_input_builder":true,"score_normalizer":true,"odds_request_scope_factory":true,"odds_request_cost_estimator":true,"score_request_scope_factory":true,"score_request_cost_estimator":true},"missing_hooks":[],"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[],"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[],"score_request_scope_contract":"provider_owned","score_request_cost_contract":"provider_owned","score_request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"score_request_contract_gaps":[]},"adapter_contract_gaps":[],"recommended_action":{"action":"none","reason":"Provider is registered, stored, enabled, and supports odds/event refresh/scores.","command":null,"api":null,"api_request":null}}},{"key":"provider_request_contract","status":"ok","severity":"warning","message":"Provider owns its odds request scope and cost model.","metadata":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[],"adapter_contract":{"status":"ready","required_hooks":["client_factory","sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"available_hooks":{"client_factory":true,"sport_normalizer":true,"event_normalizer":true,"line_input_builder":true,"score_normalizer":true,"odds_request_scope_factory":true,"odds_request_cost_estimator":true,"score_request_scope_factory":true,"score_request_cost_estimator":true},"missing_hooks":[],"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[],"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[],"score_request_scope_contract":"provider_owned","score_request_cost_contract":"provider_owned","score_request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"score_request_contract_gaps":[]},"uses_live_provider_calls":false}},{"key":"sport_catalog","status":"ok","severity":"blocker","message":"1 active supported sports are cataloged.","metadata":{"provider_sports":1,"active_supported_sports":1,"unsupported_sports":0}},{"key":"sport_mapping_review_queue","status":"ok","severity":"warning","message":"No provider sport support or canonical sport/league mapping review targets.","metadata":{"review_target_counts":{},"review_queue_api_request":{"method":"GET","path":"/inventory/operations/provider-sport-support-review-queue","query":{"provider_key":"the_odds_api","include_outrights":false,"include_supported_mapping_gaps":true,"include_team_mapping_gaps":true,"active_only":true,"limit":25},"uses_live_provider_calls":false,"context":{"provider_key":"the_odds_api","include_outrights":false,"include_supported_mapping_gaps":true,"include_team_mapping_gaps":true,"active_only":true,"limit":25}},"review_target_sample":[],"support_batch_api_requests":{"plan":{"method":"GET","path":"/inventory/operations/provider-sport-support-batch-plan","query":{"provider_key":"the_odds_api","status":"open","include_outrights":false,"limit":1,"reviewer_user_id":"<user-id>","reason":"<reason>","refresh_priority_start":0,"max_daily_request_credits":320},"uses_live_provider_calls":false,"context":{"provider_key":"the_odds_api","status":"open","include_outrights":false,"limit":1,"max_daily_request_credits":320}},"apply":{"method":"POST","path":"/inventory/operations/provider-sport-support-batch-apply","body_template":{"provider_key":"the_odds_api","status":"open","include_outrights":false,"limit":1,"reviewer_user_id":"<user-id>","reason":"<reason>","refresh_priority_start":0,"max_daily_request_credits":320},"uses_live_provider_calls":false,"context":{"provider_key":"the_odds_api","status":"open","include_outrights":false,"limit":1,"max_daily_request_credits":320},"returns_refresh_policy_dry_run":true}}}},{"key":"provider_inventory","status":"ok","severity":"blocker","message":"1 provider events and 6 active lines are stored.","metadata":{"provider_events":1,"active_provider_lines":6,"inactive_provider_lines":0}},{"key":"pickable_inventory","status":"ok","severity":"blocker","message":"6 PickCenter-owned open pickable lines are available.","metadata":{"open_pickable_lines":6,"pickable_line_sources":6,"active_pickable_line_sources":6}},{"key":"team_identity_mapping","status":"ok","severity":"warning","message":"No provider team identity mapping review targets.","metadata":{"team_count":2,"canonical_team_count":2,"missing_canonical_team_count":0,"native_team_id_count":0,"unresolved_team_mapping_candidates":0,"native_id_status_counts":{"name_identity_only":1},"native_id_actionability_counts":{"diagnostic_only":1},"review_queue_api_request":{"method":"GET","path":"/inventory/operations/provider-sport-support-review-queue","query":{"provider_key":"the_odds_api","include_outrights":false,"include_supported_mapping_gaps":false,"include_team_mapping_gaps":true,"active_only":true,"limit":25},"uses_live_provider_calls":false,"context":{"provider_key":"the_odds_api","include_outrights":false,"include_supported_mapping_gaps":false,"include_team_mapping_gaps":true,"active_only":true,"limit":25}},"review_target_sample":[]}},{"key":"pickable_source_dedupe","status":"ok","severity":"warning","message":"Pickable source policy has no duplicate canonical source groups.","metadata":{"source_groups":6,"sources":6,"duplicate_source_groups":0,"suppressed_source_count":0}},{"key":"canonical_cleanup","status":"ok","severity":"warning","message":"No alias-seeded duplicate canonical teams or events need cleanup.","metadata":{"duplicate_team_candidates":0,"duplicate_event_candidates":0,"team_candidates_with_event_duplicates":0,"event_provider_event_mappings":0,"event_pickable_lines":0,"event_pick_options":0,"event_submitted_picks":0,"event_marquee_events":0,"worklist_api":"GET /inventory/operations/canonical-cleanup-worklist","uses_live_provider_calls":false}},{"key":"pick_serving_readiness","status":"ok","severity":"warning","message":"Provider-backed inventory is ready for current pick serving.","metadata":{"ready_for_picks":true,"readiness_status":"ready","blocker_count":0,"warning_count":0,"warning_keys":[],"blocker_keys":[],"refresh_policy_due":{"due":false,"sports":0,"events":0,"odds":0,"scores":0,"skipped_odds":0},"refresh_policy_skipped_target_count":0,"refresh_policy_skipped_reason_counts":{},"active_board_event_odds_refresh":{"selected_targets":0,"selected_estimated_request_cost":0,"can_execute_live":false,"live_execution_blockers":[],"request_contracts_by_provider":{},"fallback_request_contract_providers":[],"request_contract_gaps_by_provider":{},"normalization_contracts_by_provider":{},"fallback_normalization_contract_providers":[],"normalization_contract_gaps_by_provider":{},"daily_remaining_credits":null,"daily_cap_allows_action":null,"next_daily_credit_recovery_at":null,"next_recovery_allows_action":null,"sufficient_daily_credit_recovery_at":null,"dry_run_command":null,"next_recovery_partial_batch":{"available":false,"selected_targets":0,"selected_estimated_request_cost":0,"available_at":null,"daily_remaining_credits_after_next_recovery":null,"dry_run_command":null,"uses_live_provider_calls":false},"uses_live_provider_calls":false},"uses_live_provider_calls":false}},{"key":"provider_cost_posture","status":"ok","severity":"warning","message":"24h provider request cost is 0.","metadata":{"request_cost_24h":0,"request_cost_7d":0,"max_daily_request_credits":320,"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"latest_quota_remaining":null}}],"summary_counts":{"provider_sports":1,"supported_sports":1,"active_supported_sports":1,"unsupported_sports":0,"provider_events":1,"canonical_events":1,"active_provider_lines":6,"inactive_provider_lines":0,"open_pickable_lines":6,"pickable_line_sources":6,"active_pickable_line_sources":6,"active_option_sets":21,"stale_active_option_sets":0,"option_set_regeneration_periods":21,"option_set_regeneration_current":21,"option_set_regeneration_recommended":0,"option_set_regeneration_missing":0,"option_set_regeneration_stale":0,"option_set_regeneration_rules_changed":0,"option_set_regeneration_inventory_changed":0,"provider_requests":2,"failed_provider_requests":0,"recorded_request_cost":0,"inventory_job_runs":7,"failed_inventory_job_runs":0,"unresolved_mapping_candidates":0,"needs_review_picks":0,"provider_scores":0,"settled_provider_scores":0,"provider_stat_results":0,"canonical_event_results":0,"settled_canonical_event_results":0,"pending_score_refresh_targets":0,"pending_score_refresh_picks":0,"duplicate_pickable_source_groups":0,"duplicate_pickable_source_lines":0},"cost_window":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:45.786165Z","request_count_24h":2,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0,"unresolved_failure_groups_24h":[],"request_cost_24h":0,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"request_count_7d":2,"failed_request_count_7d":0,"unresolved_failed_request_count_7d":0,"unresolved_failure_groups_7d":[],"request_cost_7d":0,"latest_request_finished_at":"2026-06-05T17:11:09.860410Z","latest_request_type":"odds","latest_request_success":true,"latest_quota_remaining":null,"latest_quota_used":null,"latest_request_cost":0,"latest_objects_returned":1,"latest_object_limit_remaining":null,"latest_request_limit_remaining":null,"latest_response_notice":null,"latest_next_cursor":null},"readiness":{"status":"ready","ready_for_picks":true,"blocker_count":0,"warning_count":0},"team_mapping_totals":{"provider_team_groups":1,"team_count":2,"canonical_team_count":2,"missing_canonical_team_count":0,"native_team_id_count":0,"missing_native_team_id_count":2,"native_sport_id_count":0,"missing_provider_sport_id_count":2,"native_league_id_count":0,"missing_provider_league_id_count":2,"manual_mapping_count":0,"seeded_mapping_count":2,"alias_mapping_count":0,"unresolved_team_mapping_candidates":0,"returned_provider_team_groups":1,"mapping_status_counts":{"mapped":1},"native_id_status_counts":{"name_identity_only":1},"native_id_actionability_counts":{"diagnostic_only":1}},"canonical_cleanup_totals":{"duplicate_team_candidates":0,"duplicate_event_candidates":0,"team_candidates_with_event_duplicates":0,"team_provider_team_references":0,"team_canonical_event_references":0,"event_provider_event_mappings":0,"event_pickable_lines":0,"event_pick_options":0,"event_submitted_picks":0,"event_marquee_events":0},"pickable_source_group_totals":{"source_groups":6,"sources":6,"duplicate_source_groups":0,"suppressed_source_count":0,"returned_source_groups":1},"review_target_counts":{}},"provider_capability_matrix":{"generated_at":"2026-06-05T20:26:47.039578Z","filters":{"provider_key":"the_odds_api"},"totals":{"providers":1,"registered_providers":1,"stored_providers":1,"enabled_providers":1,"ready_providers":1,"partial_providers":0,"drift_providers":0,"adapter_incomplete_providers":0,"disabled_providers":0,"normalization_fallback_providers":0,"normalization_contract_gap_counts":{},"status_counts":{"ready":1}},"providers":[{"provider_key":"the_odds_api","display_name":"The Odds API","registered":true,"stored":true,"enabled":true,"capability_status":"ready","capability_status_reasons":[],"registry_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"adapter_contract":{"status":"ready","required_hooks":["client_factory","sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"available_hooks":{"client_factory":true,"sport_normalizer":true,"event_normalizer":true,"line_input_builder":true,"score_normalizer":true,"odds_request_scope_factory":true,"odds_request_cost_estimator":true,"score_request_scope_factory":true,"score_request_cost_estimator":true},"missing_hooks":[],"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[],"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[],"score_request_scope_contract":"provider_owned","score_request_cost_contract":"provider_owned","score_request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"score_request_contract_gaps":[]},"adapter_contract_gaps":[],"normalization_contract":"provider_owned","normalization_contract_gaps":[],"stored_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"effective_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"registry_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"effective_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"default_odds_request_scope":{"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null},"estimated_default_odds_request_cost":3,"uses_live_provider_calls_for_default_scope":false,"capability_gaps":[],"drift_capabilities":[],"live_components":{"sports_catalog":true,"events":true,"odds":true,"scores":true},"inventory_counts":{"provider_sports":1,"active_supported_sports":1,"provider_events":1,"active_provider_lines":6,"open_pickable_lines":6,"pending_score_refresh_picks":0},"recommended_action":{"action":"none","reason":"Provider is registered, stored, enabled, and supports odds/event refresh/scores.","command":null,"api":null,"api_request":null}}]},"provider_team_mapping_coverage":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:47.240723Z","filters":{"provider_sport_key":null,"mapping_status":null,"native_id_status":null,"limit":12},"totals":{"provider_team_groups":1,"team_count":2,"canonical_team_count":2,"missing_canonical_team_count":0,"native_team_id_count":0,"missing_native_team_id_count":2,"native_sport_id_count":0,"missing_provider_sport_id_count":2,"native_league_id_count":0,"missing_provider_league_id_count":2,"manual_mapping_count":0,"seeded_mapping_count":2,"alias_mapping_count":0,"unresolved_team_mapping_candidates":0,"returned_provider_team_groups":1,"mapping_status_counts":{"mapped":1},"native_id_status_counts":{"name_identity_only":1},"native_id_actionability_counts":{"diagnostic_only":1}},"sports":[{"provider_key":"the_odds_api","provider_sport_key":"basketball_nba","provider_league_key":"basketball_nba","provider_sport_id":null,"provider_league_id":null,"sport_title":"NBA","league_title":"NBA","canonical_sport_code":"basketball","canonical_league_code":"basketball_nba","mapping_status":"mapped","mapping_gap_reasons":[],"native_id_status":"name_identity_only","native_id_gap_reasons":["missing_provider_team_id","missing_provider_sport_id","missing_provider_league_id"],"native_id_actionability":"diagnostic_only","native_id_actionability_reasons":["provider_name_identity_only"],"team_count":2,"canonical_team_count":2,"missing_canonical_team_count":0,"native_team_id_count":0,"missing_native_team_id_count":2,"native_sport_id_count":0,"missing_provider_sport_id_count":2,"native_league_id_count":0,"missing_provider_league_id_count":2,"manual_mapping_count":0,"seeded_mapping_count":2,"alias_mapping_count":0,"unresolved_team_mapping_candidates":0,"sample_teams":[{"id":"ff36fe67-08ed-4ac4-a8a0-1dd86084a23a","provider_team_id":null,"provider_team_name":"Boston Celtics","normalized_team_name":"boston_celtics","canonical_team_id":"0db5a302-90f8-4d39-a897-9482c317143e","match_method":"single_provider_seed","provider_sport_id":null,"provider_league_id":null},{"id":"e2961f36-8b9e-49a5-a0b5-3796f98ae304","provider_team_id":null,"provider_team_name":"Los Angeles Lakers","normalized_team_name":"los_angeles_lakers","canonical_team_id":"fdbe2a72-8f4b-4b65-89d5-6e42662857b2","match_method":"single_provider_seed","provider_sport_id":null,"provider_league_id":null}]}]},"canonical_cleanup_worklist":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:47.250861Z","uses_live_provider_calls":false,"filters":{"provider_key":"the_odds_api","sport_code":null,"league_code":null,"limit":12},"totals":{"duplicate_team_candidates":0,"duplicate_event_candidates":0,"team_candidates_with_event_duplicates":0,"team_provider_team_references":0,"team_canonical_event_references":0,"event_provider_event_mappings":0,"event_pickable_lines":0,"event_pick_options":0,"event_submitted_picks":0,"event_marquee_events":0},"team_candidates":[],"event_candidates":[]},"provider_sport_market_coverage":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:47.252453Z","uses_live_provider_calls":false,"filters":{"provider_sport_key":null,"score_pending_only":false,"active_only":true,"limit":12,"core_markets":["h2h","spreads","totals"]},"totals":{"provider_sports":1,"returned_provider_sports":1,"active_provider_sports":1,"pickcenter_supported_sports":1,"provider_events":1,"active_provider_lines":6,"open_pickable_lines":6,"provider_scores":0,"settled_provider_scores":0,"canonical_event_results":0,"settled_canonical_event_results":0,"pending_score_refresh_picks":0,"pending_score_refresh_events":0,"pending_score_refresh_sports":0,"core_markets_complete_sports":1,"partial_core_market_sports":0,"no_open_pickable_line_sports":0,"market_coverage_status_counts":{"core_markets_complete":1},"market_totals":{"h2h":{"active_provider_lines":2,"provider_events_with_active_lines":1,"open_pickable_lines":2,"pickable_events":1},"spreads":{"active_provider_lines":2,"provider_events_with_active_lines":1,"open_pickable_lines":2,"pickable_events":1},"totals":{"active_provider_lines":2,"provider_events_with_active_lines":1,"open_pickable_lines":2,"pickable_events":1}}},"sports":[{"provider_sport_key":"basketball_nba","provider_sport_id":null,"provider_league_key":"basketball_nba","provider_league_id":null,"sport_group":"Basketball","sport_title":"NBA","canonical_sport_code":"basketball","active":true,"pickcenter_supported":true,"has_outrights":false,"provider_events":1,"active_provider_lines":6,"open_pickable_lines":6,"available_core_markets":["h2h","spreads","totals"],"missing_core_markets":[],"market_coverage_status":"core_markets_complete","market_coverage_gap_reasons":[],"markets":{"h2h":{"market_type":"h2h","active_provider_lines":2,"provider_events_with_active_lines":1,"open_pickable_lines":2,"pickable_events":1},"spreads":{"market_type":"spreads","active_provider_lines":2,"provider_events_with_active_lines":1,"open_pickable_lines":2,"pickable_events":1},"totals":{"market_type":"totals","active_provider_lines":2,"provider_events_with_active_lines":1,"open_pickable_lines":2,"pickable_events":1}},"provider_scores":0,"settled_provider_scores":0,"canonical_event_results":0,"settled_canonical_event_results":0,"pending_score_refresh_picks":0,"pending_score_refresh_events":0,"score_settlement_api_request":null,"latest_odds_request":{"id":"b2bf8fa4-cd19-4602-b2e0-cad339fe08f1","inventory_job_run_id":null,"request_type":"odds","markets":"h2h,spreads,totals","regions":"us","bookmakers":null,"request_scope_json":{"provider_sport_key":"basketball_nba","provider_league_key":"basketball_nba","canonical_sport_code":"basketball","canonical_league_code":"basketball_nba","markets":"h2h,spreads,totals","regions":"us"},"success":true,"status_code":200,"request_cost":0,"quota_remaining":null,"objects_returned":1,"line_snapshots":6,"finished_at":"2026-06-05T17:11:09.860410Z","error_code":null,"error_message":null},"latest_score_request":null}]},"provider_sport_market_gap_worklist":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:47.632366Z","uses_live_provider_calls":false,"filters":{"action":null,"active_only":true,"limit":12,"max_refresh_sports":5,"core_markets":["h2h","spreads","totals"]},"totals":{"candidate_sports":0,"returned_items":0,"omitted_candidate_sports":0,"live_action_sports":0,"local_action_sports":0,"actionable_local_sports":0,"passive_wait_sports":0,"action_counts":{},"missing_core_market_counts":{"h2h":0,"spreads":0,"totals":0},"missing_market_status_counts":{}},"coverage_limitation_summary":{"status":"clear","passive_wait_sports":0,"missing_core_market_counts":{"h2h":0,"spreads":0,"totals":0},"recommended_operator_action":"No passive provider market-coverage waits are present.","sample_sports":[]},"selected_provider_sport_keys":{"events":[],"odds":[],"priority":[]},"refresh_policy_handoff":null,"items":[]},"provider_sport_support_review_queue":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:47.632397Z","uses_live_provider_calls":false,"status":"clear","filters":{"include_outrights":false,"include_supported_mapping_gaps":true,"include_team_mapping_gaps":true,"active_only":true,"provider_sport_id":null,"provider_league_key":null,"provider_league_id":null,"limit":12},"totals":{"provider_sports":1,"considered_provider_sports":1,"active_provider_sports":1,"active_supported_sports":1,"active_unsupported_sports":0,"active_unsupported_non_outright_sports":0,"active_unsupported_outright_sports":0,"supported_mapping_gap_sports":0,"review_targets":0,"returned_review_targets":0,"support_review_targets":0,"canonical_mapping_review_targets":0,"team_mapping_review_targets":0,"provider_events":1,"active_provider_lines":6,"open_pickable_lines":6},"review_type_counts":{},"suggested_next_action":null,"support_batch_api_requests":{"plan":{"method":"GET","path":"/inventory/operations/provider-sport-support-batch-plan","query":{"provider_key":"the_odds_api","status":"open","include_outrights":false,"limit":1,"reviewer_user_id":"<user-id>","reason":"<reason>","refresh_priority_start":0},"uses_live_provider_calls":false,"context":{"provider_key":"the_odds_api","status":"open","include_outrights":false,"limit":1}},"apply":{"method":"POST","path":"/inventory/operations/provider-sport-support-batch-apply","body_template":{"provider_key":"the_odds_api","status":"open","include_outrights":false,"limit":1,"reviewer_user_id":"<user-id>","reason":"<reason>","refresh_priority_start":0},"uses_live_provider_calls":false,"context":{"provider_key":"the_odds_api","status":"open","include_outrights":false,"limit":1},"returns_refresh_policy_dry_run":true}},"api_request":{"method":"GET","path":"/inventory/operations/provider-sport-support-review-queue","query":{"provider_key":"the_odds_api","include_outrights":false,"include_supported_mapping_gaps":true,"include_team_mapping_gaps":true,"active_only":true,"provider_sport_id":null,"provider_league_key":null,"provider_league_id":null,"limit":12},"uses_live_provider_calls":false,"context":{"provider_key":"the_odds_api","include_outrights":false,"include_supported_mapping_gaps":true,"include_team_mapping_gaps":true,"active_only":true,"limit":12}},"targets":[]},"pickable_source_groups":{"provider_key":"the_odds_api","active_only":true,"generated_at":"2026-06-05T20:26:47.712671Z","source_policy":{"mode":"one_per_pick_identity","provider_priority":["the_odds_api"]},"totals":{"source_groups":6,"sources":6,"duplicate_source_groups":0,"suppressed_source_count":0}},"pick_board_contracts":{"generated_at":"2026-06-05T20:26:47.712713Z","filters":{"competition_id":null,"user_id":null,"competition_statuses":["active","scheduled"]},"totals":{"competitions":3,"periods":21,"selectable_periods":21,"unavailable_periods":0,"missing_option_sets":0,"stale_option_sets":0,"missing_marquee_periods":13,"open_options":126,"events":21,"event_odds_refresh_target_periods":0,"event_odds_refresh_targets":0,"event_odds_refresh_estimated_request_cost":0},"competitions":[{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","status":"active","generated_at":"2026-06-05T20:26:47.712713Z","periods":[{"pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832","label":"Friday","starts_at":"2026-06-05T00:00:00Z","ends_at":"2026-06-06T00:00:00Z","status":"open","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"c65efab1-3be0-4e2a-a848-d19b581e4fcd","option_set_generated_at":"2026-06-05T17:12:07.270842Z","option_set_valid_until":"2026-06-06T05:12:07.270842Z","option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":6,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":{"id":"14cbb72d-236c-470f-9751-b7aad0578404","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","selected_by_user_id":"c389222d-911a-4202-9b3f-304541290f9e","sport_code":"basketball","league_code":"basketball_nba","event_name":"Los Angeles Lakers at Boston Celtics","commence_time":"2026-06-06T01:11:09Z","home_team_name":"Boston Celtics","away_team_name":"Los Angeles Lakers","status":"active","selected_at":"2026-06-05T17:12:07.576776Z"},"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"7d9457fd-4202-4e11-bccd-c3f558e26832","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"885fee20-e919-4bc4-bd59-ef4ac1c3200d","label":"Saturday","starts_at":"2026-06-06T00:00:00Z","ends_at":"2026-06-07T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"c17c67b2-5cd4-4065-96a4-4962a85b2885","option_set_generated_at":"2026-06-05T17:12:07.302774Z","option_set_valid_until":"2026-06-06T05:12:07.302774Z","option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":6,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":{"id":"b60bfb74-2254-4954-8709-e98391a210db","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"885fee20-e919-4bc4-bd59-ef4ac1c3200d","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","selected_by_user_id":"c389222d-911a-4202-9b3f-304541290f9e","sport_code":"basketball","league_code":"basketball_nba","event_name":"Los Angeles Lakers at Boston Celtics","commence_time":"2026-06-06T01:11:09Z","home_team_name":"Boston Celtics","away_team_name":"Los Angeles Lakers","status":"active","selected_at":"2026-06-05T17:12:07.588539Z"},"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"885fee20-e919-4bc4-bd59-ef4ac1c3200d"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"885fee20-e919-4bc4-bd59-ef4ac1c3200d","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"102fe592-8cd1-48d5-abe5-e125baf15d7a","label":"Sunday","starts_at":"2026-06-07T00:00:00Z","ends_at":"2026-06-08T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"48750d1d-9914-4b08-8fc1-fa04fc66ad0c","option_set_generated_at":"2026-06-05T17:12:07.337763Z","option_set_valid_until":"2026-06-06T05:12:07.337763Z","option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":6,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":{"id":"721c2458-99cf-43e4-a5b7-82147b815ad5","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"102fe592-8cd1-48d5-abe5-e125baf15d7a","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","selected_by_user_id":"c389222d-911a-4202-9b3f-304541290f9e","sport_code":"basketball","league_code":"basketball_nba","event_name":"Los Angeles Lakers at Boston Celtics","commence_time":"2026-06-06T01:11:09Z","home_team_name":"Boston Celtics","away_team_name":"Los Angeles Lakers","status":"active","selected_at":"2026-06-05T17:12:07.598911Z"},"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"102fe592-8cd1-48d5-abe5-e125baf15d7a"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"102fe592-8cd1-48d5-abe5-e125baf15d7a","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"1c4311c0-b395-44e4-82b6-a902623b4e84","label":"Monday","starts_at":"2026-06-08T00:00:00Z","ends_at":"2026-06-09T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"5ec92d6c-26d4-40dc-b17c-cb95bb641ef5","option_set_generated_at":"2026-06-05T17:12:07.370829Z","option_set_valid_until":"2026-06-06T05:12:07.370829Z","option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":6,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":{"id":"e5ee1e73-7233-4b20-9aa5-2099aff9714f","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"1c4311c0-b395-44e4-82b6-a902623b4e84","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","selected_by_user_id":"c389222d-911a-4202-9b3f-304541290f9e","sport_code":"basketball","league_code":"basketball_nba","event_name":"Los Angeles Lakers at Boston Celtics","commence_time":"2026-06-06T01:11:09Z","home_team_name":"Boston Celtics","away_team_name":"Los Angeles Lakers","status":"active","selected_at":"2026-06-05T17:12:07.608806Z"},"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"1c4311c0-b395-44e4-82b6-a902623b4e84"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"1c4311c0-b395-44e4-82b6-a902623b4e84","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"f79e9f04-f561-4815-b937-06f6bb5ab535","label":"Tuesday","starts_at":"2026-06-09T00:00:00Z","ends_at":"2026-06-10T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"9995b694-64bc-4afc-b4be-9f4586be0955","option_set_generated_at":"2026-06-05T17:12:07.392639Z","option_set_valid_until":"2026-06-06T05:12:07.392639Z","option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":6,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":{"id":"e4a8bf35-d384-459b-b96d-ee9b94d927d4","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"f79e9f04-f561-4815-b937-06f6bb5ab535","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","selected_by_user_id":"c389222d-911a-4202-9b3f-304541290f9e","sport_code":"basketball","league_code":"basketball_nba","event_name":"Los Angeles Lakers at Boston Celtics","commence_time":"2026-06-06T01:11:09Z","home_team_name":"Boston Celtics","away_team_name":"Los Angeles Lakers","status":"active","selected_at":"2026-06-05T17:12:07.619360Z"},"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"f79e9f04-f561-4815-b937-06f6bb5ab535"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"f79e9f04-f561-4815-b937-06f6bb5ab535","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"63e66ac5-c03a-482a-9cb1-078736d531e5","label":"Wednesday","starts_at":"2026-06-10T00:00:00Z","ends_at":"2026-06-11T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"5b07b9ea-8315-4318-b528-d3609c587369","option_set_generated_at":"2026-06-05T17:12:07.414515Z","option_set_valid_until":"2026-06-06T05:12:07.414515Z","option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":6,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":{"id":"12e5f3d3-ed07-465c-8e1e-8cffbff070d6","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"63e66ac5-c03a-482a-9cb1-078736d531e5","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","selected_by_user_id":"c389222d-911a-4202-9b3f-304541290f9e","sport_code":"basketball","league_code":"basketball_nba","event_name":"Los Angeles Lakers at Boston Celtics","commence_time":"2026-06-06T01:11:09Z","home_team_name":"Boston Celtics","away_team_name":"Los Angeles Lakers","status":"active","selected_at":"2026-06-05T17:12:07.644816Z"},"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"63e66ac5-c03a-482a-9cb1-078736d531e5"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"63e66ac5-c03a-482a-9cb1-078736d531e5","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"bbaa8452-19f4-4278-98ec-c4d263285ed4","label":"Thursday","starts_at":"2026-06-11T00:00:00Z","ends_at":"2026-06-12T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"3f27d2be-c278-4db4-bf97-518743983f83","option_set_generated_at":"2026-06-05T17:12:07.453193Z","option_set_valid_until":"2026-06-06T05:12:07.453193Z","option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"hosted_dev_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":6,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":{"id":"20deca4d-470a-4163-8712-cada857e1cc4","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"bbaa8452-19f4-4278-98ec-c4d263285ed4","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","selected_by_user_id":"c389222d-911a-4202-9b3f-304541290f9e","sport_code":"basketball","league_code":"basketball_nba","event_name":"Los Angeles Lakers at Boston Celtics","commence_time":"2026-06-06T01:11:09Z","home_team_name":"Boston Celtics","away_team_name":"Los Angeles Lakers","status":"active","selected_at":"2026-06-05T17:12:07.663807Z"},"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"bbaa8452-19f4-4278-98ec-c4d263285ed4"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"23811923-d615-4e6a-b7a6-2d1a0ac7028d","pick_period_id":"bbaa8452-19f4-4278-98ec-c4d263285ed4","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}}]},{"competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","status":"active","generated_at":"2026-06-05T20:26:47.712713Z","periods":[{"pick_period_id":"22eee2f5-990e-4aa7-b781-7b846ad5a0e3","label":"Friday","starts_at":"2026-06-05T00:00:00Z","ends_at":"2026-06-06T00:00:00Z","status":"open","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"93fa765f-e738-4937-9597-4f5af282066a","option_set_generated_at":"2026-06-05T17:11:10.505548Z","option_set_valid_until":"2026-06-06T05:11:10.505548Z","option_set_status":"active","generation_reason":"fixture_seed","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"fixture_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"fixture_seed","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":6,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":{"id":"03c365d9-3f33-4867-9610-3709042f1951","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"22eee2f5-990e-4aa7-b781-7b846ad5a0e3","canonical_event_id":"cc7398b8-9a16-414c-bd00-3b1e3519ac8e","selected_by_user_id":"c389222d-911a-4202-9b3f-304541290f9e","sport_code":"basketball","league_code":"basketball_nba","event_name":"Los Angeles Lakers at Boston Celtics","commence_time":"2026-06-06T01:11:09Z","home_team_name":"Boston Celtics","away_team_name":"Los Angeles Lakers","status":"active","selected_at":"2026-06-05T17:11:10.555418Z"},"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"22eee2f5-990e-4aa7-b781-7b846ad5a0e3"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"22eee2f5-990e-4aa7-b781-7b846ad5a0e3","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"8be083b2-6ed0-4023-8943-c3fbf60e2998","label":"Saturday","starts_at":"2026-06-06T00:00:00Z","ends_at":"2026-06-07T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"d2d8519f-33de-42bc-825f-f5a994004cd7","option_set_generated_at":"2026-06-05T19:29:14.186765Z","option_set_valid_until":"2026-06-06T07:29:14.186765Z","option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"8be083b2-6ed0-4023-8943-c3fbf60e2998"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"8be083b2-6ed0-4023-8943-c3fbf60e2998","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"355c5e4f-b99c-4273-a487-71df2ae9981e","label":"Sunday","starts_at":"2026-06-07T00:00:00Z","ends_at":"2026-06-08T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"cf122918-61ef-48d2-b063-87ff6b83dd90","option_set_generated_at":"2026-06-05T19:29:14.234232Z","option_set_valid_until":"2026-06-06T07:29:14.234232Z","option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"355c5e4f-b99c-4273-a487-71df2ae9981e"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"355c5e4f-b99c-4273-a487-71df2ae9981e","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"b5365287-4ca3-4da0-afc5-8538d88c8116","label":"Monday","starts_at":"2026-06-08T00:00:00Z","ends_at":"2026-06-09T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"7c6c19fb-4488-4c44-b6ef-a725a6969319","option_set_generated_at":"2026-06-05T19:29:14.262247Z","option_set_valid_until":"2026-06-06T07:29:14.262247Z","option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"b5365287-4ca3-4da0-afc5-8538d88c8116"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"b5365287-4ca3-4da0-afc5-8538d88c8116","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"12bf1696-93aa-4686-8ef9-ff85b5d7192f","label":"Tuesday","starts_at":"2026-06-09T00:00:00Z","ends_at":"2026-06-10T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"50b013eb-43f1-420f-bdb7-820ad138f5ee","option_set_generated_at":"2026-06-05T19:29:14.291330Z","option_set_valid_until":"2026-06-06T07:29:14.291330Z","option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"12bf1696-93aa-4686-8ef9-ff85b5d7192f"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"12bf1696-93aa-4686-8ef9-ff85b5d7192f","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"78ffc75b-2550-44d3-a9f9-8347fdfd0b2f","label":"Wednesday","starts_at":"2026-06-10T00:00:00Z","ends_at":"2026-06-11T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"c555b516-c1eb-444b-b17c-4a1966910d22","option_set_generated_at":"2026-06-05T19:29:14.310440Z","option_set_valid_until":"2026-06-06T07:29:14.310440Z","option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"78ffc75b-2550-44d3-a9f9-8347fdfd0b2f"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"78ffc75b-2550-44d3-a9f9-8347fdfd0b2f","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"06356592-f3d5-4c89-bd53-a2db4fa07bfe","label":"Thursday","starts_at":"2026-06-11T00:00:00Z","ends_at":"2026-06-12T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"5ff70a46-ed1c-43e8-ab57-2585ce912589","option_set_generated_at":"2026-06-05T19:29:14.338596Z","option_set_valid_until":"2026-06-06T07:29:14.338596Z","option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"refresh_policy","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"06356592-f3d5-4c89-bd53-a2db4fa07bfe"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"06356592-f3d5-4c89-bd53-a2db4fa07bfe","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}}]},{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","status":"active","generated_at":"2026-06-05T20:26:47.712713Z","periods":[{"pick_period_id":"3a77bfce-2f18-41f8-90ef-31a047f6a1ca","label":"Friday","starts_at":"2026-06-05T00:00:00Z","ends_at":"2026-06-06T00:00:00Z","status":"open","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"3b68094f-cbe1-45c3-8feb-b965de899694","option_set_generated_at":"2026-06-05T19:49:49.102512Z","option_set_valid_until":"2026-06-06T07:49:49.102512Z","option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"3a77bfce-2f18-41f8-90ef-31a047f6a1ca"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"3a77bfce-2f18-41f8-90ef-31a047f6a1ca","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"e819bfe6-7f0d-467c-b864-d8735c7bdae1","label":"Saturday","starts_at":"2026-06-06T00:00:00Z","ends_at":"2026-06-07T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"1749265b-15be-4908-bdca-2fa014d7a143","option_set_generated_at":"2026-06-05T19:49:49.159984Z","option_set_valid_until":"2026-06-06T07:49:49.159984Z","option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"e819bfe6-7f0d-467c-b864-d8735c7bdae1"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"e819bfe6-7f0d-467c-b864-d8735c7bdae1","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"f8cc3360-dc31-4cac-a1cf-62ba59350615","label":"Sunday","starts_at":"2026-06-07T00:00:00Z","ends_at":"2026-06-08T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"d43fbb7d-0c5a-484d-af6c-2578fc062f25","option_set_generated_at":"2026-06-05T19:49:49.187852Z","option_set_valid_until":"2026-06-06T07:49:49.187852Z","option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"f8cc3360-dc31-4cac-a1cf-62ba59350615"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"f8cc3360-dc31-4cac-a1cf-62ba59350615","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"de6d3a66-3e42-4e6d-a19f-285cd89c1d0a","label":"Monday","starts_at":"2026-06-08T00:00:00Z","ends_at":"2026-06-09T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"385e2279-0a48-4052-ae9d-53748b17349d","option_set_generated_at":"2026-06-05T19:49:49.235481Z","option_set_valid_until":"2026-06-06T07:49:49.235481Z","option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"de6d3a66-3e42-4e6d-a19f-285cd89c1d0a"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"de6d3a66-3e42-4e6d-a19f-285cd89c1d0a","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"cec5bea0-8046-4b9d-b6ce-de9e870ed2a2","label":"Tuesday","starts_at":"2026-06-09T00:00:00Z","ends_at":"2026-06-10T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"dd5882ab-0a20-494a-b836-2054dc83a543","option_set_generated_at":"2026-06-05T19:49:49.253167Z","option_set_valid_until":"2026-06-06T07:49:49.253167Z","option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"cec5bea0-8046-4b9d-b6ce-de9e870ed2a2"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"cec5bea0-8046-4b9d-b6ce-de9e870ed2a2","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"97629a38-f050-4724-89d2-08f0e945cd76","label":"Wednesday","starts_at":"2026-06-10T00:00:00Z","ends_at":"2026-06-11T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"8c0faaa6-62da-440c-b8f1-9f7c1ea5be49","option_set_generated_at":"2026-06-05T19:49:49.291652Z","option_set_valid_until":"2026-06-06T07:49:49.291652Z","option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"97629a38-f050-4724-89d2-08f0e945cd76"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"97629a38-f050-4724-89d2-08f0e945cd76","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}},{"pick_period_id":"59c1930c-6251-40cf-8e1c-23eabb2f7541","label":"Thursday","starts_at":"2026-06-11T00:00:00Z","ends_at":"2026-06-12T00:00:00Z","status":"upcoming","max_picks_per_player":3,"free_pick_slots":2,"marquee_pick_slots":1,"accepting_picks":true,"blocked_reason":null,"option_set_id":"a0db62fa-e01d-4374-9580-8d8087444cf4","option_set_generated_at":"2026-06-05T19:49:49.334337Z","option_set_valid_until":"2026-06-06T07:49:49.334337Z","option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"},"serving_status":"available","serving_blocked_reason":null,"options_selectable":true,"slot_serving":{"free":{"serving_status":"available","blocked_reason":null,"options_selectable":true,"stale_or_unavailable":false,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}},"marquee":{"serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","options_selectable":false,"stale_or_unavailable":true,"option_set_status":"active","generation_reason":"design_partner_beta","inventory_source_policy":{"mode":"one_per_pick_identity"}}},"stale_or_unavailable":false,"total_options":6,"event_count":1,"free_option_count":6,"marquee_option_count":0,"market_counts":{"h2h":2,"spreads":2,"totals":2},"marquee_event":null,"slot_availability":null,"event_odds_refresh_target_summary":{"uses_live_provider_calls":false,"target_count":0,"total_estimated_request_cost":0,"freshness_reasons":[],"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected"}],"api_request":{"method":"GET","path":"/inventory/operations/pick-period-event-odds-refresh-targets","query":{"competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"59c1930c-6251-40cf-8e1c-23eabb2f7541"},"context":{"operation":"pick_period_event_odds_refresh_target_discovery","query_scope":"competition_pick_period","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"59c1930c-6251-40cf-8e1c-23eabb2f7541","target_scope":"visible_pick_period_options_requiring_targeted_event_odds_refresh","inventory_source":"stored_canonical_pick_inventory","review_scope":"pick_period_event_odds_refresh_targets","uses_live_provider_calls":false},"uses_live_provider_calls":false}}}]}]},"active_board_event_odds_refresh_worklist":{"generated_at":"2026-06-05T20:26:48.252754Z","uses_live_provider_calls":false,"filters":{"competition_id":null,"user_id":null,"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"competition_statuses":["active","scheduled"],"period_statuses":["open","upcoming"],"default_request_scope":{"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null},"default_request_contract":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_gaps":[],"uses_live_provider_calls":false},"default_normalization_contract":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[],"uses_live_provider_calls":false}},"totals":{"competitions":3,"periods_scanned":21,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"retry_backoff_targets":0,"retry_review_targets":0,"selected_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"deduped_estimated_request_cost":0,"deduped_full_market_estimated_request_cost":0,"skipped_unavailable_slots":13},"skipped_unavailable_slots":[{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"8be083b2-6ed0-4023-8943-c3fbf60e2998"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"355c5e4f-b99c-4273-a487-71df2ae9981e"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"b5365287-4ca3-4da0-afc5-8538d88c8116"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"12bf1696-93aa-4686-8ef9-ff85b5d7192f"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"78ffc75b-2550-44d3-a9f9-8347fdfd0b2f"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"34658c3d-49cb-4f96-bc7a-e78f7ef09326","pick_period_id":"06356592-f3d5-4c89-bd53-a2db4fa07bfe"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"3a77bfce-2f18-41f8-90ef-31a047f6a1ca"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"e819bfe6-7f0d-467c-b864-d8735c7bdae1"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"f8cc3360-dc31-4cac-a1cf-62ba59350615"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"de6d3a66-3e42-4e6d-a19f-285cd89c1d0a"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"cec5bea0-8046-4b9d-b6ce-de9e870ed2a2"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"97629a38-f050-4724-89d2-08f0e945cd76"},{"slot_type":"marquee","serving_status":"marquee_unavailable","blocked_reason":"marquee_not_selected","competition_id":"354d275d-7f77-4b07-ba58-0e107ad0076b","pick_period_id":"59c1930c-6251-40cf-8e1c-23eabb2f7541"}],"execution_manifest":{"uses_live_provider_calls":false,"selected_target_count":0,"refreshable_target_count":0,"estimated_request_cost":0,"full_market_estimated_request_cost":0,"request_contracts_by_provider":{},"fallback_request_contract_providers":[],"request_contract_gaps_by_provider":{},"normalization_contracts_by_provider":{},"fallback_normalization_contract_providers":[],"normalization_contract_gaps_by_provider":{},"live_execution_blockers":[],"dry_run_api_requests":[],"execute_templates":[],"operator_commands":[],"execute_command_templates":[],"selected_provider_events":[],"live_provider_calls_require_execute_and_approval":false,"approval_policy":"Run each dry_run_api_request first, then execute only the corresponding execute_template after reviewing the dry-run approval hash and provider event identity.","batch_execute_api":null},"targets":[],"skipped_targets":[]},"refresh_policy_plan":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:43.139641Z","policy":{"run_mode":"full","enabled_components":["events","local","odds","scores","sports"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"lookahead_days":14,"skip_sports_refresh":false,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"commence_time_from":"2026-06-05T20:26:43.139641+00:00","commence_time_to":"2026-06-19T20:26:43.139641+00:00"},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"refresh_forecast":{"generated_at":"2026-06-05T20:26:43.139641+00:00","sports":{"component_enabled":true,"due":false,"last_success_at":"2026-06-05T17:11:09.860410+00:00","next_due_at":"2026-06-06T17:11:09.860410+00:00","stale_hours":24},"events":{"component_enabled":true,"due_count":1,"next_due_at":"2026-06-05T20:26:43.139641+00:00","next_due_sports":[{"provider_sport_key":"basketball_nba","sport_title":"NBA","last_success_at":null,"next_due_at":"2026-06-05T20:26:43.139641+00:00","stale_hours":24,"due":true}]},"odds":{"component_enabled":true,"due_count":0,"next_due_at":"2026-06-05T21:11:09.860410+00:00","next_due_sports":[{"provider_sport_key":"basketball_nba","sport_title":"NBA","last_success_at":"2026-06-05T17:11:09.860410+00:00","next_due_at":"2026-06-05T21:11:09.860410+00:00","stale_hours":4,"active_provider_lines":6,"due":false}]},"scores":{"component_enabled":true,"due_count":0,"next_due_at":null},"policy":"Forecast is read-only and uses stored provider request timestamps plus configured freshness windows."},"sports_refresh":{"due":false,"estimated_credits":0,"last_success_at":"2026-06-05T17:11:09.860410+00:00","known_provider_sports":1,"active_supported_sports":1,"reason":"fresh"},"events_refresh":{"candidate_count":1,"target_count":1,"skipped_target_count":0,"estimated_credits":0,"targets":[{"provider_sport_key":"basketball_nba","sport_group":"Basketball","sport_title":"NBA","refresh_priority_rank":0,"refresh_priority":null,"provider_events":1,"last_event_refresh":null,"estimated_credits":0,"reason":"never refreshed"}],"skipped_targets":[],"policy":"Refresh broad event/team inventory across active supported sports before spending odds credits."},"odds_refresh":{"candidate_count":0,"selected_target_count":0,"skipped_target_count":0,"estimated_credits":0,"max_credits":90,"selection_credit_cap":90,"latest_quota_remaining":null,"targets":[],"skipped_targets":[],"policy":"Refresh broad odds only inside the explicit credit cap; low recent pickable yield ranks later unless explicitly prioritized."},"scores_refresh":{"target_count":0,"skipped_target_count":0,"estimated_provider_calls":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh scores only for provider sports with pending picked events that have started."},"local_inventory":{"uses_live_provider_calls":false,"steps":["build_pickable_universe","regenerate_active_option_sets_when_recommended","expire_started_inventory","lock_started_picks","score_pending_picks_from_stored_provider_scores"]},"approval":{"sports_refresh_due":false,"event_sport_keys":["basketball_nba"],"odds_sport_keys":[],"score_sport_keys":[]},"execution_preview":{"uses_live_provider_calls":true,"can_execute_live":true,"live_execution_blockers":[],"approval_hash":"710f9b3c6d3f01de7b37c28754b7c79c8f91d0cbb2221260e159630deb4fd216","approval_snapshot":{"version":1,"provider_key":"the_odds_api","policy":{"run_mode":"full","enabled_components":["events","local","odds","scores","sports"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"skip_sports_refresh":false},"request_budget":{"estimated_credits":0,"uncapped_estimated_credits":0,"selection_credit_cap":120,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null},"approval":{"sports_refresh_due":false,"event_sport_keys":["basketball_nba"],"odds_sport_keys":[],"score_sport_keys":[]},"selected_counts":{"sports":0,"events":1,"odds":0,"scores":0},"targets":{"events":[{"provider_sport_key":"basketball_nba","reason":"never refreshed","estimated_credits":0,"refresh_priority":null}],"odds":[],"scores":[]}},"estimated_total_request_credits":0,"uncapped_estimated_total_request_credits":0,"estimated_odds_credits":0,"latest_quota_remaining":null,"selected_counts":{"sports":0,"events":1,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":["basketball_nba"],"odds":[],"scores":[]},"approval_args":["--approved-no-sports-refresh","--approved-event-sports","basketball_nba","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","710f9b3c6d3f01de7b37c28754b7c79c8f91d0cbb2221260e159630deb4fd216"],"dry_run_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","full","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168"],"execute_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","full","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168","--execute","--approved-no-sports-refresh","--approved-event-sports","basketball_nba","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","710f9b3c6d3f01de7b37c28754b7c79c8f91d0cbb2221260e159630deb4fd216"],"dry_run_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode full --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168","execute_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode full --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168 --execute --approved-no-sports-refresh --approved-event-sports basketball_nba --approved-odds-sports '' --approved-score-sports '' --approved-plan-hash 710f9b3c6d3f01de7b37c28754b7c79c8f91d0cbb2221260e159630deb4fd216","dry_run_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"full","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":false,"rebuild_local":false},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"full","enabled_components":["events","local","odds","scores","sports"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":1,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":["basketball_nba"],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":true,"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"full","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":true,"rebuild_local":true,"approved_sports_refresh_due":false,"approved_event_sports":["basketball_nba"],"approved_odds_sports":[],"approved_score_sports":[],"approved_plan_hash":"710f9b3c6d3f01de7b37c28754b7c79c8f91d0cbb2221260e159630deb4fd216"},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"full","enabled_components":["events","local","odds","scores","sports"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":1,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":["basketball_nba"],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":true,"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":true},"policy":"Review the dry run, then execute only if the selected targets and estimated credits are acceptable."}},"schedule_preflight":{"provider_key":"the_odds_api","provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"readiness":{"status":"degraded","ready_for_picks":true,"blocker_count":0,"warning_count":1,"refresh_policy_due":{"due":true,"sports":0,"events":1,"odds":0,"scores":0,"skipped_odds":0}},"onboarding_readiness":{"status":"ready","ready_for_onboarding":true,"blocker_count":0,"warning_count":0,"review_target_counts":{}},"provider_inventory_summary":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:48.576513Z","uses_live_provider_calls":false,"provider":{"registered":true,"enabled":true,"active_supported_sports":1,"supported_sports":1,"provider_sports":1},"canonical_inventory":{"provider_events":1,"canonical_events":1,"active_provider_lines":6,"inactive_provider_lines":0,"open_pickable_lines":6,"pickable_line_sources":6,"active_pickable_line_sources":6,"active_option_sets":21,"stale_active_option_sets":0,"option_set_regeneration_recommended":0,"option_set_regeneration_missing":0,"option_set_regeneration_stale":0,"option_set_regeneration_inventory_changed":0},"canonical_inventory_health":{"status":"healthy","uses_live_provider_calls":false,"thresholds":{"source_stale_cutoff":"2026-06-05T08:26:48.576513Z","source_max_age_seconds":43200,"lock_risk_cutoff":"2026-06-05T20:56:48.576513Z","close_to_lock_refresh_window_seconds":1800},"totals":{"open_eligible_lines":6,"open_eligible_events":1,"sport_count":1,"league_count":1,"market_count":3,"source_stale_lines":0,"serveable_source_stale_options":0,"serveable_source_stale_pickable_lines":0,"serveable_source_stale_events":0,"background_source_stale_lines":0,"near_lock_lines":0,"serveable_near_lock_options":0,"serveable_near_lock_pickable_lines":0,"serveable_near_lock_events":0,"background_near_lock_lines":0,"active_open_options":126,"serveable_open_options":126,"materialized_open_pickable_lines":6,"serveable_open_pickable_lines":6,"unmaterialized_open_pickable_lines":0,"active_option_sets":21,"serveable_option_sets":21,"max_source_age_seconds":11738,"min_seconds_to_lock":17060},"issue_counts":{},"market_counts":{"h2h":2,"spreads":2,"totals":2},"top_sports":[{"sport_code":"basketball","sport_title":"Basketball","open_eligible_lines":6,"open_eligible_events":1,"league_count":1,"next_commence_time":"2026-06-06T01:11:09Z","market_counts":{"h2h":2,"spreads":2,"totals":2}}],"recommended_actions":[]},"active_board_event_odds":{"limit":10,"max_estimated_request_cost":30,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"retry_backoff_targets":0,"retry_review_targets":0,"selected_estimated_request_cost":0,"deduped_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"deduped_full_market_estimated_request_cost":0,"execution_manifest":{"uses_live_provider_calls":false,"selected_target_count":0,"refreshable_target_count":0,"estimated_request_cost":0,"full_market_estimated_request_cost":0,"request_contracts_by_provider":{},"fallback_request_contract_providers":[],"request_contract_gaps_by_provider":{},"normalization_contracts_by_provider":{},"fallback_normalization_contract_providers":[],"normalization_contract_gaps_by_provider":{},"live_execution_blockers":[],"dry_run_api_requests":[],"execute_templates":[],"operator_commands":[],"execute_command_templates":[],"selected_provider_events":[],"live_provider_calls_require_execute_and_approval":false,"approval_policy":"Run each dry_run_api_request first, then execute only the corresponding execute_template after reviewing the dry-run approval hash and provider event identity.","batch_execute_api":null},"execution_handoff":{"dry_run_api_request":{"method":"POST","path":"/inventory/operations/active-board-event-odds-refresh","body":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320,"execute":false},"context":{"operation":"active_board_event_odds_refresh","selected_target_count":0,"skipped_target_count":0,"provider_events":[],"max_daily_request_credits":320,"max_estimated_request_cost":30,"estimated_request_cost":0,"worklist_totals":{"competitions":3,"periods_scanned":21,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"retry_backoff_targets":0,"retry_review_targets":0,"selected_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"deduped_estimated_request_cost":0,"deduped_full_market_estimated_request_cost":0,"skipped_unavailable_slots":13},"filters":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320},"request_contracts_by_provider":{},"normalization_contracts_by_provider":{},"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request_template":{"method":"POST","path":"/inventory/operations/active-board-event-odds-refresh","body":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320,"execute":true,"rebuild_local":true,"approved_provider_events":"<from dry-run approval.approved_provider_events>","approved_plan_hash":"<from dry-run approval.approved_plan_hash>"},"context":{"operation":"active_board_event_odds_refresh","selected_target_count":0,"skipped_target_count":0,"provider_events":[],"max_daily_request_credits":320,"max_estimated_request_cost":30,"estimated_request_cost":0,"worklist_totals":{"competitions":3,"periods_scanned":21,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"retry_backoff_targets":0,"retry_review_targets":0,"selected_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"deduped_estimated_request_cost":0,"deduped_full_market_estimated_request_cost":0,"skipped_unavailable_slots":13},"filters":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320},"request_contracts_by_provider":{},"normalization_contracts_by_provider":{},"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[],"request_contracts_by_provider":{},"normalization_contracts_by_provider":{}},"can_execute_live":false,"live_execution_blockers":[],"request_contracts_by_provider":{},"fallback_request_contract_providers":[],"request_contract_gaps_by_provider":{},"normalization_contracts_by_provider":{},"fallback_normalization_contract_providers":[],"normalization_contract_gaps_by_provider":{},"dry_run_command":"uv run python -m app.jobs.inventory active-board-event-odds-refresh --provider-key the_odds_api --limit 10 --max-estimated-request-cost 30 --limit-per-slot 500 --max-daily-request-credits 320 --json","execute_command_template":null,"execute_requires_dry_run_approval":false,"execution_uses_live_provider_calls":false},"selected_target_sample":[],"selected_urgency":{"status":"none","selected_targets":0,"urgent_targets":0,"source_stale_targets":0,"close_to_lock_targets":0,"proactive_targets":0,"no_reason_targets":0,"reason_counts":{},"max_source_age_seconds":null,"min_seconds_to_lock":null},"daily_remaining_partial_batch":{"available":false,"max_estimated_request_cost":320,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"selected_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"execution_manifest":{},"execution_handoff":{},"selected_target_sample":[],"selected_urgency":{"status":"none","selected_targets":0,"urgent_targets":0,"source_stale_targets":0,"close_to_lock_targets":0,"proactive_targets":0,"no_reason_targets":0,"reason_counts":{},"max_source_age_seconds":null,"min_seconds_to_lock":null}},"next_recovery_partial_batch":{"available":false,"available_at":null},"latest_refresh_job":null},"market_gap_summary":{"candidate_sports":0,"returned_items":0,"live_action_sports":0,"local_action_sports":0,"actionable_local_sports":0,"passive_wait_sports":0,"selected_event_refresh_sports":0,"selected_odds_refresh_sports":0,"coverage_limitation_status":"clear","coverage_limitation_passive_wait_sports":0,"missing_core_market_counts":{"h2h":0,"spreads":0,"totals":0},"recommended_operator_action":"No passive provider market-coverage waits are present.","uses_live_provider_calls":false},"quota":{"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"latest_quota_remaining":null,"latest_request_cost":0,"latest_request_type":"odds","latest_request_success":true,"latest_request_finished_at":"2026-06-05T17:11:09.860410Z","request_count_24h":2,"request_cost_24h":0,"request_cost_7d":0,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0},"latest_job_run":{"id":"a0241a49-fa90-4693-a4e8-a99fc0489569","job_key":"run_refresh_policy","status":"succeeded","trigger":"manual","started_at":"2026-06-05T20:13:40.960328Z","finished_at":"2026-06-05T20:13:41.803236Z","summary_json":{"execute_live":true,"provider_key":"the_odds_api","run_mode":"local","max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"lookahead_days":14,"refresh_yield_lookback_hours":168,"request_scope":{"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null},"score_provider_sport_key":null,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"rebuild_local":true,"local_maintenance_regenerate_option_sets":true,"local_maintenance_prune_line_snapshots":true,"approved_plan_hash":null,"scheduled_profile_approval":null,"policy_plan":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:13:41.081564+00:00","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"lookahead_days":14,"skip_sports_refresh":false,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"commence_time_from":"2026-06-05T20:13:41.081564+00:00","commence_time_to":"2026-06-19T20:13:41.081564+00:00"},"sports_refresh":{"due":false,"estimated_credits":0,"last_success_at":"2026-06-05T17:11:09.860410+00:00","known_provider_sports":1,"active_supported_sports":1,"reason":"disabled_by_run_mode"},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"refresh_forecast":{"generated_at":"2026-06-05T20:13:41.081564+00:00","sports":{"component_enabled":true,"due":false,"last_success_at":"2026-06-05T17:11:09.860410+00:00","next_due_at":"2026-06-06T17:11:09.860410+00:00","stale_hours":24},"events":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"odds":{"component_enabled":false,"due_count":0,"next_due_at":null,"next_due_sports":[]},"scores":{"component_enabled":false,"due_count":0,"next_due_at":null},"policy":"Forecast is read-only and uses stored provider request timestamps plus configured freshness windows."},"events_refresh":{"candidate_count":0,"target_count":0,"skipped_target_count":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh broad event/team inventory across active supported sports before spending odds credits."},"odds_refresh":{"candidate_count":0,"selected_target_count":0,"skipped_target_count":0,"estimated_credits":0,"max_credits":90,"selection_credit_cap":90,"latest_quota_remaining":null,"targets":[],"skipped_targets":[],"policy":"Refresh broad odds only inside the explicit credit cap; low recent pickable yield ranks later unless explicitly prioritized."},"scores_refresh":{"target_count":0,"skipped_target_count":0,"estimated_provider_calls":0,"estimated_credits":0,"targets":[],"skipped_targets":[],"policy":"Refresh scores only for provider sports with pending picked events that have started."},"local_inventory":{"uses_live_provider_calls":false,"steps":["build_pickable_universe","regenerate_active_option_sets_when_recommended","expire_started_inventory","lock_started_picks","score_pending_picks_from_stored_provider_scores"]},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"execution_preview":{"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[],"approval_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","approval_snapshot":{"version":1,"provider_key":"the_odds_api","policy":{"run_mode":"local","enabled_components":["local"],"provider_enabled":true,"provider_capabilities":{"supports_odds":true,"supports_scores":true,"supports_event_odds_refresh":true},"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"skip_sports_refresh":false},"request_budget":{"estimated_credits":0,"uncapped_estimated_credits":0,"selection_credit_cap":120,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null},"approval":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"targets":{"events":[],"odds":[],"scores":[]}},"estimated_total_request_credits":0,"uncapped_estimated_total_request_credits":0,"estimated_odds_credits":0,"latest_quota_remaining":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"approval_args":["--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168"],"execute_command_args":["uv","run","python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--max-odds-credits","90","--max-score-refresh-calls","25","--max-total-request-credits","120","--max-daily-request-credits","320","--lookahead-days","14","--sports-stale-hours","24","--events-stale-hours","24","--odds-stale-hours","4","--empty-odds-stale-hours","24","--refresh-yield-lookback-hours","168","--execute","--approved-no-sports-refresh","--approved-event-sports","","--approved-odds-sports","","--approved-score-sports","","--approved-plan-hash","ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"],"dry_run_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168","execute_command":"uv run python -m app.jobs.inventory run-refresh-policy --provider-key the_odds_api --run-mode local --max-odds-credits 90 --max-score-refresh-calls 25 --max-total-request-credits 120 --max-daily-request-credits 320 --lookahead-days 14 --sports-stale-hours 24 --events-stale-hours 24 --odds-stale-hours 4 --empty-odds-stale-hours 24 --refresh-yield-lookback-hours 168 --execute --approved-no-sports-refresh --approved-event-sports '' --approved-odds-sports '' --approved-score-sports '' --approved-plan-hash ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67","dry_run_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":false,"rebuild_local":false},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_api_request":{"method":"POST","path":"/inventory/operations/refresh-policy","body":{"provider_key":"the_odds_api","markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_odds_credits":90,"max_event_sports":null,"max_total_request_credits":120,"max_daily_request_credits":320,"max_score_refresh_calls":25,"sports_stale_hours":24,"events_stale_hours":24,"odds_stale_hours":4,"empty_odds_stale_hours":24,"refresh_sport_priority":[],"refresh_yield_lookback_hours":168,"lookahead_days":14,"run_mode":"local","competition_id":null,"pick_period_id":null,"score_provider_sport_key":null,"execute":true,"rebuild_local":true,"approved_sports_refresh_due":false,"approved_event_sports":[],"approved_odds_sports":[],"approved_score_sports":[],"approved_plan_hash":"ffd93ed7a66755ff87c96a2c491302691f3c65002a48551beedc88798b1eca67"},"context":{"operation":"refresh_policy","provider_key":"the_odds_api","run_mode":"local","enabled_components":["local"],"markets":["h2h","spreads","totals"],"regions":"us","bookmakers":null,"max_event_sports":null,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"lookahead_days":14,"refresh_sport_priority":[],"event_provider_sport_keys":null,"odds_provider_sport_keys":null,"score_provider_sport_key":null,"competition_id":null,"pick_period_id":null,"selected_counts":{"sports":0,"events":0,"odds":0,"scores":0},"selected_provider_sport_keys":{"events":[],"odds":[],"scores":[]},"request_budget":{"max_credits":120,"max_total_credits":120,"max_daily_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"effective_max_credits":120,"selection_credit_cap":120,"latest_quota_remaining":null,"estimated_credits":0,"uncapped_estimated_credits":0,"skipped_sports":0,"skipped_events":0,"skipped_odds":0,"skipped_scores":0,"policy":"Select live provider call types inside configured provider usage-credit caps."},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"execute_requires_dry_run_approval":true,"uses_live_provider_calls":false},"policy":"Review the dry run, then execute only if the selected targets and estimated credits are acceptable."}},"provider_quota_health":{"provider_key":"the_odds_api","uses_live_provider_calls":false,"status":"ok","allowed":true,"blockers":[],"warnings":[],"planned_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"policy":"Final live refresh guard across selected sports, event, odds, and score provider calls."},"live_provider_calls":{"sports":0,"events":0,"odds":0,"scores":0,"skipped_scores":0,"estimated_odds_credits":0,"max_event_sports":null,"skipped_event_sports":0,"max_odds_credits":90,"max_score_refresh_calls":25,"max_total_request_credits":120,"max_daily_request_credits":320,"estimated_total_request_credits":0,"commence_time_from":"2026-06-05T20:13:41.081564+00:00","commence_time_to":"2026-06-19T20:13:41.081564+00:00","actual_request_cost":0},"sports_refresh":{"executed":false,"failures":0},"events_refresh":{"executed":0,"failures":0},"odds_refresh":{"executed":0,"failures":0,"request_cost":0},"scores_refresh":{"executed":0,"failures":0,"request_cost":0,"skipped":0,"scores":0,"canonical_events_updated":0,"canonical_event_results":0,"settled_canonical_event_results":0,"retired_pickable_lines":0,"retired_pick_options":0},"local_inventory":{"executed":true,"regenerate_option_sets":true,"prune_line_snapshots":true,"rebuild":{"pickable_universe":{"eligible_lines":6,"provider_lines_seen":6},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"reason":"refresh_policy"},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0}},"maintenance":{"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T20:13:41.617512+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"expired_inventory":{"locked_pickable_lines":0,"locked_pick_options":0},"provider_line_snapshots":{"retention_days":7,"cutoff":"2026-05-29T20:13:41.617512+00:00","deleted_snapshots":0,"disabled":false},"option_sets":{"eligible_periods":21,"option_sets":0,"options":0,"skipped_current":21,"regeneration_recommended":0,"status_counts":{"active_option_set_current":21,"no_active_option_set":0,"active_option_set_stale":0,"active_option_set_rules_changed":0,"active_option_set_inventory_changed":0},"generated":[],"reason":"local_maintenance","force":false},"locked_picks":{"locked_picks":0},"scored_picks":{"seen":0,"resolved":0,"pending":0,"cancelled":0,"unscorable":0},"needs_review":{"seen":0,"marked_needs_review":0,"grace_hours":48}},"actual_request_cost":0},"error_message":null},"latest_active_board_event_odds_refresh_job":null,"operator_next_action":{"key":"monitor","label":"Monitor inventory","uses_live_provider_calls":false,"reason":"Stored canonical inventory is present and no immediate active-board event odds batch is selected."}},"local_recovery":{"uses_live_provider_calls":false,"option_set_recovery_needed":false,"option_set_status":"ok","option_set_message":"21 of 21 current competition periods have current option sets.","option_set_regeneration_recommended":0,"option_set_regeneration_missing":0,"option_set_regeneration_stale":0,"recommended_command":null,"regenerate_option_sets_api_request":null,"local_maintenance_api_request":null},"cost_window":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:43.644688Z","request_count_24h":2,"failed_request_count_24h":0,"unresolved_failed_request_count_24h":0,"unresolved_failure_groups_24h":[],"request_cost_24h":0,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"request_count_7d":2,"failed_request_count_7d":0,"unresolved_failed_request_count_7d":0,"unresolved_failure_groups_7d":[],"request_cost_7d":0,"latest_request_finished_at":"2026-06-05T17:11:09.860410Z","latest_request_type":"odds","latest_request_success":true,"latest_quota_remaining":null,"latest_quota_used":null,"latest_request_cost":0,"latest_objects_returned":1,"latest_object_limit_remaining":null,"latest_request_limit_remaining":null,"latest_response_notice":null,"latest_next_cursor":null},"deployment_recommendation":{"posture":"local_enabled_provider_quota_review","reason":"The no-quota maintenance schedule is safe; live provider schedules need explicit quota review before enablement.","enable_by_default":["inventory-local-maintenance"],"keep_disabled_until_review":["inventory-broad-refresh","inventory-settlement"],"read_only_checks":["/inventory/operations/readiness","/inventory/operations/provider-inventory-summary","/inventory/operations/provider-onboarding-readiness","/inventory/operations/breadth-summary","/inventory/operations/provider-sport-market-gap-worklist","/inventory/operations/lookahead-policy-recommendation","/inventory/operations/breadth-refresh-plan","/inventory/operations/refresh-policy-plan"],"live_provider_due":true,"provider_inventory_header":{"provider_enabled":true,"active_supported_sports":1,"open_pickable_lines":6,"active_provider_lines":6,"active_option_sets":21,"active_board_selected_targets":0,"active_board_deduped_targets":0,"active_board_selected_estimated_request_cost":0,"active_board_selected_full_market_estimated_request_cost":0,"active_board_request_contracts_by_provider":{},"active_board_fallback_request_contract_providers":[],"active_board_request_contract_gaps_by_provider":{},"active_board_normalization_contracts_by_provider":{},"active_board_fallback_normalization_contract_providers":[],"active_board_normalization_contract_gaps_by_provider":{},"active_board_live_execution_blockers":[],"market_gap_candidate_sports":0,"market_gap_live_action_sports":0,"market_gap_actionable_local_sports":0,"market_gap_passive_wait_sports":0,"market_gap_coverage_limitation_status":"clear","daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"operator_next_action":{"key":"monitor","label":"Monitor inventory","uses_live_provider_calls":false,"reason":"Stored canonical inventory is present and no immediate active-board event odds batch is selected."},"uses_live_provider_calls":false},"provider_onboarding_gate":{"status":"ready","ready_for_onboarding":true,"blockers":[],"warnings":[],"blocker_count":0,"warning_count":0,"review_target_counts":{},"policy":"Provider-quota schedules should stay disabled until onboarding readiness has no blockers and any warning checks have been explicitly reviewed."},"local_recovery":{"uses_live_provider_calls":false,"option_set_recovery_needed":false,"option_set_status":"ok","option_set_message":"21 of 21 current competition periods have current option sets.","option_set_regeneration_recommended":0,"option_set_regeneration_missing":0,"option_set_regeneration_stale":0,"recommended_command":null,"regenerate_option_sets_api_request":null,"local_maintenance_api_request":null},"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"provider_quota_cost_gates":{"inventory-broad-refresh":{"status":"review_required","provider_quota":true,"profile_due":true,"uses_live_provider_calls":true,"estimated_request_credits":0,"uncapped_estimated_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":true,"live_execution_blockers":[],"skipped_live_targets":{"sports":0,"events":0,"odds":0,"scores":0},"refresh_policy_skipped_targets":{"total_skipped_target_count":0,"components":{"events":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"odds":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"scores":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]}}},"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":["basketball_nba"],"odds_sport_keys":[],"score_sport_keys":[]},"onboarding_gate":{"status":"ready","ready_for_onboarding":true,"blockers":[],"warnings":[],"blocker_count":0,"warning_count":0,"review_target_counts":{},"policy":"Provider-quota schedules should stay disabled until onboarding readiness has no blockers and any warning checks have been explicitly reviewed."},"blockers":[],"warnings":[],"operator_action":"manual_cost_review_required_before_enabling","policy":"Provider-quota schedules stay disabled until this read-only gate has no blockers and an operator accepts the current selected live targets and request-credit caps."},"inventory-settlement":{"status":"idle","provider_quota":true,"profile_due":false,"uses_live_provider_calls":false,"estimated_request_credits":0,"uncapped_estimated_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[],"skipped_live_targets":{"sports":0,"events":0,"odds":0,"scores":0},"refresh_policy_skipped_targets":{"total_skipped_target_count":0,"components":{"events":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"odds":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"scores":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]}}},"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"onboarding_gate":{"status":"ready","ready_for_onboarding":true,"blockers":[],"warnings":[],"blocker_count":0,"warning_count":0,"review_target_counts":{},"policy":"Provider-quota schedules should stay disabled until onboarding readiness has no blockers and any warning checks have been explicitly reviewed."},"blockers":[],"warnings":[],"operator_action":"keep_disabled_until_live_work_is_due","policy":"Provider-quota schedules stay disabled until this read-only gate has no blockers and an operator accepts the current selected live targets and request-credit caps."}},"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":["basketball_nba"],"odds_sport_keys":[],"score_sport_keys":[]}},"profiles":[{"profile_key":"inventory-local-maintenance","description":"Database-only inventory maintenance: expire started lines/options, lock started picks, score from stored facts, and regenerate stale/missing active option sets.","schedule_expression":"rate(15 minutes)","enabled_by_default":true,"provider_quota":false,"run_mode":"local","approval_policy":"not_required","gate_status":"default_enabled","operator_action":"safe_to_schedule","technical_blockers":[],"profile_due":false,"cost_gate":{"status":"not_applicable","provider_quota":false,"profile_due":false,"uses_live_provider_calls":false,"blockers":[],"warnings":[],"operator_action":"no_provider_quota_review_required"},"command":["python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","local","--lookahead-days","14","--regenerate-option-sets","--prune-line-snapshots","--execute"],"operator_endpoints":[{"method":"POST","path":"/inventory/operations/local-maintenance","uses_live_provider_calls":false,"purpose":"Run the database-only maintenance tick immediately."},{"method":"POST","path":"/inventory/operations/local-inventory-rebuild","uses_live_provider_calls":false,"purpose":"Rebuild PickCenter pickable inventory from stored provider rows."},{"method":"GET","path":"/inventory/operations/lookahead-policy-recommendation","uses_live_provider_calls":false,"purpose":"Review sport-specific lookahead overrides before rebuilding local inventory."},{"method":"POST","path":"/inventory/operations/active-option-sets","uses_live_provider_calls":false,"purpose":"Regenerate recommended active/upcoming option sets."}],"cost_controls":{"max_total_request_credits":null,"max_daily_request_credits":null,"max_odds_credits":null,"max_score_refresh_calls":null,"lookahead_days":14,"refresh_yield_lookback_hours":null,"provider_sport_lookahead_days":"","provider_sport_lookahead_days_map":{},"local_maintenance_regenerate_option_sets":true,"local_maintenance_prune_line_snapshots":true,"cost_notes":["Does not construct a live provider client.","Costs only the scheduled container task/database work.","Regenerates recommended active option sets from stored inventory by default.","Prunes provider line snapshots using the configured retention window by default."]},"current_plan":{"uses_live_provider_calls":false}},{"profile_key":"inventory-broad-refresh","description":"Quota-capped broad provider stocking: sports catalog, event refresh, odds refresh, local pickable-universe rebuild, and active option-set regeneration.","schedule_expression":"rate(4 hours)","enabled_by_default":false,"provider_quota":true,"run_mode":"broad_inventory","approval_policy":"disabled_until_manual_bootstrap_review","gate_status":"manual_enablement_required","operator_action":"review_provider_quota_caps_and_current_refresh_plan","technical_blockers":[],"profile_due":true,"cost_gate":{"status":"review_required","provider_quota":true,"profile_due":true,"uses_live_provider_calls":true,"estimated_request_credits":0,"uncapped_estimated_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":true,"live_execution_blockers":[],"skipped_live_targets":{"sports":0,"events":0,"odds":0,"scores":0},"refresh_policy_skipped_targets":{"total_skipped_target_count":0,"components":{"events":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"odds":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"scores":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]}}},"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":["basketball_nba"],"odds_sport_keys":[],"score_sport_keys":[]},"onboarding_gate":{"status":"ready","ready_for_onboarding":true,"blockers":[],"warnings":[],"blocker_count":0,"warning_count":0,"review_target_counts":{},"policy":"Provider-quota schedules should stay disabled until onboarding readiness has no blockers and any warning checks have been explicitly reviewed."},"blockers":[],"warnings":[],"operator_action":"manual_cost_review_required_before_enabling","policy":"Provider-quota schedules stay disabled until this read-only gate has no blockers and an operator accepts the current selected live targets and request-credit caps."},"command":["python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","broad_inventory","--max-total-request-credits","120","--max-daily-request-credits","320","--max-odds-credits","90","--lookahead-days","14","--refresh-yield-lookback-hours","168","--scheduled-profile-key","inventory-broad-refresh","--execute"],"operator_endpoints":[{"method":"GET","path":"/inventory/operations/provider-onboarding-readiness","uses_live_provider_calls":false,"purpose":"Review consolidated provider onboarding, source identity, pick-serving, and cost posture before enabling spend."},{"method":"GET","path":"/inventory/operations/refresh-policy-plan","uses_live_provider_calls":false,"purpose":"Review selected broad inventory targets and quota estimate before enabling spend."},{"method":"GET","path":"/inventory/operations/breadth-refresh-plan","uses_live_provider_calls":false,"purpose":"Convert breadth worklist rows into a bounded refresh-policy dry-run and execute template."},{"method":"POST","path":"/inventory/operations/refresh-policy","uses_live_provider_calls":true,"purpose":"Dry-run first, then execute approved broad inventory targets under configured caps."},{"method":"GET","path":"/inventory/operations/provider-sports","uses_live_provider_calls":false,"purpose":"Inspect supported sport breadth and per-sport recommended actions."},{"method":"GET","path":"/inventory/operations/breadth-summary","uses_live_provider_calls":false,"purpose":"Review top blockers and no-quota remediation options before widening provider spend."},{"method":"GET","path":"/inventory/operations/refresh-yield","uses_live_provider_calls":false,"purpose":"Review recent provider spend against current pickable inventory before enabling broad refresh spend."},{"method":"GET","path":"/inventory/operations/lookahead-policy-recommendation","uses_live_provider_calls":false,"purpose":"Review sport-specific lookahead overrides before enabling broad scheduled refresh."},{"method":"GET","path":"/inventory/operations/pickable-eligibility-diagnostics","uses_live_provider_calls":false,"purpose":"Explain why stored provider lines are or are not PickCenter-pickable."}],"cost_controls":{"max_total_request_credits":120,"max_daily_request_credits":320,"max_odds_credits":90,"max_score_refresh_calls":null,"lookahead_days":14,"refresh_yield_lookback_hours":168,"provider_sport_lookahead_days":"","provider_sport_lookahead_days_map":{},"local_maintenance_regenerate_option_sets":null,"local_maintenance_prune_line_snapshots":null,"cost_notes":["Spends live provider quota only inside the refresh-policy selected targets.","Disabled by default until a manual bootstrap confirms sport breadth and quota headroom."]},"current_plan":{"sports":0,"events":1,"odds":0,"skipped_odds":0,"estimated_odds_credits":0,"estimated_total_request_credits":0,"refresh_yield_lookback_hours":168,"next_due_at":{"sports":"2026-06-06T17:11:09.860410+00:00","events":"2026-06-05T20:26:43.139641+00:00","odds":"2026-06-05T21:11:09.860410+00:00"},"approval":{"sports_refresh_due":false,"event_sport_keys":["basketball_nba"],"odds_sport_keys":[],"score_sport_keys":[]},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":true,"live_execution_blockers":[]}},{"profile_key":"inventory-settlement","description":"Pending-pick settlement: refresh scores only for provider sports with started pending picks, then score from stored canonical result facts.","schedule_expression":"rate(30 minutes)","enabled_by_default":false,"provider_quota":true,"run_mode":"settlement","approval_policy":"disabled_until_pending_pick_review","gate_status":"idle","operator_action":"enable_when_real_pending_started_picks_need_score_refresh","technical_blockers":[],"profile_due":false,"cost_gate":{"status":"idle","provider_quota":true,"profile_due":false,"uses_live_provider_calls":false,"estimated_request_credits":0,"uncapped_estimated_request_credits":0,"max_total_request_credits":120,"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"latest_quota_remaining":null,"provider_credit_costs":{"sports_refresh":0,"events_refresh":0,"score_refresh":2},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[],"skipped_live_targets":{"sports":0,"events":0,"odds":0,"scores":0},"refresh_policy_skipped_targets":{"total_skipped_target_count":0,"components":{"events":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"odds":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]},"scores":{"skipped_target_count":0,"reason_counts":{},"sample_targets":[]}}},"selected_live_targets":{"sports_refresh_due":false,"event_sport_keys":[],"odds_sport_keys":[],"score_sport_keys":[]},"onboarding_gate":{"status":"ready","ready_for_onboarding":true,"blockers":[],"warnings":[],"blocker_count":0,"warning_count":0,"review_target_counts":{},"policy":"Provider-quota schedules should stay disabled until onboarding readiness has no blockers and any warning checks have been explicitly reviewed."},"blockers":[],"warnings":[],"operator_action":"keep_disabled_until_live_work_is_due","policy":"Provider-quota schedules stay disabled until this read-only gate has no blockers and an operator accepts the current selected live targets and request-credit caps."},"command":["python","-m","app.jobs.inventory","run-refresh-policy","--provider-key","the_odds_api","--run-mode","settlement","--max-total-request-credits","25","--max-daily-request-credits","320","--max-score-refresh-calls","25","--lookahead-days","14","--scheduled-profile-key","inventory-settlement","--execute"],"operator_endpoints":[{"method":"GET","path":"/inventory/operations/provider-onboarding-readiness","uses_live_provider_calls":false,"purpose":"Confirm provider onboarding and cost posture before enabling score-refresh spend."},{"method":"GET","path":"/inventory/operations/score-refresh-targets","uses_live_provider_calls":false,"purpose":"Inspect started pending picked events that need score refresh."},{"method":"POST","path":"/inventory/operations/score-settlement","uses_live_provider_calls":true,"purpose":"Dry-run first, then refresh approved score sports and settle picks."},{"method":"POST","path":"/inventory/operations/local-maintenance","uses_live_provider_calls":false,"purpose":"Settle from already stored canonical result facts without provider calls."}],"cost_controls":{"max_total_request_credits":25,"max_daily_request_credits":320,"max_odds_credits":null,"max_score_refresh_calls":25,"lookahead_days":14,"refresh_yield_lookback_hours":null,"provider_sport_lookahead_days":"","provider_sport_lookahead_days_map":{},"local_maintenance_regenerate_option_sets":null,"local_maintenance_prune_line_snapshots":null,"cost_notes":["Spends score endpoint calls only when pending submitted picks need results.","Disabled by default until there are real locked/pending picks to settle."]},"current_plan":{"scores":0,"skipped_scores":0,"estimated_provider_calls":0,"approval":{"score_sport_keys":[]},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"odds_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["odds_request_scope_factory","odds_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]}},{"profile_key":"inventory-breadth-expansion-plan","description":"Read-only breadth expansion plan: inspect provider sports with missing PickCenter core markets, separate no-spend/provider-coverage gaps from event-list refresh candidates, and render a bounded refresh-policy handoff without executing provider calls.","schedule_expression":"rate(6 hours)","enabled_by_default":false,"provider_quota":false,"run_mode":"breadth_expansion_plan","approval_policy":"dry_run_only_operator_handoff","gate_status":"optional_monitor","operator_action":"schedule_only_if_breadth_gap_monitoring_is_worth_task_cost","technical_blockers":[],"profile_due":false,"cost_gate":{"status":"not_applicable","provider_quota":false,"profile_due":false,"uses_live_provider_calls":false,"blockers":[],"warnings":[],"operator_action":"no_provider_quota_review_required"},"command":["python","-m","app.jobs.inventory","provider-sport-market-gap-worklist","--provider-key","the_odds_api","--limit","25","--max-refresh-sports","5"],"operator_endpoints":[{"method":"GET","path":"/inventory/operations/provider-sport-market-gap-worklist","uses_live_provider_calls":false,"purpose":"Inspect sports whose stored provider coverage is empty, event-only, inactive, or missing core markets."},{"method":"GET","path":"/inventory/operations/breadth-summary","uses_live_provider_calls":false,"purpose":"Review the same breadth blockers in PickCenter pickable-inventory terms."},{"method":"GET","path":"/inventory/operations/breadth-refresh-plan","uses_live_provider_calls":false,"purpose":"Render a bounded dry-run handoff for approved event-list expansion candidates."},{"method":"POST","path":"/inventory/operations/refresh-policy","uses_live_provider_calls":true,"purpose":"Execute only after reviewing the handoff; keep odds and score caps at zero when doing event-list expansion."}],"cost_controls":{"max_total_request_credits":null,"max_daily_request_credits":null,"max_odds_credits":null,"max_score_refresh_calls":null,"lookahead_days":null,"refresh_yield_lookback_hours":null,"provider_sport_lookahead_days":"","provider_sport_lookahead_days_map":{},"local_maintenance_regenerate_option_sets":null,"local_maintenance_prune_line_snapshots":null,"cost_notes":["Does not call the provider; it renders the gap worklist and a separate dry-run handoff.","Use it to review zero-odds event-list expansion candidates separately from broad odds refresh spend."]},"current_plan":{"breadth_expansion_limit":25,"breadth_expansion_max_refresh_sports":5,"approval_policy":"dry_run_only_operator_handoff","uses_live_provider_calls":false,"candidate_sports":0,"returned_items":0,"live_action_sports":0,"local_action_sports":0,"actionable_local_sports":0,"passive_wait_sports":0,"coverage_limitation_status":"clear","coverage_limitation_passive_wait_sports":0,"selected_event_sport_keys":[],"selected_odds_sport_keys":[],"estimated_live_request_credits":0,"dry_run_command":null}},{"profile_key":"inventory-active-board-event-odds-plan","description":"Read-only active-board event-odds refresh plan: scan active pick boards, dedupe stale visible provider events, and render approval-gated event-odds refresh handoffs without spending provider quota.","schedule_expression":"rate(30 minutes)","enabled_by_default":false,"provider_quota":false,"run_mode":"active_board_event_odds_plan","approval_policy":"dry_run_only_approval_required_for_execution","gate_status":"optional_monitor","operator_action":"schedule_only_if_active_board_event_odds_queue_monitoring_is_worth_task_cost","technical_blockers":[],"profile_due":false,"cost_gate":{"status":"not_applicable","provider_quota":false,"profile_due":false,"uses_live_provider_calls":false,"blockers":[],"warnings":[],"operator_action":"no_provider_quota_review_required"},"command":["python","-m","app.jobs.inventory","active-board-event-odds-refresh","--provider-key","the_odds_api","--limit","10","--max-estimated-request-cost","30"],"operator_endpoints":[{"method":"GET","path":"/inventory/operations/active-board-event-odds-refresh-worklist","uses_live_provider_calls":false,"purpose":"Inspect active-board event-odds targets, retry state, and capped worklist skips."},{"method":"POST","path":"/inventory/operations/active-board-event-odds-refresh","uses_live_provider_calls":false,"purpose":"Render the approval-gated active-board event-odds batch dry run without provider calls."},{"method":"POST","path":"/inventory/operations/active-board-event-odds-refresh","uses_live_provider_calls":true,"purpose":"Execute only after resubmitting exact dry-run approvals under reviewed caps."}],"cost_controls":{"max_total_request_credits":30,"max_daily_request_credits":320,"max_odds_credits":null,"max_score_refresh_calls":null,"lookahead_days":null,"refresh_yield_lookback_hours":null,"provider_sport_lookahead_days":"","provider_sport_lookahead_days_map":{},"local_maintenance_regenerate_option_sets":null,"local_maintenance_prune_line_snapshots":null,"cost_notes":["Does not call the provider unless a separate operator/API execution submits exact dry-run approvals.","Surfaces the active-board event-odds spend queue for cost review before any automated execution decision."]},"current_plan":{"active_board_event_odds_limit":10,"active_board_event_odds_max_estimated_request_cost":30,"approval_policy":"dry_run_only_approval_required_for_execution","uses_live_provider_calls":false,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"retry_backoff_targets":0,"retry_review_targets":0,"selected_estimated_request_cost":0,"deduped_estimated_request_cost":0,"execution_manifest_selected_target_count":0,"execution_manifest_estimated_request_cost":0,"live_provider_calls_require_execute_and_approval":false,"request_contracts_by_provider":{},"fallback_request_contract_providers":[],"request_contract_gaps_by_provider":{},"normalization_contracts_by_provider":{},"fallback_normalization_contract_providers":[],"normalization_contract_gaps_by_provider":{},"can_execute_live":false,"live_execution_blockers":[],"provider_daily_budget":{"max_daily_request_credits":320,"daily_used_credits":0,"daily_remaining_credits":320,"next_daily_credit_recovery_at":null,"next_daily_credit_recovery_credits":0,"latest_quota_remaining":null},"dry_run_command":"uv run python -m app.jobs.inventory active-board-event-odds-refresh --provider-key the_odds_api --limit 10 --max-estimated-request-cost 30 --limit-per-slot 500 --max-daily-request-credits 320 --json","dry_run_api_request":{"method":"POST","path":"/inventory/operations/active-board-event-odds-refresh","body":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320,"execute":false},"context":{"operation":"active_board_event_odds_refresh","selected_target_count":0,"skipped_target_count":0,"provider_events":[],"max_daily_request_credits":320,"max_estimated_request_cost":30,"estimated_request_cost":0,"worklist_totals":{"competitions":3,"periods_scanned":21,"period_targets":0,"deduped_targets":0,"selected_targets":0,"skipped_targets":0,"retry_backoff_targets":0,"retry_review_targets":0,"selected_estimated_request_cost":0,"selected_full_market_estimated_request_cost":0,"deduped_estimated_request_cost":0,"deduped_full_market_estimated_request_cost":0,"skipped_unavailable_slots":13},"filters":{"provider_key":"the_odds_api","limit":10,"max_estimated_request_cost":30,"limit_per_slot":500,"max_daily_request_credits":320},"request_contracts_by_provider":{},"normalization_contracts_by_provider":{},"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_requires_dry_run_approval":true,"operator_next_action":{"key":"monitor","label":"Monitor inventory","reason":"Stored canonical inventory is present and no immediate active-board event odds batch is selected.","uses_live_provider_calls":false,"urgency":null,"selected_targets":null,"estimated_request_cost":null,"daily_cap_allows_action":null,"partial_daily_cap_allows_action":null,"next_recovery_allows_action":null,"next_daily_credit_recovery_at":null,"sufficient_daily_credit_recovery_at":null,"partial_dry_run_command":null},"daily_remaining_partial_batch":{"available":false},"next_recovery_partial_batch":{"available":false},"latest_refresh_job":null}},{"profile_key":"inventory-readiness-check","description":"Read-only readiness gate for staging checks and scheduled-task monitoring.","schedule_expression":"rate(15 minutes)","enabled_by_default":false,"provider_quota":false,"run_mode":"readiness","approval_policy":"not_required","gate_status":"optional_monitor","operator_action":"prefer_external_monitor_unless_dedicated_task_cost_is_accepted","technical_blockers":[],"profile_due":true,"cost_gate":{"status":"not_applicable","provider_quota":false,"profile_due":true,"uses_live_provider_calls":false,"blockers":[],"warnings":[],"operator_action":"no_provider_quota_review_required"},"command":["python","-m","app.jobs.inventory","inventory-readiness","--provider-key","the_odds_api"],"operator_endpoints":[{"method":"GET","path":"/inventory/operations/readiness","uses_live_provider_calls":false,"purpose":"Read the current pick-serving readiness gate."},{"method":"GET","path":"/inventory/operations/provider-onboarding-readiness","uses_live_provider_calls":false,"purpose":"Read the provider onboarding gate used by provider-quota schedule preflight."},{"method":"GET","path":"/inventory/operations/dashboard","uses_live_provider_calls":false,"purpose":"Read the aggregate operations control plane."}],"cost_controls":{"max_total_request_credits":null,"max_daily_request_credits":null,"max_odds_credits":null,"max_score_refresh_calls":null,"lookahead_days":null,"refresh_yield_lookback_hours":null,"provider_sport_lookahead_days":null,"provider_sport_lookahead_days_map":{},"local_maintenance_regenerate_option_sets":null,"local_maintenance_prune_line_snapshots":null,"cost_notes":["Makes no provider calls.","Usually better as an external monitor or post-task check before paying for a dedicated task."]},"current_plan":{"refresh_due":true}}],"notes":["This preflight is read-only and makes no provider calls.","Enabled-by-default means safe default posture, not that hosted AWS resources already exist.","Provider-quota profiles should remain disabled until the listed operator gate is deliberately accepted."]},"score_settlement_work_queue":{"provider_key":"the_odds_api","generated_at":"2026-06-05T20:26:49.454853Z","uses_live_provider_calls":false,"status":"idle","filters":{"provider_sport_key":null,"competition_id":null,"pick_period_id":null,"max_score_refresh_calls":25,"limit":25},"totals":{"sports":0,"pending_score_refresh_sports":0,"selected_score_refresh_sports":0,"skipped_score_refresh_sports":0,"backoff_score_refresh_sports":0,"review_after_failure_sports":0,"pending_score_refresh_events":0,"pending_score_refresh_picks":0,"ready_to_score_picks":0,"needs_review_picks":0},"selected_score_refresh_sports":[],"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"score_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[],"local_maintenance_api_request":{"method":"POST","path":"/inventory/operations/local-maintenance","body":{"provider_key":"the_odds_api","regenerate_option_sets":false},"context":{"operation":"score_settlement","provider_key":"the_odds_api","provider_sport_key":null,"competition_id":null,"pick_period_id":null,"max_score_refresh_calls":null,"selected_score_refresh_sports":[],"stored_results_only":true,"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"score_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false,"note":"Scores pending picks from stored canonical results and can mark stale unresolved picks for review."},"stored_score_settlement_api_request":{"method":"POST","path":"/inventory/operations/local-maintenance","body":{"provider_key":"the_odds_api","regenerate_option_sets":false,"prune_line_snapshots":false},"context":{"operation":"score_settlement","provider_key":"the_odds_api","provider_sport_key":null,"competition_id":null,"pick_period_id":null,"max_score_refresh_calls":null,"selected_score_refresh_sports":[],"stored_results_only":true,"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"score_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false,"note":"Scores pending picks from stored canonical event results; does not refresh provider scores."},"score_settlement_api_request":{"dry_run":{"method":"POST","path":"/inventory/operations/score-settlement","body":{"provider_key":"the_odds_api","max_score_refresh_calls":25,"execute_live":false,"settle_after_refresh":true},"context":{"operation":"score_settlement","provider_key":"the_odds_api","provider_sport_key":null,"competition_id":null,"pick_period_id":null,"max_score_refresh_calls":25,"selected_score_refresh_sports":[],"stored_results_only":false,"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"score_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false},"execute_template":{"method":"POST","path":"/inventory/operations/score-settlement","body":{"provider_key":"the_odds_api","max_score_refresh_calls":25,"execute_live":true,"settle_after_refresh":true,"approved_score_sports":[],"approved_plan_hash":"0401f96c916d44244a83add60515e08dcab8355eefd458d830c5a1116f0d0382"},"context":{"operation":"score_settlement","provider_key":"the_odds_api","provider_sport_key":null,"competition_id":null,"pick_period_id":null,"max_score_refresh_calls":25,"selected_score_refresh_sports":[],"stored_results_only":false,"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"score_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[]},"uses_live_provider_calls":false,"can_execute_live":false,"live_execution_blockers":[]},"provider_contracts":{"normalization":{"normalization_contract":"provider_owned","normalization_contract_hooks":["sport_normalizer","event_normalizer","line_input_builder","score_normalizer"],"normalization_contract_gaps":[]},"score_request":{"request_scope_contract":"provider_owned","request_cost_contract":"provider_owned","request_contract_hooks":["score_request_scope_factory","score_request_cost_estimator"],"request_contract_gaps":[]}},"can_execute_live":false,"live_execution_blockers":[],"execute_requires_dry_run_approval":true,"note":"Execute only if the dry-run approval score_sport_keys exactly match approved_score_sports."},"sports":[],"targets":[]},"score_refresh_targets":[],"pick_reviews":[]}