Estadísticas / Fútbol / Inglaterra. FA WSL / Aston Villa Femenino vs Crystal Palace Femenino

Aston Villa Femenino vs Crystal Palace Femenino Statistics & Analysis

Oct 04, 2026 - 13:00
1 0.78
1 0.68
xG Accuracy: 86%
Casa de apuestas premium stake: los nuevos usuarios pueden usar el código promoFHn2uDc1 FHn2uDc1. Registrarse

Mercados rastreados versus resultado de tiempo completo

Cada fila compara el modelo previo al partido con el resultado de tiempo completo.

  • Mercado Predicción Resultado Resultado
  • Más / Menos 2.5 Menos de 2.5 Menos de 2.5 (2 objetivos) ✔ Correcto
  • Ambos Equipos Marcarán BTTS No Sí ✖ Incorrecto
  • 1X2 Aston Villa Femenino Dibujar ✖ Incorrecto
  • Perspectivas de marcador exacto 0-0, 1-0, 0-1, 1-1, 2-0 1-1 ✔ Correcto

Validation Report

Immutable Snapshot

Prediction Time: Sep 29, 2026 · 01:29 UTC Snapshot ID: dp-11668202

Closing Odds 1.78
AI Fair Odds —
CLV +0.0%
Final Result Draw · Aston Villa Femenino 1–1 Crystal Palace Femenino
Prediction ✖ Missed
Decision Grade F

Model Performance

This prediction contributes to:

  • Primary Bets ROI (180d): -100.0%

Inteligencia de mercado

Lectura de apoyo tras la elección principal: cómo se movió el feed de cierre priorizado frente al modelo.

Briefing de mercado

El mercado se mantuvo estable antes del inicio. No se detectó un cambio implícito relevante entre PRE30 y PRE10 en la captura priorizada.

A pesar del movimiento tardío limitado, el modelo sigue tasando Dibujar (1X2),Crystal Palace Femenino (1X2),Menos de 2,5 goles claramente por encima de lo implícito en esas capturas de cierre: es una lectura estática de «modelo vs precio», no de persecución tardía.

El modelo aún supera la implícita de cierre en Menos de 2,5 goles en unos 37.8 puntos porcentuales — la señal de desajuste más clara de esta página.

Modelo vs implícita de cierre

Mercado Modelo % Implícita cierre % Brecha (pp)
Aston Villa Femenino (1X2) 38.6 52.1 -13.5
Dibujar (1X2) 34.9 22.8 +12.1
Crystal Palace Femenino (1X2) 26.5 25.1 +1.4
Más de 2,5 goles 18.1 55.9 -37.8
Menos de 2,5 goles 81.9 44.1 +37.8
Qué significa

En simple: el modelo ronda el 81.9% en Menos de 2,5 goles, mientras la captura de cierre implicaba unos 44.1%. La diferencia —unos 37.8 puntos porcentuales— es la mayor brecha modelo-mercado destacada aquí.

Definiciones rápidas: «implícita de cierre» es la probabilidad implícita en las cuotas finales capturadas (tras un de-vig simple). «Brecha (pp)» = porcentaje del modelo menos esa implícita, en puntos porcentuales (pp).

Movimiento de cuota antes del inicio

Una casa prioritaria por instantáneo (no todas). Ruta de capturas: PRE30 → PRE10 · Casa: Pinnacle

Entre paréntesis en columnas: Cierre = primera captura disponible en PRE1→PRE5→PRE10→PRE30; Temprano = primera en PRE30→PRE10→PRE5 distinta de Cierre.

Las cuotas detalladas están plegadas abajo — el movimiento implícito fue insignificante.

Ver tabla completa línea a línea
Mercado Temprano (PRE30) Cierre (PRE10) Δ implícita (pp)
Aston Villa Femenino (1X2) 1.78 1.78 0.0
Dibujar (1X2) 4.06 4.06 0.0
Crystal Palace Femenino (1X2) 3.69 3.69 0.0
Más de 2,5 goles 1.69 1.69 0.0
Menos de 2,5 goles 2.14 2.14 0.0

El informe IA aún no está disponible para este partido. Vuelva a ejecutar «Generación masiva de cuotas» tras actualizar el servidor para generar el resumen.

