Two samples and a subtraction to cancel the chat template overhead is such a cheap fix, and I had been dividing by a single sample without ever thinking about it. The line about the transcript re-sending itself on every call matches what hurt my agent costs, long before the window itself filled up. Do you re-measure the ratio only when you switch models, or on every run?