====================================================================================================
PER-ARM DRUSSTGT DODGE QUALITY  (session commit f91e12196, 7 runs x 7 rounds)
attribution cross-check: 199/199 deaths have the mapped victim at ~0 energy
shipped baseline vs DrussGT is ~49%% round wins; this instrument is per SHOT (~thousands/arm), not per round.

--- ARM `pat` --- 7 runs, 49 rounds, 5586 shots
  OUR shooting: power mean=0.810 sd=0.262 iqr=0.500 distinct=601 | aim-offset sd=14.16 deg iqr=22.55 | fire range mean=470 px
  power histogram (top): 1.00:3163  0.50:1470  0.10:116  0.65:28  0.68:27  0.55:27  0.60:25  0.71:24  0.97:23  0.51:22
  aim-offset histogram (deg bucket): -30:3  -25:319  -20:440  -15:558  -10:620  -5:657  +0:671  +5:605  +10:467  +15:462  +20:470  +25:312  +30:1  +45:1
  GUN SELECTION ([config] switch lines): Pattern:54 | switches=0 over 7/7 runs

--- ARM `tmh` --- 7 runs, 49 rounds, 5417 shots
  OUR shooting: power mean=0.828 sd=0.253 iqr=0.500 distinct=594 | aim-offset sd=14.32 deg iqr=23.13 | fire range mean=480 px
  power histogram (top): 1.00:3161  0.50:1434  0.82:25  0.78:22  0.54:22  0.57:22  0.63:21  0.81:20  0.52:20  0.74:20
  aim-offset histogram (deg bucket): -35:2  -30:49  -25:291  -20:485  -15:517  -10:559  -5:625  +0:640  +5:561  +10:519  +15:442  +20:483  +25:215  +30:29
  GUN SELECTION ([config] switch lines): TMHorizon:54 | switches=0 over 7/7 runs

--- ARM `bb` --- 7 runs, 49 rounds, 5483 shots
  OUR shooting: power mean=0.829 sd=0.248 iqr=0.500 distinct=647 | aim-offset sd=14.33 deg iqr=22.82 | fire range mean=473 px
  power histogram (top): 1.00:3212  0.50:1416  0.90:25  0.62:24  0.71:23  0.86:22  0.56:22  0.52:22  2.00:22  0.60:22
  aim-offset histogram (deg bucket): -60:1  -45:1  -35:3  -30:6  -25:345  -20:443  -15:529  -10:607  -5:610  +0:662  +5:577  +10:486  +15:442  +20:482  +25:282  +30:5  +40:1  +50:1
  GUN SELECTION ([config] switch lines): BitBrain:55 | switches=0 over 7/7 runs

--- ARM `mix` --- 7 runs, 49 rounds, 5518 shots
  OUR shooting: power mean=0.811 sd=0.264 iqr=0.500 distinct=651 | aim-offset sd=14.30 deg iqr=23.20 | fire range mean=469 px
  power histogram (top): 1.00:3074  0.50:1486  0.10:61  0.59:26  0.73:24  0.52:24  0.70:23  0.77:23  0.72:22  0.57:22
  aim-offset histogram (deg bucket): -30:38  -25:255  -20:478  -15:524  -10:594  -5:609  +0:642  +5:581  +10:521  +15:478  +20:521  +25:248  +30:29
  GUN SELECTION ([config] switch lines): TMHorizon:275  BitBrain:258 | switches=476 over 7/7 runs

====================================================================================================
DRUSSGT DODGE QUALITY PER ARM  (mean, 95%% CI = run-cluster bootstrap)
  arm      shots |     miss miss/tick [95%CI] |      lat12    lat12 [95%CI] |   lat_ctrl lat_ctrl [95%CI] |     hit%
  ------------------------------------------------------------------------------------------------------------------
  pat       5586 |    117.0    4.64[ 4.56,  4.72] |       53.9 [ 52.5,  55.1] |       51.4 [ 50.4,  52.3] |    0.107
  tmh       5417 |    121.6    4.74[ 4.68,  4.80] |       54.6 [ 53.4,  55.5] |       52.7 [ 52.1,  53.3] |    0.099
  bb        5483 |    118.6    4.66[ 4.59,  4.72] |       54.0 [ 53.4,  54.7] |       52.1 [ 51.3,  52.8] |    0.099
  mix       5518 |    117.9    4.67[ 4.58,  4.76] |       54.4 [ 53.8,  55.0] |       52.6 [ 52.1,  53.1] |    0.101

