Here is what the dev has said:
What are the odds of promotions?
Odds of promotion are based on whether the civ has the Militaristic trait or not and whether the victory was against barbarians or not. Basically, chances of promotion are halved for victories over Barbarians and doubled for Militaristic civs.
non-militaristic civ vs. non-barbarians:
conscript to regular: 1 in 2
regular to veteran: 1 in 4
veteran to elite: 1 in 8
non-militaristic civ vs. barbarians:
conscript to regular: 1 in 4
regular to veteran: 1 in 8
veteran to elite: 1 in 16
militaristic civ vs. non-barbarians:
conscript to regular: 1 in 1
regular to veteran: 1 in 2
veteran to elite: 1 in 4
militaristic civ vs. barbarians:
conscript to regular: 1 in 2
regular to veteran: 1 in 4
veteran to elite: 1 in 8
If a victorious unit fails to get promoted, it will always be promoted upon surviving any other battle in the same turn . This gives an obvious advantage to defenders as well as an incentive to use the same offensive units for additional battles whenever possible.