How does enemy progression work?
Solution 1:
It seems that some enemies are tied to some missions, while others will appear anyway, but it seems that if you are quick enough they will appear earlier after certain missions.
Credit to yx and Sterno in the comments below !
Enemies which are tied to missions
Outsiders - First appear in a downed UFO. One appears in most (but not all) UFOs after that.
Sectoid commanders - first appears during the assault on the alien base. After this point, Sectoid commanders appear on the bridge of alien UFOs, replacing the Outsider. After the overseer ship mission is complete, they are replaced by Ethereals. Sectoid Commanders may also appear on harder alien abduction missions, usually in small groups. Source
Ethereals - First appear in the assault purple ufo mission, and then randomly in missions afterwards
Enemies which will appear anyway
- Sectoids
- Floaters and Heavy Floaters
- Mutons and Elite mutons
- Berserkers
- Sectopods
- Thin men
Spartacus mentioned that Chrysalids may be tied to the first terror mission.
Solution 2:
In my experience enemy races are tied to elapsed time and the two key missions: Alien Base and Overseer. They are not tied to game level.
March: Expect Sectoids, Thin Men and Outsiders.
April: Add Floaters and Chrysalids. If you reach the Alien Base, add Drones and Sectoid Commander.
May: Add Mutons.
June: Add Cyberdisks and Heavy Floaters. If you reach the Overseer, add Muton Elite, Sectopods and Etheral.
July: Add Muton Beserker.