====================================================================================================
MINIMUM DETECTABLE EFFECT (run-cluster level, n=7/arm, alpha=0.05 two-sided, 80% power; MDE = 2.8016*sd_perrun*sqrt(2/n))
  the shot counts are large but the RUNS are what set the between-arm uncertainty, so this is the honest floor
  metric              sd(per-run)       MDE(abs) MDE vs ref mean       
  miss                      2.437          3.650 3.1% of 117.029       
  miss/tick                 0.118          0.176 3.8% of 4.642         
  lat12                     1.824          2.732 5.1% of 53.898        
  lat_ctrl                  1.372          2.055 4.0% of 51.361        
  hit%                      0.006          0.008 0.1% of 10.705        

====================================================================================================
BETWEEN-ARM CONTRASTS (exact run-cluster permutation, C(14,7)=3432)
  pooled = pooled-shot difference A-B; strat = range-stratified (bands 200-300,300-450,450+, n-weighted)
  a mix that poisons DrussGT should show miss/tick, lat12 and lat_ctrl LOWER (worse dodging) than the best single gun
  metric                   A vs B                      pooled   perm p |     strat   perm p
  -----------------------------------------------------------------------------------------
  miss                     mix - tmh                   -3.691   0.0789 |    -2.108   0.1809  [exact]
  miss_per_tick            mix - tmh                   -0.065   0.2805 |    -0.080   0.1815  [exact]
  lat_fixed_abs            mix - tmh                   -0.190   0.7862 |    -0.054   0.9289  [exact]
  lat_ctrl_abs             mix - tmh                   -0.101   0.7984 |    -0.070   0.8584  [exact]
  hit                      mix - tmh                   +0.001   0.7040 |    +0.000   0.9441  [exact]

  miss                     mix - bb                    -0.683   0.7408 |    +0.048   0.9790  [exact]
  miss_per_tick            mix - bb                    +0.014   0.8048 |    +0.003   0.9522  [exact]
  lat_fixed_abs            mix - bb                    +0.368   0.4838 |    +0.443   0.3865  [exact]
  lat_ctrl_abs             mix - bb                    +0.537   0.2799 |    +0.546   0.2869  [exact]
  hit                      mix - bb                    +0.001   0.7291 |    +0.001   0.7932  [exact]

  miss                     tmh - pat                   +4.584   0.0114 |    +3.625   0.0189  [exact]
  miss_per_tick            tmh - pat                   +0.095   0.1081 |    +0.105   0.0673  [exact]
  lat_fixed_abs            tmh - pat                   +0.686   0.4699 |    +0.631   0.4926  [exact]
  lat_ctrl_abs             tmh - pat                   +1.340   0.0498 |    +1.356   0.0457  [exact]
  hit                      tmh - pat                   -0.008   0.0160 |    -0.006   0.0685  [exact]

  miss                     bb - pat                    +1.575   0.3632 |    +1.375   0.3283  [exact]
  miss_per_tick            bb - pat                    +0.016   0.7850 |    +0.019   0.7373  [exact]
  lat_fixed_abs            bb - pat                    +0.127   0.8858 |    +0.121   0.8905  [exact]
  lat_ctrl_abs             bb - pat                    +0.702   0.3067 |    +0.738   0.2893  [exact]
  hit                      bb - pat                    -0.008   0.0277 |    -0.008   0.0283  [exact]

  miss                     mix - pat                   +0.893   0.6242 |    +1.340   0.3318  [exact]
  miss_per_tick            mix - pat                   +0.030   0.6644 |    +0.020   0.7489  [exact]
  lat_fixed_abs            mix - pat                   +0.495   0.5817 |    +0.562   0.5322  [exact]
  lat_ctrl_abs             mix - pat                   +1.239   0.0562 |    +1.274   0.0481  [exact]
  hit                      mix - pat                   -0.006   0.1296 |    -0.007   0.1151  [exact]

JSON written to /tmp/ab/mix_dodge.json
