← All Projects

GameDay Analytics

Development Roadmap — Alpha

131

Total

0

Active

0

Bugs

3

Features

128

Done

98%

Progress

Development Progress

98%

Planned

3
Feature Medium Features

NFL sport module

Add NFL support with team rosters, player stats, game schedules, and betting data.

To Do
Feature Medium Features

NBA sport module

Add NBA support with team rosters, player stats, game schedules, and betting data.

To Do
Feature Low Features

NHL sport module

Add NHL support with team rosters, player stats, game schedules, and betting data.

To Do

Completed

128
Feature Medium

Auto Parlay: market+side exclusions

Added an Exclusions picker to the Auto Parlay toolbar so users can remove specific market+side combinations (e.g. exclude Over Runs while keeping Under Runs eligible) from the candidate pool.

Completed
Feature Medium

Auto Parlay: time period filter

Added Start Time / End Time inputs to the Auto Parlay toolbar so users can narrow parlay candidates to a specific CT window (e.g. early-afternoon slate only).

Completed
Feature Medium

Pitcher matchup modal with expanded H2H stats

Clicking a pitcher card on the Pitching Matchups page now opens a modal with the opposing lineup and each batter's head-to-head stats vs. that pitcher. Columns expanded from PA/K/K%/AVG/OPS to PA, AB, H, HR, BB, K, K%, AVG, OBP, SLG, OPS across Career, Season, L10, and L5 views. Added a contextual help modal and fixed the pitcher-detail page that was blank for pitchers with assigned umpires.

Completed
Bug Medium

Fix pitcher detail page and matchup card photos

Fixed a fatal database error on pitcher profile pages (incorrect umpire JOIN columns), corrected pitcher card photos to use the standard MLB CDN endpoint, and confirmed help modal styling matches site standards.

Completed
Feature Medium

Bet history upload & analytics

New /admin/bets page accepts Hard Rock Bet CSV exports and shows net P/L, ROI, parlay record, and leg-level hit rates by market, player, team, and price range. Uploads are idempotent — re-importing the same CSV updates statuses without duplicating rows.

Completed
Feature Medium

Player Props Stats: sportsbook filter

Added a sportsbook selector to the Player Props Stats page. Default Best Available keeps the existing behavior (best over odds across all active books); picking a specific book shows only that book's lines.

Completed
Enhancement Medium

Player Props Stats: full roster + pagination

Reworked the Player Props Stats page to show every active batter and starting pitcher this season, with matchup and prop info appearing only when the player has a game on the selected date. Added pagination and server-side sort to keep load times fast as the player universe grew from ~130 to 600+.

Completed
Feature Medium

Player Props Stats: matchup display

Added today's opponent and game start time to each player row on the Player Props Stats page so you can see matchup context without leaving the table.

Completed
Bug Medium

Fix silent failures false positives on admin dashboard

Silent Failures panel now cross-references prop_history and backfill runs — dates with closing line data from backfills no longer show as failures

Completed
Feature Medium

Research Section: Venue Stats

Added a new Research navigation dropdown with a Venue Stats page showing aggregated batting and pitching stats by MLB ballpark with sortable columns and totals/per-game toggle

Completed
Feature Medium

Research Section: Player Props Stats

Added a Player Props Stats page showing player season stats alongside their prop lines for any date, with historical and today-line hit rate calculations

Completed
Enhancement Medium

Top Unders Odds Filter

Added min/max under odds range filter to the Top Unders page. Props outside the configured odds range are excluded from results.

Completed
Feature Medium

Historical Batting Order Tracking

Added a pre-computed table tracking each player's most frequent batting order position per season. Integrated into No Run Score and Under .5 Runs systems so they no longer depend on lineup cards being published.

Completed
Enhancement Medium

Under .5 Runs: 6th Criterion (Batting Order)

Added historical batting order position as a 6th qualifying check to the Under .5 Runs system. Players must most frequently bat in the 6th spot or lower to qualify, filtering out top-of-the-order hitters who are more likely to score.

Completed
Enhancement Medium

No Run Score: historical batting order mode

