The battle odds are based on the AI's strength calculation for the armies involved. Essentially this is a number derived per unit via a complex formula which takes into account the number of soldiers, attack, defense, experience, upgrades, morale, and almost everything else which gets fed into the game from the export_descr_unit.txt file. This number is also used in many, many other places, although on the battlefield it is replaced with a more sophisticated calculation which matches unit vs unit.
The battle odds are then rounded to something vaguely readable... the system is not perfect (the factors involved in the battlefield mean that it's only ever going to be an approximation) but it gives you an impression of the AI's best guess as to how the armies match up, which you can use as a guide. Ultimately though, the only "accurate" way is to spy on the enemy army to find out its exact composition and make your own judgement about how it measures up against your forces....
Bookmarks