Your league, on this desk.
Import your roster and the board stops being generic. Your players, the free agents nobody in your league has taken, and a trade check, all ranked in the scoring you actually play. It runs in this browser and nothing is uploaded.
Import your league
Nothing leaves this browser. Your roster is written to this device's local storage under the key hi-my-league-v1 and nowhere else. There is no account, no upload and no endpoint of ours in the path. The ESPN option is a call your browser makes straight to ESPN's own public read API; it is not proxied through this site, and no credentials are sent or asked for. Clear the browser data, or press the button above, and it is gone.
ESPN public league
The league id is the number in your ESPN league URL after leagueId=. ESPN files the 2026-27 season as 2027. Public leagues only: a private one answers with a refusal and this page will not try to work around it.
Paste a roster
One player a line, or the whole block you copied off an ESPN or Yahoo roster page. Slot letters, club codes and numbers around the name are ignored. To load more than one team, put a line starting with # above each roster and the rest of that line becomes the team name.
Upload a CSV
A file with name, position and team columns, and optionally a fantasy team column to load the whole league at once. With no header row the first three columns are read in that order. The file is read by this browser and never sent anywhere.
Checking browser storage…
Nothing imported yet.
Loading the pool…
The roster board
Every player you hold, seated in your scoring, next to what the published market says and what the rest of the season looks like on the schedule.
Coral means you are short of the slots you set. Mint means you carry more than the slots take. Goaltenders are ranked on their own shelf, so a goalie rank carries a G and sorts after every skater, and no gap chip is printed for one: the published consensus is a single overall list and our goalie rank is not, so subtracting them would print a number that means nothing.
Free agents
Working out who is left…
Best available by position
Trade check
Put names on each side and the desk prints both sides' rest-of-season figures next to each other. There is no winner label and no single number combining them, because the thing that decides a trade is your roster hole and your schedule, and this page does not know either. The desk prints the numbers; you make the call.
What this page can and cannot tell you
The rank column is your scoring, not a house opinion. Pick ESPN, Yahoo, Fantrax, Yahoo head-to-head categories or roto and the whole board reseats. The switch is the same one the Draft Desk uses, so setting it here sets it everywhere. The two category systems have no per-game currency, so their rate column borrows ESPN units and the header says so.
Consensus is the published market, averaged. It is the mean placement across the four boards this desk joins. The chip beside it is the gap: mint when we have him higher than the market, coral when we have him lower. A gap is a disagreement, not a prediction, and it closes the moment your leaguemates read the same numbers. A goaltender gets no gap chip at all, because his rank here is a goalie-only rank and the consensus figure is an overall placement. Those are two different scales and this page will not subtract one from the other to make a chip.
Games this week and next come from the schedule, not a model. They are club game counts filed into Monday-to-Sunday fantasy weeks. Before opening night the page shows week one and week two. In a daily league the count is a start ceiling; in a weekly league it is most of the decision.
A name that will not resolve stays visible. The join normalises accents, dots and apostrophes and then falls back to a club and a position match, the same rule the build script uses. When two players still collide, or when the name is not in the 461-player pool at all, the line becomes a chip you fix by searching. Nothing is guessed and nothing is dropped quietly.
The free agent list is only as good as what you gave it. Import one roster and it is the pool minus your team. Import an ESPN league, or paste every team with a # header line, and it becomes the real waiver pool. The page says which of the two you are looking at rather than letting you assume.
What this page is not
- It is not a projection. Every figure is arithmetic on three completed seasons plus the published schedule.
- It is not connected to your league. It reads a roster once, when you ask it to, and never syncs. Add or drop in your league and you re-import.
- It is not a Yahoo integration. Yahoo requires OAuth even for a public league, so this page does not attempt it. Paste the roster instead.
- It does not know your league's custom scoring values. For that, use the ranker, which re-ranks the pool under any scoring sheet.
- It has no ownership or waiver data, so it never prints an availability percentage.
- It is not stored anywhere but here. The roster sits in this browser only, and clearing site data removes it.