diff --git a/messages/en.json b/messages/en.json
index af15b17..9f949ad 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -296,6 +296,8 @@
"engine-label-low": "Low",
"engine-label-very-low": "Very Low",
"best-single-pick": "Value Bet (odds-based)",
+ "most-reliable-read": "Most Reliable Read",
+ "most-reliable-copy": "The market the model reads with the highest accuracy for this match. Even if the winner is unclear, this read can be stronger.",
"match-result-prediction": "Match Result Prediction",
"match-result-copy": "The model's most likely outcome (who wins).",
"match-result-vs-value": "This is the most likely outcome. The \"Value Bet\" below is the most profitable pick by odds — the two can differ.",
diff --git a/messages/tr.json b/messages/tr.json
index 7ff25c7..c9febc3 100644
--- a/messages/tr.json
+++ b/messages/tr.json
@@ -296,6 +296,8 @@
"engine-label-low": "Düşük",
"engine-label-very-low": "Çok Düşük",
"best-single-pick": "Değerli Bahis (orana göre)",
+ "most-reliable-read": "En Güvenilir Okuma",
+ "most-reliable-copy": "Bu maçta modelin en yüksek isabetle okuduğu market. Maç sonucu belirsiz olsa bile bu okuma daha güçlü olabilir.",
"match-result-prediction": "Maç Sonucu Tahmini",
"match-result-copy": "Modelin en olası gördüğü sonuç (kim kazanır).",
"match-result-vs-value": "Bu en olası sonuçtur. Aşağıdaki \"Değerli Bahis\" ise orana göre en kârlı görülen seçimdir — ikisi farklı olabilir.",
diff --git a/src/components/matches/prediction-card.tsx b/src/components/matches/prediction-card.tsx
index 29c98e9..27d3e74 100644
--- a/src/components/matches/prediction-card.tsx
+++ b/src/components/matches/prediction-card.tsx
@@ -1214,6 +1214,27 @@ export default function PredictionCard({ prediction }: PredictionCardProps) {
};
})();
+ // ── En Güvenilir Okuma (akıllı market seçimi) ──────────────────────
+ // Backtest: always-MS headline = %53 hit; picking the HIGHEST-confidence
+ // market per match = %74 hit (DC / Üst1.5 / Üst3.5 etc.). The model's
+ // probabilities are fine — the upgrade is *choosing which market to lead
+ // with*. We surface the most reliable read (highest calibrated_confidence
+ // across all bet_summary markets), so e.g. a match with an unclear winner
+ // but a clear "Üst 2.5" leads with the goals call instead of a coin-flip MS.
+ const mostReliableRead = (() => {
+ const items = prediction.bet_summary;
+ if (!Array.isArray(items) || items.length === 0) return null;
+ let best: (typeof items)[number] | null = null;
+ for (const it of items) {
+ const conf = it.calibrated_confidence ?? 0;
+ // require a genuinely confident read; skip near-coinflip
+ if (conf < 55) continue;
+ if (!best || conf > (best.calibrated_confidence ?? 0)) best = it;
+ }
+ if (!best) return null;
+ return best;
+ })();
+
const sport = getPredictionSport(prediction);
const isBasketball = sport === "basketball";
@@ -1494,6 +1515,48 @@ export default function PredictionCard({ prediction }: PredictionCardProps) {
) : null}
+ {mostReliableRead ? (
+
+
+
+
+ {uiText("most-reliable-read", "En Güvenilir Okuma")}
+
+
+
+ {getMarketLabel(mostReliableRead.market, marketLabels)}:{" "}
+ {mostReliableRead.pick}
+
+
+
+ {uiText(
+ "most-reliable-copy",
+ "Bu maçta modelin en yüksek isabetle okuduğu market. Maç sonucu belirsiz olsa bile bu okuma daha güçlü olabilir.",
+ )}
+
+
+
+
+ {formatPercent(
+ mostReliableRead.unified_score ??
+ mostReliableRead.calibrated_confidence,
+ 0,
+ )}
+
+
+ {uiText("confidence-label", "Güven")}
+
+
+
+
+ ) : null}
+
{recommendedPick ? (