Statistik / Bola Sepak / Amerika Syarikat. MLS Next Pro / Portland Timbers II vs St. Louis City II

Portland Timbers II vs St. Louis City II Statistics & Analysis

Sep 14, 2026 - 20:00
1(6) 1.24
1(5) 1.36
xG Accuracy: 85%
Laman pertaruhan premium stake: pengguna baharu boleh guna kod promo FHn2uDc1. Daftar sekarang

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 Under 2.5 (2 matlamat) ✔ Betul
  • Kedua-dua Pasukan Menjaringkan Gol BTTS Tidak Ya ✖ tak betul
  • 1X2 St. Louis City II Lukis ✖ tak betul
  • Cerapan skor tepat 1-1, 0-1, 1-0, 1-2, 2-1 1-1 ✔ Betul

Validation Report

Immutable Snapshot

Prediction Time: Sep 08, 2026 · 02:44 UTC Snapshot ID: dp-7573801

Closing Odds 2.31
AI Fair Odds —
CLV +0.0%
Final Result Draw · Portland Timbers II 1–1 St. Louis City II
Prediction ✖ Missed
Decision Grade F

Model Performance

This prediction contributes to:

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

Intelijen pasaran

Bacaan selepas pilihan utama: bagaimana suapan penutup berprioriti bergerak berbanding model.

Ringkasan pasaran

Pasaran kekal stabil menjelang sepakan. Tiada anjakan implied ketara antara PRE30 dan PRE1 pada snapshot berprioriti.

Walaupun pergerakan lewat kecil, model masih menilai Lukis (1X2),St. Louis City II (1X2),Bawah 2.5 gol jauh melebihi implied snapshot penutupan — bacaan statik "model vs harga", bukan kejaran steam.

Model masih melebihi implied penutupan pada Bawah 2.5 gol kira-kira 10.0 mata peratus — isyarat salah harga paling jelas pada halaman ini.

Model vs implied penutup

Pasaran Model % Implied penutup % Jurang (pp)
Portland Timbers II (1X2) 32.4 39.6 -7.3
Lukis (1X2) 29.6 25.5 +4.1
St. Louis City II (1X2) 38.0 34.8 +3.2
Lebih 2.5 gol 48.2 58.2 -10.0
Bawah 2.5 gol 51.8 41.8 +10.0
Apa maksudnya

Secara ringkas: model kira-kira 51.8% pada Bawah 2.5 gol, manakala snapshot penutup menunjukkan kira-kira 41.8%. Bezanya — kira-kira 10.0 mata peratus — ialah jurang model-vs-pasaran terbesar yang ditonjolkan di halaman ini.

Ringkas: "implied penutup" ialah kebarangkalian terbit daripada odds akhir yang ditangkap (selepas de-vig ringkas). "Jurang (pp)" = peratus model tolak implied tersebut, dalam mata peratus (pp).

Pergerakan garisan menjelang sepakan mula

Satu buku prioriti setiap snapshot (bukan semua). Laluan tangkapan: PRE30 → PRE1 · Buku: Pinnacle

Dalam kurungan pada lajur: Penutup = snapshot pertama tersedia ikut PRE1→PRE5→PRE10→PRE30; Awal = pertama dalam PRE30→PRE10→PRE5 yang berbeza daripada Penutup.

Odds terperinci dilipat di bawah — pergerakan implied (de-vig) boleh diabaikan.

