A model can't learn a front office job without somewhere to do it. So I built the league first: 32 teams bidding on the same players, a full offseason calendar, and seasons that keep playing forward, so a contract signed in March can still hurt two drafts later.
Then I put an agent in one of the 32 chairs and graded it against the person who actually had the job.
One lap is one offseason decision. The team reads the league, does something, and the simulator plays out the season that follows. Then the move is set beside what the real GM did with that team that year, and that comparison is how the system learns.
Every step on the circle is a piece I had to build. Four of them took the real work: the league itself, the simulator, the decision-maker, and the part that reads back what it learned.
What does the simulated league actually know?
All of it, in one copy. Rosters, the free agent market, the incoming draft class, the picks every team owns, the cap sheets, the schedule, the coaching staffs. Signing a receiver takes him off the board for the other 31 teams.
All 32 move through the calendar in step, which is what makes the market real: the same twelve phases, in the same order, at the same time.
For each hole on the roster the team decides what it's trying to do, points at one player on a board all 32 teams are working, then writes the deal: years, how the money is laid out, how much of it is actually guaranteed. Get that structure wrong and it's still sitting on the cap sheet three years later.
How does one choice change the future?
Every offseason ends with a season getting played. The simulator resolves the year for all 32 teams at once: standings, the bracket, wins on the board. The year is built around the five points where a GM's job actually changes: the weeks before free agency, free agency itself, the draft, training camp when the roster gets cut to its real shape, and the trade deadline.
Then the calendar turns over. Players get a year older, unused cap money carries forward, a new draft class arrives, and compensatory picks land for the teams owed them. A run lasts three seasons, so the bill for a decision usually comes due long after it was made.
Each of the five points hands the team a different problem with the same money. Before free agency it's who to keep. In free agency it's what to pay. In the draft it's how much capital to spend on a guess. At camp the roster stops being a plan. At the deadline a season gets bought or sold. Every one of them is answered with whatever room the last decision left behind.
How does it pick a move, and how does it get better?
A single small network makes every call, from a contract offer to a gameplan. It reads a compact picture of the league and its own team, plus two things a GM never gets to ignore: what the owner expects this year, and the direction the team has committed to.
A move arrives in three parts. First what the team is trying to do in this phase. Then which name on the board. Then the terms.
Training starts by copying real offseasons, then turns competitive: 32 copies of the same decision-maker take one team each and play the league out. Every rival at the table is a version of itself, so the market gets harder as it gets smarter.
A contract question leans on the cap specialist and the negotiator. A draft pick leans on the college scout.
Chase a starter, hold the money, trade back, let him walk.
One player off the live board every other team is also working.
Years, structure, and how much of it is really guaranteed.
Feedback comes back as a set of separate lines rather than one number: value gained in trades, in the draft, in free agency; the health of the cap sheet; how balanced the roster is; how believable the moves are for a real front office; and at the end of the run, expected wins, playoff odds, and the odds of a division, a conference and a title.
The comparison against the real GM is kept fair on purpose: the real front office's year is judged with the same information the agent had in March, and moves the agent could never have made are left out of it.
How do you tell what it actually learned?
A score says whether a run went well. It doesn't say what kind of GM showed up. So each one gets described by its habits: how often it trades, how much draft capital it spends, how aggressive it is with the cap, how much of free agency it buys, how wide it scouts. Those five numbers put it somewhere in the range real front offices occupy.
Runs are then filed by habit rather than by score, so a hoarder of picks and a spender both stay in the record instead of one style crowding out the rest.
The five habits form a grid, and each cell keeps the best run that landed in it. Reading the grid afterwards shows which styles of front office the world rewards and which corners of it stay empty.
If the cap can be cheated or a player can be signed twice, the agent finds that before it finds football.
The set of legal moves changes every phase, and the players available change every hour of free agency.
Wins arrive years after the decisions that caused them, and a plan that wins once can be the wrong plan.
Without a description of behavior, a good run and a lucky one look identical from the outside.
Sequence models are usually pointed at language. Here one is pointed at a structured decision that repeats for years under a budget, which turned out to be the interesting part.
I'm a lifelong Seahawks fan, and the NFL is where the two things I've actually trained in meet: a computer science degree to build with, and economics. Thirty-two front offices bidding against each other under the same cap is game theory playing out in public every March, and this is the closest I can get to watching that ecosystem from the inside.
Deciding what the world contains, what counts as a move, and what counts as doing well is the part I find worth the time. Football is a domain where all three are hard and none of them are vague.