Developer Notes 7.24.26

Last time I mentioned that if I cared more about tennis realism I'd go make sure the test scores were realistic. I ended up doing that, and it grew into a larger rework of how the divisions below D1 recruit.

Some background for anyone catching up: when I split D3 into two divisions, I set up D4 as the academic-first tier. NESCAC, the UAA, SCIAC, the small liberal-arts schools that in real life are full of strong players who took the degree over a D1 offer. In the sim, though, D4 carried no recruiting budget and its prestige was pinned to the bottom, so those academic schools were coming out as the weakest programs in the game. I wanted to line the model up with what D4 is supposed to be.

Division 4 has a recruiting budget now. D4 spends from the same scholarship-budget system as everyone else. Every program funds a floor of 3, the academic bluebloods fund 6 to 8, and they build real 4-star and 3-star cores. A top D4 program fields a full lineup of players around D1 walk-on level.

D4 admits on test scores. Each D4 program has a minimum test score it will take, scaled to how selective the school is. The least selective D4 programs will sign a player around 960, and the most selective sit up near 1400. A well-funded D4 program can pay for more talent than it's cleared to admit, so the players it passes on flow to the divisions with open admissions.

Test scores are a real rating now. Every recruit carries an admissions score on an 800–1600 scale. It shows up on the recruit profile and has no effect on match play; it's only used for admissions. Once the number existed, I keyed it to each program's academics across the whole game, so the academic D1s pull up too. Harvard, Northwestern, Stanford and Duke rosters average up in the 1350–1425 range, and the athletics-first programs land around 1150–1200. For how little the change was, it added a lot to the world.

D3 got wider. With the academic schools moved into D4, I lowered D3's talent floor and widened its range. D3 is now the broadest division, holding the talent that D2 and D4 pass over along with the weakest players in the pool. The spread between the best and worst D3 team is very large, which tracks with how real DIII looks and makes the tournament more unpredictable.

D2 reaches down further. D2 now recruits further below its own level, so it picks up mid-tier players who used to land in D3 and D4. This is a follow-on to the fall portal work from last time. It gets the intake closer to right up front, so there's less to reallocate after the fact.

Recruits weigh playing time. Recruits now look at whether their rating would put them in a program's top six. It sits below prestige, so players still favor brand-name schools, and it carries enough weight that playing time factors into the close calls. I added a Roster Fit column to the recruiting board that shows each interested program's current top six and whether the recruit projects as a starter, in the rotation, or as depth. Programs still oversign and some kids still ride the bench, and the recruiting is more competitive for it.

Geography gets a small nudge. Warm-weather and big-city programs get a light tiebreak with recruits who prefer that. It can pull a player toward the sunbelt or a city, and it stays below prestige.

The fall portal spreads its picks. Last time I built the fall transfer window to move misallocated players up a level, with a 1:1 trade to keep rosters full. The version I shipped sent most of the risers to the same few high-prestige programs each cycle. I reworked the destination logic so a riser goes to a program where they'd slot into the lineup, which spreads the movement across more schools.

The Power Index weighs losses by opponent. I borrowed the ITA's approach for the computer rating. A loss to a top team costs very little, a loss to a weak team costs the normal amount, and wins are unchanged. This is the Power Index only. The media and coaches polls still rank on reputation, so a low-prestige team with a strong record gets underrated there, which is the fog-of-war effect I want to keep.

Most of the work here was in the spec. The idea that made the rest fall into place was describing D4 as a filter: a tier with the money to sign strong players and the admissions limits to take only some of them. Once I had that sentence, the budget, the test-score gate, and the way talent moves into D3 all followed from it. Landing on that description is where most of the time goes.

All of this reset my current save, so I'm restarting the Monmouth run. The lower divisions each recruit differently now, which is what I was after.