Statistics / Football / Spain. La Liga / Villarreal vs Atletico Madrid

Villarreal vs Atletico Madrid Statistics & Analysis

May 24, 2026 - 19:00
5 1.78
1 1.31
xG Accuracy: 38%
Casa de apuestas premium 1xBet: los nuevos usuarios pueden usar el código promocional 1x_3342271. Registrarse

Tracked markets vs full-time result

Each row compares the model’s highlighted side (or lean) to what happened at full time.

  • Market Prediction Result Outcome
  • Over / Under 2.5 Under 2.5 Over 2.5 (6 goals) ✖ Incorrect
  • Both Teams To Score BTTS No Yes ✖ Incorrect
  • 1X2 Villarreal Villarreal ✔ Correct
  • Correct Score Insights 1-1, 2-1, 1-0, 2-0, 1-2 5-1 ✖ Incorrect

AI briefing is not available yet for this match. Run “Batch generate odds” again after upgrading the server to generate the summary.

View technical JSON
{
  "bundle_version": 1,
  "content_hash": "03dffbf9e088eccd2f94b088686f23d11c459ab7e96ecc0e30b24f5ca5b392df",
  "decision_algo_version": "2.1.0",
  "facts": {
    "ai_fp": {
      "away_predicted_xg": 1.31,
      "away_win_prob": 0.269,
      "btts_no_prob": 0.379,
      "btts_yes_prob": 0.621,
      "dc_rho": -0.13,
      "draw_prob": 0.2596,
      "fair_odds_away": 3.72,
      "fair_odds_draw": 3.85,
      "fair_odds_home": 2.12,
      "home_predicted_xg": 1.78,
      "home_win_prob": 0.4713,
      "over_25_prob": 0.597,
      "prediction_confidence": "high",
      "under_25_prob": 0.403
    },
    "api_prediction": {
      "advice": "Double chance : draw or Atletico Madrid",
      "main_pick_display": "Winner : Villarreal",
      "percent_away": "45%",
      "percent_draw": "45%",
      "percent_home": "10%",
      "winner_name": "Atletico Madrid"
    },
    "away_xg": 1.31,
    "betting_insight": {
      "bet_label": "Villarreal",
      "confidence": 47.2,
      "main_pick_meta": {
        "confidence": "low",
        "display_text": "Winner : Villarreal",
        "edge": 0.0903,
        "edge_gap": 0.2028,
        "market": "1X2",
        "market_prob": 0.3813,
        "model_prob": 0.4716,
        "pick_type": "winner",
        "probabilities": {
          "away": 26.9,
          "draw": 26.0,
          "home": 47.2
        },
        "reason": "",
        "selection": "home",
        "selection_name": "Villarreal"
      },
      "market_comparison": [
        {
          "affi_link": "",
          "bookmaker_name": "Pinnacle",
          "odd": 2.55
        }
      ],
      "risk_color": "#f44336",
      "risk_key": "high_risk",
      "stacked_market": null,
      "value_bet": {
        "best_odds": 2.55,
        "bookmaker_id": 0,
        "bookmaker_name": "Pinnacle",
        "display_market": "Villarreal Win",
        "is_value": true,
        "label": "Home",
        "market_fair_odds": 2.62,
        "market_odds": 2.55,
        "model_odds": 2.12,
        "overround": 2.8,
        "prob_edge": 8.0,
        "value_pct": 20.3,
        "value_rating": "strong_value"
      }
    },
    "betting_markets": {
      "btts": {
        "away_clean_sheet": 14,
        "away_failed_to_score": 5,
        "away_played": 37,
        "away_score_rate": 73.0,
        "home_clean_sheet": 8,
        "home_failed_to_score": 6,
        "home_played": 37,
        "home_score_rate": 83.1,
        "no_prob": 37.9,
        "pick": "No",
        "pick_prob": 62.1,
        "source": "xG_dc",
        "strong_pick": true,
        "yes_prob": 62.1
      },
      "correct_score": {
        "away_expected": 1.31,
        "home_expected": 1.78,
        "scores": [
          {
            "away": 1,
            "home": 1,
            "label": "1-1",
            "prob": 10.6
          },
          {
            "away": 1,
            "home": 2,
            "label": "2-1",
            "prob": 9.4
          },
          {
            "away": 0,
            "home": 1,
            "label": "1-0",
            "prob": 8.1
          },
          {
            "away": 0,
            "home": 2,
            "label": "2-0",
            "prob": 7.2
          },
          {
            "away": 2,
            "home": 1,
            "label": "1-2",
            "prob": 6.9
          }
        ],
        "source": "xG"
      },
      "double_chance": {
        "options": [
          {
            "key": "1X",
            "label": "Villarreal or Draw",
            "prob": 73.1
          },
          {
            "key": "12",
            "label": "Villarreal or Atletico Madrid",
            "prob": 74.0
          },
          {
            "key": "X2",
            "label": "Draw or Atletico Madrid",
            "prob": 52.9
          }
        ],
        "pick_key": "12",
        "pick_label": "Villarreal or Atletico Madrid",
        "pick_prob": 74.0
      },
      "match_winner": {
        "away_pct": 26.9,
        "draw_pct": 26.0,
        "home_pct": 47.1,
        "lean_key": "home",
        "lean_label": "Villarreal"
      },
      "over_under": {
        "api_hint": null,
        "avg_total": 3.09,
        "away_avg_scored": 1.6,
        "confidence": "medium",
        "home_avg_scored": 1.8,
        "over_prob": 59.7,
        "pick": "Under 2.5",
        "pick_prob": 59.7,
        "source": "xG_dc",
        "strong_pick": true,
        "total_expected": 3.09,
        "under_prob": 40.3
      },
      "prob_source": "poisson",
      "value_bet_enhanced": {
        "bookmaker_id": 0,
        "bookmaker_name": "Pinnacle",
        "edge": 20.3,
        "implied_prob": 39.2,
        "is_value": true,
        "label": "Home",
        "market": "Villarreal Win",
        "model_prob": 47.2,
        "odds": 2.55
      }
    },
    "closing_line_bundle": {
      "away_team": "Atletico Madrid",
      "closing_bookmaker": "Pinnacle",
      "closing_capture": "PRE1",
      "early_bookmaker": "Pinnacle",
      "early_capture": "PRE30",
      "has_data": true,
      "home_team": "Villarreal",
      "largest_move_kind": null,
      "max_abs_move_pp": 0.0,
      "model_vs_closing": [
        {
          "closing_implied_pct": 38.13,
          "gap_pp": 9.03,
          "kind": "1x2_h",
          "model_pct": 47.16
        },
        {
          "closing_implied_pct": 24.62,
          "gap_pp": 1.35,
          "kind": "1x2_d",
          "model_pct": 25.97
        },
        {
          "closing_implied_pct": 37.25,
          "gap_pp": -10.38,
          "kind": "1x2_a",
          "model_pct": 26.87
        },
        {
          "closing_implied_pct": 68.09,
          "gap_pp": -8.39,
          "kind": "ou_o",
          "model_pct": 59.7
        },
        {
          "closing_implied_pct": 31.91,
          "gap_pp": 8.39,
          "kind": "ou_u",
          "model_pct": 40.3
        }
      ],
      "movement": [
        {
          "closing": 2.55,
          "early": 2.55,
          "implied_closing_pct": 38.13,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 38.13,
          "kind": "1x2_h"
        },
        {
          "closing": 3.95,
          "early": 3.95,
          "implied_closing_pct": 24.62,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 24.62,
          "kind": "1x2_d"
        },
        {
          "closing": 2.61,
          "early": 2.61,
          "implied_closing_pct": 37.25,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 37.25,
          "kind": "1x2_a"
        },
        {
          "closing": 1.42,
          "early": 1.42,
          "implied_closing_pct": 68.09,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 68.09,
          "kind": "ou_o"
        },
        {
          "closing": 3.03,
          "early": 3.03,
          "implied_closing_pct": 31.91,
          "implied_delta_pp": 0.0,
          "implied_early_pct": 31.91,
          "kind": "ou_u"
        }
      ],
      "movement_negligible": true,
      "same_bookmaker": true,
      "top_value_gap": {
        "gap_pp": 9.0,
        "kind": "1x2_h"
      }
    },
    "correct_score_insight": {
      "best_value": null,
      "most_likely": {
        "label": "1-1",
        "prob": 10.6
      }
    },
    "home_xg": 1.78,
    "homepage_pick": null,
    "market_cards": [
      {
        "decision": "value_bet",
        "ev_available": true,
        "ev_over": -0.1045,
        "ev_over_display": {
          "capped": false,
          "raw_pct": -10.4,
          "text": "-10.4%"
        },
        "ev_under": 0.2493,
        "ev_under_display": {
          "capped": false,
          "raw_pct": 24.9,
          "text": "+24.9%"
        },
        "featured": true,
        "id": "ou_2_5",
        "max_ev": 0.2493,
        "over_prob": 59.7,
        "sort_key": 10374.37,
        "tier": "best",
        "under_prob": 40.3,
        "value_side": "under"
      },
      {
        "decision": "value_bet",
        "ev_available": true,
        "ev_no": 0.2355,
        "ev_no_display": {
          "capped": false,
          "raw_pct": 23.5,
          "text": "+23.5%"
        },
        "ev_yes": -0.112,
        "ev_yes_display": {
          "capped": false,
          "raw_pct": -11.2,
          "text": "-11.2%"
        },
        "featured": false,
        "id": "btts",
        "max_ev": 0.2355,
        "no_prob": 37.9,
        "sort_key": 10211.95,
        "tier": "best",
        "value_side": "no",
        "yes_prob": 62.1
      },
      {
        "decision": "value_bet",
        "ev": 0.0619,
        "ev_available": true,
        "ev_display": {
          "capped": false,
          "raw_pct": 6.2,
          "text": "+6.2%"
        },
        "featured": false,
        "id": "1x2",
        "implied_prob": 0.3813,
        "max_ev": 0.0619,
        "max_ev_display": {
          "capped": false,
          "raw_pct": 6.2,
          "text": "+6.2%"
        },
        "model_prob": 0.4716,
        "side_label": "Villarreal",
        "sort_key": 10055.71,
        "tier": "best"
      },
      {
        "featured": false,
        "id": "correct_score",
        "sort_key": 811.8,
        "tier": "risk",
        "top_label": "1-1",
        "top_prob": 10.6
      }
    ],
    "match": {
      "away_expected_goals": null,
      "away_team_id": 530,
      "away_team_logo": "/static/teams/530.webp",
      "away_team_name": "Atletico Madrid",
      "country_flag": "/static/images/country/es.svg",
      "country_name": "Spain",
      "fixture_id": 1391198,
      "goals_away": null,
      "goals_home": null,
      "home_expected_goals": null,
      "home_team_id": 533,
      "home_team_logo": "/static/teams/533.webp",
      "home_team_name": "Villarreal",
      "league_country": "Spain",
      "league_id": 140,
      "league_logo": "/static/leagues/140.webp",
      "league_name": "La Liga",
      "league_season": 2025,
      "match_date": "2026-05-24 16:00:00",
      "score_fulltime_away": null,
      "score_fulltime_home": null,
      "status_long": "Not Started",
      "status_short": "NS"
    },
    "match_decision": {
      "confidence": {
        "breakdown": [
          "pred_conf_md_max_1x2_under_50",
          "pred_conf_md_line_above_ev"
        ],
        "breakdown_resolved": [
          "Max 1X2 prob under 50% (open contest) (\u22121.0)",
          "At least one tracked line above +EV threshold (+0.5)"
        ],
        "score": 6.5
      },
      "markets": {
        "1x2": {
          "1x2_ev_mode": "market_first_p15",
          "away": {
            "alpha": 0.3799,
            "best_odd": 2.61,
            "calibration": {
              "active": false,
              "hook": "CALIBRATE_1X2_P_FINAL"
            },
            "edge": -0.0394,
            "ev": -0.1306,
            "implied_prob": 0.3725,
            "model_prob": 0.2687,
            "p_final": 0.3331
          },
          "draw": {
            "alpha": 0.2939,
            "best_odd": 3.95,
            "calibration": {
              "active": false,
              "hook": "CALIBRATE_1X2_P_FINAL"
            },
            "edge": 0.004,
            "ev": -0.012,
            "implied_prob": 0.2462,
            "model_prob": 0.2597,
            "p_final": 0.2501
          },
          "ev_available": true,
          "home": {
            "alpha": 0.3891,
            "best_odd": 2.55,
            "calibration": {
              "active": false,
              "hook": "CALIBRATE_1X2_P_FINAL"
            },
            "edge": 0.0351,
            "ev": 0.0619,
            "implied_prob": 0.3813,
            "model_prob": 0.4716,
            "p_final": 0.4164
          }
        },
        "btts": {
          "best_no_odd": 3.26,
          "best_yes_odd": 1.43,
          "edge_no": 0.0699,
          "edge_yes": -0.0699,
          "ev_available": true,
          "ev_no": 0.2355,
          "ev_yes": -0.112,
          "implied_no": 0.3091,
          "implied_yes": 0.6909,
          "n_bookmakers": 11,
          "reliability": "medium"
        },
        "ou25": {
          "best_over_odd": 1.5,
          "best_under_odd": 3.1,
          "edge_over": -0.075,
          "edge_under": 0.075,
          "ev_available": true,
          "ev_over": -0.1045,
          "ev_under": 0.2493,
          "implied_over": 0.672,
          "implied_under": 0.328,
          "n_bookmakers": 11,
          "reliability": "medium"
        }
      },
      "match_tier": "value_game",
      "min_ev": 0.02,
      "total_xg": 3.09,
      "variance_flag": false
    },
    "unified_decision": {
      "actionable_ev_threshold": 0.02,
      "algorithm": {
        "enabled_since": "2026-04-26",
        "game_typing_module": true,
        "version": "2.1.0"
      },
      "balanced_alternative": null,
      "best_tracked_ev": 0.2493,
      "confidence": 6.5,
      "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_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)",
          "Two or more valid +EV lines at threshold (+0.5)"
        ],
        "score": 6.5
      },
      "execution": {
        "1x2_dominant": false,
        "1x2_open_contest": true,
        "grade": "A",
        "stake_factor": 1.0
      },
      "favourite_misaligned_1x2": {
        "active": false,
        "gap": null,
        "side": null
      },
      "game_type": {
        "label_zh": "\u5927\u5f00\u5927\u5408\uff08\u8fdb\u7403\u578b\uff09",
        "scoring_type": "high_scoring",
        "signals": {
          "btts_yes_prob": 0.621,
          "draw_prob": 0.2597,
          "max_1x2_prob": 0.4716,
          "over_prob": 0.597,
          "total_xg": 3.09,
          "under_prob": 0.403,
          "xg_diff": 0.47
        },
        "type": "high_scoring",
        "typing_weights_enabled": true
      },
      "hero_display_pick": null,
      "longshot_picks": [],
      "markets": {
        "1x2": {
          "decision": "value_bet",
          "edge": 0.0351,
          "ev": 0.0619,
          "implied_prob": 0.3813,
          "max_ev_side": "home",
          "model_prob": 0.4716,
          "side": "home",
          "side_label": "Villarreal"
        },
        "btts": {
          "decision": "value_bet",
          "edge": 0.0699,
          "ev": 0.2355,
          "implied_prob": 0.3091,
          "model_prob": 0.379,
          "side": "no",
          "value_side": "no"
        },
        "ou_2_5": {
          "decision": "value_bet",
          "edge": 0.075,
          "ev": 0.2493,
          "implied_prob": 0.328,
          "model_prob": 0.403,
          "side": "under",
          "value_side": "under"
        }
      },
      "match_id": 1391198,
      "match_regime": {
        "action": "optional",
        "actionable": true,
        "clear_edge": false,
        "code": "thin_edge",
        "execution_line_key": null,
        "insight_line_key": null,
        "max_valid_ev": 0.2493,
        "min_ev": 0.02,
        "stake_mult": 0.25,
        "use_split_strip": false
      },
      "match_tier": "value_game",
      "no_clear_primary": false,
      "probabilities": {
        "away": 0.2687,
        "draw": 0.2597,
        "home": 0.4716
      },
      "reason_codes": [
        "high_total_goals"
      ],
      "secondary_pick": {
        "decision": "value_bet",
        "ev": 0.0619,
        "implied_prob": 0.3813,
        "market": "1x2",
        "model_prob": 0.4716,
        "not_dominant": true,
        "risk_band": "medium",
        "risk_tier": "secondary",
        "side": "home",
        "side_label": "Villarreal",
        "slot": "secondary"
      },
      "secondary_picks": [
        {
          "decision": "value_bet",
          "ev": 0.0619,
          "implied_prob": 0.3813,
          "market": "1x2",
          "model_prob": 0.4716,
          "not_dominant": true,
          "risk_band": "medium",
          "risk_tier": "secondary",
          "side": "home",
          "side_label": "Villarreal",
          "slot": "secondary"
        }
      ],
      "suppressed_primary": null,
      "teams": {
        "away": "Atletico Madrid",
        "home": "Villarreal"
      },
      "top_pick": {
        "composite_score": 0.095445,
        "decision": "value_bet",
        "ev": 0.2493,
        "implied_prob": 0.328,
        "market": "ou_2_5",
        "model_prob": 0.403,
        "not_dominant": true,
        "primary_strength": "clear",
        "risk_band": "medium",
        "risk_tier": "primary",
        "side": "under",
        "slot": "primary",
        "speculative_primary": false
      },
      "valid_markets_count": 3
    }
  },
  "fixture_id": 1391198,
  "generated_at_utc": "2026-05-24T19:01:20.020448+00:00",
  "lang_id": "en"
}
How to use this
  • Focus on the Primary line when you want one actionable idea.
  • Do not parlay many thin-edge picks together; edges do not add reliably.
  • Treat longshots as optional, high-stake-sizing plays only.

