Butler's replacements takes care of one element and better supply will help the other. The actual combat algorithm for combat takes 3 single-spaced pages to describe. All values of each unit are computed, compared and weighted in a very historical manner. Hidden commander attributes are, without a doubt, key to a suspenseful game. Keeping good leaders alive is crucial to victory.
Attrition happens when forces get tired and hungry.
Attrition levels can be determined by the colored sliding bar under unit counters and LC on the unit and the Status menu. The Fatigue factor in the Status box is the most accurate indicator. Foraging makes things variable. Unmodified, it causes level 8 attrition but cities drop this by 2 while mountains raise it by 14 and woods by 10. All of these levels are halved in its home territory.