Expand description
Cluster-based BC degradation for improved accuracy
This module implements empirical velocity-dependent BC corrections based on bullet clustering. Bullets are classified into 4 clusters from their physical characteristics, and each cluster carries a velocity-keyed multiplier ladder.
MBA-1127 (2026-07): this is a faithful port of the Python reference model
ballistics.ml.cluster_bc_degradation.ClusterBCDegradation
(version tag 2026-07-08-radar-recal-mba1126), which is the single source of
truth. The ladders and the classifier below MUST stay byte-for-byte equivalent
to that model; tests::test_parity_with_python_reference locks the values with
goldens generated from the Python implementation.
MBA-1126 recalibration notes (why these values differ from the old MBA-645 ladders): the multipliers are ratios r(v) = BC_G7(v) / BC_G7_banded_avg computed in form-factor space against the 84-point standard G7 table, from 50 Lapua radar .drg curves + 281 doppler-derived curves. Because the G7 reference curve already carries the transonic drag rise, a G7 BC is nearly FLAT through the supersonic band and actually RISES slightly (~+4-8%) around 1000-1200 fps for match bullets. The old deep transonic dips (0.82-0.90 at 1200-1500) were G1-band shapes misapplied to G7 semantics and over-degraded every transonic trajectory (and the BC5D tables sampled from this model). Multipliers may therefore exceed 1.0.