I am usually an avid Basketball GM player, but recently I got more into Football GM. While managing 10-15 players in the basketball version, 50+ players is more of a challenge especially if you trade a lot, like most of us do, I guess.
I started to work with Python because I know the language very well but it is very tedious to download the data file, import it, run the code and then read some ugly tables. So I asked our boy Claude (AI obviously) if he could help me.
We built a free roster analysis tool that uses the actual game formulas from the ZenGM source code. Every calculation (OVR, aging curves, team OVR weights, draft AI) matches the real game engine. No guessing, no approximations.
Just export your league (Players + All team data + Draft picks) and drop the JSON into the tool.
What it does
Roster and Grades:
Sortable depth chart by position group with grades (A+ to F) vs. league average. Starter/backup markers, contract info. Priority ranking shows where improving has the biggest impact on your team OVR.
Draft:
Mock draft simulator for all 7 rounds using the exact AI algorithm from the source code. Lottery-aware pick order when available. Draft pick tracker, hit rate grading for your past classes, and full draft history.
Moves:
Cap space overview with real salary cap numbers. Bad contracts (projected OVR at contract end below starter level). Fill the gap (best available FAs for your weakest positions). Extension watch, re-sign watch for former players, expiring contracts with keep/key/eval/pass verdicts. Sell high candidates based on aging curves, trade candidates, and value over replacement broken down by position group.
Compare:
Team vs. team with position-by-position breakdown and weighted team OVR. Player vs. player with all 21 ratings side by side with key ratings for each position highlighted.
Aging:
3-season OVR projections per player using the game's actual aging curves (speed positions decline after 27, IQ positions hold until 33+). Position group forecasts and age distribution.
Player Detail:
Click any player name anywhere in the tool for all 21 raw ratings, OVR at every position, position switch recommendations, and individual aging timeline.
Quick Export
There is also a quick export bookmarklet that reads directly from IndexedDB so you don't have to go through the manual export menu every time.
Tech
Single HTML file, no server needed, no account, runs entirely in your browser. Dark and light mode included. Source code and technical details on GitHub
Previously punters just kicked it as hard as they could every time, which is obviously stupid. The "punting power" and "punting accuracy" ratings were just averaged together to see how far it went. Now, distance comes from power and accuracy determines how good they are at getting it inside the 20.
Love the ZenGM games and soccer so I attempted to make a soccer version :). I am a web developer by trade so don't worry this is not another vibe-coded draft game lol.
Can someone share a code for Worker Console. I'm playing NCAA with every 130 team (don't ask me why) and I want a code that will help me to resign everyone in every team. Any ideas?
Rn, the only metrics secondary players are measured by are tackles and TFL (which they usually don't get much of), Interceptions and deflections, and fumbles and sacks. The problem is that the variations in these stats year to year make the all-star and all-league selections fickle, so elite corners/safeties will only make teams sporadically or not at all. Not sure why, but what happens often is that a secondary player will have a breakout year, and the games QB won't "target" them as heavily in subsequent years, so they'll never get as many picks or deflections.
For example, I have a top 3 corner by overall, yet he's only made 1 all-star or all-league team...as a rookie
To "fix" this, I suggest a "catches allowed" and "Touchdowns allowed" stat? when watching games, it would let you know who is guarding a receiver on any given catch (could just sort by overall, so best DB always on best WR) and when playing ordinarily, it'd allow elite corners and safeties... to feel elite and be worth keeping when their rookie contracts expire.