BATTLE DAMAGE
ASSESSMENT
Why BDA Is Mandatory
Without BDA, the FPV pilot reports "hit" based on seeing the drone's video feed cut to static at the moment of impact. The pilot assumes destruction. The commander records "destroyed" in the situation report. The brigade updates its COP — one fewer enemy vehicle. The next echelon plans its advance assuming the route is clear. Then the infantry encounters a functional tank that was supposedly destroyed two hours ago. Casualties result from a false assessment that BDA would have corrected in 60 seconds.
Publicly reported data from Ukrainian operations 2023–2025 (RUSI Watling & Reynolds (2023) and ISW archive) quantifies the problem: 30-40 percent of FPV hits on armored vehicles do not render them combat-ineffective. The shaped charge jet from a PG-7VL warhead can penetrate 300mm of RHA steel, but penetration does not guarantee destruction. If the jet strikes the engine compartment: catastrophic kill (fire, explosion). If it strikes the turret side hitting ammunition: catastrophic kill. If it strikes the upper glacis at an oblique angle: penetration but the jet disperses inside without hitting critical systems. The crew is shaken but the vehicle drives away 10 minutes later.
BDA Methodology — Three Categories
Category K (Killed): fire visible on thermal camera (engine bay temperature exceeds 200°C above ambient), black smoke on visual camera, secondary explosions (ammunition cook-off). The vehicle is functionally destroyed. No re-attack needed. Record time, coordinates, and BDA imagery for pattern analysis.
Category M (Mobility Kill): track broken or separated (visible on visual camera), vehicle listing to one side (suspension damage), wheels missing or displaced. The vehicle cannot move but weapons systems may still function. The crew is alive and can still fire. Decision point: is the immobilized vehicle still a threat in its current position? If it covers a key approach, a second FPV strike may be needed to achieve a firepower kill.
Category MISS: no visible change on visual or thermal camera compared to pre-strike imagery. The FPV either missed entirely (terminal guidance error, last-second evasive maneuver by target, wind gust) or struck a non-critical area with insufficient effect. Re-attack required. Lisa 26 L2 automatically generates a re-attack recommendation with adjusted approach vector based on the analysis of why the first strike missed.
Automated BDA via Lisa 26
Fischer 26 captures pre-strike baseline imagery during its ISR orbit before the FPV launches. After the strike, Fischer 26 temporarily descends from 300 m cruise to 100-150 m AGL (brief 60 s transit — BDA doctrine). Both cameras capture post-strike imagery. YOLOv8 running on the Jetson compares the two image sets automatically. Temperature differential on thermal: if the target's thermal signature increased by more than 50°C in the 60 seconds after impact, it is burning (Category K). Shape change on visual: if the bounding box dimensions changed by more than 15 percent, structural damage occurred (possible M or K). No significant change in either modality: Category MISS.
DESIGN GOAL: automated BDA should reach approximately 85 percent agreement with manual expert assessment. This figure is based on YOLOv8 benchmark performance in published computer vision literature — FSG-A has not tested on actual battle damage imagery because no BDA dataset has been collected. Edge cases where the AI misclassifies minor damage as MISS or overestimates superficial damage severity These edge cases are flagged for human review on the Lisa 26 COP — the commander sees "BDA: UNCERTAIN — manual review recommended" and can examine the pre/post imagery personally before recording the assessment.
BDA Pattern Analysis
Individual BDA assessments are tactical data — one strike, one outcome. Collected BDA data across hundreds of strikes reveals strategic patterns. Lisa 26 stores all BDA records in PostgreSQL with PostGIS spatial indexing. Pattern queries answer questions that no single engagement can: which FPV warhead type is most effective against T-72 turret armor? Answer (HYPOTHETICAL ANALYSIS — FSG-A has not collected such data): published Ukrainian combat reports suggest top-attack profiles at steep dive angles achieve significantly higher K-kill rates against T-72 turret armor than shallow side impacts. Specific percentages would require analysis of actual operational data which FSG-A does not have. This is the type of data-driven optimization that Lisa 26 would enable for any brigade accumulating its own BDA records.
BDA Classification Thresholds
AUTOMATED BDA — DECISION THRESHOLDS
Battle damage assessment accuracy determines whether the brigade's situational picture reflects reality. Overestimating damage leads to advancing into undestroyed positions. Underestimating damage wastes follow-up strikes on already-destroyed targets. Both waste resources and cost lives — accurate damage assessment is not administrative overhead but operational necessity.
Implementation
# Automated BDA Comparison — Pre/Post Strike Classification
# Runs on Jetson Orin Nano alongside YOLOv8 inference
def classify_bda(pre_detection, post_detection, pre_thermal, post_thermal):
"""
Compare pre/post strike detections and return BDA category.
pre_detection / post_detection: YOLOv8 output dicts
pre_thermal / post_thermal: mean engine-compartment temperature (°C)
Returns one of: 'K', 'M', 'F', 'MISS', 'UNCERTAIN'
"""
# Category K — fire / ammunition cook-off
thermal_delta = post_thermal - pre_thermal
if thermal_delta > 50: # °C rise → burning
return 'K'
# Check if target detected at all post-strike
if not post_detection:
# No bounding box found — could be destroyed or obscured by smoke
if thermal_delta > 20:
return 'K' # Smoke + elevated temp = kill
return 'UNCERTAIN'
# Category M — mobility kill via shape change
pre_w, pre_h = pre_detection['bbox_wh']
post_w, post_h = post_detection['bbox_wh']
shape_change = abs(pre_w * pre_h - post_w * post_h) / (pre_w * pre_h)
if shape_change > 0.15: # 15% area change
return 'M'
# Category F — turret rotation or damage
if abs(post_detection['turret_angle'] - pre_detection['turret_angle']) > 30:
return 'F'
# No significant change → miss
if thermal_delta < 10 and shape_change < 0.05:
return 'MISS'
return 'UNCERTAIN' # Flag for commander review
# Example usage
result = classify_bda(
pre_detection={'bbox_wh': (180, 95), 'turret_angle': 45},
post_detection={'bbox_wh': (180, 92), 'turret_angle': 45},
pre_thermal=35.0, # ambient
post_thermal=110.0 # burning
)
print(f"BDA: {result}") # Expected: K
← Part of Platoon Integration
Related Chapters
Sources
Parameter sources. PG-7VL penetration 300 mm RHA — published warhead technical descriptions. YOLOv8 thresholds of 85% bounding-box agreement, 50 °C thermal delta, and 15% shape change are FSG-A design choices based on typical YOLOv8 benchmarks in the computer-vision literature. BDA pass altitude 120 m AGL — Fischer 26 design parameter. PostgreSQL/PostGIS spatial indexing parameters — PostGIS standard documentation.
Operational estimates — public sources, not validated by FSG-A. The 30–40% FPV-hit non-kill rate is quoted from published ISW and RUSI reports 2023–2025. BDA K/M/MISS categories follow NATO AJP-3.9 methodology, adapted to drone operations by FSG-A. The "top-attack against T-72 turret armor" statement is explicitly flagged as hypothetical: FSG-A has not collected real BDA data to confirm specific percentages. The 85% expected automated-BDA accuracy is a design goal based on YOLOv8 benchmarks, not measured on real BDA imagery.
Architectural constraints. Edge cases are automatically flagged for human review — this is not a parameter but code logic: when the AI has low confidence in classification, the recommendation enters "UNCERTAIN" status and requires manual confirmation before closing the BDA record.
External standards and references. Ukrainian FPV BDA statistics 2023-2026 (open source compilations). Oryx vehicle loss documentation. PG-7VL warhead penetration specifications. YOLOv8 image comparison methodology. NATO AJP-3.9 BDA methodology. FSG-A BDA database analysis (not yet collected — module tested only on synthetic data in SITL).