According to my experience in playing Rome 2 vanilla, I found out these are the cases when you should sally out ( either you have just a single general unit plus the garrison or a small army inside plus the garrison ) to attack an enemy army that is besieging your city either walled or non-walled:
- If you don't know when the enemy will start the attack and you see that if you fight the battle outside you stand at least like 50% chance of winning. And you see another enemy army heading to the city to reinforce that army that is besieging you.
- If you haven't researched the technology that reduces attrition when being besieged yet. And the techonology that increases the numbers of turns that a city can hold
- If a message saying that the city is about to surrender pops up: It means that in the next turn the city will surrender and become your enemy's possesion. It is better to sally out to fight rather than handing over the city to the enemy without a fight
Cases when it is better not to sally out:
- If you have an army that can reach the city in the next turn or in 2 turns at the most
- In case you have a big numerical disadvantage but you have the technology that reduces attrition and the technology that increases the number of turns a city can hold. Your best option is to wait and fight from inside your city ( Even though not guaranteed )
What about you? Do you have the same criteria when to sally out and when not?