My information comes from the XML that Primal put up, which can be found in CoreSpells.XML.
With +1 attack and +5 accuracy per friendly, it would seem swarm is very strong early in the game but gets significantly weaker later. Not sure I like that (why would superior numbers stop being useful?)
Yes, Swarm gets weaker in the later stages of the game, but it still isn't terrible. While the accuracy bonus is negligible once you have a decent Fortress or a Commander, the attack bonus isn't that bad. Consider this - +3 attack on a 21 base attack unit represents a 25% or better bonus to the damage dealt per attack against targets with 40 or more defense, and a 20% or better bonus to damage dealt against 15 or more defense. Sure, lower base attacks benefit more from it, but a 20%+ damage bonus just from having three units next to the enemy you chose to attack? I'll take that any day.
If you want to play around with the numbers a bit more, you can try my Bonus Calculator which is available here:
https://www.dropbox.com/s/2b6pzfducv9lhy6/BonusCalculator.xlsx
which gives you the percentage increase in the maximum damage dealt for given attack bonuses (multiplicative - e.g. Bloodthirsty +25% attack; additive - e.g. Muscular +1 attack; or armor penetration - e.g. Spears 33% armor penetration). Since the minimum damage is half of the maximum damage, this is also the percentage increase in average damage per attack.
The fields for the bonuses are set up so that things that provide a percentage boost expect integer inputs (so if you want 33% armor penetration, put 33 in the Penetration field), and you can adjust the starting attack and defense values, as well as the attack and defense increments, in the appropriate fields. There's some average bonus stuff at the end of the table - but remember that this is a percentage bonus, and an extra 180% on 0.1 maximum damage is still effectively nothing.
The contents of the table are the decimal equivalent of the percentage bonus - 0.25 means that you dealt 25% more damage than the basic attack would have without whatever bonuses you put in the input field. The percentages in the far right column give you the arithmetic mean of the bonuses in each row, expressed as a percentage, and there's an average of the averages at the bottom left (if you see 100% here, it means that the average bonus damage is equal to 100% of the base damage across all the attack and defense values in the table, meaning that the bonus you chose doubled your damage).