Damage in Snowbreak is calculated based upon the following stats:
ATK
Each operative has a base ATK, which is then increased by the ATK buffs they receive (Logistics, Manifestations, etc.)
Note that the base ATK listed in each operatives "View Details" page is correct, however their "Loadout ATK" doesn't include some buffs, such as 5* weapon buffs, and is not quite accurate. (This is true for other stats as well. Loadout stats are good, but not quite 100% accurate.)
Weapon Compatibility
This acts as a percentage multiplier to the operatives damage.
So for example a weapon with 50% compatibility deals half as much damage as one with 100% compatibility (assuming all else is equal...)
Damage buffs
Things like Ballistic or Skill DMG buffs.
These are commonly obtained from the 2/3 and 3/3 effects of logistics squads, as well as buffs from support operative buffs and weapon effects.
Crits
If you get a crit, it increases the damage of the hit
Note that skills cannot crit.
"Final Damage" buffs
These apply separately from other buffs, making them much stronger
These are generally quite rare, although many modern operatives have a 20% (or thereabouts) Final Damage modifier in their M1-M3 Manifestations.
Damage Taken Debuffs
These are a percentage increase to the amount of damage enemies take.
These are rare, and are mostly found on the newer 5* weapons.
Defence
All enemies have 1,000 base defence (as far as I am aware).
With no defence pen or reduction, enemy DEF reduces the damage they take by 50%.
Enemy Resistances
Enemies have base resistance penalties to certain damage types, depending on the damage type and the enemies type.
Enemy Shields
Enemy Shields take 2x ballistic damage.
Each operative has a base ATK.
For a maxed operative this is generally in the 2,300 - 2,700 range.
This is then increased by the sum of that operatives ATK boosts.
Normal ATK boosts includes:
Manifestations
Each Manifestation level gives 2% ATK, for 10% total at M5.
Logistics
Getting your Medical officer to Lvl.15 will give you a 20% ATK boost.
Logistics stats
Your Intelligence and Materiel officers will each give you flat +ATK, up to approximately +100 ATK at Lvl.15, for around +200 total.
Logistics substats
Each logistics officer can have an ATK roll, which gives +10.0% ATK at max.
You can thus get around +30.0% ATK from your logistics officers substats (which is generally what you want for all your operatives, especially main-DPS operatives.
These ATK buffs are summed additively.
Again, note that ATK buffs aren't always listed on the Loadout ATK.
Maxed operatives tend to have around 5,000 Loadout ATK.
Your weapons damage is increased or reduced to the weapons Weapon Compatibility stat.
If Weapon Compatibility is over 100% this results in the weapon dealing more damage, and if Weapon Compatibility is below 100% then the weapon deals less damage.
Weapon Compatibility is the main reason why some weapon types deal more damage than others.
E.g. SMGs tend to have Compatibility of around 30%, whereas sniper rifles are over 100%compatibility, resulting in them dealing vastly more damage than SMGs.
Your damage is increased by the sum of all applicable buffs, such as from logistics squads or support operative buffs.
These damage buffs are summed additively, even if they are of different types.
If a Critical Hit is scored, then the damage of the hit is increased by the CRIT DMG value.
The Crit DMG Amplifier stat is itself an additional value for the CRIT DMG value mod.
So for example if you deal 100 damage, get a crit, and have 30% CRIT DMG, and 31.8% Crit DMG Amplifier.
The 31.8% Crit DMG Amplifier increases your crit from 30% to 39.54% extra damage, so in total the crit will deal 139.54 damage.
Damage from skills never crits under any circumstance, unless the skill explicitly states that it can crit.
Hits to weakspots always crit if able [again, skills never crit, even against weakspots].
All enemies have 1,000 DEF (as far as I am aware).
In Snowbreak there are a small number of sources that can reduce or penetrate enemy resistance.
The actual damage that is reduced due to enemy defence follows the formula:
1 / ( 1 + EnemyDEF *(1-%pen) -pen)/1000
If you have no pen (percent or flat) then this is 1 / (1+ 1000/1000) = 1/2 = 50%.
I.e. if you have no modifiers to enemy defence, then enemy def reduces your damage by 50%.
Reduced DEF works as you'd expect - it just reduces the 1,000 enemy DEF value.
Due to how the formula works though, this doesn't usually result in a damage increase equal to the [reciprocal of the] DEF decrease.
Due to DEFpen being very rare, it is quite a strong effect.
All enemies have an inherent damage resistance to each of the 5 damage types - Kinetic, Thermal, Frost, Electric, Chaos.
This is by-default 0% - the enemy doesn't take any extra or reduced damage due to their resistances.
Enemies do also have an inherent weakness to two damage type depending on their species:
Species Kinetic Thermal Frost Electric Chaos
Human -10% -10% -5% 0% 0%
Changed 0% -5% 0% -10% -10%
Titan -5% 0% -10% -5% -5%
The actual formula used to determine your damage is:
Base ATK * (the SUM of your ATK buffs) * Skill Multiplier (if using a skill) + Flat Skill Dmg values (if using a skill)
* Weapon Compatibility (if shooting)
* (the SUM of your damage buffs - ballistic, skill, elemental damage, ultimate skill damage, etc. - everything that actually applies to the damage being dealt)
* 1+ (your CRIT DMG * Crit DMG Amplifier) (E.g. 50% CRIT DMG * 10% CRIT DMG Amplifier = 55%, so you'd end up with 155% if you crit with those values)
* (the PRODUCT of your Final Damage Multipliers)
* (the SUM of your %Damage Taken debuffs)
* (the enemies effective defence multiplier)
* (1 - (the enemies elemental resistance)/100 ) (e.g. If an enemy has 10% resist you deal (1-10/100 = 0.9)* the damage, i.e. you deal only 90% damage)
* 2 if dealing ballistic damage against a shield
* 99-101% if ballistic damage (this is what gives your shots variable damage numbers. This is normally distributed.)
If you want to be mathematically pedantic, then every separate line of the above should be in brackets. I excluded them to include readability as I hoped they were implied decently well already.