{"provider_key":"the_odds_api","generated_at":"2026-06-05T18:43:43.283127Z","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":14,"stale_active_option_sets":0,"option_set_regeneration_periods":14,"option_set_regeneration_current":14,"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":11,"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-05T18:43:42.383904Z","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-05T16:10:55.436542Z","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":{}}