Subs (both for fatigue rotation and getting snaps to your depth) can be managed via formation and formation subs, too.
This Reddit page has spreadsheets showing which formations use different personnel....that is, which formations use WR3/WR4 and which use SLWR1/2, which use HB1, PWHB, 3RDB, SLCB vs CB3, etc. A lot of times, the easiest way to force a sub is to just call a similar play/concept from a formation that uses the other roster positions:
https://www.reddit.com/r/Madden/comm...d_depth_chart/
I also find it helpful to set up a fair number of formation subs. For example, if I want my HB2 to get more work, I'll just formation sub him into a few sets...it's more reliable than the autosubs.
Between both methods, you have a lot of options to ensure exactly the right players are on the field when you want them and how you want them just via playcall.
For just one example, say I have a 3RDB that's different than my HB1, but I also have a HB2 I just drafted that I want to develop. If I'm switching back and forth between Singleback plays (which usually use the HB1) and Shotgun plays, most of which use my 3RDB, my rookie HB2 may not see as much time as I want...my HB1 is on the bench resting during the Shotgun plays, and vice versa, so neither back is fatiguing enough to trigger the auto subs and get him in the game. If I form sub that HB2 into a few forms, I can control that manually just via playcalling.