Lihat jadual penuh baris demi baris
Pasaran Awal (PRE30) Penutup (PRE1) Δ tersirat (pp)
Portland Timbers II (1X2) 2.32 2.31 +0.1
Lukis (1X2) 3.58 3.59 -0.1
St. Louis City II (1X2) 2.63 2.63 -0.0
Lebih 2.5 gol 1.62 1.6 +0.3
Bawah 2.5 gol 2.23 2.23 -0.3

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": "ccce9ed6918c0c1605a2aafd668a5b394626a2a6592ce4c19ef970782a5b2a42",
  "decision_algo_version": "2.5.0",
  "facts": {
    "ai_fp": {
      "away_predicted_xg": 1.36,
      "away_win_prob": 0.3801,
      "away_win_prob_posterior": null,
      "bayes_applied": 0,
      "btts_no_prob": 0.456,
      "btts_yes_prob": 0.545,
      "dc_rho": -0.13,
      "draw_prob": 0.2959,
      "draw_prob_posterior": null,
      "fair_odds_away": 2.63,
      "fair_odds_away_posterior": null,
      "fair_odds_draw": 3.38,
      "fair_odds_draw_posterior": null,
      "fair_odds_home": 3.09,
      "fair_odds_home_posterior": null,
      "home_predicted_xg": 1.24,
      "home_win_prob": 0.3239,
      "home_win_prob_posterior": null,
      "over_25_prob": 0.482,
      "prediction_confidence": "very_low",
      "under_25_prob": 0.518
    },
    "api_prediction": {
      "advice": "Double chance : Portland Timbers II or draw",
      "main_pick_display": "No Strong Winner Bet",
      "percent_away": "10%",
      "percent_draw": "45%",
      "percent_home": "45%",
      "winner_name": "Portland Timbers II"
    },
    "away_xg": 1.36,
    "betting_insight": {
      "bet_label": "St. Louis City II",
      "confidence": null,
      "main_pick_meta": {
        "confidence": "low",
        "display_text": "No Strong Winner Bet",
        "edge": 0.032,
        "edge_gap": 0.0566,
        "market": "1X2",
        "market_prob": 0.3483,
        "model_prob": 0.3803,
        "pick_type": "no_strong",
        "probabilities": {
          "away": 38.0,
          "draw": 29.6,
          "home": 32.4
        },
        "reason": "No clear edge in 1X2 market",
        "selection": null,
        "selection_name": null
      },
      "market_comparison": [
        {
          "affi_link": "",
          "bookmaker_name": "Pinnacle",
          "odd": 2.63
        }
      ],
      "risk_color": null,
      "risk_key": null,
      "stacked_market": null,
      "value_bet": {
        "best_odds": 2.63,
        "bookmaker_id": 0,
        "bookmaker_name": "Pinnacle",
        "display_market": "St. Louis City II Win",
        "is_value": false,
        "label": "Away",
        "market_fair_odds": 2.87,
        "market_odds": 2.63,
        "model_odds": 2.63,
        "overround": 9.2,
        "prob_edge": 0.0,
        "value_pct": 0.0,
        "value_rating": "no_value"
      }
    },
    "betting_markets": {
      "btts": {
        "away_clean_sheet": 7,
        "away_failed_to_score": 3,
        "away_played": 26,
        "away_score_rate": 74.3,
        "home_clean_sheet": 13,
        "home_failed_to_score": 4,
        "home_played": 26,
        "home_score_rate": 71.1,
        "no_prob": 45.6,
        "pick": "No",
        "pick_prob": 54.4,
        "source": "xG_dc",
        "strong_pick": true,
        "yes_prob": 54.4
      },
      "correct_score": {
        "away_expected": 1.36,
        "home_expected": 1.24,
        "scores": [
          {
            "away": 1,
            "home": 1,
            "label": "1-1",
            "prob": 12.5
          },
          {
            "away": 1,
            "home": 0,
            "label": "0-1",
            "prob": 10.1
          },
          {
            "away": 0,
            "home": 1,
            "label": "1-0",
            "prob": 9.2
          },
          {
            "away": 2,
            "home": 1,
            "label": "1-2",
            "prob": 8.5
          },
          {
            "away": 1,
            "home": 2,
            "label": "2-1",
            "prob": 7.8
          }
        ],
        "source": "xG"
      },
      "double_chance": {
        "options": [
          {
            "key": "1X",
            "label": "Portland Timbers II or Draw",
            "prob": 62.0
          },
          {
            "key": "12",
            "label": "Portland Timbers II or St. Louis City II",
            "prob": 70.4
          },
          {
            "key": "X2",
            "label": "Draw or St. Louis City II",
            "prob": 67.6
          }
        ],
        "pick_key": "12",
        "pick_label": "Portland Timbers II or St. Louis City II",
        "pick_prob": 70.4
      },
      "match_winner": {
        "away_pct": 38.0,
        "draw_pct": 29.6,
        "home_pct": 32.4,
        "lean_key": "away",
        "lean_label": "St. Louis City II"
      },
      "over_under": {
        "api_hint": null,
        "avg_total": 2.6,
        "away_avg_scored": 1.7,
        "confidence": "low",
        "home_avg_scored": 1.5,
        "over_prob": 48.2,
        "pick": "Under 2.5",
        "pick_prob": 51.8,
        "source": "xG_dc",
        "strong_pick": true,
        "total_expected": 2.6,
        "under_prob": 51.8
      },
      "prob_source": "poisson",
      "value_bet_enhanced": {
        "bookmaker_id": 0,
        "bookmaker_name": "Pinnacle",
        "edge": 6.3,
        "implied_prob": 27.9,
        "is_value": true,
        "label": "Draw",
        "market": "Draw",
        "model_prob": 29.6,
        "odds": 3.59
      }
    },
    "closing_line_bundle": {
      "away_team": "St. Louis City II",
      "closing_1x2_probs_pct": {
        "away": 34.83,
        "draw": 25.52,
        "home": 39.65
      },
      "closing_bookmaker": "Pinnacle",
      "closing_capture": "PRE1",
      "closing_fetched_at": "2026-09-14 19:59:01",
      "early_bookmaker": "Pinnacle",
      "early_capture": "PRE30",
      "early_fetched_at": "2026-09-14 19:29:11",
      "has_data": true,
      "home_team": "Portland Timbers II",
      "largest_move_kind": "ou_o",
      "max_abs_move_pp": 0.3,
      "model_vs_closing": [
        {
          "closing_implied_pct": 39.65,
          "gap_pp": -7.28,
          "kind": "1x2_h",
          "model_pct": 32.37
        },
        {
          "closing_implied_pct": 25.52,
          "gap_pp": 4.08,
          "kind": "1x2_d",
          "model_pct": 29.59
        },
        {
          "closing_implied_pct": 34.83,
          "gap_pp": 3.2,
          "kind": "1x2_a",
          "model_pct": 38.03
        },
        {
          "closing_implied_pct": 58.22,
          "gap_pp": -10.02,
          "kind": "ou_o",
          "model_pct": 48.2
        },
        {
          "closing_implied_pct": 41.78,
          "gap_pp": 10.02,
          "kind": "ou_u",
          "model_pct": 51.8
        }
      ],
      "movement": [
        {
          "closing": 2.31,
          "early": 2.32,
          "implied_closing_pct": 39.65,
          "implied_delta_pp": 0.13,
          "implied_early_pct": 39.52,
          "kind": "1x2_h"
        },
        {
          "closing": 3.59,
          "early": 3.58,
          "implied_closing_pct": 25.52,
          "implied_delta_pp": -0.1,
          "implied_early_pct": 25.61,
          "kind": "1x2_d"
        },
        {
          "closing": 2.63,
          "early": 2.63,
          "implied_closing_pct": 34.83,
          "implied_delta_pp": -0.03,
          "implied_early_pct": 34.86,
          "kind": "1x2_a"
        },
        {
          "closing": 1.6,
          "early": 1.62,
          "implied_closing_pct": 58.22,
          "implied_delta_pp": 0.3,
          "implied_early_pct": 57.92,
          "kind": "ou_o"
        },
        {
          "closing": 2.23,
          "early": 2.23,
          "implied_closing_pct": 41.78,
          "implied_delta_pp": -0.3,
          "implied_early_pct": 42.08,
          "kind": "ou_u"
        }
      ],
      "movement_negligible": true,
      "same_bookmaker": true,
      "top_value_gap": {
        "gap_pp": 10.0,
        "kind": "ou_u"
      }
    },
    "correct_score_insight": {
      "best_value": null,
      "lean_card": {
        "diff_pp": -0.8,
        "ev": -0.0625,
        "has_edge": false,
        "label": "1-1",
        "market_odds": 7.5,
        "market_prob": 0.1333,
        "market_prob_pct": 13.3,
        "model_prob": 0.125,
        "model_prob_pct": 12.5,
        "n_bookmakers": 5,
        "status_key": "no_value"
      },
      "most_likely": {
        "label": "1-1",
        "prob": 12.5
      },
      "top5": [
        {
          "label": "1-1",
          "prob": 12.5
        },
        {
          "label": "0-1",
          "prob": 10.1
        },
        {
          "label": "1-0",
          "prob": 9.2
        },
        {
          "label": "1-2",
          "prob": 8.5
        },
        {
          "label": "2-1",
          "prob": 7.8
        }
      ]
    },
    "home_xg": 1.24,
    "homepage_pick": null,
    "market_cards": [
      {
        "decision": "value_bet",
        "decision_layer": {
          "alpha": 0.1944,
          "available": true,
          "consensus_odds": 2.15,
          "edge": 0.0176,
          "edge_pp": 1.8,
          "market_prob": 0.4274,
          "mode": "market_first_ou",
          "model_prob": 0.518,
          "n_bookmakers": 5,
          "over": {
            "alpha": 0.2139,
            "best_odd": 1.605,
            "edge": -0.0194,
            "ev": -0.1121,
            "implied_prob": 0.5726,
            "model_prob": 0.482,
            "p_final": 0.5532
          },
          "p_final": 0.445,
          "prediction_confidence": "very_low",
          "raw_edge_pp": 9.1,
          "raw_signal_ev": 0.1137,
          "risk_adj_ev": -0.0432,
          "under": {
            "alpha": 0.1944,
            "best_odd": 2.15,
            "edge": 0.0176,
            "ev": -0.0432,
            "implied_prob": 0.4274,
            "model_prob": 0.518,
            "p_final": 0.445
          },
          "value_side": "under"
        },
        "ev_available": true,
        "ev_over": -0.2192,
        "ev_over_display": {
          "capped": false,
          "raw_pct": -21.9,
          "text": "-21.9%"
        },
        "ev_under": 0.1655,
        "ev_under_display": {
          "capped": false,
          "raw_pct": 16.6,
          "text": "+16.6%"
        },
        "featured": true,
        "id": "ou_2_5",
        "max_ev": 0.1655,
        "n_bookmakers": 5,
        "over_prob": 48.2,
        "sort_key": 10298.95,
        "tier": "best",
        "under_prob": 51.8,
        "value_side": "under"
      },
      {
        "decision": "value_bet",
        "decision_layer": {
          "alpha": 0.1623,
          "available": true,
          "consensus_odds": 2.34,
          "edge": 0.0106,
          "edge_pp": 1.1,
          "market_prob": 0.3906,
          "mode": "market_first_btts",
          "model_prob": 0.456,
          "n_bookmakers": 3,
          "no": {
            "alpha": 0.1623,
            "best_odd": 2.34,
            "edge": 0.0106,
            "ev": -0.0611,
            "implied_prob": 0.3906,
            "model_prob": 0.456,
            "p_final": 0.4012
          },
          "p_final": 0.4012,
          "prediction_confidence": "very_low",
          "raw_edge_pp": 6.5,
          "raw_signal_ev": 0.067,
          "risk_adj_ev": -0.0611,
          "value_side": "no",
          "yes": {
            "alpha": 0.2232,
            "best_odd": 1.5,
            "edge": -0.0146,
            "ev": -0.1078,
            "implied_prob": 0.6094,
            "model_prob": 0.544,
            "p_final": 0.5948
          }
        },
        "ev_available": true,
        "ev_no": 0.0944,
        "ev_no_display": {
          "capped": false,
          "raw_pct": 9.4,
          "text": "+9.4%"
        },
        "ev_yes": -0.1677,
        "ev_yes_display": {
          "capped": false,
          "raw_pct": -16.8,
          "text": "-16.8%"
        },
        "featured": false,
        "id": "btts",
        "max_ev": 0.0944,
        "n_bookmakers": 3,
        "no_prob": 45.6,
        "sort_key": 10084.96,
        "tier": "best",
        "value_side": "no",
        "yes_prob": 54.4
      },
      {
        "authority_action": "no_bet",
        "authority_note": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
        "consensus_odds": 2.63,
        "decision": "no_bet",
        "disagreement_label": "Normal",
        "disagreement_level": "normal",
        "ev": -0.0479,
        "ev_available": true,
        "ev_display": {
          "capped": false,
          "raw_pct": -4.8,
          "text": "-4.8%"
        },
        "featured": false,
        "id": "1x2",
        "implied_prob": 0.3483,
        "is_extreme_disagreement": false,
        "max_ev": -0.0427,
        "max_ev_display": {
          "capped": false,
          "raw_pct": -4.3,
          "text": "-4.3%"
        },
        "model_prob": 0.3803,
        "raw_edge_display": "+3.2 percentage points",
        "raw_edge_pp": 3.2,
        "raw_signal_ev": 0.0002,
        "raw_signal_ev_display": "+0.0%",
        "show_primary_label": false,
        "side_label": "St. Louis City II",
        "sort_key": 1789.325,
        "tier": "bad_ev"
      },
      {
        "featured": false,
        "id": "correct_score",
        "sort_key": 817.5,
        "tier": "risk",
        "top_label": "1-1",
        "top_prob": 12.5
      }
    ],
    "market_intelligence": {
      "betting_signal": {
        "alert_breadth": "",
        "alert_breadth_note": "",
        "alert_move": "",
        "alert_team": "",
        "alert_title": "Sharp Money Alert",
        "divergence_pp": 7.3,
        "has_alert": false,
        "hero_edge_pp": -7.26,
        "hero_label": "Portland Timbers II",
        "market_prob_pct": 34.8,
        "market_team": "Portland Timbers II",
        "model_prob_pct": 38.0,
        "model_team": "St. Louis City II",
        "show": true,
        "status_icon": "\u2713",
        "status_key": "aligned",
        "status_label": "Reliable prediction",
        "status_line": "Direction aligned; check pricing gap separately",
        "steam_score": null,
        "steam_subtitle": "",
        "steam_tier": "",
        "title": "Betting Signal"
      },
      "decision_chain": {
        "academy_links": [
          {
            "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": false,
          "direction_key": "conflict",
          "gap_pp": 7.3,
          "key": "conflict",
          "label": "Disagree",
          "model_strong": false,
          "pricing_aligned": true,
          "pricing_key": "moderate",
          "probability_gap_pp": 7.3,
          "summary": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II."
        },
        "authority": {
          "action": "no_bet",
          "alignment": {
            "direction_aligned": false,
            "direction_key": "conflict",
            "gap_pp": 7.3,
            "key": "conflict",
            "label": "Disagree",
            "model_strong": false,
            "pricing_aligned": true,
            "pricing_key": "moderate",
            "probability_gap_pp": 7.3,
            "summary": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II."
          },
          "alignment_key": "conflict",
          "best_consensus_ev": 0.1655,
          "best_outlier_ev": 0.1655,
          "confidence_band": "Moderate\u2013Low",
          "decision_strength": 3.7,
          "decision_strength_v1": 6.5,
          "decision_strength_v2": 4.7,
          "decision_type": "NO_SIGNAL",
          "execution_confidence": 36,
          "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 St. Louis City II at 38.0%, compared with a no-vig market probability of 34.8%.",
            "why": [
              {
                "text": "Decision Model identifies St. Louis City II as the value side (38.0%)",
                "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": 3.2,
          "gates_failed": [
            "Execution confidence below 65"
          ],
          "has_top_pick": true,
          "headline": "No Primary Bet",
          "hero_mode": "default",
          "icon": "\u25cb",
          "label": "No Primary Bet",
          "market_signal": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
          "model_conflict_detail": null,
          "model_lean": "St. Louis City II",
          "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": "probability_gap",
              "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 +16.6% meets Primary gate (\u2265+5.0%)",
                "ok": true
              },
              {
                "key": "gate",
                "label": "Execution confidence 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 +16.6% \u2705 (need \u2265+5.0%) \u00b7 Calibration See checklist \u274c \u2192 Primary blocked. Decision Strength 3.7/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 +16.6% (gate \u2265+5.0%) \u00b7 Calibration: See checklist \u2192 Primary blocked \u00b7 Decision Strength 3.7/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": true,
                "value": "80 (\u226565)"
              },
              {
                "key": "execution",
                "label": "Exec",
                "ok": false,
                "value": "36 (\u226565)"
              },
              {
                "key": "alignment",
                "label": "Align",
                "ok": false,
                "value": "conflict"
              },
              {
                "key": "consensus_ev",
                "label": "ConsEV",
                "ok": true,
                "value": "+16.6% (\u2265+5.0%)"
              },
              {
                "key": "top_pick",
                "label": "Pick",
                "ok": true,
                "value": "true"
              },
              {
                "key": "validation",
                "label": "Validation",
                "ok": true,
                "value": "true"
              }
            ],
            "passed": 6,
            "total": 8
          },
          "primary_type": null,
          "reasons": [
            "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
            "Decision strength: 3.7/10",
            "Execution confidence below 65"
          ],
          "reliability_score": 80,
          "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)",
            "Reliability supports action",
            "Market steam conflicts with model",
            "Consensus-line +EV",
            "Low xG separation (league-average noise)"
          ],
          "subline": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
          "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.0479,
            "consensus_ev_display": "-4.8%",
            "consensus_odds": 2.63,
            "disagreement_label": "Normal",
            "disagreement_level": "normal",
            "implied_prob": 0.3483,
            "is_extreme_disagreement": false,
            "model_prob": 0.3803,
            "raw_edge_display": "+3.2 percentage points",
            "raw_edge_pp": 3.2,
            "raw_implied_prob": 0.3802281368821293,
            "raw_signal_ev": 0.0002,
            "raw_signal_ev_display": "+0.0%"
          },
          "version": "v2.5",
          "xg_calibration": {
            "block_value_alert": false,
            "calibration_status": "warning",
            "deviation_pct": 0.7,
            "reasons": [
              "Thin xG separation gap=0.12"
            ],
            "recommended_action": "monitor",
            "strength_delta": -1.0,
            "uplift_away": null,
            "uplift_home": null,
            "xg_separation": {
              "band": "low",
              "block_value_alert": false,
              "separation_score": -10,
              "strength_delta": -1.0,
              "xg_gap": 0.12
            }
          }
        },
        "bet_status": "no_bet",
        "books_breadth_display": "3/7",
        "breadth_ratio": 0.42857142857142855,
        "evidence": {
          "score": 75,
          "signals": [
            {
              "icon": "\u25cb",
              "key": "statistical_edge",
              "label": "No strong statistical edge",
              "status": "neutral"
            },
            {
              "icon": "!",
              "key": "market_agreement",
              "label": "Recent market move conflicts with the model favourite",
              "status": "caution"
            },
            {
              "icon": "\u25cb",
              "key": "steam",
              "label": "Sharp steam detected",
              "status": "neutral"
            },
            {
              "icon": "\u2713",
              "key": "validation",
              "label": "Validation passed",
              "status": "pass"
            }
          ],
          "stars": 4,
          "tier": "high",
          "tier_label": "High"
        },
        "forecast_reliability": {
          "breakdown": [
            {
              "key": "validation",
              "label": "Validation: Pass",
              "tone": "ok"
            }
          ],
          "parts": {
            "alignment": 21.4,
            "data_quality": 12.0,
            "market_coverage": 4.3,
            "steam_coherence": 7.0,
            "validation": 30.0
          },
          "score": 80,
          "stars": 4,
          "tier": "high",
          "tier_label": "High"
        },
        "lean_gap_pp": 7.26,
        "market_agreement": "moderate",
        "max_gap_pp": 7.26,
        "model_calibration": {
          "away_xg": 1.36,
          "calibration_status": "ok",
          "deviation_pct": 1.0,
          "elevated": false,
          "home_xg": 1.24,
          "impact_note": "",
          "league_avg_xg": 1.35,
          "peak_xg": 1.36,
          "status_label": "Within typical league range",
          "summary": "Home xG 1.24 \u00b7 Away xG 1.36 \u00b7 League avg 1.35 \u00b7 Peak deviation +1%",
          "title": "Model Calibration Check"
        },
        "move_is_drift": false,
        "mv_status": "pass",
        "odds_delta_pct": 0.0,
        "steam_conflicts": null,
        "steam_move_display": "+0.0%",
        "steam_team": "Portland Timbers II",
        "suppress_execution": false,
        "value_split": {
          "execution_confidence": {
            "label": "Monitoring Confidence",
            "score": 36,
            "tier": "low",
            "tier_label": "Low"
          },
          "market_compatibility": {
            "label": "Market Compatibility",
            "note": "Price proximity vs model (inverse of pp gap) \u2014 not the same as a Primary go-ahead. Read alongside Decision Strength and Alignment.",
            "score": 29,
            "tier": "low",
            "tier_label": "Low"
          },
          "model_edge_strength": {
            "label": "Model Signal Strength",
            "score": 38,
            "tier": "low",
            "tier_label": "Low"
          },
          "model_value": {
            "label": "Market Compatibility",
            "note": "Price proximity vs model (inverse of pp gap) \u2014 not the same as a Primary go-ahead. Read alongside Decision Strength and Alignment.",
            "score": 29,
            "tier": "low",
            "tier_label": "Low"
          },
          "recommendation": {
            "action": "no_bet",
            "label": "No Primary Bet"
          }
        },
        "verdict": {
          "agree_note": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
          "alignment": {
            "direction_aligned": false,
            "direction_key": "conflict",
            "gap_pp": 7.3,
            "key": "conflict",
            "label": "Disagree",
            "model_strong": false,
            "pricing_aligned": true,
            "pricing_key": "moderate",
            "probability_gap_pp": 7.3,
            "summary": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II."
          },
          "authority": {
            "action": "no_bet",
            "alignment": {
              "direction_aligned": false,
              "direction_key": "conflict",
              "gap_pp": 7.3,
              "key": "conflict",
              "label": "Disagree",
              "model_strong": false,
              "pricing_aligned": true,
              "pricing_key": "moderate",
              "probability_gap_pp": 7.3,
              "summary": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II."
            },
            "alignment_key": "conflict",
            "best_consensus_ev": 0.1655,
            "best_outlier_ev": 0.1655,
            "confidence_band": "Moderate\u2013Low",
            "decision_strength": 3.7,
            "decision_strength_v1": 6.5,
            "decision_strength_v2": 4.7,
            "decision_type": "NO_SIGNAL",
            "execution_confidence": 36,
            "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 St. Louis City II at 38.0%, compared with a no-vig market probability of 34.8%.",
              "why": [
                {
                  "text": "Decision Model identifies St. Louis City II as the value side (38.0%)",
                  "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": 3.2,
            "gates_failed": [
              "Execution confidence below 65"
            ],
            "has_top_pick": true,
            "headline": "No Primary Bet",
            "hero_mode": "default",
            "icon": "\u25cb",
            "label": "No Primary Bet",
            "market_signal": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
            "model_conflict_detail": null,
            "model_lean": "St. Louis City II",
            "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": "probability_gap",
                "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 +16.6% meets Primary gate (\u2265+5.0%)",
                  "ok": true
                },
                {
                  "key": "gate",
                  "label": "Execution confidence 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 +16.6% \u2705 (need \u2265+5.0%) \u00b7 Calibration See checklist \u274c \u2192 Primary blocked. Decision Strength 3.7/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 +16.6% (gate \u2265+5.0%) \u00b7 Calibration: See checklist \u2192 Primary blocked \u00b7 Decision Strength 3.7/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": true,
                  "value": "80 (\u226565)"
                },
                {
                  "key": "execution",
                  "label": "Exec",
                  "ok": false,
                  "value": "36 (\u226565)"
                },
                {
                  "key": "alignment",
                  "label": "Align",
                  "ok": false,
                  "value": "conflict"
                },
                {
                  "key": "consensus_ev",
                  "label": "ConsEV",
                  "ok": true,
                  "value": "+16.6% (\u2265+5.0%)"
                },
                {
                  "key": "top_pick",
                  "label": "Pick",
                  "ok": true,
                  "value": "true"
                },
                {
                  "key": "validation",
                  "label": "Validation",
                  "ok": true,
                  "value": "true"
                }
              ],
              "passed": 6,
              "total": 8
            },
            "primary_type": null,
            "reasons": [
              "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
              "Decision strength: 3.7/10",
              "Execution confidence below 65"
            ],
            "reliability_score": 80,
            "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)",
              "Reliability supports action",
              "Market steam conflicts with model",
              "Consensus-line +EV",
              "Low xG separation (league-average noise)"
            ],
            "subline": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
            "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.0479,
              "consensus_ev_display": "-4.8%",
              "consensus_odds": 2.63,
              "disagreement_label": "Normal",
              "disagreement_level": "normal",
              "implied_prob": 0.3483,
              "is_extreme_disagreement": false,
              "model_prob": 0.3803,
              "raw_edge_display": "+3.2 percentage points",
              "raw_edge_pp": 3.2,
              "raw_implied_prob": 0.3802281368821293,
              "raw_signal_ev": 0.0002,
              "raw_signal_ev_display": "+0.0%"
            },
            "version": "v2.5",
            "xg_calibration": {
              "block_value_alert": false,
              "calibration_status": "warning",
              "deviation_pct": 0.7,
              "reasons": [
                "Thin xG separation gap=0.12"
              ],
              "recommended_action": "monitor",
              "strength_delta": -1.0,
              "uplift_away": null,
              "uplift_home": null,
              "xg_separation": {
                "band": "low",
                "block_value_alert": false,
                "separation_score": -10,
                "strength_delta": -1.0,
                "xg_gap": 0.12
              }
            }
          },
          "headline": "No Primary Bet",
          "icon": "\u25cb",
          "label": "No Primary Bet",
          "subline": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
          "tier": "observe"
        },
        "why": {
          "action_line": "Compare model lean with current best odds before sizing any bet.",
          "bullets": [
            "Model: Portland Timbers II 1.24 xG vs St. Louis City II 1.36 \u2192 St. Louis City II 38.0%",
            "Market: Portland Timbers II ~34.8% implied",
            "Market Steam: Portland Timbers II +0.0%"
          ],
          "one_liner": "Model and market both lean St. Louis City II with no major conflict.",
          "title": "Why?"
        }
      },
      "edge_rows": [
        {
          "edge_pp": -7.26,
          "fair_prob": 32.39,
          "label": "Portland Timbers II",
          "market_prob": 39.65,
          "market_type": "1x2",
          "outcome": "home"
        },
        {
          "edge_pp": 4.07,
          "fair_prob": 29.59,
          "label": "Draw",
          "market_prob": 25.52,
          "market_type": "1x2",
          "outcome": "draw"
        },
        {
          "edge_pp": 3.18,
          "fair_prob": 38.01,
          "label": "St. Louis City II",
          "market_prob": 34.83,
          "market_type": "1x2",
          "outcome": "away"
        },
        {
          "edge_pp": -9.37,
          "fair_prob": 48.2,
          "label": "Over 2.5",
          "market_prob": 57.57,
          "market_type": "ou25",
          "outcome": "over"
        },
        {
          "edge_pp": 9.37,
          "fair_prob": 51.8,
          "label": "Under 2.5",
          "market_prob": 42.43,
          "market_type": "ou25",
          "outcome": "under"
        },
        {
          "edge_pp": -6.5,
          "fair_prob": 54.4,
          "label": "BTTS Yes",
          "market_prob": 60.9,
          "market_type": "btts",
          "outcome": "yes"
        },
        {
          "edge_pp": 6.5,
          "fair_prob": 45.6,
          "label": "BTTS No",
          "market_prob": 39.1,
          "market_type": "btts",
          "outcome": "no"
        }
      ],
      "edge_snapshot": {
        "edge_label": "mild_disagreement",
        "edge_pp": -7.26,
        "fair_prob_pct": 32.39,
        "hero_side": "home",
        "hero_team_name": "Portland Timbers II",
        "market_prob_pct": 39.65,
        "status": "market_ahead",
        "steam_team_name": "Portland Timbers II"
      },
      "fair_source": "poisson_pipeline",
      "fair_vs_market": {
        "closing_capture": "PRE1",
        "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: PRE1.",
        "comparison_available": true,
        "comparison_disabled": false,
        "comparison_summary": "The closing market estimates Portland Timbers II\u0027s win probability at 39.6%, compared with the model\u0027s estimate of 32.4%, a difference of 7.3 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": "moderate",
          "edge_status": "market_ahead",
          "max_gap_pp": 7.26,
          "suppress_hero": false,
          "suppress_value_language": false
        },
        "divergence_label": "Moderate model-market divergence",
        "divergence_level": "moderate",
        "divergence_level_label": "Moderate divergence",
        "divergence_note": "Fair estimate and market pricing differ modestly. Monitor before kickoff.",
        "divergence_tier": "moderate",
        "edge_label": "Mild disagreement",
        "edge_label_key": "mild_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: PRE1.",
        "forecast_assessment": {
          "favourite_class": "Balanced match",
          "favourite_label": "St. Louis City II",
          "forecast_certainty_tier": "low",
          "headline": "Balanced match",
          "market_agreement_label": "Moderate",
          "market_direction": {
            "label": "Conflicts with model",
            "positive": false
          },
          "market_prob_pct": 34.8,
          "model_prob_gap_display": "+3.2 percentage points",
          "model_prob_gap_pp": 3.2,
          "model_prob_pct": 38.0,
          "outcome_separation_tier": "medium",
          "paragraphs": [],
          "pricing_convergence": {
            "gap_display": "+3.2 percentage points",
            "gap_pp": 3.2,
            "label": "High",
            "label_key": "mi_fa_pricing_high"
          },
          "reliability_headline": "High reliability",
          "reliability_icon": "\u2713",
          "reliability_score": 80,
          "reliability_tier": "high",
          "summary": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II. This disagreement reduces confidence and prevents a Primary bet.",
          "tier": "balanced",
          "title": "Prediction Assessment",
          "validation_label": "Pass",
          "value_split": {
            "execution_confidence": {
              "label": "Monitoring Confidence",
              "score": 36,
              "tier": "low",
              "tier_label": "Low"
            },
            "market_compatibility": {
              "label": "Market Compatibility",
              "note": "Price proximity vs model (inverse of pp gap) \u2014 not the same as a Primary go-ahead. Read alongside Decision Strength and Alignment.",
              "score": 29,
              "tier": "low",
              "tier_label": "Low"
            },
            "model_edge_strength": {
              "label": "Model Signal Strength",
              "score": 38,
              "tier": "low",
              "tier_label": "Low"
            },
            "model_value": {
              "label": "Market Compatibility",
              "note": "Price proximity vs model (inverse of pp gap) \u2014 not the same as a Primary go-ahead. Read alongside Decision Strength and Alignment.",
              "score": 29,
              "tier": "low",
              "tier_label": "Low"
            },
            "recommendation": {
              "action": "no_bet",
              "label": "No Primary Bet"
            }
          },
          "why": {
            "action_line": "Compare model lean with current best odds before sizing any bet.",
            "bullets": [
              "Model: Portland Timbers II 1.24 xG vs St. Louis City II 1.36 \u2192 St. Louis City II 38.0%",
              "Market: Portland Timbers II ~34.8% implied",
              "Market Steam: Portland Timbers II +0.0%"
            ],
            "one_liner": "Model and market both lean St. Louis City II with no major conflict.",
            "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": -7.26,
        "hero_label": "Portland Timbers II",
        "hero_side": "home",
        "market_activity": "No meaningful directional movement yet.",
        "market_agreement": "moderate",
        "market_agreement_label": "Moderate",
        "market_interpretation": {
          "bullets": [
            "Monitor line movement before kickoff \u2014 not a betting recommendation."
          ],
          "follow_up": "",
          "gap_tier": "mild",
          "lead": "The market and model broadly agree on Portland Timbers II. The remaining divergence may reflect differences in team-strength assumptions rather than a directional disagreement.",
          "note": "The market shows a modest preference for Portland Timbers II relative to the current fair estimate.",
          "paragraphs": [
            "The market and model broadly agree on Portland Timbers II. The remaining divergence may reflect differences in team-strength assumptions rather than a directional disagreement."
          ],
          "quiet_market": true,
          "title": "Market Assessment"
        },
        "market_narrative": {
          "paragraphs": [
            "The market still prices Portland Timbers II above the current fair estimate.",
            "No meaningful directional movement has emerged, and pricing remains stable across tracked sportsbooks."
          ],
          "title": "Current Market Narrative"
        },
        "market_source": "closing_1x2",
        "max_gap_pp": 7.26,
        "model_validation": {
          "score_label_key": "mi_mv_pass",
          "status": "pass"
        },
        "model_validation_label": "Pass",
        "outcome_separation": {
          "breakdown": [
            "No outcome exceeds 50% on the 1X2 grid.",
            "Favourite exceeds second outcome by 5.6 pp (at 38.0%)."
          ],
          "lead_gap_pp": 5.6,
          "max_prob_pct": 38.0,
          "note": "How spread out the model 1X2 probabilities are \u2014 crowded splits mean no single outcome dominates. Not accuracy vs the market.",
          "tier": "medium",
          "tier_label": "Medium"
        },
        "outcome_separation_label": "Medium",
        "overall_assessment": {
          "badge_class": "moderate",
          "largest_gap_label": "Portland Timbers II",
          "largest_gap_pp": -7.3,
          "lead": "The closing market prices Portland Timbers II higher than the statistical model.",
          "level": "moderate",
          "max_gap_pp": 7.3,
          "title": "Moderate Disagreement"
        },
        "rows": [
          {
            "difference_pp": -7.26,
            "edge_pp": -7.26,
            "fair_prob_pct": 32.39,
            "is_hero": true,
            "label": "Portland Timbers II",
            "market_prob_pct": 39.65,
            "side": "home",
            "signal_key": "market_higher",
            "signal_label": "Market Higher"
          },
          {
            "difference_pp": 4.07,
            "edge_pp": 4.07,
            "fair_prob_pct": 29.59,
            "is_hero": false,
            "label": "Draw",
            "market_prob_pct": 25.52,
            "side": "draw",
            "signal_key": "aligned",
            "signal_label": "Aligned"
          },
          {
            "difference_pp": 3.18,
            "edge_pp": 3.18,
            "fair_prob_pct": 38.01,
            "is_hero": false,
            "label": "St. Louis City II",
            "market_prob_pct": 34.83,
            "side": "away",
            "signal_key": "aligned",
            "signal_label": "Aligned"
          }
        ],
        "status": "market_ahead",
        "status_label": "Market Ahead",
        "steam_note": "The market shows a modest preference for Portland Timbers II relative to the current fair estimate.",
        "unavailable_note": ""
      },
      "interpretation": {
        "has_conflict": true,
        "paragraphs": [
          "The betting market strongly prefers Portland Timbers II (34.8%).",
          "This creates a conflict: Model \u2192 St. Louis City II, Market \u2192 Portland Timbers II, Recent sharp money \u2192 recent line movement.",
          "Because signals disagree, confidence remains limited."
        ],
        "show": true,
        "title": "OddsGPT Interpretation"
      },
      "lifecycle": {
        "closing_implied_pct": 43.29,
        "closing_odds": 2.31,
        "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": 43.29,
        "entry_odds": 2.31,
        "match_phase": "upcoming",
        "match_phase_detail": "",
        "match_phase_display": "Upcoming",
        "match_phase_label": "Upcoming",
        "model_validation_label": "Pass",
        "model_validation_status": "pass",
        "stages": [
          {
            "detail": "",
            "id": "forecast_generated",
            "label": "Prediction Generated",
            "status": "done"
          },
          {
            "detail": "",
            "id": "market_detected",
            "label": "Market Compared",
            "status": "active"
          },
          {
            "detail": "",
            "id": "model_validated",
            "label": "Validation Passed",
            "status": "done"
          },
          {
            "detail": "PRE1",
            "id": "closing_recorded",
            "label": "Closing Recorded",
            "status": "done"
          },
          {
            "detail": "",
            "id": "clv_evaluated",
            "label": "CLV Evaluated",
            "status": "pending"
          }
        ]
      },
      "market_move_intelligence": {
        "show": false
      },
      "market_overview": {
        "breadth_display": "3/7",
        "current_odds": 2.45,
        "move_display": "+0.0%",
        "open_odds": 2.45,
        "pick_team": "Portland Timbers II",
        "steam_score": 9,
        "steam_team_name": "Portland Timbers II",
        "steam_tier": "C"
      },
      "premium_teaser": {
        "current_divergence_pp": 7.3,
        "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": "st-louis-city-ii",
      "away_expected_goals": null,
      "away_goal_display": null,
      "away_team_display_name": "St. Louis City II",
      "away_team_id": 18740,
      "away_team_logo": "/static/teams/18740.webp",
      "away_team_name": "St. Louis City II",
      "away_team_public_id": "1w2dWH1cQZZGlh",
      "away_team_slug": "st-louis-city-ii",
      "country_code": "US",
      "country_display_name": "USA",
      "country_flag": "/static/images/country/us.svg",
      "country_id": 163,
      "country_name": "USA",
      "fixture_id": 1513362,
      "goals_away": null,
      "goals_home": null,
      "home_expected_goals": null,
      "home_goal_display": null,
      "home_team_country": "USA",
      "home_team_display_name": "Portland Timbers II",
      "home_team_id": 4011,
      "home_team_logo": "/static/teams/4011.webp",
      "home_team_name": "Portland Timbers II",
      "home_team_public_id": "19zZ7YbjKIDajm",
      "home_team_slug": "portland-timbers-ii",
      "ht.home_team_slug": "portland-timbers-ii",
      "league_country": "USA",
      "league_country_display": "USA",
      "league_display_name": "MLS Next Pro",
      "league_id": 909,
      "league_logo": "/static/leagues/909.webp",
      "league_name": "MLS Next Pro",
      "league_public_id": "3CwVqdBnoU3vAe",
      "league_season": 2026,
      "match_date": "2026-09-14 20:00:00",
      "public_id": "14GLlR89TxECxt",
      "score_fulltime_away": null,
      "score_fulltime_home": null,
      "score_penalty_away": null,
      "score_penalty_home": null,
      "status_long": "Not Started",
      "status_short": "NS",
      "venue_city": null,
      "venue_name": "Providence Park"
    },
    "match_decision": {
      "confidence": {
        "breakdown": [
          "pred_conf_md_max_1x2_under_50",
          "pred_conf_md_top_two_close",
          "pred_conf_md_line_above_ev"
        ],
        "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)"
        ],
        "score": 6.0
      },
      "markets": {
        "1x2": {
          "1x2_ev_mode": "market_first_p15",
          "away": {
            "alpha": 0.4284,
            "best_odd": 2.63,
            "calibration": {
              "active": false,
              "hook": "CALIBRATE_1X2_P_FINAL"
            },
            "edge": 0.0137,
            "ev": -0.0479,
            "implied_prob": 0.3483,
            "joint_probs": {
              "away": 0.3483,
              "draw": 0.2552,
              "home": 0.3965
            },
            "model_prob": 0.3803,
            "p_final": 0.362
          },
          "draw": {
            "alpha": 0.2816,
            "best_odd": 3.59,
            "calibration": {
              "active": false,
              "hook": "CALIBRATE_1X2_P_FINAL"
            },
            "edge": 0.0115,
            "ev": -0.0427,
            "implied_prob": 0.2552,
            "joint_probs": {
              "away": 0.3483,
              "draw": 0.2552,
              "home": 0.3965
            },
            "model_prob": 0.2959,
            "p_final": 0.2666
          },
          "ev_available": true,
          "home": {
            "alpha": 0.4008,
            "best_odd": 2.31,
            "calibration": {
              "active": false,
              "hook": "CALIBRATE_1X2_P_FINAL"
            },
            "edge": -0.0292,
            "ev": -0.1514,
            "implied_prob": 0.3965,
            "joint_probs": {
              "away": 0.3483,
              "draw": 0.2552,
              "home": 0.3965
            },
            "model_prob": 0.3237,
            "p_final": 0.3674
          }
        },
        "1x2_outlier": {
          "1x2_ev_mode": "legacy_max_odd",
          "away": {
            "best_odd": 2.63,
            "edge": 0.0001,
            "ev": 0.0003,
            "implied_prob": 0.3802,
            "model_prob": 0.3803
          },
          "draw": {
            "best_odd": 3.59,
            "edge": 0.0174,
            "ev": 0.0624,
            "implied_prob": 0.2786,
            "model_prob": 0.2959
          },
          "ev_available": true,
          "home": {
            "best_odd": 2.31,
            "edge": -0.1092,
            "ev": -0.2522,
            "implied_prob": 0.4329,
            "model_prob": 0.3237
          }
        },
        "btts": {
          "alpha_no": 0.1623,
          "alpha_yes": 0.2232,
          "best_no_odd": 2.4,
          "best_yes_odd": 1.53,
          "btts_ev_mode": "market_first_available",
          "edge_no": 0.065,
          "edge_yes": -0.065,
          "ev_available": true,
          "ev_no": 0.0944,
          "ev_no_risk_adj": -0.0611,
          "ev_yes": -0.1677,
          "ev_yes_risk_adj": -0.1078,
          "implied_no": 0.391,
          "implied_yes": 0.609,
          "market_first": {
            "available": true,
            "mode": "market_first_btts",
            "n_bookmakers": 3,
            "no": {
              "alpha": 0.1623,
              "best_odd": 2.34,
              "edge": 0.0106,
              "ev": -0.0611,
              "implied_prob": 0.3906,
              "model_prob": 0.456,
              "p_final": 0.4012
            },
            "prediction_confidence": "very_low",
            "yes": {
              "alpha": 0.2232,
              "best_odd": 1.5,
              "edge": -0.0146,
              "ev": -0.1078,
              "implied_prob": 0.6094,
              "model_prob": 0.544,
              "p_final": 0.5948
            }
          },
          "n_bookmakers": 3,
          "p_final_no": 0.4012,
          "p_final_yes": 0.5948,
          "prediction_confidence": "very_low",
          "reliability": "medium"
        },
        "ou25": {
          "alpha_over": 0.2139,
          "alpha_under": 0.1944,
          "best_over_odd": 1.62,
          "best_under_odd": 2.25,
          "consensus_over_odd": 1.605,
          "consensus_under_odd": 2.15,
          "edge_over": -0.0937,
          "edge_under": 0.0937,
          "ev_available": true,
          "ev_over": -0.2192,
          "ev_over_risk_adj": -0.1121,
          "ev_under": 0.1655,
          "ev_under_risk_adj": -0.0432,
          "implied_over": 0.5757,
          "implied_over_mf": 0.5726,
          "implied_under": 0.4243,
          "implied_under_mf": 0.4274,
          "market_first": {
            "available": true,
            "mode": "market_first_ou",
            "n_bookmakers": 5,
            "over": {
              "alpha": 0.2139,
              "best_odd": 1.605,
              "edge": -0.0194,
              "ev": -0.1121,
              "implied_prob": 0.5726,
              "model_prob": 0.482,
              "p_final": 0.5532
            },
            "prediction_confidence": "very_low",
            "under": {
              "alpha": 0.1944,
              "best_odd": 2.15,
              "edge": 0.0176,
              "ev": -0.0432,
              "implied_prob": 0.4274,
              "model_prob": 0.518,
              "p_final": 0.445
            }
          },
          "n_bookmakers": 5,
          "ou_ev_mode": "market_first_available",
          "p_final_over": 0.5532,
          "p_final_under": 0.445,
          "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": 2.6,
      "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.1655,
      "best_outlier_ev": 0.1655,
      "best_tracked_ev": 0.1655,
      "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)"
        ],
        "breakdown_v2": [
          "Base decision score (v1)",
          "Reliability supports action",
          "Market steam conflicts with model",
          "Consensus-line +EV",
          "Low xG separation (league-average noise)"
        ],
        "score": 3.7,
        "score_v1_legacy": 6.5,
        "score_v2_pre_penalty": 4.7,
        "strength_v2": true
      },
      "decision_strength_v2": {
        "breakdown": [
          "Base decision score (v1)",
          "Reliability supports action",
          "Market steam conflicts with model",
          "Consensus-line +EV",
          "Low xG separation (league-average noise)"
        ],
        "score": 3.7,
        "score_pre_penalty": 4.7
      },
      "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": false,
          "direction_key": "conflict",
          "gap_pp": 7.3,
          "key": "conflict",
          "label": "Disagree",
          "model_strong": false,
          "pricing_aligned": true,
          "pricing_key": "moderate",
          "probability_gap_pp": 7.3,
          "summary": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II."
        },
        "alignment_key": "conflict",
        "best_consensus_ev": 0.1655,
        "best_outlier_ev": 0.1655,
        "confidence_band": "Moderate\u2013Low",
        "decision_strength": 3.7,
        "decision_strength_v1": 6.5,
        "decision_strength_v2": 4.7,
        "decision_type": "NO_SIGNAL",
        "execution_confidence": 36,
        "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 St. Louis City II at 38.0%, compared with a no-vig market probability of 34.8%.",
          "why": [
            {
              "text": "Decision Model identifies St. Louis City II as the value side (38.0%)",
              "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": 3.2,
        "gates_failed": [
          "Execution confidence below 65"
        ],
        "has_top_pick": true,
        "headline": "No Primary Bet",
        "hero_mode": "default",
        "icon": "\u25cb",
        "label": "No Primary Bet",
        "market_signal": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
        "model_conflict_detail": null,
        "model_lean": "St. Louis City II",
        "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": "probability_gap",
            "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 +16.6% meets Primary gate (\u2265+5.0%)",
              "ok": true
            },
            {
              "key": "gate",
              "label": "Execution confidence 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 +16.6% \u2705 (need \u2265+5.0%) \u00b7 Calibration See checklist \u274c \u2192 Primary blocked. Decision Strength 3.7/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 +16.6% (gate \u2265+5.0%) \u00b7 Calibration: See checklist \u2192 Primary blocked \u00b7 Decision Strength 3.7/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": true,
              "value": "80 (\u226565)"
            },
            {
              "key": "execution",
              "label": "Exec",
              "ok": false,
              "value": "36 (\u226565)"
            },
            {
              "key": "alignment",
              "label": "Align",
              "ok": false,
              "value": "conflict"
            },
            {
              "key": "consensus_ev",
              "label": "ConsEV",
              "ok": true,
              "value": "+16.6% (\u2265+5.0%)"
            },
            {
              "key": "top_pick",
              "label": "Pick",
              "ok": true,
              "value": "true"
            },
            {
              "key": "validation",
              "label": "Validation",
              "ok": true,
              "value": "true"
            }
          ],
          "passed": 6,
          "total": 8
        },
        "primary_type": null,
        "reasons": [
          "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
          "Decision strength: 3.7/10",
          "Execution confidence below 65"
        ],
        "reliability_score": 80,
        "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)",
          "Reliability supports action",
          "Market steam conflicts with model",
          "Consensus-line +EV",
          "Low xG separation (league-average noise)"
        ],
        "subline": "The market has repriced Portland Timbers II, but the model still strongly favours St. Louis City II.",
        "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.0479,
          "consensus_ev_display": "-4.8%",
          "consensus_odds": 2.63,
          "disagreement_label": "Normal",
          "disagreement_level": "normal",
          "implied_prob": 0.3483,
          "is_extreme_disagreement": false,
          "model_prob": 0.3803,
          "raw_edge_display": "+3.2 percentage points",
          "raw_edge_pp": 3.2,
          "raw_implied_prob": 0.3802281368821293,
          "raw_signal_ev": 0.0002,
          "raw_signal_ev_display": "+0.0%"
        },
        "version": "v2.5",
        "xg_calibration": {
          "block_value_alert": false,
          "calibration_status": "warning",
          "deviation_pct": 0.7,
          "reasons": [
            "Thin xG separation gap=0.12"
          ],
          "recommended_action": "monitor",
          "strength_delta": -1.0,
          "uplift_away": null,
          "uplift_home": null,
          "xg_separation": {
            "band": "low",
            "block_value_alert": false,
            "separation_score": -10,
            "strength_delta": -1.0,
            "xg_gap": 0.12
          }
        }
      },
      "game_type": {
        "label_zh": "\u5747\u8861\uff08\u5f00\u653e\u8d5b\u679c\uff09",
        "scoring_type": "balanced",
        "signals": {
          "btts_yes_prob": 0.544,
          "draw_prob": 0.2959,
          "max_1x2_prob": 0.3803,
          "over_prob": 0.482,
          "total_xg": 2.6,
          "under_prob": 0.518,
          "xg_diff": 0.12
        },
        "type": "balanced",
        "typing_weights_enabled": true
      },
      "hero_display_pick": null,
      "hero_mode": "default",
      "longshot_picks": [],
      "markets": {
        "1x2": {
          "consensus_odds": 2.63,
          "decision": "no_bet",
          "edge": 0.0137,
          "ev": -0.0479,
          "implied_prob": 0.3483,
          "max_ev_side": "draw",
          "model_prob": 0.3803,
          "side": "away",
          "side_label": "St. Louis City II"
        },
        "btts": {
          "decision": "value_bet",
          "decision_layer": {
            "alpha": 0.1623,
            "available": true,
            "consensus_odds": 2.34,
            "edge": 0.0106,
            "market_prob": 0.3906,
            "mode": "market_first_btts",
            "model_prob": 0.456,
            "n_bookmakers": 3,
            "no": {
              "alpha": 0.1623,
              "best_odd": 2.34,
              "edge": 0.0106,
              "ev": -0.0611,
              "implied_prob": 0.3906,
              "model_prob": 0.456,
              "p_final": 0.4012
            },
            "p_final": 0.4012,
            "prediction_confidence": "very_low",
            "risk_adj_ev": -0.0611,
            "value_side": "no",
            "yes": {
              "alpha": 0.2232,
              "best_odd": 1.5,
              "edge": -0.0146,
              "ev": -0.1078,
              "implied_prob": 0.6094,
              "model_prob": 0.544,
              "p_final": 0.5948
            }
          },
          "edge": 0.065,
          "ev": 0.0944,
          "implied_prob": 0.391,
          "model_prob": 0.456,
          "side": "no",
          "value_side": "no"
        },
        "ou_2_5": {
          "decision": "value_bet",
          "decision_layer": {
            "alpha": 0.1944,
            "available": true,
            "consensus_odds": 2.15,
            "edge": 0.0176,
            "market_prob": 0.4274,
            "mode": "market_first_ou",
            "model_prob": 0.518,
            "n_bookmakers": 5,
            "over": {
              "alpha": 0.2139,
              "best_odd": 1.605,
              "edge": -0.0194,
              "ev": -0.1121,
              "implied_prob": 0.5726,
              "model_prob": 0.482,
              "p_final": 0.5532
            },
            "p_final": 0.445,
            "prediction_confidence": "very_low",
            "risk_adj_ev": -0.0432,
            "under": {
              "alpha": 0.1944,
              "best_odd": 2.15,
              "edge": 0.0176,
              "ev": -0.0432,
              "implied_prob": 0.4274,
              "model_prob": 0.518,
              "p_final": 0.445
            },
            "value_side": "under"
          },
          "edge": 0.0937,
          "ev": 0.1655,
          "implied_prob": 0.4243,
          "model_prob": 0.518,
          "side": "under",
          "value_side": "under"
        }
      },
      "match_id": 1513362,
      "match_regime": {
        "action": "bet",
        "actionable": true,
        "clear_edge": true,
        "code": "clear_edge",
        "execution_line_key": null,
        "insight_line_key": null,
        "max_valid_ev": 0.1655,
        "min_ev": 0.02,
        "stake_mult": 1.0,
        "use_split_strip": false
      },
      "match_tier": "value_game",
      "no_clear_primary": false,
      "probabilities": {
        "away": 0.3803,
        "draw": 0.2959,
        "home": 0.3237
      },
      "reason_codes": [
        "no_ev_1x2"
      ],
      "secondary_pick": null,
      "secondary_picks": [],
      "show_betting_primary_label": false,
      "suppressed_primary": null,
      "teams": {
        "away": "St. Louis City II",
        "home": "Portland Timbers II"
      },
      "top_pick": {
        "composite_score": 0.06001,
        "decision": "value_bet",
        "ev": 0.1655,
        "implied_prob": 0.4243,
        "market": "ou_2_5",
        "model_prob": 0.518,
        "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.0479,
        "consensus_ev_display": "-4.8%",
        "consensus_odds": 2.63,
        "disagreement_label": "Normal",
        "disagreement_level": "normal",
        "implied_prob": 0.3483,
        "is_extreme_disagreement": false,
        "model_prob": 0.3803,
        "raw_edge_display": "+3.2 percentage points",
        "raw_edge_pp": 3.2,
        "raw_implied_prob": 0.3802281368821293,
        "raw_signal_ev": 0.0002,
        "raw_signal_ev_display": "+0.0%"
      }
    }
  },
  "fixture_id": 1513362,
  "generated_at_utc": "2026-09-14T19:59:06.279977+00:00",
  "lang_id": "en"
}