View technical JSON
{
  "bundle_version": 1,
  "content_hash": "bba74a284d46410435dd0e626cb90a7707645beb23948be134befa319e95afeb",
  "decision_algo_version": "2.5.0",
  "facts": {
    "ai_fp": {
      "afp_away_win_prob": 0.2651,
      "afp_draw_prob": 0.3495,
      "afp_home_win_prob": 0.3854,
      "away_predicted_xg": 0.68,
      "away_win_prob": 0.2651,
      "away_win_prob_posterior": 0.2651,
      "bayes_applied": 1,
      "btts_no_prob": 0.717,
      "btts_yes_prob": 0.283,
      "dc_rho": -0.13,
      "draw_prob": 0.3495,
      "draw_prob_posterior": 0.3495,
      "fair_odds_away": 3.77,
      "fair_odds_away_posterior": 3.77,
      "fair_odds_draw": 2.86,
      "fair_odds_draw_posterior": 2.86,
      "fair_odds_home": 2.59,
      "fair_odds_home_posterior": 2.59,
      "home_predicted_xg": 0.78,
      "home_win_prob": 0.3854,
      "home_win_prob_posterior": 0.3854,
      "over_25_prob": 0.181,
      "prediction_confidence": "very_low",
      "under_25_prob": 0.819
    },
    "api_prediction": {
      "advice": "Combo Winner : Crystal Palace Femenino and +1.5 goals",
      "main_pick_display": "No Strong Winner Bet",
      "percent_away": "45%",
      "percent_draw": "45%",
      "percent_home": "10%",
      "winner_name": "Crystal Palace Femenino"
    },
    "away_xg": 0.68,
    "betting_insight": {
      "bet_label": "Aston Villa Femenino",
      "confidence": null,
      "main_pick_meta": {
        "confidence": "low",
        "display_text": "No Strong Winner Bet",
        "edge": -0.1349,
        "edge_gap": 0.0364,
        "market": "1X2",
        "market_prob": 0.5206,
        "model_prob": 0.3857,
        "pick_type": "no_strong",
        "probabilities": {
          "away": 26.5,
          "draw": 34.9,
          "home": 38.6
        },
        "reason": "No clear edge in 1X2 market",
        "selection": null,
        "selection_name": null
      },
      "market_comparison": [
        {
          "affi_link": "",
          "bookmaker_name": "Pinnacle",
          "odd": 1.78
        }
      ],
      "risk_color": null,
      "risk_key": null,
      "stacked_market": null,
      "value_bet": {
        "best_odds": 1.78,
        "bookmaker_id": 0,
        "bookmaker_name": "Pinnacle",
        "display_market": "Aston Villa Femenino Win",
        "is_value": false,
        "label": "Home",
        "market_fair_odds": 1.92,
        "market_odds": 1.78,
        "model_odds": 2.59,
        "overround": 7.9,
        "prob_edge": -17.6,
        "value_pct": -31.3,
        "value_rating": "no_value"
      }
    },
    "betting_markets": {
      "btts": {
        "away_clean_sheet": 2,
        "away_failed_to_score": 2,
        "away_played": 4,
        "away_score_rate": 49.3,
        "home_clean_sheet": 0,
        "home_failed_to_score": 1,
        "home_played": 4,
        "home_score_rate": 54.2,
        "no_prob": 71.7,
        "pick": "No",
        "pick_prob": 71.7,
        "source": "xG_dc",
        "strong_pick": true,
        "yes_prob": 28.3
      },
      "correct_score": {
        "away_expected": 0.68,
        "home_expected": 0.78,
        "scores": [
          {
            "away": 0,
            "home": 0,
            "label": "0-0",
            "prob": 23.2
          },
          {
            "away": 0,
            "home": 1,
            "label": "1-0",
            "prob": 18.1
          },
          {
            "away": 1,
            "home": 0,
            "label": "0-1",
            "prob": 15.8
          },
          {
            "away": 1,
            "home": 1,
            "label": "1-1",
            "prob": 12.3
          },
          {
            "away": 0,
            "home": 2,
            "label": "2-0",
            "prob": 7.1
          }
        ],
        "source": "xG"
      },
      "double_chance": {
        "options": [
          {
            "key": "1X",
            "label": "Aston Villa Femenino or Draw",
            "prob": 73.4
          },
          {
            "key": "12",
            "label": "Aston Villa Femenino or Crystal Palace Femenino",
            "prob": 65.0
          },
          {
            "key": "X2",
            "label": "Draw or Crystal Palace Femenino",
            "prob": 61.4
          }
        ],
        "pick_key": "1X",
        "pick_label": "Aston Villa Femenino or Draw",
        "pick_prob": 73.4
      },
      "match_winner": {
        "away_pct": 26.5,
        "draw_pct": 34.9,
        "home_pct": 38.5,
        "lean_key": "home",
        "lean_label": "Aston Villa Femenino"
      },
      "over_under": {
        "api_hint": "+1.5",
        "avg_total": 1.46,
        "away_avg_scored": 1.0,
        "confidence": "high",
        "home_avg_scored": 0.8,
        "over_prob": 18.1,
        "pick": "Under 2.5",
        "pick_prob": 81.9,
        "source": "xG_dc",
        "strong_pick": true,
        "total_expected": 1.46,
        "under_prob": 81.9
      },
      "prob_source": "poisson",
      "value_bet_enhanced": {
        "bookmaker_id": 0,
        "bookmaker_name": "Pinnacle",
        "edge": 41.7,
        "implied_prob": 24.6,
        "is_value": true,
        "label": "Draw",
        "market": "Draw",
        "model_prob": 34.9,
        "odds": 4.06
      }
    },
    "closing_line_bundle": {
      "away_team": "Crystal Palace Femenino",
      "closing_1x2_probs_pct": {
        "away": 25.11,
        "draw": 22.82,
        "home": 52.06
      },
      "closing_bookmaker": "Pinnacle",
      "closing_capture": "PRE10",
      "closing_fetched_at": "2026-10-04 12:52:48",
      "closing_source": "apis_closing_odds",
      "early_bookmaker": "Pinnacle",
      "early_capture": "PRE30",
      "early_fetched_at": "2026-10-04 12:32:30",
      "has_data": true,
      "home_team": "Aston Villa Femenino",
      "largest_move_kind": null,
      "max_abs_move_pp": 0.0,
      "model_vs_closing": [
        {
          "closing_implied_pct": 52.06,
          "gap_pp": -13.49,
          "kind": "1x2_h",
          "model_pct": 38.57
        },
        {
          "closing_implied_pct": 22.82,
          "gap_pp": 12.11,
          "kind": "1x2_d",
          "model_pct": 34.93
        },
        {
          "closing_implied_pct": 25.11,
          "gap_pp": 1.38,
          "kind": "1x2_a",
          "model_pct": 26.5
        },
        {
          "closing_implied_pct": 55.87,
          "gap_pp": -37.77,
          "kind": "ou_o",
          "model_pct": 18.1
        },
        {
          "closing_implied_pct": 44.13,
          "gap_pp": 37.77,
          "kind": "ou_u",
          "model_pct": 81.9
        }
      ],
      "movement": [
        {
          "closing": 1.78,
          "early": 1.78,
          "implied_closing_pct": 52.06,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 52.06,
          "kind": "1x2_h"
        },
        {
          "closing": 4.06,
          "early": 4.06,
          "implied_closing_pct": 22.82,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 22.82,
          "kind": "1x2_d"
        },
        {
          "closing": 3.69,
          "early": 3.69,
          "implied_closing_pct": 25.11,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 25.11,
          "kind": "1x2_a"
        },
        {
          "closing": 1.69,
          "early": 1.69,
          "implied_closing_pct": 55.87,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 55.87,
          "kind": "ou_o"
        },
        {
          "closing": 2.14,
          "early": 2.14,
          "implied_closing_pct": 44.13,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 44.13,
          "kind": "ou_u"
        }
      ],
      "movement_negligible": true,
      "same_bookmaker": true,
      "top_value_gap": {
        "gap_pp": 37.8,
        "kind": "ou_u"
      }
    },
    "correct_score_insight": {
      "best_value": null,
      "lean_card": {
        "diff_pp": 16.5,
        "ev": 2.48,
        "has_edge": true,
        "label": "0-0",
        "market_odds": 15.0,
        "market_prob": 0.0667,
        "market_prob_pct": 6.7,
        "model_prob": 0.232,
        "model_prob_pct": 23.2,
        "n_bookmakers": 6,
        "status_key": "positive_edge"
      },
      "most_likely": {
        "label": "0-0",
        "prob": 23.2
      },
      "top5": [
        {
          "label": "0-0",
          "prob": 23.2
        },
        {
          "label": "1-0",
          "prob": 18.1
        },
        {
          "label": "0-1",
          "prob": 15.8
        },
        {
          "label": "1-1",
          "prob": 12.3
        },
        {
          "label": "2-0",
          "prob": 7.1
        }
      ]
    },
    "home_xg": 0.78,
    "homepage_pick": null,
    "market_cards": [
      {
        "decision": "value_bet",
        "decision_layer": {
          "alpha": 0.1125,
          "available": true,
          "consensus_odds": 2.09,
          "edge": 0.0425,
          "edge_pp": 4.3,
          "market_prob": 0.4412,
          "mode": "market_first_ou",
          "model_prob": 0.819,
          "n_bookmakers": 7,
          "over": {
            "alpha": 0.1238,
            "best_odd": 1.65,
            "edge": -0.0468,
            "ev": -0.1551,
            "implied_prob": 0.5588,
            "model_prob": 0.181,
            "p_final": 0.5121
          },
          "p_final": 0.4837,
          "prediction_confidence": "very_low",
          "raw_edge_pp": 37.8,
          "raw_signal_ev": 0.7117,
          "risk_adj_ev": 0.0109,
          "under": {
            "alpha": 0.1125,
            "best_odd": 2.09,
            "edge": 0.0425,
            "ev": 0.0109,
            "implied_prob": 0.4412,
            "model_prob": 0.819,
            "p_final": 0.4837
          },
          "value_side": "under"
        },
        "ev_available": true,
        "ev_over": -0.6887,
        "ev_over_display": {
          "capped": false,
          "raw_pct": -68.9,
          "text": "-68.9%"
        },
        "ev_under": 0.8018,
        "ev_under_display": {
          "capped": true,
          "raw_pct": 80.2,
          "text": "+25%+"
        },
        "featured": true,
        "id": "ou_2_5",
        "max_ev": 0.8018,
        "n_bookmakers": 7,
        "over_prob": 18.1,
        "sort_key": 10871.62,
        "tier": "best",
        "under_prob": 81.9,
        "value_side": "under"
      },
      {
        "decision": "value_bet",
        "decision_layer": {
          "alpha": 0.1298,
          "available": true,
          "consensus_odds": 2.125,
          "edge": 0.0366,
          "edge_pp": 3.7,
          "market_prob": 0.4348,
          "mode": "market_first_btts",
          "model_prob": 0.717,
          "n_bookmakers": 5,
          "no": {
            "alpha": 0.1298,
            "best_odd": 2.125,
            "edge": 0.0366,
            "ev": 0.0018,
            "implied_prob": 0.4348,
            "model_prob": 0.717,
            "p_final": 0.4715
          },
          "p_final": 0.4715,
          "prediction_confidence": "very_low",
          "raw_edge_pp": 28.2,
          "raw_signal_ev": 0.5236,
          "risk_adj_ev": 0.0018,
          "value_side": "no",
          "yes": {
            "alpha": 0.1427,
            "best_odd": 1.635,
            "edge": -0.0403,
            "ev": -0.1418,
            "implied_prob": 0.5652,
            "model_prob": 0.283,
            "p_final": 0.5249
          }
        },
        "ev_available": true,
        "ev_no": 0.5774,
        "ev_no_display": {
          "capped": true,
          "raw_pct": 57.7,
          "text": "+25%+"
        },
        "ev_yes": -0.5274,
        "ev_yes_display": {
          "capped": false,
          "raw_pct": -52.7,
          "text": "-52.7%"
        },
        "featured": false,
        "id": "btts",
        "max_ev": 0.5774,
        "n_bookmakers": 5,
        "no_prob": 71.7,
        "sort_key": 10519.66,
        "tier": "best",
        "value_side": "no",
        "yes_prob": 28.3
      },
      {
        "authority_action": "no_bet",
        "authority_note": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
        "consensus_odds": 1.78,
        "decision": "no_bet",
        "disagreement_label": "Moderate",
        "disagreement_level": "moderate",
        "ev": -0.1882,
        "ev_available": true,
        "ev_display": {
          "capped": false,
          "raw_pct": -18.8,
          "text": "-18.8%"
        },
        "featured": false,
        "id": "1x2",
        "implied_prob": 0.5206,
        "is_extreme_disagreement": false,
        "max_ev": 0.0071,
        "max_ev_display": {
          "capped": false,
          "raw_pct": 0.7,
          "text": "+0.7%"
        },
        "model_prob": 0.3857,
        "raw_edge_display": "-13.5 percentage points",
        "raw_edge_pp": -13.5,
        "raw_signal_ev": -0.3135,
        "raw_signal_ev_display": "-31.4%",
        "show_primary_label": false,
        "side_label": "Aston Villa Femenino",
        "sort_key": 5205.68,
        "tier": "lean"
      },
      {
        "featured": false,
        "id": "correct_score",
        "sort_key": 849.6,
        "tier": "risk",
        "top_label": "0-0",
        "top_prob": 23.2
      }
    ],
    "market_intelligence": {
      "betting_signal": {
        "alert_breadth": "2/9",
        "alert_breadth_note": "2/9 sportsbooks confirmed",
        "alert_move": "\u2191 +4.8%",
        "alert_team": "Aston Villa Femenino",
        "alert_title": "Sharp Money Alert",
        "divergence_pp": 13.6,
        "has_alert": false,
        "hero_edge_pp": -13.52,
        "hero_label": "Aston Villa Femenino",
        "market_prob_pct": 52.1,
        "market_team": "Aston Villa Femenino",
        "model_prob_pct": 38.5,
        "model_team": "Aston Villa Femenino",
        "show": true,
        "status_icon": "!",
        "status_key": "caution",
        "status_label": "Use caution",
        "status_line": "Use caution \u2014 signals are mixed",
        "steam_score": 19,
        "steam_subtitle": "Limited conviction",
        "steam_tier": "C",
        "title": "Betting Signal"
      },
      "decision_chain": {
        "academy_links": [
          {
            "key": "market_disagree",
            "read_min": 5,
            "title": "When Should You Trust AI Over the Market?",
            "url": "/academy/ai-betting/when-should-you-trust-ai-over-the-market/en"
          },
          {
            "key": "steam",
            "read_min": 4,
            "title": "What Is a Steam Move?",
            "url": "/academy/betting-market/what-is-a-steam-move/en"
          },
          {
            "key": "clv_pending",
            "read_min": 3,
            "title": "Why CLV Matters More Than Win Rate",
            "url": "/academy/clv/why-clv-matters-more-than-win-rate/en"
          }
        ],
        "alignment": {
          "direction_aligned": true,
          "direction_key": "agree",
          "gap_pp": 13.5,
          "key": "conflict",
          "label": "Disagree",
          "model_strong": false,
          "pricing_aligned": true,
          "pricing_key": "moderate",
          "probability_gap_pp": 13.5,
          "summary": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino."
        },
        "authority": {
          "action": "no_bet",
          "alignment": {
            "direction_aligned": true,
            "direction_key": "agree",
            "gap_pp": 13.5,
            "key": "conflict",
            "label": "Disagree",
            "model_strong": false,
            "pricing_aligned": true,
            "pricing_key": "moderate",
            "probability_gap_pp": 13.5,
            "summary": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino."
          },
          "alignment_key": "conflict",
          "best_consensus_ev": 0.8018,
          "best_outlier_ev": 0.8018,
          "confidence_band": "Moderate\u2013Low",
          "decision_strength": 3.0,
          "decision_strength_v1": 6.0,
          "decision_strength_v2": 3.5,
          "decision_type": "NO_SIGNAL",
          "execution_confidence": 18,
          "extreme_disagreement": false,
          "final_verdict_audit": {
            "action": "Monitor closing market and validate with CLV.",
            "action_label": "Action",
            "decision": "No Primary Bet",
            "is_primary": false,
            "snapshot": "The Decision Model estimates Aston Villa Femenino at 38.6%, compared with a no-vig market probability of 52.1%.",
            "why": [
              {
                "text": "Decision Model identifies Aston Villa Femenino as the value side (38.6%)",
                "tone": "ok"
              },
              {
                "text": "Market pricing conflicts with the model lean",
                "tone": "bad"
              },
              {
                "text": "Model\u2013market disagreement blocks Primary sizing",
                "tone": "bad"
              },
              {
                "text": "Market quality / price reliability is insufficient for Primary",
                "tone": "bad"
              },
              {
                "text": "Model confidence reduced due to calibration uncertainty",
                "tone": "bad"
              }
            ],
            "why_label": "Decision Summary"
          },
          "gap_pp": 13.5,
          "gates_failed": [
            "Reliability below 65"
          ],
          "has_top_pick": true,
          "headline": "No Primary Bet",
          "hero_mode": "default",
          "icon": "\u25cb",
          "label": "No Primary Bet",
          "market_signal": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
          "model_conflict_detail": null,
          "model_lean": "Aston Villa Femenino",
          "no_primary_reasons": {
            "all_triggered": [
              "market_conflict",
              "market_quality",
              "calibration_risk"
            ],
            "calibration_mode": "soft",
            "codes": [
              "market_conflict",
              "market_quality"
            ],
            "label": "Reason",
            "other_factors": [
              {
                "code": "market_quality",
                "detail": "Price reliability is weak (thin coverage, outlier quote, or low book agreement).",
                "name": "Market Quality Risk",
                "short": "Market Quality Risk",
                "tone": "warn"
              }
            ],
            "other_label": "Other factors",
            "primary": {
              "code": "market_conflict",
              "detail": "Model lean and market pricing / drift are not aligned.",
              "name": "Market Conflict",
              "short": "Market Conflict",
              "subtype": "drift_against_model",
              "tone": "warn"
            },
            "secondary": {
              "code": "market_quality",
              "detail": "Price reliability is weak (thin coverage, outlier quote, or low book agreement).",
              "name": "Market Quality Risk",
              "short": "Market Quality Risk",
              "tone": "warn"
            },
            "version": "v1"
          },
          "outlier_detected": false,
          "outlier_excluded_panel": "",
          "primary_allowed": false,
          "primary_block_explain": {
            "entries": [
              {
                "key": "positive_ev",
                "label": "Consensus EV +80.2% meets Primary gate (\u2265+5.0%)",
                "ok": true
              },
              {
                "key": "gate",
                "label": "Reliability below 65",
                "ok": false
              }
            ],
            "lean_ev_threshold_pct": 2.0,
            "primary_ev_threshold_pct": 5.0,
            "subtitle": "Primary needs consensus EV \u2265 +5.0% plus reliability/execution/calibration gates (Decision Strength is explain-only). Lean/tracked gate is +2.0% (selective only \u2014 not default Primary sizing).",
            "title": "Why not Primary?"
          },
          "primary_gate_checklist": "Gate checklist: Consensus EV +80.2% \u2705 (need \u2265+5.0%) \u00b7 Calibration See checklist \u274c \u2192 Primary blocked. Decision Strength 3.0/10 (explain only, not a Primary gate). If you still act under hard block: example stake 0.10\u20130.20% bankroll (never Primary).",
          "primary_gate_snapshot": "Primary Gate Snapshot: Consensus EV +80.2% (gate \u2265+5.0%) \u00b7 Calibration: See checklist \u2192 Primary blocked \u00b7 Decision Strength 3.0/10 (display only)",
          "primary_gates": {
            "items": [
              {
                "key": "extreme_gap",
                "label": "Extreme gap",
                "ok": true,
                "value": "no"
              },
              {
                "key": "xg_calibration",
                "label": "xG calibration",
                "ok": true,
                "value": "warning"
              },
              {
                "key": "reliability",
                "label": "Rel",
                "ok": false,
                "value": "53 (\u226565)"
              },
              {
                "key": "execution",
                "label": "Exec",
                "ok": false,
                "value": "18 (\u226565)"
              },
              {
                "key": "alignment",
                "label": "Align",
                "ok": false,
                "value": "conflict"
              },
              {
                "key": "consensus_ev",
                "label": "ConsEV",
                "ok": true,
                "value": "+80.2% (\u2265+5.0%)"
              },
              {
                "key": "top_pick",
                "label": "Pick",
                "ok": true,
                "value": "true"
              },
              {
                "key": "validation",
                "label": "Validation",
                "ok": true,
                "value": "true"
              }
            ],
            "passed": 5,
            "total": 8
          },
          "primary_type": null,
          "reasons": [
            "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
            "Decision strength: 3.0/10",
            "Reliability below 65"
          ],
          "reliability_score": 53,
          "speed_read": "Speed read: Model Signal can look moderate/strong while Decision Strength stays low after calibration \u2014 Strength alone does not block Primary (v2.5+); still check reliability/execution/EV hard gates.",
          "strength_v2_breakdown": [
            "Base decision score (v1)",
            "Market steam conflicts with model",
            "Consensus-line +EV",
            "Low xG separation (league-average noise)"
          ],
          "subline": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
          "thresholds": {
            "extreme_gap_pp": 30.0,
            "lean_min_consensus_ev": 0.02,
            "lean_min_strength": 5.0,
            "min_consensus_ev": 0.05,
            "min_execution": 65,
            "min_reliability": 65,
            "min_strength": 7.0,
            "source": "db",
            "user_id": 2
          },
          "thresholds_source": "db",
          "thresholds_user_id": 2,
          "tier": "observe",
          "validation_ok": true,
          "value_context": {
            "consensus_ev": -0.1882,
            "consensus_ev_display": "-18.8%",
            "consensus_odds": 1.78,
            "disagreement_label": "Moderate",
            "disagreement_level": "moderate",
            "implied_prob": 0.5206,
            "is_extreme_disagreement": false,
            "model_prob": 0.3857,
            "raw_edge_display": "-13.5 percentage points",
            "raw_edge_pp": -13.5,
            "raw_implied_prob": 0.5617977528089888,
            "raw_signal_ev": -0.3135,
            "raw_signal_ev_display": "-31.4%"
          },
          "version": "v2.5",
          "xg_calibration": {
            "block_value_alert": true,
            "calibration_status": "warning",
            "deviation_pct": -42.2,
            "reasons": [
              "Low xG separation gap=0.1 (noise / no edge)"
            ],
            "recommended_action": "monitor",
            "strength_delta": -2.0,
            "uplift_away": null,
            "uplift_home": null,
            "xg_separation": {
              "band": "flat",
              "block_value_alert": true,
              "separation_score": -20,
              "strength_delta": -2.0,
              "xg_gap": 0.1
            }
          }
        },
        "bet_status": "no_bet",
        "books_breadth_display": "2/9",
        "breadth_ratio": 0.2222222222222222,
        "evidence": {
          "score": 57,
          "signals": [
            {
              "icon": "\u25cb",
              "key": "statistical_edge",
              "label": "No strong statistical edge",
              "status": "neutral"
            },
            {
              "icon": "!",
              "key": "market_agreement",
              "label": "Direction agrees; pricing still diverges",
              "status": "caution"
            },
            {
              "icon": "!",
              "key": "steam",
              "label": "Market drift conflicts with model",
              "status": "caution"
            },
            {
              "icon": "!",
              "key": "validation",
              "label": "Validation warning",
              "status": "caution"
            }
          ],
          "stars": 2,
          "tier": "moderate",
          "tier_label": "Moderate"
        },
        "forecast_reliability": {
          "breakdown": [
            {
              "key": "validation",
              "label": "Validation: Warning",
              "tone": "caution"
            },
            {
              "key": "gap",
              "label": "Large market gap (14 pp)",
              "tone": "caution"
            },
            {
              "key": "steam",
              "label": "Market drift conflicts with model",
              "tone": "caution"
            }
          ],
          "parts": {
            "alignment": 18.2,
            "data_quality": 12.0,
            "market_coverage": 2.2,
            "steam_coherence": 2.0,
            "validation": 14.0
          },
          "score": 53,
          "stars": 2,
          "tier": "moderate",
          "tier_label": "Moderate"
        },
        "lean_gap_pp": 13.52,
        "market_agreement": "weak",
        "max_gap_pp": 13.52,
        "model_calibration": {
          "away_xg": 0.68,
          "calibration_status": "ok",
          "deviation_pct": -42.0,
          "elevated": false,
          "home_xg": 0.78,
          "impact_note": "",
          "league_avg_xg": 1.35,
          "peak_xg": 0.78,
          "status_label": "Within typical league range",
          "summary": "Home xG 0.78 \u00b7 Away xG 0.68 \u00b7 League avg 1.35 \u00b7 Peak deviation -42%",
          "title": "Model Calibration Check"
        },
        "move_is_drift": true,
        "mv_status": "warning",
        "odds_delta_pct": 4.8,
        "steam_conflicts": true,
        "steam_move_display": "\u2191 +4.8%",
        "steam_team": "Aston Villa Femenino",
        "suppress_execution": false,
        "value_split": {
          "execution_confidence": {
            "label": "Monitoring Confidence",
            "score": 18,
            "tier": "not_reliable",
            "tier_label": "Not reliable"
          },
          "market_compatibility": {
            "label": "Pricing proximity (inverse gap)",
            "note": "This score falls as the probability gap (pp) rises \u2014 it is NOT a bet green light. Direction may still agree (see Alignment above). Formula: proximity = max(0, 100 \u2212 5\u00d7pp). Example: 16 pp \u2192 20/100 (diverged).",
            "score": 11,
            "tier": "not_reliable",
            "tier_label": "Not reliable"
          },
          "model_edge_strength": {
            "label": "Model Signal Strength",
            "score": 38,
            "tier": "low",
            "tier_label": "Low"
          },
          "model_value": {
            "label": "Pricing proximity (inverse gap)",
            "note": "This score falls as the probability gap (pp) rises \u2014 it is NOT a bet green light. Direction may still agree (see Alignment above). Formula: proximity = max(0, 100 \u2212 5\u00d7pp). Example: 16 pp \u2192 20/100 (diverged).",
            "score": 11,
            "tier": "not_reliable",
            "tier_label": "Not reliable"
          },
          "recommendation": {
            "action": "no_bet",
            "label": "No Primary Bet"
          }
        },
        "verdict": {
          "agree_note": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
          "alignment": {
            "direction_aligned": true,
            "direction_key": "agree",
            "gap_pp": 13.5,
            "key": "conflict",
            "label": "Disagree",
            "model_strong": false,
            "pricing_aligned": true,
            "pricing_key": "moderate",
            "probability_gap_pp": 13.5,
            "summary": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino."
          },
          "authority": {
            "action": "no_bet",
            "alignment": {
              "direction_aligned": true,
              "direction_key": "agree",
              "gap_pp": 13.5,
              "key": "conflict",
              "label": "Disagree",
              "model_strong": false,
              "pricing_aligned": true,
              "pricing_key": "moderate",
              "probability_gap_pp": 13.5,
              "summary": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino."
            },
            "alignment_key": "conflict",
            "best_consensus_ev": 0.8018,
            "best_outlier_ev": 0.8018,
            "confidence_band": "Moderate\u2013Low",
            "decision_strength": 3.0,
            "decision_strength_v1": 6.0,
            "decision_strength_v2": 3.5,
            "decision_type": "NO_SIGNAL",
            "execution_confidence": 18,
            "extreme_disagreement": false,
            "final_verdict_audit": {
              "action": "Monitor closing market and validate with CLV.",
              "action_label": "Action",
              "decision": "No Primary Bet",
              "is_primary": false,
              "snapshot": "The Decision Model estimates Aston Villa Femenino at 38.6%, compared with a no-vig market probability of 52.1%.",
              "why": [
                {
                  "text": "Decision Model identifies Aston Villa Femenino as the value side (38.6%)",
                  "tone": "ok"
                },
                {
                  "text": "Market pricing conflicts with the model lean",
                  "tone": "bad"
                },
                {
                  "text": "Model\u2013market disagreement blocks Primary sizing",
                  "tone": "bad"
                },
                {
                  "text": "Market quality / price reliability is insufficient for Primary",
                  "tone": "bad"
                },
                {
                  "text": "Model confidence reduced due to calibration uncertainty",
                  "tone": "bad"
                }
              ],
              "why_label": "Decision Summary"
            },
            "gap_pp": 13.5,
            "gates_failed": [
              "Reliability below 65"
            ],
            "has_top_pick": true,
            "headline": "No Primary Bet",
            "hero_mode": "default",
            "icon": "\u25cb",
            "label": "No Primary Bet",
            "market_signal": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
            "model_conflict_detail": null,
            "model_lean": "Aston Villa Femenino",
            "no_primary_reasons": {
              "all_triggered": [
                "market_conflict",
                "market_quality",
                "calibration_risk"
              ],
              "calibration_mode": "soft",
              "codes": [
                "market_conflict",
                "market_quality"
              ],
              "label": "Reason",
              "other_factors": [
                {
                  "code": "market_quality",
                  "detail": "Price reliability is weak (thin coverage, outlier quote, or low book agreement).",
                  "name": "Market Quality Risk",
                  "short": "Market Quality Risk",
                  "tone": "warn"
                }
              ],
              "other_label": "Other factors",
              "primary": {
                "code": "market_conflict",
                "detail": "Model lean and market pricing / drift are not aligned.",
                "name": "Market Conflict",
                "short": "Market Conflict",
                "subtype": "drift_against_model",
                "tone": "warn"
              },
              "secondary": {
                "code": "market_quality",
                "detail": "Price reliability is weak (thin coverage, outlier quote, or low book agreement).",
                "name": "Market Quality Risk",
                "short": "Market Quality Risk",
                "tone": "warn"
              },
              "version": "v1"
            },
            "outlier_detected": false,
            "outlier_excluded_panel": "",
            "primary_allowed": false,
            "primary_block_explain": {
              "entries": [
                {
                  "key": "positive_ev",
                  "label": "Consensus EV +80.2% meets Primary gate (\u2265+5.0%)",
                  "ok": true
                },
                {
                  "key": "gate",
                  "label": "Reliability below 65",
                  "ok": false
                }
              ],
              "lean_ev_threshold_pct": 2.0,
              "primary_ev_threshold_pct": 5.0,
              "subtitle": "Primary needs consensus EV \u2265 +5.0% plus reliability/execution/calibration gates (Decision Strength is explain-only). Lean/tracked gate is +2.0% (selective only \u2014 not default Primary sizing).",
              "title": "Why not Primary?"
            },
            "primary_gate_checklist": "Gate checklist: Consensus EV +80.2% \u2705 (need \u2265+5.0%) \u00b7 Calibration See checklist \u274c \u2192 Primary blocked. Decision Strength 3.0/10 (explain only, not a Primary gate). If you still act under hard block: example stake 0.10\u20130.20% bankroll (never Primary).",
            "primary_gate_snapshot": "Primary Gate Snapshot: Consensus EV +80.2% (gate \u2265+5.0%) \u00b7 Calibration: See checklist \u2192 Primary blocked \u00b7 Decision Strength 3.0/10 (display only)",
            "primary_gates": {
              "items": [
                {
                  "key": "extreme_gap",
                  "label": "Extreme gap",
                  "ok": true,
                  "value": "no"
                },
                {
                  "key": "xg_calibration",
                  "label": "xG calibration",
                  "ok": true,
                  "value": "warning"
                },
                {
                  "key": "reliability",
                  "label": "Rel",
                  "ok": false,
                  "value": "53 (\u226565)"
                },
                {
                  "key": "execution",
                  "label": "Exec",
                  "ok": false,
                  "value": "18 (\u226565)"
                },
                {
                  "key": "alignment",
                  "label": "Align",
                  "ok": false,
                  "value": "conflict"
                },
                {
                  "key": "consensus_ev",
                  "label": "ConsEV",
                  "ok": true,
                  "value": "+80.2% (\u2265+5.0%)"
                },
                {
                  "key": "top_pick",
                  "label": "Pick",
                  "ok": true,
                  "value": "true"
                },
                {
                  "key": "validation",
                  "label": "Validation",
                  "ok": true,
                  "value": "true"
                }
              ],
              "passed": 5,
              "total": 8
            },
            "primary_type": null,
            "reasons": [
              "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
              "Decision strength: 3.0/10",
              "Reliability below 65"
            ],
            "reliability_score": 53,
            "speed_read": "Speed read: Model Signal can look moderate/strong while Decision Strength stays low after calibration \u2014 Strength alone does not block Primary (v2.5+); still check reliability/execution/EV hard gates.",
            "strength_v2_breakdown": [
              "Base decision score (v1)",
              "Market steam conflicts with model",
              "Consensus-line +EV",
              "Low xG separation (league-average noise)"
            ],
            "subline": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
            "thresholds": {
              "extreme_gap_pp": 30.0,
              "lean_min_consensus_ev": 0.02,
              "lean_min_strength": 5.0,
              "min_consensus_ev": 0.05,
              "min_execution": 65,
              "min_reliability": 65,
              "min_strength": 7.0,
              "source": "db",
              "user_id": 2
            },
            "thresholds_source": "db",
            "thresholds_user_id": 2,
            "tier": "observe",
            "validation_ok": true,
            "value_context": {
              "consensus_ev": -0.1882,
              "consensus_ev_display": "-18.8%",
              "consensus_odds": 1.78,
              "disagreement_label": "Moderate",
              "disagreement_level": "moderate",
              "implied_prob": 0.5206,
              "is_extreme_disagreement": false,
              "model_prob": 0.3857,
              "raw_edge_display": "-13.5 percentage points",
              "raw_edge_pp": -13.5,
              "raw_implied_prob": 0.5617977528089888,
              "raw_signal_ev": -0.3135,
              "raw_signal_ev_display": "-31.4%"
            },
            "version": "v2.5",
            "xg_calibration": {
              "block_value_alert": true,
              "calibration_status": "warning",
              "deviation_pct": -42.2,
              "reasons": [
                "Low xG separation gap=0.1 (noise / no edge)"
              ],
              "recommended_action": "monitor",
              "strength_delta": -2.0,
              "uplift_away": null,
              "uplift_home": null,
              "xg_separation": {
                "band": "flat",
                "block_value_alert": true,
                "separation_score": -20,
                "strength_delta": -2.0,
                "xg_gap": 0.1
              }
            }
          },
          "headline": "No Primary Bet",
          "icon": "\u25cb",
          "label": "No Primary Bet",
          "subline": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
          "tier": "observe"
        },
        "why": {
          "action_line": "Compare model lean with current best odds before sizing any bet.",
          "bullets": [
            "Model: Aston Villa Femenino 0.78 xG vs Crystal Palace Femenino 0.68 \u2192 Aston Villa Femenino 38.5%",
            "Market: Aston Villa Femenino ~52.1% implied",
            "Market Drift: Aston Villa Femenino odds \u2191 +4.8%"
          ],
          "one_liner": "Model favours Aston Villa Femenino, but the market has moved away from Aston Villa Femenino.",
          "title": "Why?"
        }
      },
      "edge_rows": [
        {
          "edge_pp": -13.52,
          "fair_prob": 38.54,
          "label": "Aston Villa Femenino",
          "market_prob": 52.06,
          "market_type": "1x2",
          "outcome": "home"
        },
        {
          "edge_pp": 12.13,
          "fair_prob": 34.95,
          "label": "Draw",
          "market_prob": 22.82,
          "market_type": "1x2",
          "outcome": "draw"
        },
        {
          "edge_pp": 1.4,
          "fair_prob": 26.51,
          "label": "Crystal Palace Femenino",
          "market_prob": 25.11,
          "market_type": "1x2",
          "outcome": "away"
        },
        {
          "edge_pp": -37.82,
          "fair_prob": 18.1,
          "label": "Over 2.5",
          "market_prob": 55.92,
          "market_type": "ou25",
          "outcome": "over"
        },
        {
          "edge_pp": 37.82,
          "fair_prob": 81.9,
          "label": "Under 2.5",
          "market_prob": 44.08,
          "market_type": "ou25",
          "outcome": "under"
        },
        {
          "edge_pp": -28.28,
          "fair_prob": 28.3,
          "label": "BTTS Yes",
          "market_prob": 56.58,
          "market_type": "btts",
          "outcome": "yes"
        },
        {
          "edge_pp": 28.28,
          "fair_prob": 71.7,
          "label": "BTTS No",
          "market_prob": 43.42,
          "market_type": "btts",
          "outcome": "no"
        }
      ],
      "edge_snapshot": {
        "edge_label": "strong_disagreement",
        "edge_pp": -13.52,
        "fair_prob_pct": 38.54,
        "hero_side": "home",
        "hero_team_name": "Aston Villa Femenino",
        "market_prob_pct": 52.06,
        "status": "strong_market_ahead",
        "steam_team_name": "Aston Villa Femenino"
      },
      "fair_source": "poisson_pipeline",
      "fair_vs_market": {
        "closing_capture": "PRE10",
        "closing_footnote": "Model probabilities are generated from the statistical xG model using a Poisson distribution. Closing market probabilities are derived from consensus closing 1X2 odds after margin removal. Values represent implied probabilities rather than betting recommendations. Closing snapshot: PRE10.",
        "comparison_available": true,
        "comparison_disabled": false,
        "comparison_summary": "The closing market estimates Aston Villa Femenino\u0027s win probability at 52.1%, compared with the model\u0027s estimate of 38.5%, a difference of 13.5 percentage points. This highlights a disagreement between the model and market consensus, without indicating which view is ultimately correct.",
        "degraded_note": "",
        "divergence_guard": {
          "divergence_level": "strong",
          "edge_status": "strong_market_ahead",
          "max_gap_pp": 13.52,
          "suppress_hero": false,
          "suppress_value_language": false
        },
        "divergence_label": "Strong model-market divergence",
        "divergence_level": "strong",
        "divergence_level_label": "Strong divergence",
        "divergence_note": "The fair estimate differs noticeably from current market pricing. This may reflect genuine disagreement or incomplete rating inputs.",
        "divergence_tier": "strong",
        "edge_label": "Strong disagreement",
        "edge_label_key": "strong_disagreement",
        "fair_confidence": "medium",
        "fair_confidence_label": "Medium",
        "fair_source_note": "Model probabilities are generated from the statistical xG model using a Poisson distribution. Closing market probabilities are derived from consensus closing 1X2 odds after margin removal. Values represent implied probabilities rather than betting recommendations. Closing snapshot: PRE10.",
        "forecast_assessment": {
          "favourite_class": "Balanced match",
          "favourite_label": "Aston Villa Femenino",
          "forecast_certainty_tier": "low",
          "headline": "Balanced match",
          "market_agreement_label": "Weak",
          "market_direction": {
            "label": "Conflicts with model",
            "positive": false
          },
          "market_prob_pct": 52.1,
          "model_prob_gap_display": "-13.6 percentage points",
          "model_prob_gap_pp": -13.6,
          "model_prob_pct": 38.5,
          "outcome_separation_tier": "low",
          "paragraphs": [],
          "pricing_convergence": {
            "gap_display": "-13.6 percentage points",
            "gap_pp": -13.6,
            "label": "Moderate",
            "label_key": "mi_fa_pricing_moderate"
          },
          "reliability_headline": "Limited reliability",
          "reliability_icon": "!",
          "reliability_score": 53,
          "reliability_tier": "limited",
          "summary": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino. This disagreement reduces confidence and prevents a Primary bet.",
          "tier": "balanced",
          "title": "Prediction Assessment",
          "validation_label": "Warning",
          "value_split": {
            "execution_confidence": {
              "label": "Monitoring Confidence",
              "score": 18,
              "tier": "not_reliable",
              "tier_label": "Not reliable"
            },
            "market_compatibility": {
              "label": "Pricing proximity (inverse gap)",
              "note": "This score falls as the probability gap (pp) rises \u2014 it is NOT a bet green light. Direction may still agree (see Alignment above). Formula: proximity = max(0, 100 \u2212 5\u00d7pp). Example: 16 pp \u2192 20/100 (diverged).",
              "score": 11,
              "tier": "not_reliable",
              "tier_label": "Not reliable"
            },
            "model_edge_strength": {
              "label": "Model Signal Strength",
              "score": 38,
              "tier": "low",
              "tier_label": "Low"
            },
            "model_value": {
              "label": "Pricing proximity (inverse gap)",
              "note": "This score falls as the probability gap (pp) rises \u2014 it is NOT a bet green light. Direction may still agree (see Alignment above). Formula: proximity = max(0, 100 \u2212 5\u00d7pp). Example: 16 pp \u2192 20/100 (diverged).",
              "score": 11,
              "tier": "not_reliable",
              "tier_label": "Not reliable"
            },
            "recommendation": {
              "action": "no_bet",
              "label": "No Primary Bet"
            }
          },
          "why": {
            "action_line": "Compare model lean with current best odds before sizing any bet.",
            "bullets": [
              "Model: Aston Villa Femenino 0.78 xG vs Crystal Palace Femenino 0.68 \u2192 Aston Villa Femenino 38.5%",
              "Market: Aston Villa Femenino ~52.1% implied",
              "Market Drift: Aston Villa Femenino odds \u2191 +4.8%"
            ],
            "one_liner": "Model favours Aston Villa Femenino, but the market has moved away from Aston Villa Femenino.",
            "title": "Why?"
          }
        },
        "forecast_certainty": {
          "note": "Three outcomes remain closely bunched \u2014 treat as a relatively open match.",
          "tier": "low",
          "tier_label": "Low"
        },
        "forecast_certainty_label": "Low",
        "has_market_probs": true,
        "hero_edge_pp": -13.52,
        "hero_label": "Aston Villa Femenino",
        "hero_side": "home",
        "market_activity": "Aston Villa Femenino odds lengthened \u2191 +4.8%.",
        "market_agreement": "weak",
        "market_agreement_label": "Weak",
        "market_interpretation": {
          "bullets": [
            "Investors may be incorporating information not fully reflected in the baseline model.",
            "Tournament-specific context can shift market pricing."
          ],
          "follow_up": "Confirmation remains limited (2/9 books), suggesting early interest rather than a broad market move.",
          "gap_tier": "strong",
          "lead": "The market is materially more optimistic about Aston Villa Femenino than the current fair estimate.",
          "note": "",
          "paragraphs": [
            "The market is materially more optimistic about Aston Villa Femenino than the current fair estimate.",
            "Confirmation remains limited (2/9 books), suggesting early interest rather than a broad market move."
          ],
          "quiet_market": false,
          "title": "Market Assessment"
        },
        "market_narrative": {
          "paragraphs": [
            "The market favors Aston Villa Femenino more strongly than the current fair estimate.",
            "Recent line movement on Aston Villa Femenino (\u2191 +4.8%) aligns with the pricing gap.",
            "Market confirmation remains limited (2/9), suggesting an early move rather than a broad consensus."
          ],
          "title": "Current Market Narrative"
        },
        "market_source": "closing_1x2",
        "max_gap_pp": 13.52,
        "model_validation": {
          "score_label_key": "mi_mv_warning",
          "status": "warning"
        },
        "model_validation_label": "Warning",
        "outcome_separation": {
          "breakdown": [
            "No outcome exceeds 50% on the 1X2 grid.",
            "Top two 1X2 outcomes within 3.6 percentage points."
          ],
          "lead_gap_pp": 3.6,
          "max_prob_pct": 38.5,
          "note": "How spread out the model 1X2 probabilities are \u2014 crowded splits mean no single outcome dominates. Not accuracy vs the market.",
          "tier": "low",
          "tier_label": "Low"
        },
        "outcome_separation_label": "Low",
        "overall_assessment": {
          "badge_class": "strong",
          "largest_gap_label": "Aston Villa Femenino",
          "largest_gap_pp": -13.5,
          "lead": "The closing market prices Aston Villa Femenino higher than the statistical model.",
          "level": "strong",
          "max_gap_pp": 13.5,
          "title": "Strong Disagreement"
        },
        "rows": [
          {
            "difference_pp": -13.52,
            "edge_pp": -13.52,
            "fair_prob_pct": 38.54,
            "is_hero": true,
            "label": "Aston Villa Femenino",
            "market_prob_pct": 52.06,
            "side": "home",
            "signal_key": "market_higher",
            "signal_label": "Market Higher"
          },
          {
            "difference_pp": 12.13,
            "edge_pp": 12.13,
            "fair_prob_pct": 34.95,
            "is_hero": false,
            "label": "Draw",
            "market_prob_pct": 22.82,
            "side": "draw",
            "signal_key": "model_edge",
            "signal_label": "Model Edge"
          },
          {
            "difference_pp": 1.4,
            "edge_pp": 1.4,
            "fair_prob_pct": 26.51,
            "is_hero": false,
            "label": "Crystal Palace Femenino",
            "market_prob_pct": 25.11,
            "side": "away",
            "signal_key": "aligned",
            "signal_label": "Aligned"
          }
        ],
        "status": "strong_market_ahead",
        "status_label": "Strong Market Ahead",
        "steam_note": "",
        "unavailable_note": ""
      },
      "interpretation": {
        "has_conflict": true,
        "paragraphs": [
          "The betting market strongly prefers Aston Villa Femenino (52.1%).",
          "Aston Villa Femenino odds have drifted longer across books (\u2191 +4.8%, 2/9) \u2014 market pricing moves against this side.",
          "This creates a conflict: Model \u2192 Aston Villa Femenino, Market \u2192 Aston Villa Femenino, while Aston Villa Femenino odds drifted longer (market fade).",
          "Because signals disagree, confidence remains limited."
        ],
        "show": true,
        "title": "OddsGPT Interpretation"
      },
      "lifecycle": {
        "closing_implied_pct": 56.18,
        "closing_odds": 1.78,
        "closing_reason": "",
        "closing_status": "recorded",
        "closing_status_label": "Recorded",
        "clv_pending": true,
        "clv_pp": 0.0,
        "clv_reason": "",
        "clv_status": "pending",
        "context": "match",
        "current_stage": "waiting_for_kickoff",
        "current_stage_detail": "",
        "current_stage_label": "Waiting for kickoff",
        "entry_implied_pct": 56.18,
        "entry_odds": 1.78,
        "match_phase": "live",
        "match_phase_detail": "1H",
        "match_phase_display": "Live \u00b7 1H",
        "match_phase_label": "Live",
        "model_validation_label": "Warning",
        "model_validation_status": "warning",
        "stages": [
          {
            "detail": "",
            "id": "forecast_generated",
            "label": "Prediction Generated",
            "status": "done"
          },
          {
            "detail": "",
            "id": "market_detected",
            "label": "Market Compared",
            "status": "done"
          },
          {
            "detail": "",
            "id": "model_validated",
            "label": "Validation Passed",
            "status": "active"
          },
          {
            "detail": "PRE10",
            "id": "closing_recorded",
            "label": "Closing Recorded",
            "status": "done"
          },
          {
            "detail": "",
            "id": "clv_evaluated",
            "label": "CLV Evaluated",
            "status": "pending"
          }
        ]
      },
      "market_move_intelligence": {
        "books_reacting": 2,
        "books_reacting_detail": [
          {
            "bookmaker_id": 8,
            "bookmaker_name": "Bet365",
            "is_sharp": true,
            "move_delta_display": "\u2191 +4.8%",
            "odds_delta_pct": 4.8
          },
          {
            "bookmaker_id": 3,
            "bookmaker_name": "Betfair",
            "is_sharp": true,
            "move_delta_display": "\u2191 +3.6%",
            "odds_delta_pct": 3.6
          }
        ],
        "books_total": 9,
        "breadth_display": "2/9",
        "clv_label": "+0.00 pp",
        "clv_status": "evaluated",
        "current_odds": 1.75,
        "is_drift": true,
        "move_context": "Sharpest sharp-led move",
        "move_display": "\u2191 +4.8%",
        "move_pct_abs": 4.8,
        "move_speed_icon": "\ud83d\udc22",
        "move_speed_label": "Slow drift over 103h 4m",
        "narrative_paragraphs": [
          "Volatile two-way pricing on Aston Villa Femenino (swing 1.79 \u2192 1.67 \u2192 1.75) \u2014 net 4.8% but intraday chop is elevated.",
          "Price swings look choppy \u2014 volatility reduced overall confidence in the directional signal."
        ],
        "narrative_title": "Market Narrative",
        "odds_delta_pct": 4.8,
        "odds_path": {
          "chart_y_labels": [
            "1.78",
            "1.73",
            "1.67"
          ],
          "display": "1.79 \u2192 1.67 \u2192 1.75",
          "move_speed_icon": "\ud83d\udc22",
          "move_speed_label": "Slow drift over 103h 4m",
          "pick_team": "Aston Villa Femenino",
          "points": [
            {
              "label_key": "open",
              "value": "1.79"
            },
            {
              "label_key": "extreme",
              "value": "1.67"
            },
            {
              "label_key": "current",
              "value": "1.75"
            }
          ],
          "sparkline_points": [
            1.67,
            1.78,
            1.75
          ],
          "sparkline_polyline": "0.0,18.0 28.0,0.0 56.0,4.9",
          "sparkline_trend": "up",
          "sparkline_trend_label": "One-way rise",
          "summary_boxes": [
            {
              "label_key": "open",
              "value": "1.67"
            },
            {
              "label_key": "low",
              "value": "1.67"
            },
            {
              "label_key": "high",
              "value": "1.78"
            },
            {
              "label_key": "current",
              "value": "1.75"
            }
          ]
        },
        "open_odds": 1.67,
        "page_alert_line": "",
        "phase_label": "Volatile",
        "phase_tip": "High disagreement or chop \u2014 low reliability for directional bets.",
        "pick_team": "Aston Villa Femenino",
        "ref_book": "Bet365",
        "seo_title_alert": "",
        "sharp_leader": "Bet365",
        "show": true,
        "signal_badge_class": "warn",
        "signal_icon": "\u26a0\ufe0f",
        "signal_impact": {
          "current_odds": 1.75,
          "is_drift": true,
          "label": "Market Signal",
          "move_display": "\u2191 +4.8%",
          "open_odds": 1.67,
          "summary": "Market moved away from Aston Villa Femenino while the model still favours another side.",
          "team": "Aston Villa Femenino",
          "tone": "against"
        },
        "signal_key": "volatile_market",
        "signal_label": "Volatile market",
        "steam_score": 19,
        "steam_subtitle": "Limited conviction",
        "steam_tier": "C",
        "title": "Market Move Intelligence"
      },
      "market_overview": {
        "breadth_display": "2/9",
        "current_odds": 1.75,
        "move_display": "\u2191 +4.8%",
        "open_odds": 1.67,
        "pick_team": "Aston Villa Femenino",
        "steam_score": 19,
        "steam_team_name": "Aston Villa Femenino",
        "steam_tier": "C"
      },
      "premium_teaser": {
        "current_divergence_pp": 13.5,
        "divergence_label": "Current divergence",
        "title": "Premium Market Intelligence",
        "unlock_items": [
          "Historical similar matches",
          "Closing odds analysis",
          "CLV tracking",
          "Sharp money signals",
          "Market efficiency rating",
          "Historical model vs market results"
        ],
        "unlock_label": "Unlock"
      },
      "show": true
    },
    "match": {
      "at2.away_team_slug": "crystal-palace-w",
      "away_expected_goals": null,
      "away_goal_display": 0,
      "away_team_display_name": "Crystal Palace Femenino",
      "away_team_id": 15409,
      "away_team_logo": "/static/teams/15409.webp",
      "away_team_name": "Crystal Palace Femenino",
      "away_team_public_id": "4RpluCWrsienMh",
      "away_team_slug": "crystal-palace-w",
      "country_code": "GB-ENG",
      "country_display_name": "England",
      "country_flag": "/static/images/country/gb-eng.svg",
      "country_id": 49,
      "country_name": "England",
      "fixture_id": 1607693,
      "goals_away": 0,
      "goals_home": 0,
      "home_expected_goals": null,
      "home_goal_display": 0,
      "home_team_country": "England",
      "home_team_display_name": "Aston Villa Femenino",
      "home_team_id": 14219,
      "home_team_logo": "/static/teams/14219.webp",
      "home_team_name": "Aston Villa Femenino",
      "home_team_public_id": "5rA3P91htPqEFP",
      "home_team_slug": "aston-villa-w",
      "ht.home_team_slug": "aston-villa-w",
      "league_country": "England",
      "league_country_display": "England",
      "league_display_name": "FA WSL",
      "league_id": 44,
      "league_logo": "/static/leagues/44.webp",
      "league_name": "FA WSL",
      "league_public_id": "0CWB9jF1L82Zof",
      "league_season": 2026,
      "match_date": "2026-10-04 13:00:00",
      "public_id": "2p8gr3Ey6sbUKR",
      "score_fulltime_away": null,
      "score_fulltime_home": null,
      "score_penalty_away": null,
      "score_penalty_home": null,
      "status_long": "First Half",
      "status_short": "1H",
      "venue_city": "Sutton Coldfield",
      "venue_name": "Trevor Brown Memorial Ground"
    },
    "match_decision": {
      "confidence": {
        "breakdown": [
          "pred_conf_md_max_1x2_under_50",
          "pred_conf_md_top_two_close",
          "pred_conf_md_line_above_ev",
          "pred_conf_md_draw_above_30"
        ],
        "breakdown_resolved": [
          "Max 1X2 prob under 50% (open contest) (\u22121.0)",
          "Top two outcomes relatively close in probability (\u22120.5)",
          "At least one tracked line above +EV threshold (+0.5)",
          "Draw probability above 30% (\u22120.5)"
        ],
        "score": 5.5
      },
      "markets": {
        "1x2": {
          "1x2_ev_mode": "market_first_p15",
          "away": {
            "alpha": 0.2938,
            "best_odd": 3.69,
            "calibration": {
              "active": false,
              "hook": "CALIBRATE_1X2_P_FINAL"
            },
            "edge": 0.0041,
            "ev": -0.0583,
            "implied_prob": 0.2511,
            "joint_probs": {
              "away": 0.2511,
              "draw": 0.2282,
              "home": 0.5206
            },
            "model_prob": 0.265,
            "p_final": 0.2552
          },
          "draw": {
            "alpha": 0.1637,
            "best_odd": 4.06,
            "calibration": {
              "active": false,
              "hook": "CALIBRATE_1X2_P_FINAL"
            },
            "edge": 0.0198,
            "ev": 0.0071,
            "implied_prob": 0.2282,
            "joint_probs": {
              "away": 0.2511,
              "draw": 0.2282,
              "home": 0.5206
            },
            "model_prob": 0.3493,
            "p_final": 0.2481
          },
          "ev_available": true,
          "home": {
            "alpha": 0.4786,
            "best_odd": 1.78,
            "calibration": {
              "active": false,
              "hook": "CALIBRATE_1X2_P_FINAL"
            },
            "edge": -0.0646,
            "ev": -0.1882,
            "implied_prob": 0.5206,
            "joint_probs": {
              "away": 0.2511,
              "draw": 0.2282,
              "home": 0.5206
            },
            "model_prob": 0.3857,
            "p_final": 0.4561
          }
        },
        "1x2_outlier": {
          "1x2_ev_mode": "legacy_max_odd",
          "away": {
            "best_odd": 3.69,
            "edge": -0.006,
            "ev": -0.0222,
            "implied_prob": 0.271,
            "model_prob": 0.265
          },
          "draw": {
            "best_odd": 4.06,
            "edge": 0.103,
            "ev": 0.4182,
            "implied_prob": 0.2463,
            "model_prob": 0.3493
          },
          "ev_available": true,
          "home": {
            "best_odd": 1.78,
            "edge": -0.1761,
            "ev": -0.3134,
            "implied_prob": 0.5618,
            "model_prob": 0.3857
          }
        },
        "btts": {
          "alpha_no": 0.1298,
          "alpha_yes": 0.1427,
          "best_no_odd": 2.2,
          "best_yes_odd": 1.67,
          "btts_ev_mode": "market_first_available",
          "edge_no": 0.2828,
          "edge_yes": -0.2828,
          "ev_available": true,
          "ev_no": 0.5774,
          "ev_no_risk_adj": 0.0018,
          "ev_yes": -0.5274,
          "ev_yes_risk_adj": -0.1418,
          "implied_no": 0.4342,
          "implied_yes": 0.5658,
          "market_first": {
            "available": true,
            "mode": "market_first_btts",
            "n_bookmakers": 5,
            "no": {
              "alpha": 0.1298,
              "best_odd": 2.125,
              "edge": 0.0366,
              "ev": 0.0018,
              "implied_prob": 0.4348,
              "model_prob": 0.717,
              "p_final": 0.4715
            },
            "prediction_confidence": "very_low",
            "yes": {
              "alpha": 0.1427,
              "best_odd": 1.635,
              "edge": -0.0403,
              "ev": -0.1418,
              "implied_prob": 0.5652,
              "model_prob": 0.283,
              "p_final": 0.5249
            }
          },
          "n_bookmakers": 5,
          "p_final_no": 0.4715,
          "p_final_yes": 0.5249,
          "prediction_confidence": "very_low",
          "reliability": "medium"
        },
        "ou25": {
          "alpha_over": 0.1238,
          "alpha_under": 0.1125,
          "best_over_odd": 1.72,
          "best_under_odd": 2.2,
          "consensus_over_odd": 1.65,
          "consensus_under_odd": 2.09,
          "edge_over": -0.3782,
          "edge_under": 0.3782,
          "ev_available": true,
          "ev_over": -0.6887,
          "ev_over_risk_adj": -0.1551,
          "ev_under": 0.8018,
          "ev_under_risk_adj": 0.0109,
          "implied_over": 0.5592,
          "implied_over_mf": 0.5588,
          "implied_under": 0.4408,
          "implied_under_mf": 0.4412,
          "market_first": {
            "available": true,
            "mode": "market_first_ou",
            "n_bookmakers": 7,
            "over": {
              "alpha": 0.1238,
              "best_odd": 1.65,
              "edge": -0.0468,
              "ev": -0.1551,
              "implied_prob": 0.5588,
              "model_prob": 0.181,
              "p_final": 0.5121
            },
            "prediction_confidence": "very_low",
            "under": {
              "alpha": 0.1125,
              "best_odd": 2.09,
              "edge": 0.0425,
              "ev": 0.0109,
              "implied_prob": 0.4412,
              "model_prob": 0.819,
              "p_final": 0.4837
            }
          },
          "n_bookmakers": 7,
          "ou_ev_mode": "market_first_available",
          "p_final_over": 0.5121,
          "p_final_under": 0.4837,
          "prediction_confidence": "very_low",
          "reliability": "medium"
        }
      },
      "match_regime": {
        "action": "avoid",
        "code": "no_edge",
        "execution_line_key": "pred_regime_exec_no_actionable",
        "insight_line_key": "pred_regime_insight_minor_inefficiency",
        "stake_mult": 0.0,
        "use_split_strip": true
      },
      "match_tier": "no_bet",
      "min_ev": 0.02,
      "total_xg": 1.46,
      "variance_flag": false
    },
    "unified_decision": {
      "actionable_ev_threshold": 0.02,
      "algorithm": {
        "enabled_since": "2026-05-26",
        "game_typing_module": true,
        "version": "2.5.0"
      },
      "balanced_alternative": null,
      "best_consensus_ev": 0.8018,
      "best_outlier_ev": 0.8018,
      "best_tracked_ev": 0.8018,
      "confidence": 6.0,
      "decision_confidence_v1": {
        "breakdown": [
          "pred_conf_v1_primary_line",
          "pred_conf_v1_primary_ev_above_10",
          "pred_conf_v1_max_1x2_under_50",
          "pred_conf_v1_draw_above_30",
          "pred_conf_v1_multi_ev_lines"
        ],
        "breakdown_resolved": [
          "Primary line identified (+1.0)",
          "Primary EV above 10% (+1.0)",
          "Max 1X2 prob under 50% (no dominant 1X2) (\u22121.0)",
          "Draw probability above 30% (\u22120.5)",
          "Two or more valid +EV lines at threshold (+0.5)"
        ],
        "breakdown_v2": [
          "Base decision score (v1)",
          "Market steam conflicts with model",
          "Consensus-line +EV",
          "Low xG separation (league-average noise)"
        ],
        "score": 3.0,
        "score_v1_legacy": 6.0,
        "score_v2_pre_penalty": 3.5,
        "strength_v2": true
      },
      "decision_strength_v2": {
        "breakdown": [
          "Base decision score (v1)",
          "Market steam conflicts with model",
          "Consensus-line +EV",
          "Low xG separation (league-average noise)"
        ],
        "score": 3.0,
        "score_pre_penalty": 3.5
      },
      "decision_type": "NO_SIGNAL",
      "execution": {
        "1x2_dominant": false,
        "1x2_open_contest": true,
        "grade": "A",
        "stake_factor": 1.0
      },
      "favourite_misaligned_1x2": {
        "active": false,
        "gap": null,
        "side": null
      },
      "final_action": "no_bet",
      "final_decision": {
        "action": "no_bet",
        "alignment": {
          "direction_aligned": true,
          "direction_key": "agree",
          "gap_pp": 13.5,
          "key": "conflict",
          "label": "Disagree",
          "model_strong": false,
          "pricing_aligned": true,
          "pricing_key": "moderate",
          "probability_gap_pp": 13.5,
          "summary": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino."
        },
        "alignment_key": "conflict",
        "best_consensus_ev": 0.8018,
        "best_outlier_ev": 0.8018,
        "confidence_band": "Moderate\u2013Low",
        "decision_strength": 3.0,
        "decision_strength_v1": 6.0,
        "decision_strength_v2": 3.5,
        "decision_type": "NO_SIGNAL",
        "execution_confidence": 18,
        "extreme_disagreement": false,
        "final_verdict_audit": {
          "action": "Monitor closing market and validate with CLV.",
          "action_label": "Action",
          "decision": "No Primary Bet",
          "is_primary": false,
          "snapshot": "The Decision Model estimates Aston Villa Femenino at 38.6%, compared with a no-vig market probability of 52.1%.",
          "why": [
            {
              "text": "Decision Model identifies Aston Villa Femenino as the value side (38.6%)",
              "tone": "ok"
            },
            {
              "text": "Market pricing conflicts with the model lean",
              "tone": "bad"
            },
            {
              "text": "Model\u2013market disagreement blocks Primary sizing",
              "tone": "bad"
            },
            {
              "text": "Market quality / price reliability is insufficient for Primary",
              "tone": "bad"
            },
            {
              "text": "Model confidence reduced due to calibration uncertainty",
              "tone": "bad"
            }
          ],
          "why_label": "Decision Summary"
        },
        "gap_pp": 13.5,
        "gates_failed": [
          "Reliability below 65"
        ],
        "has_top_pick": true,
        "headline": "No Primary Bet",
        "hero_mode": "default",
        "icon": "\u25cb",
        "label": "No Primary Bet",
        "market_signal": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
        "model_conflict_detail": null,
        "model_lean": "Aston Villa Femenino",
        "no_primary_reasons": {
          "all_triggered": [
            "market_conflict",
            "market_quality",
            "calibration_risk"
          ],
          "calibration_mode": "soft",
          "codes": [
            "market_conflict",
            "market_quality"
          ],
          "label": "Reason",
          "other_factors": [
            {
              "code": "market_quality",
              "detail": "Price reliability is weak (thin coverage, outlier quote, or low book agreement).",
              "name": "Market Quality Risk",
              "short": "Market Quality Risk",
              "tone": "warn"
            }
          ],
          "other_label": "Other factors",
          "primary": {
            "code": "market_conflict",
            "detail": "Model lean and market pricing / drift are not aligned.",
            "name": "Market Conflict",
            "short": "Market Conflict",
            "subtype": "drift_against_model",
            "tone": "warn"
          },
          "secondary": {
            "code": "market_quality",
            "detail": "Price reliability is weak (thin coverage, outlier quote, or low book agreement).",
            "name": "Market Quality Risk",
            "short": "Market Quality Risk",
            "tone": "warn"
          },
          "version": "v1"
        },
        "outlier_detected": false,
        "outlier_excluded_panel": "",
        "primary_allowed": false,
        "primary_block_explain": {
          "entries": [
            {
              "key": "positive_ev",
              "label": "Consensus EV +80.2% meets Primary gate (\u2265+5.0%)",
              "ok": true
            },
            {
              "key": "gate",
              "label": "Reliability below 65",
              "ok": false
            }
          ],
          "lean_ev_threshold_pct": 2.0,
          "primary_ev_threshold_pct": 5.0,
          "subtitle": "Primary needs consensus EV \u2265 +5.0% plus reliability/execution/calibration gates (Decision Strength is explain-only). Lean/tracked gate is +2.0% (selective only \u2014 not default Primary sizing).",
          "title": "Why not Primary?"
        },
        "primary_gate_checklist": "Gate checklist: Consensus EV +80.2% \u2705 (need \u2265+5.0%) \u00b7 Calibration See checklist \u274c \u2192 Primary blocked. Decision Strength 3.0/10 (explain only, not a Primary gate). If you still act under hard block: example stake 0.10\u20130.20% bankroll (never Primary).",
        "primary_gate_snapshot": "Primary Gate Snapshot: Consensus EV +80.2% (gate \u2265+5.0%) \u00b7 Calibration: See checklist \u2192 Primary blocked \u00b7 Decision Strength 3.0/10 (display only)",
        "primary_gates": {
          "items": [
            {
              "key": "extreme_gap",
              "label": "Extreme gap",
              "ok": true,
              "value": "no"
            },
            {
              "key": "xg_calibration",
              "label": "xG calibration",
              "ok": true,
              "value": "warning"
            },
            {
              "key": "reliability",
              "label": "Rel",
              "ok": false,
              "value": "53 (\u226565)"
            },
            {
              "key": "execution",
              "label": "Exec",
              "ok": false,
              "value": "18 (\u226565)"
            },
            {
              "key": "alignment",
              "label": "Align",
              "ok": false,
              "value": "conflict"
            },
            {
              "key": "consensus_ev",
              "label": "ConsEV",
              "ok": true,
              "value": "+80.2% (\u2265+5.0%)"
            },
            {
              "key": "top_pick",
              "label": "Pick",
              "ok": true,
              "value": "true"
            },
            {
              "key": "validation",
              "label": "Validation",
              "ok": true,
              "value": "true"
            }
          ],
          "passed": 5,
          "total": 8
        },
        "primary_type": null,
        "reasons": [
          "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
          "Decision strength: 3.0/10",
          "Reliability below 65"
        ],
        "reliability_score": 53,
        "speed_read": "Speed read: Model Signal can look moderate/strong while Decision Strength stays low after calibration \u2014 Strength alone does not block Primary (v2.5+); still check reliability/execution/EV hard gates.",
        "strength_v2_breakdown": [
          "Base decision score (v1)",
          "Market steam conflicts with model",
          "Consensus-line +EV",
          "Low xG separation (league-average noise)"
        ],
        "subline": "The market has moved away from Aston Villa Femenino, but the model still strongly favours Aston Villa Femenino.",
        "thresholds": {
          "extreme_gap_pp": 30.0,
          "lean_min_consensus_ev": 0.02,
          "lean_min_strength": 5.0,
          "min_consensus_ev": 0.05,
          "min_execution": 65,
          "min_reliability": 65,
          "min_strength": 7.0,
          "source": "db",
          "user_id": 2
        },
        "thresholds_source": "db",
        "thresholds_user_id": 2,
        "tier": "observe",
        "validation_ok": true,
        "value_context": {
          "consensus_ev": -0.1882,
          "consensus_ev_display": "-18.8%",
          "consensus_odds": 1.78,
          "disagreement_label": "Moderate",
          "disagreement_level": "moderate",
          "implied_prob": 0.5206,
          "is_extreme_disagreement": false,
          "model_prob": 0.3857,
          "raw_edge_display": "-13.5 percentage points",
          "raw_edge_pp": -13.5,
          "raw_implied_prob": 0.5617977528089888,
          "raw_signal_ev": -0.3135,
          "raw_signal_ev_display": "-31.4%"
        },
        "version": "v2.5",
        "xg_calibration": {
          "block_value_alert": true,
          "calibration_status": "warning",
          "deviation_pct": -42.2,
          "reasons": [
            "Low xG separation gap=0.1 (noise / no edge)"
          ],
          "recommended_action": "monitor",
          "strength_delta": -2.0,
          "uplift_away": null,
          "uplift_home": null,
          "xg_separation": {
            "band": "flat",
            "block_value_alert": true,
            "separation_score": -20,
            "strength_delta": -2.0,
            "xg_gap": 0.1
          }
        }
      },
      "game_type": {
        "label_zh": "\u6781\u7aef\u9632\u5b88\uff08\u4f4e\u8fdb\u7403\uff09",
        "scoring_type": "defensive",
        "signals": {
          "btts_yes_prob": 0.283,
          "draw_prob": 0.3493,
          "max_1x2_prob": 0.3857,
          "over_prob": 0.181,
          "total_xg": 1.46,
          "under_prob": 0.819,
          "xg_diff": 0.1
        },
        "type": "defensive",
        "typing_weights_enabled": true
      },
      "hero_display_pick": null,
      "hero_mode": "default",
      "longshot_picks": [],
      "markets": {
        "1x2": {
          "consensus_odds": 1.78,
          "decision": "no_bet",
          "edge": -0.0646,
          "ev": -0.1882,
          "implied_prob": 0.5206,
          "max_ev_side": "draw",
          "model_prob": 0.3857,
          "side": "home",
          "side_label": "Aston Villa Femenino"
        },
        "btts": {
          "decision": "value_bet",
          "decision_layer": {
            "alpha": 0.1298,
            "available": true,
            "consensus_odds": 2.125,
            "edge": 0.0366,
            "market_prob": 0.4348,
            "mode": "market_first_btts",
            "model_prob": 0.717,
            "n_bookmakers": 5,
            "no": {
              "alpha": 0.1298,
              "best_odd": 2.125,
              "edge": 0.0366,
              "ev": 0.0018,
              "implied_prob": 0.4348,
              "model_prob": 0.717,
              "p_final": 0.4715
            },
            "p_final": 0.4715,
            "prediction_confidence": "very_low",
            "risk_adj_ev": 0.0018,
            "value_side": "no",
            "yes": {
              "alpha": 0.1427,
              "best_odd": 1.635,
              "edge": -0.0403,
              "ev": -0.1418,
              "implied_prob": 0.5652,
              "model_prob": 0.283,
              "p_final": 0.5249
            }
          },
          "edge": 0.2828,
          "ev": 0.5774,
          "implied_prob": 0.4342,
          "model_prob": 0.717,
          "side": "no",
          "value_side": "no"
        },
        "ou_2_5": {
          "decision": "value_bet",
          "decision_layer": {
            "alpha": 0.1125,
            "available": true,
            "consensus_odds": 2.09,
            "edge": 0.0425,
            "market_prob": 0.4412,
            "mode": "market_first_ou",
            "model_prob": 0.819,
            "n_bookmakers": 7,
            "over": {
              "alpha": 0.1238,
              "best_odd": 1.65,
              "edge": -0.0468,
              "ev": -0.1551,
              "implied_prob": 0.5588,
              "model_prob": 0.181,
              "p_final": 0.5121
            },
            "p_final": 0.4837,
            "prediction_confidence": "very_low",
            "risk_adj_ev": 0.0109,
            "under": {
              "alpha": 0.1125,
              "best_odd": 2.09,
              "edge": 0.0425,
              "ev": 0.0109,
              "implied_prob": 0.4412,
              "model_prob": 0.819,
              "p_final": 0.4837
            },
            "value_side": "under"
          },
          "edge": 0.3782,
          "ev": 0.8018,
          "implied_prob": 0.4408,
          "model_prob": 0.819,
          "side": "under",
          "value_side": "under"
        }
      },
      "match_id": 1607693,
      "match_regime": {
        "action": "bet",
        "actionable": true,
        "clear_edge": true,
        "code": "clear_edge",
        "execution_line_key": null,
        "insight_line_key": null,
        "max_valid_ev": 0.8018,
        "min_ev": 0.02,
        "stake_mult": 1.0,
        "use_split_strip": false
      },
      "match_tier": "value_game",
      "no_clear_primary": false,
      "probabilities": {
        "away": 0.265,
        "draw": 0.3493,
        "home": 0.3857
      },
      "reason_codes": [
        "no_ev_1x2"
      ],
      "secondary_pick": {
        "decision": "value_bet",
        "ev": 0.5774,
        "implied_prob": 0.4342,
        "market": "btts",
        "model_prob": 0.717,
        "not_dominant": false,
        "risk_band": "strong",
        "risk_tier": "secondary",
        "side": "no",
        "slot": "secondary"
      },
      "secondary_picks": [
        {
          "decision": "value_bet",
          "ev": 0.5774,
          "implied_prob": 0.4342,
          "market": "btts",
          "model_prob": 0.717,
          "not_dominant": false,
          "risk_band": "strong",
          "risk_tier": "secondary",
          "side": "no",
          "slot": "secondary"
        }
      ],
      "show_betting_primary_label": false,
      "suppressed_primary": null,
      "teams": {
        "away": "Crystal Palace Femenino",
        "home": "Aston Villa Femenino"
      },
      "top_pick": {
        "composite_score": 0.853676,
        "decision": "value_bet",
        "ev": 0.8018,
        "implied_prob": 0.4408,
        "market": "ou_2_5",
        "model_prob": 0.819,
        "not_dominant": false,
        "primary_strength": "clear",
        "risk_band": "strong",
        "risk_tier": "primary",
        "side": "under",
        "slot": "primary",
        "speculative_primary": false
      },
      "valid_markets_count": 2,
      "value_context_1x2": {
        "consensus_ev": -0.1882,
        "consensus_ev_display": "-18.8%",
        "consensus_odds": 1.78,
        "disagreement_label": "Moderate",
        "disagreement_level": "moderate",
        "implied_prob": 0.5206,
        "is_extreme_disagreement": false,
        "model_prob": 0.3857,
        "raw_edge_display": "-13.5 percentage points",
        "raw_edge_pp": -13.5,
        "raw_implied_prob": 0.5617977528089888,
        "raw_signal_ev": -0.3135,
        "raw_signal_ev_display": "-31.4%"
      }
    }
  },
  "fixture_id": 1607693,
  "generated_at_utc": "2026-10-04T13:16:30.021220+00:00",
  "lang_id": "en"
}

