I started a new game recently with DC United after the 22.2 patch. As the salary cap values have been altered from 22.1 such that every team could begin the season under the cap and keep their players, my hope was that there wouldn't be any strange cuts.
Unfortunately, that still isn't been the case. All of the below examples are from one save.
Example #1: NYCFC
In this save, the most egregious example was when NYCFC decided to waive Valentin Castellanos, this year's golden boot winner, and Nicolas Acevedo, a 21-year old promising defensive midfielder.
On April 2nd, the registration day, NYCFC was doing just fine with regards to the salary cap: a team cap hit of $4.71 millions, with a max team salary of $4.9 million (though no GAM to buy down contracts). At those values, NYCFC could keep everyone on their roster. After registration, Rodney Redes from Austin FC ($150k cap hit) was put on waivers. At that value, NYCFC could pick him up without needing to waive any players. NYCFC was the only team to put in a waiver claim.
However, before selecting Redes from waivers, NYCFC made two contract offers. NYCFC decided to extend Sean Johnson's contract, giving him a slight pay cut in salary (from $510k to $457k). Here is the important piece: In 2021, Johnson's cap value is $200k. When he was resigned, his cap value went up to match his new contract value ($457k). On the same day, the AI also decided to give Tayvon Gray a raise, moving from a reserve contract at $63.5k to a normal contract at $118k. Importantly, Gray's contract before (being a reserve contract) had no effect on the salary cap. Both were signed on April 5th.
So with those two simple moves, NYCFC added $375k to the salary cap, which then moved them from $4.71 million to $5.09 million. Once the waiver claim for Redes went through on April 6th, NYCFC was at $5.24 million, and had to cut players to get under the cap. Since this was past the contract guarantee date, the only players that could be waived and reduce the cap hit were those on non-guaranteed contracts. Acevedo and Castellanos (both valuable players) were cut.
After Acevedo and Castellanos are waived, both players received interest from other teams in MLS. Castellanos has four teams that make a waiver claim. Austin had the highest waiver ranking; but because of contract extensions they had a cap hit of $5.77 million, well over the $4.9 million limit. The game then did not allow Austin to pick up Castellanos, Castellanos was not offered to the other teams who made a waiver claim, and Castellanos became a free agent. Oddly, the only player interested in Acevedo is Orlando City. They have room under the salary cap AND an international slot - but don't bother making a claim. So both end up out of MLS.
Example #2: DC United
After this, I did some experiments with DC United to see how the AI handles cap issues. In one example, I signed a player to a senior minimum contract ($81.5k/year), and all the AI needed to do was cut a player with the same contract to stay under the cap. DC United has several replacement-level players that fit the bill. Instead, the AI cut Yordy Reyna who is a Peruvian international with a discounted salary cap value of $200k and is more important to the team than, say, Tony Alfaro on a SMS contract.
Example #3: Toronto FC
Toronto FC signed Fredy Guarin to a $612k contract on March 2nd....and then cut Fredy Guarin on registration day.
Summary of issues/potential fixes
First, is it possible to "keep" salary cap buy-downs when making a contract extension? In the NYCFC example, signing Johnson and Gray to extensions resulted in a bump in their salary cap values, even though their overall pay was about the same. Could the game be set such that MLS contract extensions maintain their cap buy-down even when signing a new contract? This could help mitigate cap issues.
Second, does the AI consider signings in light of the salary cap? It seems like the game doesn't seem to be doing a good job of thinking through the consequences of making moves in relation to the cap. For example, I can imagine that picking up Rodney Redes would improve NYCFC - but if his signing means losing both Acevedo and Golden Boot-winning Castellanos because of the salary cap...maybe that move shouldn't be made? The same thing applies to the Fredy Guarin signing - why sign the player if you are going to cut the player in one month for cap purposes?
One possible solution would be some sort of cap optimization AI. For registration, MLS teams essentially have three categories of players: ones with automatic necessary cap hits (DPs, injured players), ones with cap hits only if they stay on the roster (most players), and cap exempt players (most homegrown players, minimum contracts - up to 10). For those players who only have cap hits if they stay on the roster, the AI could run permutations of different player combinations, and choose the best combination of players that is legal under the cap (however judged by the AI). The same process could be enacted BEFORE signing new players, making waiver decisions, etc.