I’ll try to sum up my current status, which consists of @u2371’s and my efforts plus some of my previous findings, but it’s 2am here now, so it may not be perfect. @u2371 please have a look

The basic formula should be something like this:

if A1/A2≤0.94, then

single tile damage = FLOOR[(25.5 x A1/A2) x A3,1] ± variance

if A1/A2>0.94, then

single tile damage =FLOOR((25.5 x A1/A2 + 0.04 x (A1 - A2 x 0.94)) x A3,1) ± variance

A1 is total attack = ATK1 x (1 + Troop1ATK%) x (attack type bonus + ATK1Buff + Wu + ElATK1Buff) x (1 - ATK1Debuff) + ATK2 x (1 + Troop2ATK%) x (1 + ATK2Buff + Wu + ElATK2Buff) x (1 - ATK2Debuff) +…

attack type bonus = 1 for tile damage and slash damage; for specials and enemy specials it’s the special% (e.g. for Magni it’s 420%)

A2 is total def = DEF x (1 + TroopDEF%) x (1 + DEFBuff + ElDEFBuff) x (1 + DEFDebuff + ElDEFDebuff + LimiterToBeFound)

A3 is [1 + (crit Bonus) + (element bonus) + (combo bonus)] x (1 + tiebreaker bonus) x attack type modifier

attack type modifier = 1 for tile damage; x3 x 90% for special attacks; x3 x 110% for slash attacks and enemy special attacks

edit: A3: corrected “x (1 + attack type modifier)” to “x attack type modifier”

edit2: A3: corrected “0 for tile damage” to “1 for tile damage” (thanks to @mattp169 for spotting this)