Replaced the live lineups table lookup with historical mode batting order position from player_batting_order_history for the lineup position factor. Improves scoring stability before game-day lineups are confirmed.

Completed
Feature Medium

Batting Order History Tracking

Created player_batting_order_history table to store the mode batting order position per player per season. Backfilled 2026 season data from existing game stats (433 player records). Added batting_order_min config param to the Under .5 Runs system.

Completed
Enhancement Medium

Add Filtered Out count to admin system preview

Admin system detail pages now show a Filtered Out stat in the Live Preview summary, matching the metric shown on public system pages for easier comparison.

Completed
Feature Medium

VS Team hit rate and CL% season on dashboard

Added VS Team hit rate (performance against today's prop line in games vs the opponent) and full-season closing-line percentage to prop cards on the MLB dashboard.

Completed
Enhancement Medium

Team Season Stats via MLB Stats API

Rewrote team season stats sync script to use MLB Stats API instead of deprecated BDL API. Includes team batting, pitching, and fielding stats synced daily.

Completed
Feature Medium

Under .5 Runs System

New evaluation system that identifies players likely to go under 0.5 runs scored by combining team offensive weakness (bottom N in runs scored), opponent pitching strength (top N in ERA), individual run drought indicators, and sportsbook odds filtering. Includes admin-configurable parameters and team rankings display.

Completed
Feature Medium

Team Season Stats Table & Sync

Created team_season_stats table and rewrote sync script to use MLB Stats API instead of deprecated BDL API. Populates hitting, pitching, and fielding stats for all 30 teams.

Completed
Enhancement Medium

Add 5 AM CT prop sync slot

Added early morning prop sync so player props are available before the first pitch.

Completed
Bug Medium

Fix closing lines sync

Fixed timestamp format issue causing closing lines to fail since April 12. Backfilled missing data.

Completed
Feature Medium

Prop Sync Schedule Manager

Admin-controlled prop sync schedule with per-slot toggles. Added 5:30 PM and 7:00 PM CT sync windows for better pre-game line coverage. Six total daily sync runs, each controllable from the Odds API admin page.

Completed
Feature Medium

Odds API Quota Dashboard

Added real-time API quota tracking with burn rate projections, daily usage chart, and per-sync-job breakdown. Fixed broken admin page that was showing empty status data.

Completed
Enhancement Medium

Add check info tooltips and NRS history scorecard

Added info tooltips to each check in the Failed Check Impact table across all history pages. Applied the new scorecard design to No Run Score history with backfilled prediction data.

Completed
Enhancement Medium

Redesign Check Effectiveness on history pages

Replaced the confusing Check Effectiveness table on HRR Overs and Unders history pages with a Failed Check Impact scorecard. Now clearly shows which checks matter most by tracking hit rate when each check is the one that fails on near-miss predictions.

Completed
Bug Medium

Fix prediction locking for HRR systems

Fixed a bug where HRR Overs and HRR Unders predictions were never being locked due to a missing function dependency in the sync script. Backfilled historical predictions so history pages now show tracked results.

Completed
Feature Medium

No Run Scored Probability Model

New scoring system that calculates probability of a player not scoring a run using 12 weighted factors (OBP, lineup position, opposing starter, platoon, park factor, etc.). Compares model probability against sportsbook odds to detect value betting opportunities. Includes admin configuration, prediction tracking, and history page.

Completed
Feature Medium

Game Schedule & Breakdown

Added date-navigable schedule page and rebuilt game detail as a player-first prop breakdown with closing-line history, top-performer/top-under badges, and collapsible box score sections.

Completed
Enhancement Medium

Pipeline Health Monitor

Admin dashboard now shows prop history gaps and silent sync failures, so missing data is immediately visible.

Completed
Bug Medium

Fix Historical Odds API Endpoint

Fixed a bug where the closing lines sync was calling the live events API instead of the historical events API, causing games from past dates to not match. Backfilled March 26-29 prop history data.

Completed
Enhancement Medium

Top Performers Uses Historical Closing Lines

Top Performers now compares players against their actual historical closing lines from sportsbooks instead of applying today's line retroactively. Also shows a secondary vs-today's-line badge per prop.

Completed
Feature Medium

Top Unders Page

New page that surfaces players with high under hit rates using historical closing lines from sportsbooks. Compares against actual past prop lines and today's line. Admin-configurable thresholds and market toggles.

Completed
Bug Medium

Fixed odds range filter on dashboard

Fixed a bug where props with odds outside the configured Min/Max Odds filter range could still appear on the dashboard. Each side (over/under) is now checked independently against the filter.

Completed
Enhancement Medium

Help modal for Heavy Home Favorites

Added a help icon to the Heavy Home Favorites page explaining the bridge system, all five checks, the moneyline override feature, and how to read qualifying vs near miss results.

Completed
Enhancement Medium

Help modal for Parlay Builder

Added a help icon to the Parlay Builder page explaining how to build a parlay, what each field means, how to read results, and the difference from Auto Parlay.

Completed
Enhancement Medium

Help content tracking system

Added a help_content table to track when each page's help modal was last updated. Admin dashboard now shows help content age with color-coded freshness indicators. CLAUDE.md documents the help modal pattern for consistent implementation.

Completed
Enhancement Medium

Help modal for Prop Analyzer

Added a help icon to the Prop Hit Rate Analyzer page explaining filters, column meanings, and usage tips.

Completed
Enhancement Medium

Help modal for Team Top Performers

Added a help icon to the Team Top Performers page showing current settings, enabled markets with directions, and how to use the page.

Completed
Enhancement Medium

Help modal for Top Performers

Added a help icon to the Top Performers page that shows current settings (min hit rate, min games), which markets are enabled and their direction, and how to read the results.

Completed
Enhancement Medium

Help modals for HRR Overs and HRR Unders

Added help icons to HRR Overs and HRR Unders pages that open a modal explaining how the system works, what each check means, and how to read the results.

Completed
Enhancement Medium

Auto Parlay uses actual closing lines

Auto Parlay now backtests against real closing prop lines from prop_history instead of applying today's line retroactively. Hit rates now reflect whether the player actually beat the line that was set for each game.

Completed
Enhancement Medium

Exclude correlated parlays from Auto Parlay

Auto Parlay now ensures the same player cannot appear in multiple legs of the same parlay, preventing correlated parlays that sportsbooks penalize with reduced payouts.

Completed
Bug Medium

Fix HRR prediction history check effectiveness

Fixed check effectiveness tables showing all zeros due to MariaDB JSON_VALUE boolean comparison. Added full-criteria vs near-miss badges to daily breakdown. Adjusted HRR Unders min-games offset for early season.

Completed
Enhancement Medium

Game matchup info on Auto Parlay

Auto Parlay cards now show each players game matchup and start time

Completed
Enhancement Medium

Min/Max Odds Filter on Auto Parlay

Added Min Odds and Max Odds filter fields to the Auto Parlay page, filtering out props whose odds for the chosen direction fall outside the range

Completed
Feature Medium

Auto Parlay Builder

New page that automatically discovers and ranks the best parlay combinations from todays props based on historical hit rates. Includes admin settings for per-leg hit rate threshold and per-market minimum lines.

Completed
Feature Medium

Sportsbook filter on Top Performers

Added a sportsbook dropdown to the Top Performers page, allowing users to filter results by a specific sportsbook

Completed
Bug Medium

Fix game times on system pages

Fixed game times on HRR Overs, HRR Unders, Hits Over, and Home Favorites pages that were displaying UTC times instead of Central Time

Completed
Feature Medium

Min/Max Line Filters on Dashboard

Added Min Line and Max Line filter fields to the MLB dashboard toolbar, allowing users to filter props by line value range

Completed
Feature Medium

HRR Unders System

New evaluation system for H+R+RBI prop under opportunities. Identifies batters in unfavorable offensive situations using 7 checks: under hit rate, bottom-of-lineup batting order, low pitcher WHIP, low team implied runs, venue filtering, platoon disadvantage, and min games played. Includes admin configuration, prediction tracking, and history page.

Completed
Enhancement Medium

Smart Min Games Default for HRR Overs

Min games parameter now auto-calculates from max team games played this season plus a configurable offset. Applied in admin dashboard, public API, and prediction lock script.

Completed
Feature Medium

System Prediction Tracking

Added prediction tracking infrastructure — locks HRR Overs predictions ~1hr before games, grades postgame, and provides history page with accuracy breakdown by confidence level and individual check effectiveness

Completed
Feature Medium

System Prediction Lock Script

Added a cron sync script that snapshots qualifying and near-miss HRR Overs predictions approximately 1 hour before each game, storing locked predictions in system_predictions for grading and hit-rate tracking.

Completed
Enhancement Medium

Renamed HRR Advantage to HRR Overs

Renamed the H+R+RBI Advantage system to HRR Overs for clarity — updated all file names, URLs, routes, DB slug, and navigation links

Completed
Feature Medium

Smart Min Games & Odds Range Filter

Dashboard now auto-calculates minimum games based on season progress and market type. Added odds range filter to control which prop lines are displayed. All defaults are configurable from the admin panel.

Completed
Enhancement Medium

Hard Rock Bet Sportsbook

Added us2 region to The Odds API integration to include Hard Rock Bet odds in player prop displays.

Completed
Enhancement Medium

Sportsbook Auto-Discovery in Odds Sync

Odds API sync script now auto-discovers and upserts sportsbooks encountered during each run into odds_api_sportsbooks, mirroring the existing market auto-discovery pattern.

Completed
Enhancement Medium

Sportsbook Filtering for Prop APIs

Added active-sportsbook filtering to all five prop API endpoints so disabling a sportsbook in the admin panel immediately removes it from all prop results across the site.

Completed
Feature Medium

Sportsbook Toggle API

Added POST /api/odds-api-sportsbook-toggle endpoint to enable or disable individual sportsbooks, controlling which books are included in odds API responses.

Completed
Feature Medium

Sportsbook Management Table

Added odds_api_sportsbooks reference table to control which sportsbooks appear in front-end props displays. Seeded from existing sportsbook data in player_props.

Completed
Bug Medium

Fix admin gear icon visibility

Changed admin gear icon color from white to black for visibility on light navbar

Completed
Bug Medium

Fix Under toggle hit rate calculation

Under toggle on the dashboard now properly recalculates hit rates instead of only switching displayed odds

Completed
Feature Medium

Hits+Runs+RBIs OVER System

New evaluation system that identifies batters with high Hits+Runs+RBIs prop hit rates in favorable matchup conditions including batting order, opposing pitcher WHIP, team implied runs, venue, and platoon advantage. Includes Over/Under toggle and admin dashboard with configurable venue toggles for all 30 MLB parks.

Completed
Bug Medium

Fix stale team assignments in Prop Analyzer

Fixed player team assignments showing previous season teams instead of current rosters on the Prop Analyzer page

Completed
Bug Medium

Fixed player photos on Top Performers pages

Player headshots now display correctly on Top Performers and Team Top Performers pages using the MLB CDN.

Completed
Feature Medium

Team Top Performers page

Added a team-filtered Top Performers page where users can select a team and see which players are hitting prop lines at the highest rates.

Completed
Enhancement Medium

Admin-Selectable Prop Markets

Top Performers prop markets are now configurable from the admin dashboard. Each market can be set to Over, Under, or Off with a visual toggle. Removed irrelevant props like stolen bases, singles, and doubles by default.

Completed
Feature Medium

Top Performers Page

New page under Prop Analysis that surfaces players hitting their prop lines at a high rate. Shows player cards with position badges, game info, and all qualifying prop lines with hit rates. Admin-configurable thresholds.

Completed
Feature Medium

Parlay Builder

Multi-leg parlay analyzer that lets you build 2-6 player prop combinations and see historical hit rates, matching days, and near misses across the season.

Completed
Feature Medium

Hits Over System

Added a team game stats aggregation pipeline and Hits Over evaluation system. Users enter a hits threshold and direction (over/under) to find teams whose rolling batting average vs opponent pitching suggests they will hit over or under that number.

Completed
Feature Medium

Systems Overview Page

Added a systems overview page that lists all evaluation systems with today qualifying game highlights and per-system stats

Completed
Bug Medium

Fix duplicate prop market labels

Disambiguated Strikeouts and Walks labels so pitcher and batter versions are clearly distinguished in dropdowns.

Completed
Feature Medium

Min Games filter on dashboard

Added a configurable minimum games filter to the dashboard prop cards view. Defaults to 3 games to filter out small-sample noise early in the season.

Completed
Enhancement Medium

Improved hit rate sorting and sample size indicators

Dashboard prop cards now tiebreak by total games when hit rates match, and L5/L10 labels show game count for small samples to reduce misleading 100% displays early in the season.

Completed
Bug Medium

Convert all times to Central Time

Switched entire site from Eastern Time to Central Time (America/Chicago). Added formatGameTime() helper for consistent UTC-to-CT conversion. Fixed broken game times on dashboard that displayed as year values (e.g. 2014:05 PM).

Completed
Bug Medium

Fix prop sync cron job

Resolved silent cron failure where the props sync script could not write to a missing log directory. Created /var/log/gamedayanalytics and fixed file ownership for the sync scripts.

Completed
Feature Medium

Admin Systems Dashboard

Added configurable Systems section to MLB Admin with live preview for Heavy Home Favorites system parameters (moneyline range, starter tiers, bullpen LOB%, reliever risk mode, sweep detection).

Completed
Bug Medium

Fix dashboard photos, props loading, and market dropdown

Fixed player photos to use MLB CDN, corrected market type mapping for props queries, and added fallback market list for the dropdown.

Completed
Bug Medium

Fix daily props API column references

Fixed broken daily-props API that referenced non-existent table columns, preventing the props dashboard from loading.

Completed
Feature Medium

MLB Admin Dashboard with authentication

Created a standalone admin dashboard for MLB-specific tools with password authentication, sync monitoring, and data overview. Admin pages are now protected behind login.

Completed
Enhancement Medium

Collapsible closing line history per game

Grouped closing line history by game date with collapsible accordion UI showing matchup and O/U summary per game.

Completed
Bug Medium

Fix prop history grading pipeline

Fixed column name mismatches and missing table reference in the prop grading script that prevented closing line history from showing results beyond March 30.

Completed
Bug Medium

Bridge Builder timezone fix

Game times on Bridge Builder page now display in Central Time (America/Chicago) instead of Eastern

Completed
Feature Medium

Bridge Builder & Pitcher Evaluations

Added admin dashboard for manual pitcher tier/reliever role assignments and Bridge Builder page that filters today's MLB slate for qualifying heavy-favorite home bets using a 5-point validation system

Completed
Bug Medium

Fix missing early-season game data

Backfilled Opening Day game stats and updated cron scripts to use rolling date windows, preventing data gaps at season start.

Completed
Feature Medium

Player detail page rewritten for live schema

Rewrote player-detail.php and player-stats API to use the actual server DB schema: batters/pitchers tables, correct game_pk/game_date column names, base_on_balls/strike_outs/pitches_thrown in game stats, avg/obp/slg/ops in season stats. Added Closing Line History section with O/U trend dots from prop_history table.

Completed
Feature Medium

Closing Line Hit Rate Analyzer

Built a hit rate analyzer that grades player props against historical closing lines (15 min before first pitch). Captures consensus lines from The Odds API Historical endpoint, grades against actual stats, and surfaces CL10 hit rates with O/U trend indicators on dashboard cards.

Completed
Feature Medium

The Odds API Integration

Replaced Ball Don't Lie with The Odds API for live player prop lines. Built a 4-layer name matching engine (alias, exact, normalized, fuzzy), admin dashboard for market management and unmatched player resolution, and automated sync schedule at 6 AM and 1 PM ET.

Completed
Bug Medium

Pitcher matchup expansion with K% analysis

Fixed pitcher-matchup API to work with new MLB Stats API schema. Click any pitcher on the matchup page to see the opposing lineup with K% breakdown: Season, L5, L10 plate appearances, and Career vs that specific pitcher.

Completed
Feature Medium

Full sync infrastructure with cron automation

Built complete data pipeline: game stats (373K+ lines), lineups (235K), umpires (122), standings, and injuries — all synced from MLB Stats API with rate limiting, retry logic, and comprehensive sync logging. Automated via cron: 6 AM daily, every 10 min during games, 1:30 AM postgame sweep.

Completed
Feature Medium

Admin data audit dashboard

Added ESPN-style leaderboard validation page to admin dashboard. Shows batting leaders (AVG, HR, RBI, OPS, Hits, SB) and pitching leaders (W, ERA, SV, K, WHIP, K/9) for quick comparison against ESPN. Includes database health checks, season breakdown, and sync activity log.

Completed
Feature Medium

Per-Game Player Stats (Game Lines)

Added player_game_stats table storing individual game batting and pitching lines for every player in every game. Enables L5, L10, and over/under calculations for prop analysis.

Completed
Feature Medium

Game Lineups Sync

Lineup data with batting order and positions synced from MLB boxscores for every game.

Completed
Feature Medium

Umpire Tracking

Umpire registry and per-game assignments synced from MLB boxscores. Home plate umpire impacts scoring environment.

Completed
Feature Medium

MLB Standings Sync

Full standings data from MLB Stats API including splits (home/away, day/night, L10, extra-inning, one-run games).

Completed
Feature Medium

Injury Tracking (IL Status)

Current injured list status synced from team depth chart rosters. Rebuilt fresh each sync run.

Completed
Enhancement Medium

Automated Cron Sync Schedule

Three cron jobs: daily pre-game sync (6 AM ET), live score updates every 10 min with instant stats on game completion, final postgame sweep (1:30 AM ET).

Completed
Feature Medium

Historical Game Stats Backfill (2020-2025)

Backfilling per-game player stats, lineups, and umpires for all regular season games from 2020 to 2025 (~14,000+ games).

Completed
Enhancement Medium

Migrate to Official MLB Stats API

Replaced Ball Don't Lie API with the official MLB Stats API for all game schedules, pitcher stats, and batter stats. New database schema uses MLB personIds and game_pk as primary keys for direct API compatibility.

Completed
Enhancement Medium

Prop analyzer shows all qualifying players

The Prop Hit Rate Analyzer now returns all players meeting the games and hit rate thresholds, not just those with a prop listed today. Players without a game today show a dash in the Game column.

Completed
Enhancement Medium

Add game column to Prop Hit Rate Analyzer

The prop analyzer now shows each player's today's matchup (opponent and game time) in a dedicated Game column. Hidden on mobile for readability.

Completed
Enhancement Medium

Hide completed games from dashboard

Completed games and their props are now filtered out of the daily props dashboard, keeping focus on upcoming and in-progress games.

Completed
Bug Medium

Fix duplicate game tabs on dashboard

Fixed an issue where game tabs on the daily props dashboard were repeated multiple times due to a database join producing duplicate rows.

Completed
Bug Medium

Fix lineup sync is_probable_pitcher error

Fixed a data type mismatch in the lineup sync where empty string values from the API caused database insert errors for the is_probable_pitcher field.

Completed
Enhancement Medium

Incremental Post-Game Sync

Player stats, prop results, and lineups now process within ~10 minutes of a game ending instead of waiting until 1:30 AM. Play-by-play and Statcast data still sync overnight.

Completed
Bug Medium

Filter Spring Training from Game Log

Player profile game log now excludes spring training games, showing only regular season data.

Completed
Feature Medium

Full BDL API Data Mirror

Complete mirror of all 19 BDL MLB API endpoints into local database. Includes Statcast pitch-by-pitch data, play-by-play, standings, lineups, player splits, injuries, and batter-vs-pitcher matchups. Comprehensive logging with verbose/debug/dry-run modes. Nightly automated sync with historical backfill for 2022-2025.

Completed
Feature Medium

Pitching Matchups Page

New page showing today's starting pitchers grouped by game with expandable head-to-head matchup panels showing opposing lineup strikeout rates via the MLB Stats API.

Completed
Enhancement Medium

Navigation Restructure

Reorganized MLB site navigation into grouped dropdowns: Stats, Prop Analysis, and Umpire Analysis. Cleaner layout with desktop hover and mobile accordion behavior.

Completed
Feature Medium

Prop Hit Rate Analyzer

New cross-player discovery tool that finds players with consistent hit rates against their current prop lines. Includes all 16 MLB player prop types, over/under direction filtering, configurable thresholds, and sortable results with L5/L10 trend data.

Completed
Feature Medium

Umpire game preview per-season hit rates

Added per-season O/U hit rate breakdown on the Umpire Game Preview page for both umpire vs line and pitcher combo data. Fixed betting odds sync to correctly map BDL API field names. Also fixed game stats sync pagination bug and NULL season values.

Completed
Bug Medium

Fix props hit rate display

Renamed Accuracy to Hit Rate on props cards and fixed hit rate data showing N/A by falling back to the most recent season with game stats data when the current season has no completed games yet.

Completed
Feature Medium

Prop Card Dashboard

Redesigned the MLB home page with a card-based player props view featuring prop type selector, game filters, sportsbook filter, sort options, and hit rate trending metrics.

Completed
Feature Medium

Umpire Game Preview Page

Date-selectable page showing home plate umpire O/U hit rates with threshold grids and starting pitcher combo analysis for daily MLB games.

Completed
Bug Medium

Fix Stale LIVE Badges on Dashboard

Added a safeguard to prevent games from showing a LIVE badge if they started more than 6 hours ago. This handles cases where the API is slow to update game status from in_progress to final.

Completed
Enhancement Medium

Team Logos on Dashboard Game Cards

Updated the Today's Games section on the dashboard to display team logos instead of plain text abbreviations. Logos are sourced from ESPN CDN.

Completed
Feature Medium

Add Season Selector to Umpires Listing

Added season filter checkboxes to the Umpires listing page, allowing users to filter umpire stats by specific seasons. The umpire filter API now accepts season parameters for targeted analysis.

Completed
Bug Medium

Filter Spring Training from Umpire Stats

Fixed umpire stats pages and cache to exclude spring training games. All umpire queries (listing, detail, analysis, filter API, and stats cache) now only include regular season games, matching industry-standard sources like OddShark.

Completed
Feature Medium

Umpire Analysis tool page

New Umpire Analysis page for analyzing home plate umpire tendencies with custom over/under thresholds. Supports Total Runs, Strikeouts, Walks, Home Runs, and Hits stat types with season filtering, hit rate summary cards, common threshold grid, and full game history table.

Completed
Enhancement Medium

Game time display on dashboard

Scheduled games now show their start time (ET) instead of just a generic Scheduled badge. Game times are synced from the BDL API and displayed on the dashboard, games today page, and game detail pages.

Completed
Feature Medium

Umpire Filtering & Custom O/U Line Analysis

Added interactive filters to the Umpires page — set minimum HP games, enter a custom O/U line threshold, and toggle between Over and Under to see hit rates. Includes sortable columns and historical vs. actual betting line tracking.

Completed
Enhancement High UI/UX

Complete visual overhaul — Hardball theme

Redesigned the entire site with the Hardball theme: dark header/footer with warm body sections, rust-red accent color, Space Grotesk display font, JetBrains Mono for stats, sharp 2px corners, and square player photos. Applied across the landing page, MLB app, and admin dashboard.

Completed
Feature High Features

MLB player stats dashboard

Full player profiles with season stats, game logs, batting and pitching leaderboards, and headshot photos from MLB Stats API.

Completed
Feature High Features

Betting props and odds tracking

Automated sync of player props and game betting odds with historical result tracking and hit-rate analysis.

Completed
Feature Medium Admin

Admin dashboard with sync controls

Admin panel with manual sync triggers, data audit tools, season backfill, and changelog management.

Completed
Feature High Backend

Automated data sync pipelines

Cron-based sync for teams, players, games, season stats, game stats, props, odds, and prop results with real-time live score updates.

Completed