What's New
Latest features and improvements to Orange FF
Lineup Management Stats
Track how well managers set their lineups throughout the season with leaderboards for management skills.
- •Excellent Management (⭐) - Wins with optimal lineup (within 0.5 pts of best possible)
- •Mismanaged Games (⚠️) - Losses where optimal lineup would have won
- •No Chance to Win (💀) - Losses even with the best possible lineup
- •Bench Blunders (🤦) - Games with over 30 points left on the bench
Uses the same optimal lineup calculation logic as the matchup detail pages for consistency.
Low Score Leaders
Track the lowest-scoring teams each week during the regular season, similar to high score leaders but for poor performances.
- •Displayed in season detail pages alongside high score leaders
- •Shows manager avatars and counts for each team
Season Highlights Stats
Fun and engaging season statistics calculated from regular season games with colorful cards and quick links.
- •Biggest Blowout - Largest point differential with winner vs loser
- •Closest Game - Nail-biting matchup with smallest margin
- •Highest/Lowest Scores - Season's best and worst performances
- •Hot Streak/Cold Streak - Longest winning and losing streaks
- •Most Consistent - Manager with most predictable scores (lowest standard deviation)
- •Boom or Bust - Manager with wildest variance (highest standard deviation)
Playoff Bracket Visualization
Visual tournament bracket with intelligent game detection, placement labeling, and championship podium.
- •Smart bracket flow logic correctly identifies Final, 3rd, 5th, 7th, and 9th place games
- •Championship podium displays 1st, 2nd, and 3rd place winners with medals
- •Color-coded game labels: Gold (Final), Bronze (3rd), Orange (5th), Purple (7th/9th)
- •Bye week display for teams not playing in early rounds
- •Separate championship (1st-6th) and consolation (7th-10th) brackets
- •Week numbers and proper vertical alignment across columns
Yahoo API Response Caching
Implemented intelligent response caching to dramatically reduce Yahoo API calls and prevent rate limiting.
- •Checks database for cached responses before calling Yahoo API
- •Historical data (2013-2024) cached indefinitely after first import
- •Default 7-day cache window for current season updates
- •Safe to re-run imports without hitting rate limits
- •Configurable via
YAHOO_API_USE_CACHEandYAHOO_API_CACHE_DAYS
Yahoo API Rate Limiting
Implemented intelligent rate limiting with exponential backoff to prevent Yahoo API blocking during data imports.
- •Configurable delay between API requests (default: 1 second)
- •Automatic retry on rate limit (429) or server errors (5xx)
- •Exponential backoff: 1s, 2s, 4s delays for retries
- •Configurable via
YAHOO_API_DELAY_MSandYAHOO_API_MAX_RETRIES
Manager Awards on Matchup Pages
Added 9 awards to recognize manager performance, lineup decisions, and matchup drama.
Team Awards:
- •Winner 🏆 - Green badge for winning team
- •Excellent Management ⭐ - Blue badge for winning with optimal lineup
- •Mismanaged ⚠️ - Red badge when lineup mistakes cost you the win
- •No Chance to Win 💀 - Dark red badge when even optimal lineup couldn't beat opponent's actual score
- •High Score 🔥 - Purple badge for highest score of the week
- •Low Score 💤 - Gray badge for lowest score of the week
- •Bench Blunder 🤦 - Orange badge for leaving 30+ points on bench
Matchup Awards:
- •Nail Biter 😰 - Yellow badge for games decided by < 5 points
- •Blowout 💥 - Indigo badge for dominant wins by 40+ points
Note: High score indicators now use 🔥 flame emoji throughout the app (managers page, seasons page, matchup lists)
Best Possible Lineup Fix
Fixed bug where best possible score was sometimes showing lower than actual score. Algorithm now dynamically detects roster structure and works across all seasons.
- •Fixed hardcoded roster structure (was 2 WR + 1 FLEX, actual is 3 WR + 2 FLEX)
- •Dynamically detects roster structure from actual starters each week
- •Works across all seasons regardless of league settings changes
- •Best score now guaranteed to be ≥ actual score
Import System Bug Fixes
Fixed critical duplicate data issues in the import system. Removed 2,018 duplicate transaction records and made all imports fully idempotent.
- •Fixed duplicate transaction records (76% of records were duplicates)
- •Added unique constraint on transaction and performance records
- •Import scripts now use upsert logic to prevent duplicates on re-import
- •Safe to run historical imports multiple times without data corruption
Docker Development Mode
Added Docker development mode with hot-reloading for faster development workflow.
- •No more rebuilding containers for small code changes
- •Changes appear in 1-2 seconds with volume mounts
- •Use docker-compose.dev.yml for development workflow
Best Possible Lineup Analysis
Ever wonder what your score would have been if you'd started the right players? Now you can see your "Best Possible Score" on every matchup page.
- •See exactly how many points you left on the bench
- •Calculates the optimal lineup considering all position eligibility
- •Find out if lineup decisions cost you the win
Projected vs Actual Scores
Matchup pages now show projected scores alongside actual scores.
- •See if your team over-performed or under-performed projections
- •Color-coded indicators show performance at a glance
Complete Historical Stats (2013-2020)
Fixed player statistics for seasons 2013-2020. All matchups now show accurate player-by-player breakdowns for the entire league history.
- •Over 90% of historical player performances now display correct point totals
- •View complete roster breakdowns for all 13 seasons
Orange FF Launch
Welcome to Orange FF - your complete fantasy football league history spanning 13 seasons!
- •13 complete seasons (2013-2025) with 1,006 matchups
- •Manager rankings with career statistics and high scores
- •Head-to-head records and top players for every manager
- •Complete matchup breakdowns with player rosters and points
- •Season browser with champions and standings
- •League records tracking top performances
- •Dark mode support for late-night browsing