Please wait while we fetch the latest information...
Sports Predictions
Loading games...
AI Betting Analysis
NBA-specific insights will appear here when NBA games are analyzed.
MLB-specific insights will appear here when MLB games are analyzed.
NHL-specific insights will appear here when NHL games are analyzed.
Loading sentiment analysis for teams in current predictions...
Game Prediction
Loading prediction...
Loading prediction...
Confidence:
Odds Comparison
Value: 0/10
Loading odds comparison...
Fetching latest bookmaker odds...
Odds Comparison Unavailable
Unable to retrieve odds comparison data. Please try again later.
Best Value Bet
No Value Bets Found
Our model doesn't find significant value in the current odds offerings. Consider waiting for line movements.
Bookmaker Odds Comparison
Bookmaker
Home
Away
Spread
Model vs. Market
Our Model Projections
Win Probability:
(Home) |
(Away)
Projected Spread:
Market Implied Probabilities
Win Probability (Avg):
(Home) |
(Away)
Market Spread (Avg):
Track Bet
Potential Payout: $0.00
Injury Report
Home Team Injuries
Away Team Injuries
Starting Pitchers
Home Team
TBD
ERA: 0.00
Record: 0-0
VS
Away Team
TBD
ERA: 0.00
Record: 0-0
Bullpen Statistics
Home Bullpen
ERA:0.00
WHIP:0.00
Saves/Holds:0/0
Fatigue:Low
Last 3 Games IP:0.0 IP
Away Bullpen
ERA:0.00
WHIP:0.00
Saves/Holds:0/0
Fatigue:Low
Last 3 Games IP:0.0 IP
Weather Impact on Pitching
First Pitch Conditions
Temperature:--°F
Humidity:--%
Wind:-- mph
Sky:--
Pitching Impact Analysis
Neutral weather conditions
Historical Performance Analysis:
Weather data unavailable for this game.
Game Analysis
AI Model Learning Insights
These insights show what our AI model has learned from analyzing historical predictions and real game outcomes, helping us continuously improve future predictions.
Loading model learnings...
Loading model insights...
Parlay Builder
Build custom parlays using our AI predictions. Games with higher confidence ratings have a better chance of being predicted correctly.
// Simplified function with detailed error handling
function addSimpleParlayGames() {
console.log("[ERROR-DEBUG] Starting addSimpleParlayGames");
// Get the container once
const container = document.getElementById('parlayGames');
// Get filter values with error checking
const sportSelect = document.getElementById('parlayFilterSport');
const dateSelect = document.getElementById('parlayFilterDate');
if (!sportSelect || !dateSelect) {
console.error(`[${ERROR_CODES.UI_UPDATE_ERROR}] Filter dropdowns not found`);
container.innerHTML = `
Error ${ERROR_CODES.UI_UPDATE_ERROR}: Filter elements not found
`;
return;
}
const sport = sportSelect.value;
const date = dateSelect.value;
console.log(`[ERROR-DEBUG] Selected sport: ${sport}, date: ${date}`);
// Get filtered games with error checking
const filteredGames = window.parlayGamesForSport || [];
console.log(`[ERROR-DEBUG] Found ${filteredGames.length} games for sport`);
if (!filteredGames || filteredGames.length === 0) {
console.error(`[${ERROR_CODES.NO_FILTERED_GAMES}] No filtered games available`);
container.innerHTML = `
Error ${ERROR_CODES.NO_FILTERED_GAMES}: No games found for your filters.
Please select a different sport or date and click "Filter" first.
`;
return;
}
// Create a local copy of filtered games to modify
const gamesToUse = [...filteredGames];
// Pick 2-3 random games
const selectedGames = [];
const gameCount = Math.min(3, gamesToUse.length);
console.log(`[ERROR-DEBUG] Will select ${gameCount} games at random`);
// Select random games
for (let i = 0; i < gameCount; i++) {
if (gamesToUse.length === 0) break;
const randomIndex = Math.floor(Math.random() * gamesToUse.length);
selectedGames.push(gamesToUse[randomIndex]);
gamesToUse.splice(randomIndex, 1);
}
console.log(`[ERROR-DEBUG] Selected ${selectedGames.length} games`);
// Clear existing parlays
if (typeof window.parlayGames === 'undefined') {
console.log(`[ERROR-DEBUG] window.parlayGames is undefined, creating new array`);
window.parlayGames = [];
} else {
console.log(`[ERROR-DEBUG] Clearing existing parlayGames`);
window.parlayGames = [];
}
// Add each game to the parlay
selectedGames.forEach((game, index) => {
try {
const isHome = Math.random() > 0.5;
const randomConfidence = 0.65 + (Math.random() * 0.25);
// Validate game object
if (!game.home_team || !game.away_team) {
console.error(`[${ERROR_CODES.PARSE_ERROR}] Invalid game object:`, game);
return;
}
const gameData = {
game_id: game.game_id || game.id || `unknown-${index}`,
home_team: game.home_team,
away_team: game.away_team,
selected_team: isHome ? game.home_team : game.away_team,
team_type: isHome ? 'home' : 'away',
odds: isHome ? -110 : +110,
confidence: randomConfidence,
date: game.date || 'Unknown date',
time: game.time || 'TBD',
sport: sport
};
console.log(`[ERROR-DEBUG] Adding game ${index} to parlay:`, gameData.game_id);
window.parlayGames.push(gameData);
} catch (e) {
console.error(`[${ERROR_CODES.PARSE_ERROR}] Error adding game ${index}:`, e);
}
});
if (window.parlayGames.length === 0) {
console.error(`[${ERROR_CODES.PARSE_ERROR}] Failed to add any games to parlay`);
container.innerHTML = `
Error ${ERROR_CODES.PARSE_ERROR}: Failed to add games to parlay.
`;
return;
}
// Try to make global reference
try {
if (typeof parlayGames !== 'undefined') {
console.log(`[ERROR-DEBUG] Updating global parlayGames variable`);
parlayGames = window.parlayGames;
}
} catch (e) {
console.warn('[ERROR-DEBUG] Could not update global parlayGames variable:', e);
}
// Update UI
try {
console.log(`[ERROR-DEBUG] Updating UI elements`);
// Show stats section
const statsElement = document.getElementById('parlayStats');
if (statsElement) {
statsElement.classList.remove('d-none');
}
// Hide empty message
const emptyElement = document.getElementById('emptyParlayMessage');
if (emptyElement) {
emptyElement.classList.add('d-none');
}
// Build success message
container.innerHTML = '';
// Add each game to the UI
window.parlayGames.forEach(game => {
const confidencePct = Math.round(parseFloat(game.confidence) * 100);
container.innerHTML += `