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.
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.
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.
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.
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.
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.
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 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.
Transfer Portal prices what you add and what you lose, and reports the roster you actually field.