131
Total
0
Active
0
Bugs
3
Features
128
Done
98%
Progress
Development Progress
98%Planned
3Add NFL support with team rosters, player stats, game schedules, and betting data.
Add NBA support with team rosters, player stats, game schedules, and betting data.
Add NHL support with team rosters, player stats, game schedules, and betting data.
Completed
128Added 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.
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).
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.
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.
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.
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.
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+.
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.
Silent Failures panel now cross-references prop_history and backfill runs — dates with closing line data from backfills no longer show as failures
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
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
Added min/max under odds range filter to the Top Unders page. Props outside the configured odds range are excluded from results.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Added early morning prop sync so player props are available before the first pitch.
Fixed timestamp format issue causing closing lines to fail since April 12. Backfilled missing data.
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.
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.
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.
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.
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.
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.
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.
Admin dashboard now shows prop history gaps and silent sync failures, so missing data is immediately visible.
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.
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.
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.
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.
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.
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.
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.
Added a help icon to the Prop Hit Rate Analyzer page explaining filters, column meanings, and usage tips.
Added a help icon to the Team Top Performers page showing current settings, enabled markets with directions, and how to use the page.
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.
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.
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.
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.
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.
Auto Parlay cards now show each players game matchup and start time
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
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.
Added a sportsbook dropdown to the Top Performers page, allowing users to filter results by a specific sportsbook
Fixed game times on HRR Overs, HRR Unders, Hits Over, and Home Favorites pages that were displaying UTC times instead of Central Time
Added Min Line and Max Line filter fields to the MLB dashboard toolbar, allowing users to filter props by line value range
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.
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.
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
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.
Renamed the H+R+RBI Advantage system to HRR Overs for clarity — updated all file names, URLs, routes, DB slug, and navigation links
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.
Added us2 region to The Odds API integration to include Hard Rock Bet odds in player prop displays.
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.
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.
Added POST /api/odds-api-sportsbook-toggle endpoint to enable or disable individual sportsbooks, controlling which books are included in odds API responses.
Added odds_api_sportsbooks reference table to control which sportsbooks appear in front-end props displays. Seeded from existing sportsbook data in player_props.
Changed admin gear icon color from white to black for visibility on light navbar
Under toggle on the dashboard now properly recalculates hit rates instead of only switching displayed odds
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.
Fixed player team assignments showing previous season teams instead of current rosters on the Prop Analyzer page
Player headshots now display correctly on Top Performers and Team Top Performers pages using the MLB CDN.
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.
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.
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.
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.
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.
Added a systems overview page that lists all evaluation systems with today qualifying game highlights and per-system stats
Disambiguated Strikeouts and Walks labels so pitcher and batter versions are clearly distinguished in dropdowns.
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.
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.
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).
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.
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).
Fixed player photos to use MLB CDN, corrected market type mapping for props queries, and added fallback market list for the dropdown.
Fixed broken daily-props API that referenced non-existent table columns, preventing the props dashboard from loading.
Created a standalone admin dashboard for MLB-specific tools with password authentication, sync monitoring, and data overview. Admin pages are now protected behind login.
Grouped closing line history by game date with collapsible accordion UI showing matchup and O/U summary per game.
Fixed column name mismatches and missing table reference in the prop grading script that prevented closing line history from showing results beyond March 30.
Game times on Bridge Builder page now display in Central Time (America/Chicago) instead of Eastern
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
Backfilled Opening Day game stats and updated cron scripts to use rolling date windows, preventing data gaps at season start.
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.
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.
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.
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.
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.
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.
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.
Lineup data with batting order and positions synced from MLB boxscores for every game.
Umpire registry and per-game assignments synced from MLB boxscores. Home plate umpire impacts scoring environment.
Full standings data from MLB Stats API including splits (home/away, day/night, L10, extra-inning, one-run games).
Current injured list status synced from team depth chart rosters. Rebuilt fresh each sync run.
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).
Backfilling per-game player stats, lineups, and umpires for all regular season games from 2020 to 2025 (~14,000+ games).
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.
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.
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 games and their props are now filtered out of the daily props dashboard, keeping focus on upcoming and in-progress games.
Fixed an issue where game tabs on the daily props dashboard were repeated multiple times due to a database join producing duplicate rows.
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.
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.
Player profile game log now excludes spring training games, showing only regular season data.
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.
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.
Reorganized MLB site navigation into grouped dropdowns: Stats, Prop Analysis, and Umpire Analysis. Cleaner layout with desktop hover and mobile accordion behavior.
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.
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.
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.
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.
Date-selectable page showing home plate umpire O/U hit rates with threshold grids and starting pitcher combo analysis for daily MLB games.
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.
Updated the Today's Games section on the dashboard to display team logos instead of plain text abbreviations. Logos are sourced from ESPN CDN.
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.
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.
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.
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.
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.
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.
Full player profiles with season stats, game logs, batting and pitching leaderboards, and headshot photos from MLB Stats API.
Automated sync of player props and game betting odds with historical result tracking and hit-rate analysis.
Admin panel with manual sync triggers, data audit tools, season backfill, and changelog management.
Cron-based sync for teams, players, games, season stats, game stats, props, odds, and prop results with real-time live score updates.