Transfer Portal

Winning the portal is not signing the best class. It is netting the best roster.

The portal moves in two directions at once. You add players and you lose them in the same window, and the only number that matters is the net: your roster after the churn, not the class you signed. The services rank inbound classes, who you added, summed, and ignore the other half of the window. A program can win the portal on paper and go backwards, if it bleeds the core it needed to keep. This surface prices both sides, counts a loss only when it truly is one, and reports the net.

Case 01 · the portal moves both ways

Net the roster, not the class.

The services publish one number: the inbound class you signed. The engine publishes three, because a window has two directions and only their difference is real. Here is a composite program that won its inbound class on paper.

Inbound value
+6.8
Team KR added by the class you landed, need-weighted
Outbound losses
-6.1
Team KR lost to players poached away by richer programs
The net
+0.7
Team KR now to Team KR after the window
Won the inbound class. Netted +0.7. A top-ranked haul that barely moved the roster, because the core walked out the back door.

On the service leaderboard this is a huge portal win. On the roster it is a wash, because the program spent its budget replacing players it should have kept. The inbound number felt like progress and the net says otherwise. The class you sign is not the team you field. The net is.

Illustrative engine read on the real net-of-the-window structure (inbound value, outbound losses, net Team KR). Composite program, demonstration figures.

Case 02 · leaving up is not a loss

Why a player left decides whether it counts against you.

Not every departure is a loss. A naive count treats them all the same and punishes the programs that develop best. The engine reads the reason: a player leaving up a level is the pipeline working, not a subtraction, and only a player poached sideways by a richer program is a real loss.

Not counted
Player left up to the NBA
He outgrew the level. That is the program doing its job, advancing a player, and it is a recruiting asset, not a hole. Counting it against you would punish development.
Outbound impact: zero
Counted
Starter poached by a richer program
Same level, more money, gone. This is a genuine loss of Team KR you needed and could have fought to keep. It is counted in full.
Outbound impact: real

A leaderboard that counts every exit as a loss would grade the best developer in the country as a leaky sieve. The engine refuses that: it credits the player who left up as proof the pipeline works, and charges only the poach. Leaving up is not a loss. It is the point.

Illustrative engine read on the real outbound-reason structure (leaving up not counted, poach counted). Composite players, demonstration figures.

Case 03 · the cheapest add is the one you keep

Retention is a lever, and every player carries a flight risk.

The portal is a live NIL market that opens twice a year, and it prices both sides. Every returner carries a flight risk you can hedge before he leaves, because the cheapest addition to your roster is usually the one already on it. This is the composite roster's flight board.

Returning star guardthe one you cannot loseKR 89Hi risk
Starting wingcontent, market formingKR 84Mid risk
Rotation bigsettled, low marketKR 80Lo risk
Retain the star
Keep KR 89
Cost to retain$190K
Team KR kept+0, already yours
Flight hedgedhigh risk closed
Replace him instead
Sign an equal add
Cost to acquire$260K
Team KR+0 net, if you find one
Risknew fit, no guarantee

Keeping the high-flight-risk star costs seventy thousand less than signing an equal replacement, and it carries no fit risk, because he is already yours. The engine prices retention as an addition, flags who is likely to walk, and lets you hedge the loss before it happens. The best portal move is often the one you make before the window opens.

Illustrative engine read on the real flight-risk and retention-vs-acquisition structure (portal as a twice-a-year NIL market). Composite roster, demonstration figures.

The law underneath
Winning the portal is not signing the best class. It is netting the best roster.

The portal has two doors, and every public ranking only watches one of them. The engine watches both: it prices what you add, prices what you lose, and reports the difference, the roster you actually field after the window closes. It refuses to count a player who left up as a loss, because that is the pipeline working, and it prices keeping your own core as the addition it usually is. A program can dominate the inbound leaderboard and field a worse team. The net is the only honest grade, and it is the one number no service will publish.