Delgar: I checked it out

.
dave_o: Thanks!
Beer Plan first - no, they're not worried about it. A lot of wine gets traded to Aglaonis already, and they haven't started making their own

. The issue is one of specialization - if Theralis makes the wine, and Aglaonis makes the bread, and they trade, it costs both of them
less than for both to split their focus between bread and wine. So the wine is a little more expensive in Aglaonis... but the bread is a lot cheaper, and they save more by specializing on the bread than they lose by having to buy the wine. Same for Theralis.
Excel: The spreadsheet sensitive may wish to shield their eyes

.
I usually put down a huge column of d20s first (we'll say cells A2:A2000), each with: +roundup(rand()*20,0)
I put the average attack bonus in B1. Then I decide on the typical AC of the opponent. I type that into a separate cell, we'll say C1. And I put the soldier's base weapon damage (typically 1d8) in D1, and the damage modifier (typically +3 for STR 12 and weapon specialization) in E1. The crit range goes in F1. The crit multiplier goes in G1. The opponent's average hit points goes in H1.
Then, in B2, I put this: +if(A2+$A$1>=$C$1,roundup(rand()*$D$1,0),0)
Cut and paste that all the way down to B2000.
Then, in C2, I put this: +if(A2>=20-$F$1,B2*$G$1,B2)
Cut and paste that all the way down to C2000.
If I'm throwing Theralis soldiers against orc warriors, I then subtract the orc hide armor DR and orc DR from the final damage (in cells C2:C2000). Standard campaigns that don't have DR for armor can avoid that step, and I'll assume you are avoiding it below. I reverse the process (who's the attacker and opponent) in another set of columns.
Then I put this somewhere open on the sheet:
+countif(C2:C2000,">=30")
+sumif(C2:C2000,"<30")
The "countif" statement determines how many instant kills there were. I will subtract that number from the total orc tribe at the start of the next round (I assume all kills happen simultaneously). The '30' number comes from the average hit points in many orc army - substitute your own average hit points at will.
The "sumif" statement determines how many hit points of damage were done that
weren't instant kills. I generally halve that number, and then divide the total by the average hit points to find out how many people were killed.
A lot of times, I also break the battle into individual sub groupings; for example, the Keraunesti have their own column for damage they do to the enemy, as do the giants, and so if the Keraunesti attack the giants, I have a fair idea of how many people get killed.
If there's a chance someone important got killed in a fight, I usually roll a d20, and on a '1', that person got killed (I don't do this for PCs).
When the PCs enter the battle, I usually play out their immediate surroundings, and have about a hundred or so pre-rolled d20s listed on my palm pilot. When Athan died, it was because they focused on him, and he got out from behind the shields.
The Theralis strategy, generally, is: reduce casualties with shield cover, get the benefits of the high ground, use reach spears to avoid messy melee, and throw massive firepower and the Keraunesti at any sub-group that is too successful.