diff --git a/defenders/calcs_defense.py b/defenders/calcs_defense.py index 727712a..042bfed 100644 --- a/defenders/calcs_defense.py +++ b/defenders/calcs_defense.py @@ -383,14 +383,26 @@ def arm_outfield(all_arms: list): if not all_arms: return 5 - if max(all_arms) > 8: - return -6 - elif max(all_arms) > 4: - return -5 - elif max(all_arms) < -4: - return +5 + # Thresholds adjusted for tz_runs_total scale (ranges ~-8 to +23) + # Note: These thresholds are for tz_runs_total, not bis_runs_outfield + if max(all_arms) > 18: + return -6 # Exceptionally rare (top ~2-3 players) + elif max(all_arms) > 14: + return -5 # Elite arms (~5-8 players) + elif max(all_arms) > 10: + return -4 # Very good arms + elif max(all_arms) > 6: + return -3 # Good arms + elif max(all_arms) > 2: + return -2 # Above average + elif max(all_arms) > -2: + return -1 # Average + elif max(all_arms) > -5: + return 0 # Below average + elif max(all_arms) > -8: + return 1 # Poor arm else: - return max(all_arms) * -1 + return 2 # Very poor arm def arm_catcher(cs_pct: str, raa: int, season_pct: float) -> int: