HomeMilitary Body ArmorThe Body Armor of the War in Ukraine III: Personal and Squad-Level...

The Body Armor of the War in Ukraine III: Personal and Squad-Level Armor Adaptations and Lessons Learned

The previous articles in this series set the boundary conditions: About 77.5% of combat casualties in Ukraine are caused by fragments and blast, roughly 15% by mines, and only around 2-3% by small arms. Evacuation to surgery is often measured in hours rather than minutes, if not days rather than hours.

This has caused the development and deployment of body armor to shift.  Whereas the GWOT paradigm emphasized protection against old Soviet rifle threats — something absolutely exemplified in the ECH and IHPS helmets — soldiers in Ukraine, on both sides, are pursuing advances in soft armor surface area and ergonomics, with rifle-threat ratings practically an afterthought.

The threat, in practical terms

The above is perfectly rational in light of the characteristics of the fragment threat.  Today’s 155mm-and-equivalent HE artillery shells have a lethal blast radius of roughly 10-20 yards.  (For e.g., the old M107 shell, ~7kg TNT equivalent.) What this means is that if you’re standing within 20 yards of an exploding 155mm shell, you’ll be killed or thoroughly incapacitated on account of blast overpressure effects, e.g. lung injury.  So unless you’re wearing a sealed bomb suit, you don’t need to worry too much about fragment velocities from 0-20 yards; it’s not the fragments that are going to turn you into a casualty.

And though fragments travel very quickly at the point of detonation — around 4200 feet per second on average — supersonic fragments decelerate rapidly in air.  Most are low-density, irregularly shaped, and subject to severe turbulence-induced drag.  By twenty yards, they’ve shed roughly half their velocity.  By forty yards, they’re usually moving at around or under 1600 feet per second.

Once you get a little bit past those forty yards, fragments are generally more likely to injure than to kill because they’ve already shed the majority of their energy.  By the time fragments reach people in the danger zone between 50 and 100 yards, they’re arriving at shallow, almost horizontal angles and are typically moving in the subsonic to low‑supersonic band, not at the extreme velocities you see in spec sheets.  The standard “safety distance” for this kind of event — the range where you’d expect no more than one truly hazardous fragment over a squad-sized patch of ground — works out to roughly 100 yards.

Casualty Risks Induced by Primary Fragmentation Hazards from High-explosive munitions by Qin and Stewart (10.1016/j.ress.2021.107874)

In everyday terms: The average fragment that actually hits someone is small and already slowed down — and it’s as likely to strike a limb or forehead as it is to strike center mass — which is why wide‑area, fragment‑soaking protection matters more to most soldiers than chasing ultra‑high V50 numbers.

In fact, the statistically average steel fragment weighs 10-20 grains and strikes at about 1000 feet per second.  Tungsten fragments tend to do a better job of retaining velocity, but the average strike still happens at a relatively low sub-2000 fps velocity.  And I’d add that data from Cunniff et al. suggests that, at an equal grain weight and velocity, tungsten fragments are not harder for soft armor to catch.

What troops actually wear and use

Thus the paradigm in Ukraine, on both sides, is one of increased coverage: Soft armor collars and yokes, deltoids and upper arms, lower abdomen and groin, and, in high‑risk tasks, thighs. This responds directly to the pre-war problem that most penetrations landed outside plate footprints, with on‑plate defeats a minority of cases. Increased coverage is a better match for a battlefield where fragments and blast dominate and where junctional hemorrhage is dangerous because evacuation is slow.

Lethality of unprotected persons due to debris and fragments by Janser

Broadly speaking, both sides anticipated this — to an extent. Ratnik‑era vests already supported collars, groin flaps, and assault add‑ons. Now wartime kits push further into deltoids and thighs, with pelvic protection normalized for assault roles. Engineers field heavier anti‑mine footwear where scatterable munitions and FPV‑delivered charges are common. Line units run wide soft‑armor envelopes with mid‑rating plates; assault detachments accept heavier lower‑body and face or neck modules for short, violent tasks in trenches, basements, and stairwells. That split by role mirrors the wound distribution reported in Russian clinical summaries and the long, hazardous evacuation chain that Part II described.

A parallel move is in squad-portable ballistic blankets. Troops use them to thicken overheads in trenches, to cover apertures during shelling, to make improvised “armored vehicles,” to block drone vision, and to protect equipment or litter teams when they cannot wear yet more armor for every movement. They are not rifle stoppers, and in most cases aren’t even NIJ IIIA/HG2, but they can soak up the fragments that cause most wounds. They’re adaptable, versatile “mobile cover” that travel with the unit rather than the individual.  Given the nature of the war’s threat environment, a few blankets per squad are evidently worth much more than their weight.

Helmets: Coverage and realism over bragging rights

There’s also a rising challenge to the status quo on helmets.  For quite a while now, Ukrainian combatants have been saying that the right daily‑wear helmet for this war is a lightweight, ACH‑style shell with generous coverage and ACH-grade ballistic performance.  As with soft body armor, what’s needed is a combination of coverage and practicality.  Extremely high 17‑grain FSP V50s and “stops 7.62x39mm mild steel core” claims do not buy survivability for the average soldier – and, if they make the helmet just a pound heavier, that’s a trade-off that’s difficult or impossible to justify.  As we’ve reviewed above, there’s practically no such thing as a fragment that’s moving at 3,000 to 4,000 ft/s when it meets the head — unless you’re right on top of the blast, in which case the blast itself is what’s most dangerous.  What’s more, rifle threats in the field (and indeed in all conceivable peer or near-peer conflicts) are commonly steel-cored bullets that defeat all composite helmet shells at all practical distances, whether they’re “rifle rated” or not!

Lessons for command and procurement

If artillery, FPVs, mortars, and glide bombs keep defining contact, body armor procurement and utilization should lock-in three choices. First, pay for area. Put soft armor on the surfaces that are most vulnerable and on the angles fragments actually arrive from, and issue ballistic blankets at the squad level by default.

Second, right‑size the helmet. Choose a large, light shell with realistic fragment performance and add rifle appliqués only where the geometry and role pay back their weight.

Third, test what the battlefield actually produces.  Calibrate armor tests to the two dominant arrival patterns. For trench and overhead burst, include a downward obliquity limb (30–60 degrees from horizontal), which pushes value into yokes, deltoids, and upper laterals. For mortars, grenades, drone-drops, and FPV attacks that detonate at or near ground level — or impact the ground before detonation — add a rising obliquity limb (about 10–45 degrees upward from horizontal), which drives protection into pelvis, groin, thighs, and shins. Populate bins that reflect the 20-100 yard regime where most hits occur: For example, 4, 16, and 64 grain fragments at transonic to low-supersonic speeds with the angle mix above.

Calculating fragment impact velocity from penetration data by Jordan and Naito (10.1016/j.ijimpeng.2009.11.002)

A computable way to steer money toward effective coverage would be to employ a new formula for Area-Weighted Risk Coverage (AWRC). In plain terms, AWRC averages the probability that each armor surface prevents perforation across a realistic fragment distribution, and weights that by the surface area it actually covers for the role. You can compute it transparently in a spreadsheet from test data:

AWRC = ( sum_i A_i * sum_k w_k * S_i(m_k, v_k, theta_k) ) / ( sum_i A_i )

Where: regions i have areas A_i; fragment bins k (e.g., 4, 16, 64 grains at role-appropriate speeds and angles) have probabilities w_k; and S_i is the non-perforation probability for region i under bin k. To reflect real-world wear, include a utilization factor u_i for hours actually worn:

AWRC_use = ( sum_i (u_i * A_i) * sum_k w_k * S_i(m_k, v_k, theta_k) ) / ( sum_i A_i )

If S_i must be derived from V50 tables with dispersion sigma_i, use:

P_perforation = Ncdf( (v_k – V50_i(m_k, theta_k)) / sigma_i )

S_i = 1 – P_perforation

This method allows planners to estimate the most efficient deployment of armor based on realistic testing, present circumstances in the field, and recent military medical analysis.

Ultimately, these three recommendations encompass the numbers‑first read of the past three years, and align with both the casualty tables and the physics of fragment flight.


Appendix, AWRC Calculation Examples:

WORKED EXAMPLE 1 — LINE UNIT, TYPICAL 20–100 m FRAGMENT REGIME

Configs:

  Config A present: front_plate, back_plate, sides_soft

  Config B present: all listed regions

Areas (cm^2):

  front_plate=750

  back_plate=750

  sides_soft=800

  front_offplate=1000

  back_offplate=1000

  yoke=400

  deltoids=800

  pelvis=600

  thighs=1000

  Total area=7100

Fragment bins and weights:

  k1: m=4 gr,  v=450 m/s, w1=0.45

  k2: m=16 gr, v=350 m/s, w2=0.35

  k3: m=64 gr, v=250 m/s, w3=0.20

Dispersion:

  sigma=30 m/s

Region V50 tables (m/s):

  front_plate:   k1=800, k2=650, k3=400

  back_plate:    k1=800, k2=650, k3=400

  sides_soft:    k1=500, k2=380, k3=240

  front_offplate k1=500, k2=380, k3=240

  back_offplate  k1=500, k2=380, k3=240

  yoke:          k1=520, k2=400, k3=260

  deltoids:      k1=460, k2=350, k3=220

  pelvis:        k1=480, k2=360, k3=230

  thighs:        k1=440, k2=330, k3=210

Utilization u_i for AWRC_use:

  Config A: front_plate=0.95, back_plate=0.95, sides_soft=0.90, others=0.00

  Config B: front_plate=0.95, back_plate=0.95, sides_soft=0.90,

            front_offplate=0.80, back_offplate=0.80, yoke=0.50,

            deltoids=0.70, pelvis=0.40, thighs=0.20

Added mass and cost in B vs A:

  torso_soft (front_offplate + back_offplate): mass=1.8 kg, cost=$600

  yoke:        mass=0.6 kg, cost=$150

  deltoids:    mass=0.8 kg, cost=$250

  pelvis:      mass=0.7 kg, cost=$200

  thighs:      mass=1.2 kg, cost=$300

  Total added: mass=5.1 kg, cost=$1500

Step 1. Spot checks for S_i(k) from V50 and sigma

Example 1 (yoke, k1):

  z=(450 – 520)/30 = -2.333333

  P_perforation = Ncdf(-2.333333) = 0.009800

  S_yoke(k1) = 1 – 0.009800 = 0.990200

Example 2 (deltoids, k2):

  z=(350 – 350)/30 = 0.000000

  P_perforation = 0.500000

  S_delts(k2) = 0.500000

Example 3 (thighs, k3):

  z=(250 – 210)/30 = 1.333333

  P_perforation = 0.908789

  S_thighs(k3) = 0.091211

Step 2. Region-level expected stopping E[S_i] (weighted by w1, w2, w3)

front_plate   E[S]=1.000000

back_plate    E[S]=1.000000

sides_soft    E[S]=0.796853

front_offplate E[S]=0.796853

back_offplate  E[S]=0.796853

yoke          E[S]=0.904968

deltoids      E[S]=0.490482

pelvis        E[S]=0.649799

thighs        E[S]=0.272863

Step 3. AWRC for Config A and B

AWRC = ( sum_i A_i * E[S_i] ) / 7100

Config A numerator:

  front_plate   750*1.000000 = 750.000000

  back_plate    750*1.000000 = 750.000000

  sides_soft    800*0.796853 = 637.482616

  Others        0

  Numerator_A = 2137.482531

  AWRC_A = 2137.482531 / 7100 = 0.301054

Config B numerator:

  front_plate      750*1.000000   = 750.000000

  back_plate       750*1.000000   = 750.000000

  sides_soft       800*0.796853   = 637.482616

  front_offplate  1000*0.796853   = 796.853271

  back_offplate   1000*0.796853   = 796.853271

  yoke             400*0.904968   = 361.987284

  deltoids         800*0.490482   = 392.385958

  pelvis           600*0.649799   = 389.879504

  thighs          1000*0.272863   = 272.863235

  Numerator_B = 5148.305054

  AWRC_B = 5148.305054 / 7100 = 0.725113

Delta_AWRC = 0.725113 – 0.301054 = 0.424060

Delta_AWRC_per_kg = 0.424060 / 5.1 = 0.083149

Delta_AWRC_per_$K = 0.424060 / 1.5 = 0.282706

Step 4. AWRC_use with utilization penalties

AWRC_use = ( sum_i (u_i * A_i) * E[S_i] ) / 7100

Config A numerator_use:

  front_plate  0.95*750*1.000000 = 712.500000

  back_plate   0.95*750*1.000000 = 712.500000

  sides_soft   0.90*800*0.796853 = 573.734355

  Numerator_use_A = 1998.734273

  AWRC_use_A = 1998.734273 / 7100 = 0.281512

Config B numerator_use:

  front_plate      0.95*750*1.000000 = 712.500000

  back_plate       0.95*750*1.000000 = 712.500000

  sides_soft       0.90*800*0.796853 = 573.734355

  front_offplate   0.80*1000*0.796853 = 637.482616

  back_offplate    0.80*1000*0.796853 = 637.482616

  yoke             0.50*400*0.904968 = 181.0 (361.987284/2) = 180.993642

  deltoids         0.70*800*0.490482 = 274.391768

  pelvis           0.40*600*0.649799 = 155.951802

  thighs           0.20*1000*0.272863 = 54.572647

  Numerator_use_B = 3939.887768

  AWRC_use_B = 3939.887768 / 7100 = 0.554914

Delta_AWRC_use = 0.554914 – 0.281512 = 0.273402

Step 5. Marginal returns by module (each added to Config A alone)

Overall package (B minus A):

  Delta_AWRC=0.424060, per kg=0.083149, per $K=0.282706

Module results (AWRC_with_module, Delta_AWRC, per_kg, per_$K):

  torso_soft: (0.525520, 0.224466, 0.124703, 0.374110)

  yoke:       (0.352038, 0.050984, 0.084974, 0.339894)

  pelvis:     (0.355966, 0.054913, 0.078447, 0.274563)

  deltoids:   (0.356320, 0.055266, 0.069082, 0.221063)

  thighs:     (0.339485, 0.038431, 0.032026, 0.128105)

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Upcoming Events



STAY CONNECTED

7,597FansLike
463FollowersFollow
2,370SubscribersSubscribe