Problem:
The staleness-decay logic that lets a frozen average model recover a competitive score is implemented inside avg-ttft-scorer with non-tunable parameters, and the same mechanism is needed by avg-tpot-scorer but can't be reused.
Solution:
Extract decay into a single helper reusable by any EMA-based scorer.
Expose decayWeight (0 disables) and stalenessThreshold as JSON config on each scorer.
Problem:
The staleness-decay logic that lets a frozen average model recover a competitive score is implemented inside
avg-ttft-scorerwith non-tunable parameters, and the same mechanism is needed byavg-tpot-scorerbut can't be reused.Solution:
Extract decay into a single helper reusable by any EMA-based scorer.
Expose
decayWeight(0 disables) andstalenessThresholdas JSON config on each scorer.