Obtén predicciones premium para Aston Villa Femenino & Crystal Palace Femenino!

Desbloquea análisis en profundidad, consejos de apuestas exclusivos y pronósticos de partidos con nuestro servicio de suscripción premium.

Suscríbete ahora
Volver a Estadísticas
FA WSL FA WSL — Clasificación
# EQUIPO PJ G E P Pts
1 Manchester City Femenino 4 4 0 0 12
2 Tottenham Hotspur W 4 3 1 0 10
3 Chelsea Femenino 4 3 1 0 10
4 London City Lionesses 4 3 0 1 9
5 Liverpool Femenino 5 2 1 2 7
6 Manchester United Femenino 5 2 1 2 7
7 Everton Femenino 4 2 0 2 6
8 Arsenal Femenino 4 1 2 1 5
9 Crystal Palace Femenino 4 1 2 1 5
10 West Ham Femenino 4 1 0 3 3
11 Brighton & Hove Albion Femenino 4 0 2 2 2
12 Birmingham City Femenino 4 0 2 2 2
13 Aston Villa Femenino 4 0 2 2 2
14 Charlton Athletic Femenino 4 0 0 4 0
# EQUIPO PJ GF GC +/- Pts
1 Tottenham Hotspur W 4 15 2 +13 10
2 Manchester City Femenino 4 12 4 +8 12
3 Chelsea Femenino 4 9 1 +8 10
4 London City Lionesses 4 9 4 +5 9
5 Liverpool Femenino 5 9 6 +3 7
6 Birmingham City Femenino 4 6 10 -4 2
7 Manchester United Femenino 5 5 9 -4 7
8 West Ham Femenino 4 4 7 -3 3
9 Crystal Palace Femenino 4 4 10 -6 5
10 Brighton & Hove Albion Femenino 4 3 6 -3 2
11 Aston Villa Femenino 4 3 10 -7 2
12 Arsenal Femenino 4 2 2 0 5
13 Everton Femenino 4 2 3 -1 6
14 Charlton Athletic Femenino 4 1 10 -9 0
# EQUIPO PJ xG xGC +/- Pts
1 London City Lionesses 4 1.2 0.2 +1.0 9
2 Manchester United Femenino 5 0.2 1.2 -1.0 7
3 Manchester City Femenino 4 — — — 12
4 Tottenham Hotspur W 4 — — — 10
5 Chelsea Femenino 4 — — — 10
6 Liverpool Femenino 5 — — — 7
7 Everton Femenino 4 — — — 6
8 Arsenal Femenino 4 — — — 5
9 Crystal Palace Femenino 4 — — — 5
10 West Ham Femenino 4 — — — 3
11 Brighton & Hove Albion Femenino 4 — — — 2
12 Birmingham City Femenino 4 — — — 2
13 Aston Villa Femenino 4 — — — 2
14 Charlton Athletic Femenino 4 — — — 0