The model missed the final outcome (Draw 2–2).
The model had projected FC Bocholt at 41.8%, but the full-time result went the other way.
Pasaran yang dijejaki vs hasil sepenuh masa
Setiap baris membandingkan model pra-perlawanan lean dengan keputusan sepenuh masa.
- Pasaran Ramalan Hasilnya Hasil
- Over / Under 2.5 Under 2.5 Over 2.5 (4 matlamat) ✖ tak betul
- Kedua-dua Pasukan Menjaringkan Gol BTTS Tidak Ya ✖ tak betul
- 1X2 FC Bocholt Lukis ✖ tak betul
- Cerapan skor tepat 1-1, 1-2, 0-1, 0-2, 2-1 2-2 ✖ tak betul
Post Match Insights
What worked
- Expected goals projected a high-scoring match (ΣxG 2.70) — 4 goals materialised
What failed
- Both Teams To Score: model leaned BTTS No; match finished BTTS Yes
- Over / Under 2.5: model leaned Under 2.5; match finished Over 2.5 (4 goals)
Market lesson
The full-time result was Draw 2–2, which did not match the model's pre-match lean on 1X2.
Garis Masa Ramalan
Cara ramalan ini beralih daripada ramalan kepada semakan sepenuh masa.
-
May 16, 2026 · 12:00 UTC Forecast generated
- xG · FC Bocholt 1.45 — Rot-Weiss Oberhausen 1.25
-
May 16, 2026 · 12:00 UTC Kickoff
-
FT Full-time result Draw · 2–2
-
FT Prediction missed 1X2 lean did not match full-time result
-
Archived Prediction review
Gambar Sejarah
Dibekukan pada sepak mula — keluaran model seperti sebelum perlawanan bermula.
Metrik pra-padanan (konteks sejarah)
- Validation: Pending
- No strong statistical edge
- Market has already priced much of the edge
- Validation pending
Validation Report
Immutable SnapshotModel Performance
This prediction contributes to:
- Primary Bets ROI (180d): -100.0%
Semakan Soalan Lazim
- Sejauh manakah ramalan itu tepat?
- Halaman ini menilai pasaran berarah (1X2, Lebih/Bawah 2.5, BTTS) berbanding keputusan sepenuh masa. Gred ramalan menggambarkan bilangan pasaran yang dijejaki itu sepadan dengan realiti.
- Apakah ukuran Ketepatan xG?
- Ketepatan xG membandingkan profil matlamat jangkaan pra-perlawanan model dengan garis skor sebenar — bukan sama ada setiap pasaran mencecah. Semakan arah yang kukuh boleh wujud bersama dengan skor ketepatan xG yang sederhana.
- Mengapakah skor tepat tidak diramalkan?
- Hasil skor betul ialah ekor berkemungkinan rendah walaupun model membaca profil padanan dengan baik. Kami menyerlahkan tong skor tertinggi untuk konteks; kehilangan baris tepat tidak membatalkan semakan arah.
- Adakah ini meningkatkan rekod AI?
- Setiap perlawanan selesai dilog masuk dalam saluran paip pengesahan kami. Kadar hit teragregat dan kajian CLV diterbitkan secara berasingan — halaman ini ialah jejak audit setiap perlawanan.
Ramalan adalah untuk tujuan maklumat sahaja. Sentiasa berjudi dengan penuh tanggungjawab dan dalam had anda. Prestasi masa lalu tidak menjamin hasil masa depan.
Taklimat AI untuk perlawanan ini belum tersedia. Selepas naik taraf pelayan, jalankan semula “Batch generate odds” untuk menjana ringkasan.
View technical JSON
{
"bundle_version": 1,
"content_hash": "8ded53461e6bef9f49a5259f863c2e840150fc1e6af140b90398932bfa733fce",
"decision_algo_version": "2.1.0",
"facts": {
"ai_fp": {
"away_predicted_xg": 1.25,
"away_win_prob": null,
"dc_rho": -0.13,
"draw_prob": null,
"fair_odds_away": null,
"fair_odds_draw": null,
"fair_odds_home": null,
"home_predicted_xg": 1.45,
"home_win_prob": null,
"prediction_confidence": "none"
},
"api_prediction": {
"advice": "Winner : Rot-Weiss Oberhausen",
"main_pick_display": "No Strong Winner Bet",
"percent_away": "45%",
"percent_draw": "45%",
"percent_home": "10%",
"winner_name": "Rot-Weiss Oberhausen"
},
"away_xg": 1.25,
"betting_insight": {
"bet_label": "FC Bocholt",
"confidence": null,
"main_pick_meta": {
"confidence": "low",
"display_text": "No Strong Winner Bet",
"edge": 0.0882,
"edge_gap": 0.092,
"market": "1X2",
"market_prob": 0.3295,
"model_prob": 0.4177,
"pick_type": "no_strong",
"probabilities": {
"away": 32.6,
"draw": 25.7,
"home": 41.8
},
"reason": "No clear edge in 1X2 market",
"selection": null,
"selection_name": null
},
"market_comparison": [],
"risk_color": null,
"risk_key": null,
"stacked_market": null,
"value_bet": null
},
"betting_markets": {
"btts": {
"away_clean_sheet": 11,
"away_failed_to_score": 5,
"away_played": 33,
"away_score_rate": 84.8,
"home_clean_sheet": 8,
"home_failed_to_score": 9,
"home_played": 33,
"home_score_rate": 72.7,
"no_prob": 38.3,
"pick": "No",
"pick_prob": 61.7,
"source": "stats",
"strong_pick": true,
"yes_prob": 61.7
},
"correct_score": {
"away_expected": 1.75,
"home_expected": 1.3,
"scores": [
{
"away": 1,
"home": 1,
"label": "1-1",
"prob": 10.8
},
{
"away": 2,
"home": 1,
"label": "1-2",
"prob": 9.4
},
{
"away": 1,
"home": 0,
"label": "0-1",
"prob": 8.3
},
{
"away": 2,
"home": 0,
"label": "0-2",
"prob": 7.3
},
{
"away": 1,
"home": 2,
"label": "2-1",
"prob": 7.0
}
],
"source": "avg"
},
"double_chance": {
"options": [
{
"key": "1X",
"label": "FC Bocholt or Draw",
"prob": 55.0
},
{
"key": "12",
"label": "FC Bocholt or Rot-Weiss Oberhausen",
"prob": 55.0
},
{
"key": "X2",
"label": "Draw or Rot-Weiss Oberhausen",
"prob": 90.0
}
],
"pick_key": "X2",
"pick_label": "Draw or Rot-Weiss Oberhausen",
"pick_prob": 90.0
},
"match_winner": {
"away_pct": 45.0,
"draw_pct": 45.0,
"home_pct": 10.0,
"lean_key": "draw",
"lean_label": "Draw"
},
"over_under": {
"api_hint": null,
"avg_total": 3.05,
"away_avg_scored": 1.8,
"confidence": "medium",
"home_avg_scored": 1.4,
"over_prob": 58.8,
"pick": "Under 2.5",
"pick_prob": 58.8,
"source": "avg",
"strong_pick": true,
"total_expected": 3.05,
"under_prob": 41.2
},
"prob_source": null,
"value_bet_enhanced": null
},
"closing_line_bundle": {
"away_team": "Rot-Weiss Oberhausen",
"closing_bookmaker": "Pinnacle",
"closing_capture": "PRE1",
"early_bookmaker": "Pinnacle",
"early_capture": "PRE30",
"has_data": true,
"home_team": "FC Bocholt",
"largest_move_kind": null,
"max_abs_move_pp": 0.0,
"model_vs_closing": [
{
"closing_implied_pct": 32.95,
"gap_pp": 8.82,
"kind": "1x2_h",
"model_pct": 41.77
},
{
"closing_implied_pct": 25.86,
"gap_pp": -0.19,
"kind": "1x2_d",
"model_pct": 25.67
},
{
"closing_implied_pct": 41.19,
"gap_pp": -8.62,
"kind": "1x2_a",
"model_pct": 32.57
},
{
"closing_implied_pct": 63.98,
"gap_pp": -5.18,
"kind": "ou_o",
"model_pct": 58.8
},
{
"closing_implied_pct": 36.02,
"gap_pp": 5.18,
"kind": "ou_u",
"model_pct": 41.2
}
],
"movement": [
{
"closing": 2.7,
"early": 2.7,
"implied_closing_pct": 32.95,
"implied_delta_pp": 0.0,
"implied_early_pct": 32.95,
"kind": "1x2_h"
},
{
"closing": 3.44,
"early": 3.44,
"implied_closing_pct": 25.86,
"implied_delta_pp": 0.0,
"implied_early_pct": 25.86,
"kind": "1x2_d"
},
{
"closing": 2.16,
"early": 2.16,
"implied_closing_pct": 41.19,
"implied_delta_pp": 0.0,
"implied_early_pct": 41.19,
"kind": "1x2_a"
},
{
"closing": 1.43,
"early": 1.43,
"implied_closing_pct": 63.98,
"implied_delta_pp": 0.0,
"implied_early_pct": 63.98,
"kind": "ou_o"
},
{
"closing": 2.54,
"early": 2.54,
"implied_closing_pct": 36.02,
"implied_delta_pp": 0.0,
"implied_early_pct": 36.02,
"kind": "ou_u"
}
],
"movement_negligible": true,
"same_bookmaker": true,
"top_value_gap": {
"gap_pp": 8.8,
"kind": "1x2_h"
}
},
"correct_score_insight": {
"best_value": null,
"most_likely": {
"label": "1-1",
"prob": 10.8
}
},
"home_xg": 1.45,
"homepage_pick": null,
"market_cards": [
{
"decision": "value_bet",
"ev_available": true,
"ev_over": -0.1474,
"ev_under": 0.1454,
"featured": true,
"id": "ou_2_5",
"max_ev": 0.1454,
"over_prob": 58.8,
"sort_key": 10280.86,
"tier": "best",
"under_prob": 41.2,
"value_side": "under"
},
{
"decision": "value_bet",
"ev_available": true,
"ev_no": 0.149,
"ev_yes": -0.1115,
"featured": false,
"id": "btts",
"max_ev": 0.149,
"no_prob": 38.3,
"sort_key": 10134.1,
"tier": "best",
"value_side": "no",
"yes_prob": 61.7
},
{
"decision": "no_bet",
"ev": -0.0174,
"ev_available": true,
"featured": false,
"id": "1x2",
"implied_prob": 0.3295,
"max_ev": -0.0174,
"model_prob": 0.4177,
"side_label": "FC Bocholt",
"sort_key": 1795.65,
"tier": "bad_ev"
},
{
"featured": false,
"id": "correct_score",
"sort_key": 812.4,
"tier": "risk",
"top_label": "1-1",
"top_prob": 10.8
}
],
"match": {
"away_expected_goals": null,
"away_team_id": 1658,
"away_team_logo": "/static/teams/1658.webp",
"away_team_name": "Rot-Weiss Oberhausen",
"country_flag": "/static/images/country/de.svg",
"country_name": "Germany",
"fixture_id": 1409998,
"goals_away": null,
"goals_home": null,
"home_expected_goals": null,
"home_team_id": 12764,
"home_team_logo": "/static/teams/12764.webp",
"home_team_name": "FC Bocholt",
"league_country": "Germany",
"league_id": 87,
"league_logo": "/static/leagues/87.webp",
"league_name": "Regionalliga West",
"league_season": 2025,
"match_date": "2026-05-16 12: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.3918,
"best_odd": 2.16,
"calibration": {
"active": false,
"hook": "CALIBRATE_1X2_P_FINAL"
},
"edge": -0.0338,
"ev": -0.1833,
"implied_prob": 0.4119,
"model_prob": 0.3257,
"p_final": 0.3781
},
"draw": {
"alpha": 0.2991,
"best_odd": 3.44,
"calibration": {
"active": false,
"hook": "CALIBRATE_1X2_P_FINAL"
},
"edge": -0.0006,
"ev": -0.1123,
"implied_prob": 0.2586,
"model_prob": 0.2567,
"p_final": 0.258
},
"ev_available": true,
"home": {
"alpha": 0.3905,
"best_odd": 2.7,
"calibration": {
"active": false,
"hook": "CALIBRATE_1X2_P_FINAL"
},
"edge": 0.0344,
"ev": -0.0174,
"implied_prob": 0.3295,
"model_prob": 0.4177,
"p_final": 0.3639
}
},
"btts": {
"best_no_odd": 3.0,
"best_yes_odd": 1.44,
"edge_no": 0.0545,
"edge_yes": -0.0545,
"ev_available": true,
"ev_no": 0.149,
"ev_yes": -0.1115,
"implied_no": 0.3285,
"implied_yes": 0.6715,
"n_bookmakers": 6,
"reliability": "medium"
},
"ou25": {
"best_over_odd": 1.45,
"best_under_odd": 2.78,
"edge_over": -0.0645,
"edge_under": 0.0645,
"ev_available": true,
"ev_over": -0.1474,
"ev_under": 0.1454,
"implied_over": 0.6525,
"implied_under": 0.3475,
"n_bookmakers": 6,
"reliability": "medium"
}
},
"match_tier": "value_game",
"min_ev": 0.02,
"total_xg": 2.7,
"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.149,
"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": "\u672a\u5206\u578b",
"scoring_type": "neutral",
"signals": {
"btts_yes_prob": 0.617,
"draw_prob": 0.2567,
"max_1x2_prob": 0.4177,
"over_prob": 0.588,
"total_xg": 2.7,
"under_prob": 0.412,
"xg_diff": 0.2
},
"type": "neutral",
"typing_weights_enabled": true
},
"hero_display_pick": null,
"longshot_picks": [],
"markets": {
"1x2": {
"decision": "no_bet",
"edge": 0.0344,
"ev": -0.0174,
"implied_prob": 0.3295,
"max_ev_side": "home",
"model_prob": 0.4177,
"side": "home",
"side_label": "FC Bocholt"
},
"btts": {
"decision": "value_bet",
"edge": 0.0545,
"ev": 0.149,
"implied_prob": 0.3285,
"model_prob": 0.383,
"side": "no",
"value_side": "no"
},
"ou_2_5": {
"decision": "value_bet",
"edge": 0.0645,
"ev": 0.1454,
"implied_prob": 0.3475,
"model_prob": 0.412,
"side": "under",
"value_side": "under"
}
},
"match_id": 1409998,
"match_regime": {
"action": "optional",
"actionable": true,
"clear_edge": false,
"code": "thin_edge",
"execution_line_key": null,
"insight_line_key": null,
"max_valid_ev": 0.149,
"min_ev": 0.02,
"stake_mult": 0.25,
"use_split_strip": false
},
"match_tier": "value_game",
"no_clear_primary": false,
"probabilities": {
"away": 0.3257,
"draw": 0.2567,
"home": 0.4177
},
"reason_codes": [
"no_ev_1x2",
"high_total_goals"
],
"secondary_pick": null,
"secondary_picks": [],
"suppressed_primary": null,
"teams": {
"away": "Rot-Weiss Oberhausen",
"home": "FC Bocholt"
},
"top_pick": {
"composite_score": 0.059905,
"decision": "value_bet",
"ev": 0.1454,
"implied_prob": 0.3475,
"market": "ou_2_5",
"model_prob": 0.412,
"not_dominant": true,
"primary_strength": "clear",
"risk_band": "medium",
"risk_tier": "primary",
"side": "under",
"slot": "primary",
"speculative_primary": false
},
"valid_markets_count": 2
}
},
"fixture_id": 1409998,
"generated_at_utc": "2026-05-16T12:00:50.436539+00:00",
"lang_id": "en"
}
Terokai Kandungan Ramalan Lain
Dapatkan Ramalan Premium untuk FC Bocholt & Rot-Weiss Oberhausen!
Buka analisis mendalam, tip pertaruhan eksklusif, dan ramalan perlawanan dengan perkhidmatan langganan premium kami.
Langgan Sekarang
Regionalliga West — Kedudukan
| # | PASUKAN | P | M | S | K | Mata |
|---|---|---|---|---|---|---|
| 1 | Fortuna Köln | 34 | 20 | 10 | 4 | 70 |
| 2 | Rot-Weiss Oberhausen | 34 | 19 | 9 | 6 | 66 |
| 3 | Schalke 04 II | 34 | 18 | 7 | 9 | 61 |
| 4 | FC Gutersloh | 34 | 16 | 11 | 7 | 59 |
| 5 | Borussia Dortmund II | 34 | 16 | 10 | 8 | 58 |
| 6 | Borussia M'gladbach II | 34 | 17 | 7 | 10 | 58 |
| 7 | Sportfreunde Siegen | 34 | 14 | 13 | 8 | 54 |
| 8 | Paderborn II | 34 | 12 | 10 | 12 | 46 |
| 9 | Bonner SC | 34 | 12 | 10 | 12 | 46 |
| 10 | Köln II | 34 | 13 | 6 | 15 | 45 |
| 11 | Sportfreunde Lotte | 34 | 11 | 12 | 11 | 45 |
| 12 | Fortuna Düsseldorf II | 34 | 11 | 7 | 16 | 40 |
| 13 | FC Bocholt | 34 | 10 | 9 | 15 | 39 |
| 14 | Bochum II | 34 | 9 | 12 | 13 | 39 |
| 15 | SV Rodinghausen | 34 | 7 | 8 | 19 | 29 |
| 16 | Wiedenbrück | 34 | 7 | 8 | 19 | 29 |
| 17 | Wuppertaler SV | 34 | 5 | 11 | 18 | 26 |
| 18 | SSVg Velbert | 34 | 6 | 7 | 21 | 25 |
| # | PASUKAN | P | J | B | +/- | Mata |
|---|---|---|---|---|---|---|
| 1 | Schalke 04 II | 34 | 77 | 50 | +27 | 61 |
| 2 | Fortuna Köln | 34 | 71 | 30 | +41 | 70 |
| 3 | Borussia Dortmund II | 34 | 66 | 50 | +16 | 58 |
| 4 | Sportfreunde Siegen | 34 | 62 | 43 | +19 | 54 |
| 5 | Borussia M'gladbach II | 34 | 61 | 46 | +15 | 58 |
| 6 | Rot-Weiss Oberhausen | 34 | 60 | 40 | +20 | 66 |
| 7 | FC Gutersloh | 34 | 55 | 40 | +15 | 59 |
| 8 | Köln II | 34 | 55 | 63 | -8 | 45 |
| 9 | Paderborn II | 34 | 52 | 38 | +14 | 46 |
| 10 | Bochum II | 34 | 50 | 62 | -12 | 39 |
| 11 | FC Bocholt | 34 | 49 | 57 | -8 | 39 |
| 12 | Fortuna Düsseldorf II | 34 | 47 | 58 | -11 | 40 |
| 13 | SV Rodinghausen | 34 | 46 | 63 | -17 | 29 |
| 14 | Sportfreunde Lotte | 34 | 45 | 55 | -10 | 45 |
| 15 | Wiedenbrück | 34 | 39 | 65 | -26 | 29 |
| 16 | Bonner SC | 34 | 38 | 42 | -4 | 46 |
| 17 | Wuppertaler SV | 34 | 36 | 70 | -34 | 26 |
| 18 | SSVg Velbert | 34 | 35 | 72 | -37 | 25 |