Dapatkan Ramalan Premium untuk Portland Timbers II & St. Louis City II!

Buka analisis mendalam, tip pertaruhan eksklusif, dan ramalan perlawanan dengan perkhidmatan langganan premium kami.

Langgan Sekarang
Kembali ke Statistik
MLS Next Pro MLS Next Pro — Kedudukan
# PASUKAN P M S K Mata
1 Columbus Crew II 28 17 0 11 48
1 Crown Legacy 26 19 0 7 54
1 Austin II 26 19 0 7 59
2 New England II 28 16 0 12 48
2 Chattanooga 26 17 0 9 50
2 Portland Timbers II 26 18 0 8 54
3 New York City II 28 16 0 12 47
3 Atlanta United II 26 14 0 12 45
3 Houston Dynamo FC II 26 18 0 8 51
4 Connecticut FC 28 16 0 12 46
4 LA Galaxy II 26 17 0 9 50
5 New York RB II 28 15 0 13 46
5 St. Louis City II 26 14 0 12 43
6 Bethlehem Steel 28 14 0 14 43
6 Los Angeles II 26 13 0 13 42
7 Toronto II 28 13 0 15 39
7 Tacoma Defiance 26 13 0 13 39
8 FC Cincinnati II 28 7 0 21 20
8 North Texas 26 13 0 13 38
9 Orlando City II 26 14 0 12 41
9 Minnesota United II 25 12 0 13 37
10 San Jose Earthquakes II 26 12 0 14 36
11 Real Monarchs 25 11 0 14 29
12 Chicago Fire II 26 13 0 13 39
12 Whitecaps II 26 10 0 16 27
13 Huntsville City 26 12 0 14 38
13 Swope Park Rangers 26 6 0 20 20
14 Carolina Core 26 9 0 17 28
14 Colorado Rapids II 26 5 0 21 18
16 Fort Lauderdale CF 26 4 0 22 15
# PASUKAN P J B +/- Mata
1 Crown Legacy 26 63 36 +27 54
2 Connecticut FC 28 59 52 +7 46
3 New York RB II 28 58 48 +10 46
4 Atlanta United II 26 57 40 +17 45
5 LA Galaxy II 26 54 34 +20 50
6 Austin II 26 51 21 +30 59
7 Houston Dynamo FC II 26 51 30 +21 51
8 Chattanooga 26 51 38 +13 50
9 New York City II 28 50 44 +6 47
10 Orlando City II 26 50 51 -1 41
11 Columbus Crew II 28 49 43 +6 48
12 Chicago Fire II 26 49 45 +4 39
13 Toronto II 28 48 56 -8 39
14 New England II 28 47 42 +5 48
15 San Jose Earthquakes II 26 45 36 +9 36
16 Los Angeles II 26 43 44 -1 42
17 Huntsville City 26 43 45 -2 38
18 St. Louis City II 26 41 37 +4 43
19 North Texas 26 41 39 +2 38
20 Tacoma Defiance 26 39 40 -1 39
21 Whitecaps II 26 38 55 -17 27
22 Bethlehem Steel 28 37 40 -3 43
23 Carolina Core 26 37 50 -13 28
24 Real Monarchs 25 36 50 -14 29
25 Portland Timbers II 26 35 27 +8 54
26 Minnesota United II 25 35 36 -1 37
27 FC Cincinnati II 28 32 62 -30 20
28 Swope Park Rangers 26 32 68 -36 20
29 Fort Lauderdale CF 26 27 63 -36 15
30 Colorado Rapids II 26 26 50 -24 18