Rosters, stats, recruiting, records and history. Everything here works whether you're in a Discord league or tracking a dynasty on your own.
Playing solo without a Discord server? Start here — create your team directly from the web app, no bot required. Everyone gets the full web app either way, whether your league runs through Discord or entirely on the web.
The DynastyDesk web app is available at web.dynastydesk.gg. Sign in with Discord (the same account you use in the bot), Google, or email magic link — no password required.
Tracking more than one dynasty? Use the + Add another league link in the sidebar (or on the league picker) to create a second team — switch between your leagues anytime from the same sidebar dropdown.
Player Settings is at the bottom of the sidebar (and on the dynasty picker, so you can reach it before choosing a league). It splits into what's true everywhere and what's true in one dynasty.
/roster set, so changing them here changes them in Discord too. Paste a full URL or just type your handle — alexc becomes your full Twitch link automatically. Clear a field by emptying it.Your team and away status are shown here as read-only, since each is set where it has knock-on effects: your commissioner assigns teams with /roster add (to change schools mid-dynasty, use the coaching-job card on the Dashboard during bowl weeks), and /away also flips that week's games to fair-weather sims.
Started tracking solo, then your commissioner adopted DynastyDesk? You can fold your solo dynasty into the league with no re-entry. Once your commish adds you with /roster add in Discord, sign into the web app and connect the Discord account they used — a one-tap approval on Discord's screen, nothing to type. DynastyDesk then offers to merge your solo team: a preview shows everything that will move — roster and player progression, recruiting, transfer portal, full schedule, results, stat sheets, personal records, your coaching staff, and your season history and awards, across every season — and once you confirm, it all lands in the league and your solo copy is archived. Any other solo teams you track stay put. You can start this any time from Player Settings.
Both run on the same league data, so there's no importing or syncing to think about — but they don't do all the same jobs.
One thing to know about timing: anything you change on the web that's shown on the Discord status board — the deadline, most of all — reaches Discord on the bot's next check, within about 15 minutes, rather than the instant you press Save.
Your personal schedule is on the home page. Each week row shows your opponent (or a "Set Schedule" prompt if none is set yet). Click any unscheduled week to expand it and choose the game type:
For weeks where the bot already created a sim matchup, click the row and choose Set Opponent to attach a CPU team.
Bowl weeks ask which bowl you're in. Across Bowl Weeks 1–3 the form adds a bowl picker — the CFP rounds, the New Year's Six and thirty other bowls, with an Other… option for anything not on the list, since EA's bowl lineup moves between releases. Bowl Week 4 has no picker at all: the national championship is the only game played that week, so a game scheduled there is labelled the title game for you. The bowl's name then rides on your schedule row in place of the generic Neutral tag, which every bowl is anyway.
Any game that hasn't had a result logged yet can be corrected: click Edit on the row to change Home / Away / Neutral, and the CPU opponent alongside it on sim games. That covers games the commish set from Discord — home and away on a user vs user game is stored as which coach is hosting, so either player can set it and both schedules read the same.
Solo leagues (no other members) skip the vs. User / vs. CPU toggle entirely — the form goes straight to the CPU team picker.
Set something up by mistake, or have a bye week? Click Delete on any game that hasn't had a result or stats logged yet to remove it — the week goes back to unscheduled. Bye weeks don't need anything entered at all; just leave them blank. A "?" help icon next to the Schedule heading has these tips at a glance.
Preseason (Week 1) doesn't appear as a schedule row since it never has game data. A persistent label next to the page title always shows your league's current week/phase — including every offseason week (Portal, Signing Day, Training Results, etc.) — so you always know where you are.
Past unscheduled weeks also let you log the final score inline at the same time — check Also log result after selecting the game type.
Ranked and unranked. An AP rank is 1–25 or nothing at all. Leave a rank box empty for an unranked team — on the schedule form, on manual entry, and on the review screen after a screenshot import. If the scoreboard reader puts a rank on a team that didn't have one, clearing the box is all it takes; there is no need to type a 0, and a 0 is never stored as a rank. On the review screen after an import, a ranked team reads as a bold #12 and an unranked one says Unranked, so a rank that shouldn't be there is easy to spot before you save.
There are three ways to log game stats from the web app:
Stats submitted through the web are identical to /stats submit in Discord. Either method works; you don't need to use both.
A week holds one game per coach, whichever way you logged it. Open Enter Manually on a week you've already saved and the form comes back filled in with what's there — correct the number that's wrong and save, and it updates that game rather than adding a second one. Detail the form has no field for, like passer rating or blocking, is kept even if you first logged the game from screenshots.
Your Team Stats page lists every game you've logged. Each row has Move, to re-tag a game filed under the wrong week, and Delete, to remove one outright.
The Matchups page is your league's week at a glance, built around who's playing who rather than a list of rows.
Coach-vs-coach games lead the page, one card each. Every card carries the all-time series between those two coaches — the overall record, their last five meetings, and the score of the last one. Your own game is highlighted. Cards also show each coach's rank and season record, the scheduled kickoff in your local time, and Twitch or YouTube links if either coach is streaming, so you can find the game without leaving the page.
Games against the CPU are still there — they collapse into a single expandable list underneath, since they aren't why anyone opens the page.
Use the week arrows at the top right to walk back through the season. Click any card to open the full game detail.
Every team is shown by its logo and school colors — a crest on each side of a head-to-head card, and both schools' colors split across the top of it — so you can read the week at a glance without parsing abbreviations.
Below the slate is a card for every coach in the league, led by their school's crest and edged in that school's color:
Forfeits show a result. A game decided by forfeit, or a result logged without a score, now shows who won rather than an empty score line.
The Roster page is your team's player database for the current dynasty season. Players are created automatically when stats are submitted — their name appears immediately. From there, you fill in the details that OCR can't read from stat screens.
Players also arrive from recruiting: a signed high-school recruit or a committed or signed incoming transfer can be added with the Add to Roster button on their card, on the HS Board and the Transfer Portal respectively. A transfer brings their position, archetype, dev trait and overall across; a freshman brings everything but the overall, which you set once you see them in-game.
The upload modal accepts screenshots of the in-game Roster screen from PS5 or Xbox. Drag files in or browse.
Each screenshot captures ~10 players. Upload multiple images to cover your full roster — duplicates are automatically deduplicated by name. Pick them all at once; they are then read one at a time, with a tick and a player count against each file as it lands. That matters most on a phone: a full roster is six to eight screenshots and reading them all on a single connection used to mean a wait long enough that simply switching apps could drop the whole upload and lose every screenshot already read. Now a screenshot that drops out is quietly sent again, anything still failing gets a Retry Failed button that re-reads only those files, and everything already read keeps its players. If one screenshot will not read at all — a menu or a stat page picked up by mistake, or a capture too small to resolve — it says so against that file and you can skip it and carry on with the rest rather than starting over; the players it would have brought are listed as missing at the review step so you know what to go back for.
The parsed roster opens in an editable review table. Name, year, position, OVR, and redshirt status come from the list; first name, archetype, and dev trait are read from the player detail panel for the highlighted player on each screenshot. Low-confidence reads are flagged in yellow with a "needs a look" count and a Show only flagged filter, and OVRs the game's font drops are auto-reconstructed from the roster's sort order for you to confirm. Before the table reaches you, anything the read was unsure of — and anything that came back looking wrong, like the 74 overall this font renders as 14 — is re-read off your screenshot by AI vision, so there is usually less flagged than there used to be. It only ever fills in the fields in question; a value that read cleanly is left alone, and nothing is ever blanked out. Rows are listed alphabetically by surname and hold that place while you work — correcting a name no longer slides the row up the table as you type it, so a half-finished fix can't get away from you. Once an edit has actually pulled a row out of order, a Re-sort by name button appears: the list re-sorts only when you ask it to. The ? beside the player count lists the misreads this game's font is known to produce, so you know what to check. While Show only flagged is on, rows likewise stay in the list as you fix them rather than disappearing on the first keystroke — untick and re-tick for a fresh set. Fix anything that looks off, then click Import. Closing the modal or hitting Back with an un-imported table asks before discarding it — and Back now returns to your file list with every screenshot still read, so carrying on costs nothing rather than reading them all a second time. Re-upload any time — after Training Results or position changes — and players are matched by name and updated in place instead of duplicated.
Commissioners: importing for someone else — if you take the screenshots for a member who won't upload their own, use the Import to picker at the top of the upload modal to choose whose team they belong to. The same picker appears on the spreadsheet importer, where it also covers that workbook's recruiting class. Without it, everything you upload lands on your own roster. Only commissioners see the picker; for everyone else the upload works exactly as before, on their own team.
The roster is listed alphabetically by surname. Players without a position or OVR are highlighted in place with a yellow indicator, and a Save Changes button appears both above and below the table once you've edited anything. On a CFB27 league the position dropdown offers only the positions that game uses — HB rather than RB, LEDG/REDG rather than LE/RE, MIKE/WILL/SAM rather than MLB/LOLB/ROLB, and side-specific LT/RT/LG/RG rather than generic T/G. Click any cell to edit: position (select), archetype (position-dependent select — options populate once a position is chosen), dev trait (Normal / Impact / Star / Elite), OVR (numeric field, no spinners). Hit Save per row. Changes take effect immediately.
A player whose position was misread by OCR — 0B instead of QB, say — is flagged the same way. The dropdown shows the unrecognized value so you can see what it currently is, and the player is grouped with the other unfinished rows until you correct it.
Once a season rolls over, every player's overall is cleared — deliberately. It's the one number that genuinely changes every year, so carrying it forward would just show you a stale figure dressed up as a current one. Nothing was lost.
Position, archetype, dev trait, class and redshirt status carry forward — but treat the first three as a starting point rather than settled fact. Positions change at National Signing Day and dev traits change at Training Results, and a carried-forward value looks identical to one you typed yourself. Your dashboard shows a checklist on both sides of the rollover so none of this arrives as a surprise.
Go to Roster → Update Overalls for a screen built for exactly this job:
One Save writes all four fields for the whole roster at once. Re-uploading roster screenshots is still the fast way to refill everything, never the required one.
At the bottom of the Roster page, DynastyDesk tracks how your squad is progressing:
SS → WILLEach player's own page carries the full arc: their overall in every season, the change year over year, and their total career gain. A drop does show there — that's where a position change sits right beside it and explains it.
Progression needs two seasons. An overall has to be recorded in two different years before a change can be shown, and rollover starts each new season without one — so re-import your roster every year and the comparison to last season appears. Best at each position works straight away, since it only needs the current season.
The dashboard shows a banner when you have incomplete players so you don't lose track.
When a player leaves early or graduates into the draft, set the NFL Draft column on the Roster page to the round they were selected (Round 1–7 or UDFA). A → NFL tag marks anyone who's declared. Underclassmen you mark this way are removed from your active roster at the next season advance — seniors already graduate on their own. Every player you've designated shows up on your NFL Draft Board (under Roster) with their round, draft year, and the class, position, and OVR they left as, so your program's draft history stays visible even after they're gone.
Under Recruiting you get three boards: an HS Board for high-school targets, the Transfer Portal for players moving in and out, and a Scouting Big Board for prospects who signed elsewhere but might enter the portal later.
The Transfer Portal has two tabs, colour-coded so you always know which one you're on. Incoming (green) is players transferring in — track their previous school and move them Available → Committed → Signed Elsewhere → Withdrawn. My Players (amber) is your own players who've entered the portal, tracked In Portal → Returned / Signed Elsewhere / Unsigned.
Every incoming transfer has a Class — the year the game shows him at, meaning the season that just finished. Joining your roster advances it, so a portal SO arrives a JR. The RS tick beside it is the permanent redshirt mark.
Once an incoming transfer is committed, the Add to Roster button on their card files him for next season with his class, position, archetype, dev trait and overall carried across — he appears on your roster when the year rolls over, because that's the season he actually plays for you. You don't have to press it at all: committed transfers are added automatically at the rollover.
Archetype and Stars sit on the incoming card alongside position, overall and dev trait, and can be set or corrected anywhere you meet a transfer — the add form, the board row, and the screenshot review. The archetype list is the one that prospect's position actually has, so changing his position clears an archetype that no longer belongs to him. Both carry to the Scouting Big Board if he ends up going elsewhere.
From School and Signed With are dropdowns of the game's teams rather than free text, so "Oregon St" and "Oregon State" stop being two different places. Anything you typed before that doesn't match the list is kept and marked (unmatched) — pick the real school to tidy it up.
In-game, open Recruiting → Top Classes → Details and press R2 to switch the list to Transfers. Take a full-screen shot and use Incoming → Scan your transfer class.
Both halves of that screen are read from the same capture, so you don't have to think about which one to frame: the table down the left gives you everyone in the class, and the player card on the right gives the highlighted player his full first name and archetype. Either one on its own is enough. Want archetypes for more of them? Highlight a different player, take another shot, and upload them together.
Nobody on that screen is on your roster yet, so unlike the departures scan there's nothing to match against — every field comes off the screenshot and stays editable before anything is saved. Each row says which part of the screen it was read from, along with the star rating and class year, and you set the status for the whole batch in one go (they've signed with you, so Committed is the default). Anyone already on your Incoming board is greyed out rather than added twice.
Captured the wrong list? The Overall list is your high-school signing class, not your transfers — those players belong on the HS Board. If you scan it by mistake you're told so and nothing is ticked, instead of quietly filling your portal board with freshmen.
At the Players Leaving week, take one screenshot of the table — the whole list, not each player's card — and use My Players → Scan Players Leaving. If your list runs longer than the screen, scroll and add a second shot; players appearing on both are recognised as the same person rather than added twice.
Everyone on that screen is already on your roster, so there's nothing to type. The screenshot only has to answer who is leaving and why — each row is matched to one of your players, and their position, overall, archetype and dev trait come from your roster rather than from the image. Because those two fields are the ones that matter, a name or a reason the read isn't sure about gets a second look from AI vision before the matching runs, which is what turns a garbled name into a player we can find on your roster.
You'll see each row as the player it matched, with the reason underneath:
Only actual transfers are ticked. Players who are graduating, who declared for the draft, or who you persuaded to stay are still listed with their reason shown — but left off, so they don't land on your portal board. Tick them anyway if a reason was misread. Persuaded someone you'd already added? The row offers to remove the stale entry.
Add from roster opens your own roster instead of a blank form — non-Seniors only (seniors graduate rather than transfer), in alphabetical order, searchable, and you can tick as many as you like at once. Their position, overall, archetype and dev trait come across automatically, and anyone already on the portal board is greyed out so you can't add them twice.
Adding a player to the portal does not remove them from your roster. They stay put until you decide otherwise — nothing disappears behind your back.
The Big Board reads the player card, not the list beside it — so highlight a prospect, take the shot, and move to the next one. Upload them all at once; each card becomes a row with the name, position, archetype and class already filled in, and the same prospect shot twice is only added once. Star rating and national and state rank come across as well, and dev trait and overall wherever the card shows them — a high-school recruiting card doesn't carry an overall, so that's left blank rather than guessed.
The school the prospect is at comes across too. That's the point of the board — these are players who are somewhere else — and it's the school that becomes where they're transferring from if they later turn up in your portal. The most common way to build the board is during Players Leaving week: press L2 to move through other teams, and take a shot of each player you want to track. The school is taken from the team header above the table rather than from the pill beside the L2 button, because on a recruiting-class screen that pill shows your team while the class on screen belongs to someone else — and a card that states the school outright, like "has signed to Georgia", is used ahead of either.
This card is read by AI vision rather than by screen position, and it is the one screen where that's the first thing tried rather than a backup. The same card is drawn on four different screens — the recruiting board, Top Classes Details, the transfer portal and the scouting list — each putting it somewhere slightly different, and its layout shifts depending on the player: a high-school recruit carries a star row and national and state ranks that a portal player doesn't. Reading it by position meant a card that landed a little differently produced a confident, wrong answer. Reading what's actually printed on it doesn't have that problem. Roughly three seconds a card.
Everything lands in an editable table before anything is saved, and every field on it can be corrected — including the overall, and the archetype, which offers the archetypes that prospect's position actually has rather than asking you to type one, and the school, from the same picker used everywhere else. Screenshots are read one at a time with progress against each file, so a phone dropping off wi-fi part-way through a large batch no longer costs you the whole upload: the one that failed is retried on its own, and everything already read keeps its prospect. A shot where no card was showing is called out by filename so you know which one to retake, and you can skip it and carry on with the rest rather than starting again.
You can import an entire recruiting class in one shot from a Top Classes Details screenshot. That screen is the class you actually landed, so everyone on it comes in signed — there's a picker on the review table if you'd rather file them some other way. Class years on the Scouting Board advance automatically at each rollover.
Every high-school recruit is a freshman. The HS Board doesn't ask for a class or a redshirt, because a recruit has neither — he joins your roster as a true FR and he has never redshirted. Two fewer fields to fill in, and no way for a stale value to file a signee as a sophomore.
When your league rolls into a new season, your recruiting boards are sorted and cleared rather than left sitting there under the new year's heading. Everyone goes somewhere:
Last year's class isn't gone. Both boards have a season picker in the header. Pick a past year and you get that whole class back, read-only, with an Outcome column saying where each player ended up — Signed → roster, Moved to Scouting, Departed, or removed by hand.
The Scouting Big Board now fills itself this way every year, so each entry shows where it came from — your HS board, the portal, or a player who left you — and the year it arrived. Entries age a class every rollover and leave the board once they're done, so it doesn't grow forever.
Seniors get a fifth year, because the board can't see a redshirt. The Big Board follows a prospect onto someone else's roster, and it never learns whether he redshirted there. Retiring him the moment his senior season ended would drop every redshirt player exactly one year before the fifth-year portal move that made him worth watching — so instead he gets one more season, shown as SR+ in amber with may have graduated beside it. He's only still eligible if he redshirted somewhere you couldn't see, so check before you chase him. There's a 5th tick on the row if you know better either way. The full arc is FR → SO → JR → SR → SR+, then off the board.
DynastyDesk tracks a dynasty year (e.g. 2026) for your league. Each player has a per-season record — so OVR changes between years are preserved as history rather than overwriting the previous value.
When the bot advances past Week 30 (Encourage Transfers), the new season begins automatically:
If a player is redshirting mid-season, check the RS? column on the Roster page before the season rolls over. At rollover:
Timing matters — mark redshirts before the bot advances past Week 30. The flag clears after rollover and must be re-set if the player redshirts again.
The Record Book tracks dynasty records at three scopes — National, conference, and school — across Season, Game, and Career stat categories. Records are maintained globally by app admins and can be overridden per-league by the commish.
Navigate to Records → Import in the web dashboard. Drop a CFB Records screenshot onto the upload area. DynastyDesk reads all 9 record holders — name, school, year (Season/Game), and stat value — using OCR and shows a review table before anything is saved.
Navigate to your desired scope (National, conference, or school) and level (Season, Game, or Career). Take a screenshot with the PS5 Create button or the Xbox Share button.
Drop the file on the Import page. The level (Season / Game / Career) is detected automatically from the image — the correct tab will be pre-selected in the review card. If detection fails, pick the level manually before importing.
Check the parsed rows. Any field the OCR read with low confidence is highlighted in amber — edit inline before saving. Click Import Records to save all 9 rows for that scope and level.
Screenshot requirements — PS5 and Xbox both work, and so do screenshots taken through Remote Play or xCloud on a phone or tablet (the black bars around the game are handled for you). 4K (3840×2160) is strongly recommended: record books read well at 1080p, but the denser stat and roster tables lose accuracy and will flag more fields for you to check. On PS5 go to Settings → Screen and Video → Video Output → Resolution → 2160p; on Xbox, Settings → General → TV & display options → 4K UHD.
Using Remote Play? The on-screen touch controls are drawn over the game and can cover part of a table. They fade after a few seconds of not touching the screen — wait for them to disappear before you capture.
School records can be contributed by members directly — no admin action required to submit. Navigate to Records → Contribute School Records. The scope is automatically locked to your assigned team. Take one screenshot per level (Season, Game, Career) from the in-game CFB Records screen filtered to your school, then upload them here and review the OCR results before submitting.
Open the CFB Records screen and use L2/R2 (LB/RB on Xbox) to select your school's scope. Switch to the Season, Game, or Career tab and take a screenshot for each.
Drop your screenshots on the Contribute page. OCR reads all 9 record holders automatically. Review the parsed values — edit anything that looks off — then click Submit for Review. A screenshot that fails to upload is retried by itself rather than sending you back to the start: a Retry Failed button re-reads only what didn’t go through.
Submissions go to the app admin queue. Once approved, the records appear globally for all leagues using that school. You'll see the status (pending / approved / rejected) on the Record Book page under your school's scope.
One submission per level — you can submit Season, Game, and Career records separately, at different times. If a submission is rejected, the admin note will appear on the Record Book page and you can correct and re-submit.
The Record Book page shows the current record holder for each stat alongside a best-chaser progress bar — the active player who is closest to breaking the record, with an on-pace projection. Tabs switch between Season / Game / Career; a scope row lets you drill down from National to conference to school. Conference-scope chasers always reflect a school's current conference — see Conference Realignment if your commish has moved schools between conferences.
Find Records in the My Team sidebar section. This personal view shows your team's active players chasing school, conference, and national records all on one page — no scope switching needed.
The Season tab displays a progress bar and on-pace projection for your best player in each stat category at every scope. A ★ badge and "record broken!" label highlight any player who has already surpassed the current mark. Game and Career tabs show the record holders for reference. If your school's records haven't been contributed yet, the school section shows a prompt to contribute them.
The Awards section tracks end-of-season individual awards and All-American / All-Conference selections for your dynasty.
Users can submit their own players' awards via Awards → Submit My Awards. Commishes can enter any team's winners via Awards → Manage Awards. Awards are always recorded against the current dynasty year — no manual year selection needed.
Three categories are supported:
When entering All-American or All-Conference selections, specify a position (QB, RB, WR, etc.) so the Trophy Case can display them in the correct team layout.
Find Awards → Trophy Case in the sidebar. The page has three sections — Individual Awards, All-Americans (with 1st / 2nd / Freshman tabs), and All-Conference (conference chips + tier tabs). Year tabs at the top let you browse past seasons.
Your team's award winners are highlighted in each section. Award badges also appear next to player names on your Roster page: a trophy icon for individual award winners, a gold star for All-Americans, and a purple star for All-Conference selections.
Season History is the year-by-year record of your dynasty — every completed season for every coach, with a Trophy Room at the top counting national titles, conference titles and bowl wins per coach.
You don't have to do anything to start one. When the league advances into End of Season Recap, DynastyDesk writes a season row for every coach who played games that year, with everything it can work out already filled in: overall record, conference record, conference and national titles, and the bowl result. The snapshot is taken before the coaching carousel is applied, so a coach who takes a new job still has that season filed under the school they actually coached.
Those rows start as a draft. Open one from the pencil icon to complete the half the app can't know:
Save draft keeps the season open to automatic updates; Save & finalize freezes it. You can edit your own seasons; a commish can correct anyone's.
Click Add past season, set the year, and hit Fill from games — if any games from that season are logged, the record, conference record, titles and bowl result are derived from them and filled in for you. Nothing logged for that year? Type the record in by hand.
Results get corrected after the fact — a disputed game finally settled, a box score re-uploaded. A commish can pick a year from the filter and hit Re-derive to recalculate every coach's record for that season from the games as they now stand. Only drafts are touched; a finalized season is never overwritten.
Records now count games against the CPU. Standings, conference records, season history, your dashboard record, and Storylines recaps all count every game a coach played, not just head-to-head games against other coaches. If your standings previously looked light, this is why.
Archived dynasties are read-only. When a commissioner starts a new dynasty era with /dd newdynasty, the previous one is frozen. You can still browse its Season History, but editing, adding and re-deriving are all disabled.
Your head coach and coordinators are worth real bonuses, and the game never shows you them together. Coaching Staff is a home for all of it — who's on your staff, what they've unlocked, and what that adds up to.
Off by default. A commish enables it from League Ops → Settings → Coaching Staff, and it then appears under My Team in the sidebar for every member. Skill data covers all 13 College Football 27 archetypes and every ability in them.
Three seats — head coach, offensive coordinator, defensive coordinator — as tabs on one page. Add each one with a first and last name, then fill in their tree underneath. The staff's combined bonuses sit alongside the editor and stay put as you scroll, so you can watch the total move as you go.
Entering a tree takes about a minute. Skills unlock in order down each branch, so each position is a counter you click rather than a list of checkboxes — tap to go 0/4 → 1/4 → 4/4, and once more to wrap back to 0/4, the same way you'd walk the tree in game. Every archetype is expanded by default (and collapsible), ordered the way you meet them: Motivator, Recruiter and Tactician first, then the advanced tier built on each, then the hybrids, leadership, and the paid trees last. Positions are laid out as the in-game grid — QB, RB, WR, OL across the top and DL, LB, DB, K/P underneath.
Nothing is locked. DynastyDesk doesn't enforce the game's unlock requirements — you're recording a staff that already exists, and the game hands out coaches whose trees don't follow the usual rules. Any archetype can be your primary, and any tree can be filled in, in any order. The requirements are listed under each archetype for reference only.
A coach can have several archetypes open at once, and every skill they've bought counts, from every tree. The headline archetype bonus — Max Gains, Winner, Big Game Bonus — is different: it comes only from the archetype you've set as their primary. Switching the primary moves that bonus rather than adding a second one. Any archetype can be picked, whether or not there's spending behind it.
This is the part the game can't do. Bonuses add up across your whole staff — and your coordinators' archetype bonuses pay XP to your head coach as well as to themselves. You can't direct an assistant's XP or decide how they spend it, so the coordinators are really there to feed your own coach. That's why matching a coordinator's archetype to your head coach's is worth doing, and why the panel shows you where you've doubled up.
If your head coach and your OC both own Limitless — QB, you get it twice, and the page says so with both coaches named. If both are Architects, Max Gains reads 800 XP — not "400 XP, twice". You shouldn't have to do that arithmetic in your head.
Everything is grouped by when it actually pays off rather than by who owns it. An Architect's skill-cap bonuses only fire during Training Results, so that's where they're listed — alongside recruiting, the portal, pipelines and the draft. Whatever is live in your league's current week floats to the top.
Bonuses are listed by what they do, not what they're called. Put In Work reads as Offseason Training Boost, Gift of Gab as +3 Persuade Attempts. Hover any line to see the in-game ability name if you need to match it back to the tree on screen.
The same ability across several positions reads as one line. A fully-bought tree is thirty-two abilities that differ only by position, which buries everything else, so they collapse into a single line — Offseason Training Boost — QB, RB, WR, OL. Where two coaches both supply it for the same position, that position is highlighted with a ×2, because that's the one that genuinely pays twice.
Gameday ratings boosts and passive XP are tucked into a collapsed drawer at the bottom. They're real, but nothing is being asked of you when they fire, and there are a lot of them.
Two abilities work differently. CEO's Bundle Discount and Program Builder's Friends & Family Discount both scale with how many of your coaches own them, but they cut the price of abilities rather than granting a repeated effect. They're shown separately as a Coach Points saving.
You don't have to come looking. Your dashboard carries a coaching staff card keyed to the week your league is actually in — at Training Results it leads with your skill-cap bonuses, during portal weeks your portal skills, through the bowl weeks the coordinator-hiring ones. Same numbers as this page.
It stays quiet when there's nothing to say, which is most weeks — gameday boosts never trigger it, since nothing is being asked of you when they fire. It does speak up on the weeks the game changed something: record your staff in the preseason, a departure at the conference championship, hires through the bowls, your head coach's tree once Coaching Points are awarded at the End of Season Recap, and your new coordinators the week they start.
Coordinators upgrade themselves during a season and the game shows no history for it. Record a coordinator's tree at the start of each season, and the next year's entry shows exactly which skills appeared in between.
When you hire one, record where they came from — school and previous role — under Details. When one leaves, click This coach left the staff and record why: fired, hired away, retired, left for the NFL, or contract expired — and where they went. Staff History keeps the whole run season by season, so a coordinator who moves between two schools in your league stays one person with one career.
The handover happens at Players Leaving, not when you sign the contract. You fire a coordinator at the conference championship and hire their replacement across the bowl weeks — but in game the new one doesn't actually start until Players Leaving. DynastyDesk follows that. Right through the bowls the coordinator who coached your season is still in the seat and still paying out, because they are. Come Players Leaving, anyone whose departure you recorded comes off the board, the page moves on to next season's staff, and any seat they've left says so and asks who replaced them. Coordinators you kept simply stay put. Add a new hire at that point and they're filed against next season — the same place the rollover would have put them — so recording early costs you nothing later.
Your staff follows you into the new season. When the league rolls over, anyone still on staff keeps their seat and their skill tree carries across as the new season's starting point — so you only tick up what your coordinator actually gained, rather than re-entering the whole tree. Coaches you fired or who were hired away are left behind. Bringing an old coordinator back? Pick them from the list when filling the seat so their career stays in one place instead of splitting in two.
Skill growth needs two recorded seasons before it can show anything — record your staff at the start of each year, and the change appears the next time you do.
Both are locked behind purchases outside the game — Rainmaker needs an EA Play MVP+ subscription, Visionary needs a coach created in Madden NFL 27 Franchise Mode. A commish can switch each one off independently, which hides that tree entirely so a league where nobody owns it isn't scrolling past skills it can't use. Turning one on doesn't grant it to anyone — it just stops hiding it.
Commishes can move schools between conferences for their league from League Ops → Conferences. Conferences themselves never change — the same fixed set always exists — only which schools belong to which conference. New leagues start from the current real-world alignment; if you haven't customized a school's conference yet, it'll reflect that default automatically.
The Conferences page shows one column per conference, with each member school as a logo card. Drag a school's card into a different conference's column to move it. Not confident reading every logo? Click Show school names to display the school name alongside each logo. Click Save to commit your changes — only the schools you actually moved are updated.
The page tells you which season you're realigning — "Takes effect in 2027" — and picks that year for you based on where the league is:
Realigning mid-season re-scores that season. Conference records are worked out from who shares a conference in the year a game was played — they aren't stamped on a game when you log it. So moving a school during a season that's already underway changes games you've already logged: games against a school you move out stop counting as conference games, and games against one you move in start counting. The page warns you and names how many completed games it will re-score before it saves anything.
Previous seasons are never touched. An alignment applies from its season forward, so every earlier season keeps the one it was played under. Record book entries set while a school was in its old conference stay attributed to that conference forever, and once a season is written to Season History at the rollover, its conference record is fixed — later realignment can't change it.
Each team's stats page now shows a Conference Record card — season and career win-loss record against conference opponents (games where both teams share a conference that season). Moving to a new conference starts a fresh career tally there automatically; a Conference History list shows the record compiled in any conference the team belonged to previously.