FAQ
Common questions and edge cases. Still stuck? Send a message.
Is this free?
Yes. No account required, no paywall, no ads.
Who built this and why?
One person, for personal use, then made public. The tool exists because no free option combined draft analytics, keeper valuation, trade analysis, and category balance in one place without requiring a subscription or surrendering your data to a third party. It's built on the principle that analytical tools should be free.
Does this store my data anywhere?
Nothing is stored on any server. For ESPN leagues, your credentials stay in your browser's local storage and are never transmitted to League Donation's servers. For Yahoo leagues, the OAuth access and refresh tokens are stored in your browser's local storage after you authorize; they expire and are cleared after 30 days. Either way, the tool reads your league data at connection time and caches it locally in your browser session. The only outbound calls are the API requests to ESPN or Yahoo directly.
Does this work with CBS or other platforms?
ESPN and Yahoo are both supported. CBS and other platforms are not currently. They use different authentication systems and data formats. Additional platforms may follow.
How do I connect an ESPN league?
Select ESPN on the connect screen and enter your league ID. Public leagues connect with just the ID. Private leagues also need your espn_s2 and SWID cookies — see the question below for how to find them.
What is my ESPN League ID and where do I find it?
Open ESPN Fantasy Baseball in a browser. The URL will look something like fantasy.espn.com/baseball/league?leagueId=123456. That number is your league ID.
What are s2 and SWID, and when do I need them?
Public ESPN leagues connect with just a league ID. Private leagues require two additional cookies that ESPN uses to authenticate your session: espn_s2 and SWID.
Find them by opening your browser's developer tools while logged into ESPN, navigating to the Application or Storage tab, and looking under Cookies for espn.com. Copy both values exactly, including the curly braces around SWID. They expire periodically, so if the tool stops loading your league data, refreshing these is the first thing to try.
How do I connect a Yahoo league?
Select Yahoo on the connect screen, enter your league ID, and click Connect with Yahoo. This opens Yahoo's standard OAuth authorization page. Log in with your Yahoo account and approve access. You're returned to League Donation automatically. No passwords or tokens to copy manually. The authorization stores a short-lived access token and a refresh token in your browser's local storage. The refresh token is used to stay connected without requiring you to re-authorize every hour.
Where do I find my Yahoo league ID?
Open Yahoo Fantasy Baseball in a browser. The URL will contain something like baseball.fantasysports.yahoo.com/b1/123456. That number is your league ID. The full league key used internally is formatted as mlb.l.123456 for the current season — the tool constructs this automatically from the ID you enter.
My Yahoo connection expired or stopped working.
Yahoo access tokens expire after one hour. League Donation refreshes them automatically in the background using the refresh token, so this should be transparent most of the time. If the tool shows an authentication error, disconnect and reconnect through the Yahoo OAuth flow again. This generates a fresh token pair. If the error persists, clearing your browser's local storage for leaguedonation.com and starting fresh resolves it.
The tool connected but my roster looks wrong. (ESPN)
ESPN's API has a known preseason behavior: it returns zeroed slot counts for roster positions before the season begins. The tool detects this and runs several fallback layers to infer your real roster configuration from actual player assignments across all teams. This covers most cases automatically, but in edge cases you may see positions missing or bench counts off. Disconnecting and reconnecting once the season has started usually resolves it.
Players are showing in IL slots when they shouldn't be. (ESPN)
ESPN sometimes places bench players into IL slots during the preseason before roster configurations are finalized. The tool treats these as bench players for all analytical purposes. If your league has no IL slots and the tool is showing an IL mismatch warning, that's the cause: ESPN assigned those players to IL slots on their end and the tool is flagging the discrepancy. Move the affected players to bench when the season starts and the warning clears.
My league settings show the wrong scoring or wrong roster positions.
Two common causes. First, ESPN's API sometimes returns default scoring weights during the preseason rather than your league's actual settings, especially for points leagues. The tool flags this with an "Unverified scoring" warning and falls back to ESPN's server-side projection values. To fix it, open the scoring editor in Settings and enter your league's actual point values manually.
Second, ESPN may omit slot counts entirely for certain positions in preseason. The tool infers them from player assignments where possible, but if a position is still missing, adding it manually in Settings resolves it. Yahoo leagues do not have this issue — Yahoo's API returns accurate settings year-round.
Why are my projections blank or showing zero?
Platform APIs don't always deliver full projection data, especially early in the season, for injured players, or for players with limited recent activity. Import projections from FantasyPros or FanGraphs in the Rankings tab. Imported projections replace platform defaults everywhere: rankings, power ratings, trade analysis, draft board.
What's the difference between FantasyPros and FanGraphs imports?
FantasyPros gives you consensus rankings and ADP data: what experts collectively think, aggregated and weighted. FanGraphs gives you raw statistical projections: plate appearances, innings pitched, strikeout rates, expected ERA. Import both and the tool blends them. Import one and it still works. FanGraphs projections unlock category-level analysis and z-score calculations. FantasyPros rankings unlock the ADP arbitrage view. Each does something the other doesn't.
My scoring says "Unverified" or "Needs Fix." What does that mean?
These are two distinct conditions. "Unverified" means ESPN's API returned scoring weights that haven't been confirmed against your actual league settings, which happens most often in the preseason for points leagues. The tool uses ESPN's server-side projection totals as a fallback, which are more reliable than calculating from unverified weights.
"Needs Fix" means the weights produced projections that failed a sanity check, so custom calculations were disabled entirely to avoid misleading numbers. In both cases, opening the scoring editor in Settings and entering your real point values resolves it.
A specific player shows zero projection even though they have projected stats.
A projection of zero is a real data point, not a missing one. In categories leagues there is no points formula to roll raw stats into a single number, so the displayed value comes from the external source directly. If FantasyPros has a player at zero, usually because of a significant injury with an unclear timeline, that's what the tool reflects. Importing a FanGraphs projection file generates projections from raw stats rather than expert consensus, and category contributions will appear correctly regardless.
What does VORP mean?
Value Over Replacement Player. The question it answers is not "how good is this player" but "how much does this player improve my team over what I'd have at this position otherwise." A catcher projecting 200 fantasy points is worth more than a corner outfielder projecting the same number, because replacement-level catchers are scarcer. VORP accounts for that. It's the number that matters most for draft and trade decisions.
What's Z-Score?
Z-score measures how far above league average a player projects across scoring categories. Zero is average. Positive is above average. The number tells you by how much, in standard deviations. It's most useful for comparing players across positions who contribute differently: a starter and a reliever don't have comparable raw projections, but their z-scores are directly comparable.
What is the Draft Board for?
A full pre-draft research tool. It blends your imported projections with ESPN data, computes positional value and tier breaks, surfaces recommendations based on your team's needs as the draft progresses, and lets you queue players ahead of your pick. If you run a live draft, it tracks picks in real time when connected to ESPN's draft feed. After the draft completes it switches to a post-draft view: your roster and category balance, side by side.
The Draft Board shows wrong positions or missing players.
This usually traces back to the preseason roster configuration issue described above. If positions are missing from the board, check Settings to confirm your roster slots are populated correctly. If players are missing from the pool entirely, the composite ranking data may not have loaded: import a FantasyPros or FanGraphs file from the Rankings tab and return to the Draft Board.
What is Category Balance?
A visualization of your team's projected strength across every scoring category, measured in z-scores. Green bars mean you're above league average. Red means below. The number on the right tells you by how much. It's the first place to look after the draft and the first place to check when evaluating a trade or waiver pickup: not "is this player good" but "does this player address a weakness I have."
What does "Fit for your team" mean in the player card?
An estimate of the marginal value a player adds to your specific roster, accounting for your category strengths and weaknesses. A player projecting well in stolen bases is worth more to a team weak in stolen bases than to one that already has them covered. Fit measures that delta, personalized to you. A player ranked 85th overall might be a more valuable pickup for your team than someone ranked 60th, depending on what you need.
Power Rankings shows "--" for all teams.
No projection data has been imported yet, or the imported projections didn't cover enough players to generate meaningful scores. Import projections from FantasyPros or FanGraphs in the Rankings tab. Power Rankings recalculate immediately.
The Waiver Spotlight is empty or showing no recommendations.
Open the Free Agents tab once to load available players, then return to the Overview. The spotlight pulls from the free agent pool and personalizes recommendations against your positional needs. It has nothing to work with until that pool is loaded.
The numbers look wrong across the board. Where do I start?
In order: confirm your projection sources are loaded in the Rankings tab, confirm your scoring configuration in Settings, check whether a preseason warning is active (which indicates ESPN returned stale data), and try disconnecting and reconnecting. Most data issues trace back to one of those four things.