Firstly there are "wipeouts": that is fighting armies, which morale reaches zero within the first five compulsory battle days, and which strength is outmatched by a factor of two.
These armies are removed from the battlefield, and it may so happen that is the case within the very first days, after an assault or otherwise a morale loss.
***
You mention 18,000 wiping out 15,000 - while suffering 20 casualties.
Worst case scenario:
Assuming those losing 15,000 men are militia pit against heavy infantry.
Assuming a dice roll for these rather unlucky fellows, to be zero - all other things being equal (discipline, offensive, defensive, experience, martial skills, terrain, combat events, etc.)
Those 15,000 - should they survive the first onslaught - will cause to the enemy (18,000 heavy infantry) 68 casualties, during the first day of combat. Subsequent days of combat will likely see that figure increased by 61, then 55, etc.
You reported 20 casualties dealt, overall.
I am thinking You may be fighting "experienced" regiments, whose casualties will be generally lower. The circumstances I briefly summed above are incredibly negative, yet possible.
***
I don't want to sound blunt, but Your description doesn't help me much reporting a possible issue.
I will need some kind of information to outline what You think is "a problem in the resolution code" (savegames, a series of screenshots with modifiers outlined, ...).
If You feel damages are generally too high (for the losing party to deal enough casualties), I can suggest You decrease them by lowering "_MDEF_LAND_DAMAGE_MODIFIER_" in "defines.txt". Consider that, in previous releases, people complained about battles being too long, and damages too low ...