Improvements to Best Lineup
Going forward, I'm going to try to write short blog posts detailing significant changes to the Companion. This is the second post of this type, detailing my changes to the Best Lineup Tool.
What was the goal?
At the start of November, I posted a New Feature Poll on Patreon , where Patrons could vote on and suggest the next big improvement to the Companion. The top vote-getters were Best Lineup Improvements and Sandbox Improvements. I chose to start with Best Lineup because it helps build towards some other cool features that were suggested. The ideas I picked up from that post were:
- Improve the way the algorithm handles multi-position players.
- Generate Team OVR for after all training/special training/etc are included.
Before this update, the algorithm that generates the lineups was tuned towards picking players for each position. Going position-by-position, it would find the best player and then move on. For most teams, this worked quite well.
Unfortunately, a few teams have a bunch of top-tier players who play multiple positions (looking at you, LAD). The original algorithm did do some work to account for this, but didn't always do the best job.
In this update I complete re-wrote the algorithm. Instead of trying to fill the lineup position-by-position, the new algorithm focuses on finding the best players for the OVR Type you select and slotting them into the lineup. It's a small distinction but one that has a big impact for multi-position-heavy teams.
After picking all the players for the lineup (including the bench), another algorithm checks each multi-position player in the field to see if there is a better home for them. If the starting lineup can be improved by shifting that player to their second position, that's what the tool will do!
So how many teams saw changes? When generating by aOVR, only four! Here are the differences:
|WSH||+0.5 Batter base OVR|
|LAD||+0.2 Batter base OVR|
|TEX||+0.2 Batter base OVR|
|CLE||-0.2 Batter base OVR|
Yes, CLE got a 0.2 decrease in Batter base OVR. That sounds bad, but the lineup looks better from an aOVR standpoint, which is what matters most.
Pitcher lineups for those teams were untouched and all other teams saw no change in team OVR (though lineup positions may have shifted here and there).
Calculating Upgraded OVR
Best Lineup already shows you the Base OVR of the team, the batters, and the pitchers. Taking that a step farther, it now also calculates those OVRs after applied training, GI, Special Training, and Set effects to all players!
In the future, I plan on adding the ability to toggle players to Sigs so you can see how that affects the Team OVR. Until then, you can add +0.4 to the Upgraded Team OVR for each card you intend to be a Sig. For example, if your team's Upgraded OVR is 110.8 and you want to consider 5 of those players to be Sigs, the team's new OVR would be 112.8.
There are still a lot of other improvements that can be made to this tool outside of the lineup-picking algorithm. Toggling Sigs, toggling Black Diamonds (especially when considering Sigs!), earmarking players you already have, or suggesting 25th-man options all come to mind. I'm going to be looking into these in the future, so stay tuned for more updates!