it’s really only fully plausible if you play in an online league, bc offline the cpu will always do some dumb stuff lol. for offline its just whether or not you have the patience to undo all the little things that irk you, for example, a team signing TJ Watt to play him at off-ball coverage linebacker, or the Bengals drafting a QB despite having prime Joe Burrow. whether that is gameplay, roster management, incorrect depth chart placement, etc, it adds up fast.
we run an online a realism league and obviously with 32 users its much easier to ensure these things don’t happen. some good base ideas we use though are limiting what QBs can do based on their awareness rating (separates QBs and gives the rating meaning), playcall limits, hot route bans, realistic go-for-it 4th down attempts, and disallowing all gameplay mechanics that blatantly abuse the AI (such as play action on long distance downs — the defenders will still bite on the run on 4th and 24 like they will on 4th and inches).
realism for roster managment wise, it’s a lot about looking at IRL precedents and not straying too far away from those. look at the most value a team has ever gotten for certain positions. a linebacker has never gotten anything more than a 2nd rounder + change (Roquan Smith), so things like that are good factors if you dont wanna rip off the CPU. do player for player swaps happen much? very rarely, and if they do, its most commonly a big trade-up, or one with a random filler player (think Kevin Byard/Terrell Edmunds swap IRL this past year). most teams also do not exceed more than 3 trades involving any player over a calendar year — this is something to note for people who do “rebuilds” that involve a dozen trades right off the bat lol, it could be fun but definitely is a bit easy to abuse since it doesn’t happen in the NFL.
a last important thing that is useful is a contract chart that has tiers for age, overall, position, etc. with modifiers for certain stuff. for example a WR with X speed must be paid as if they are in the [X] overall/age range. makes it so you (the user) cannot use this speed advantage at a discounted rate because Madden’s CPU doesn’t know how valuable this rating is. this contract chart also ensures that you cannot just dump a bunch of 7 year $7M deals to a bunch of bums in free agency (no one would ever sign this) and holds you accountable for making legit offers because oftentimes they’ll accept if it’s their only offer.
TLDR madden has so much wrong with it for true realism to be plausible vs CPU unless you do a ton of stuff/ignore a lot of it, but if you’re willing to make it work, some of these changes can help. we have a link with a lot more ideas, but these are just off top of my head.