Get Premium Predictions for Villarreal & Atletico Madrid!

Unlock in-depth analysis, exclusive betting tips, and match forecasts with our premium subscription service.

Subscribe Now
Back to Statistics
La Liga La LigaStandings
# TEAM MP W D L PTS
1 Barcelona 38 31 1 6 94
2 Real Madrid 38 27 5 6 86
3 Villarreal 38 22 6 10 72
4 Atletico Madrid 38 21 6 11 69
5 Real Betis 38 15 15 8 60
6 Celta Vigo 38 14 12 12 54
7 Getafe 38 15 6 17 51
8 Rayo Vallecano 38 12 14 12 50
9 Valencia 38 13 10 15 49
10 Real Sociedad 38 11 13 14 46
11 Espanyol 38 12 10 16 46
12 Athletic Club 38 13 6 19 45
13 Sevilla 38 12 7 19 43
14 Alaves 38 11 10 17 43
15 Elche 38 10 13 15 43
16 Levante 38 11 9 18 42
17 Osasuna 38 11 9 18 42
18 Mallorca 38 11 9 18 42
19 Girona 38 9 14 15 41
20 Oviedo 38 6 11 21 29
# TEAM MP GS GC +/- PTS
1 Barcelona 38 95 36 +59 94
2 Real Madrid 38 77 35 +42 86
3 Villarreal 38 72 46 +26 72
4 Atletico Madrid 38 62 44 +18 69
5 Real Betis 38 59 48 +11 60
6 Real Sociedad 38 59 61 -2 46
7 Celta Vigo 38 53 48 +5 54
8 Elche 38 49 57 -8 43
9 Mallorca 38 47 57 -10 42
10 Levante 38 47 61 -14 42
11 Valencia 38 46 55 -9 49
12 Sevilla 38 46 60 -14 43
13 Osasuna 38 44 50 -6 42
14 Alaves 38 44 56 -12 43
15 Espanyol 38 43 55 -12 46
16 Athletic Club 38 43 58 -15 45
17 Rayo Vallecano 38 41 44 -3 50
18 Girona 38 39 55 -16 41
19 Getafe 38 32 38 -6 51
20 Oviedo 38 26 60 -34 29
# TEAM MP xG xGC +/- PTS
1 Barcelona 38 86.7 45.6 +41.1 94
2 Real Madrid 38 74.8 40.1 +34.7 86
3 Villarreal 38 57.8 45.0 +12.8 72
4 Atletico Madrid 38 58.0 48.5 +9.5 69
5 Real Betis 38 54.7 45.5 +9.2 60
6 Athletic Club 38 49.4 40.5 +8.9 45
7 Valencia 38 49.3 46.3 +3.0 49
8 Rayo Vallecano 38 50.1 48.0 +2.1 50
9 Celta Vigo 38 49.7 49.4 +0.3 54
10 Alaves 38 46.1 47.4 -1.3 43
11 Osasuna 38 45.5 49.1 -3.6 42
12 Espanyol 38 48.4 53.8 -5.4 46
13 Real Sociedad 38 49.0 54.7 -5.7 46
14 Levante 38 51.5 59.3 -7.8 42
15 Girona 38 45.6 55.4 -9.8 41
16 Getafe 38 30.2 40.8 -10.6 51
17 Sevilla 38 38.0 54.0 -16.0 43
18 Mallorca 38 43.1 61.9 -18.8 42
19 Elche 38 40.5 60.1 -19.6 43
20 Oviedo 38 34.3 57.3 -23.0 29