Cost was always estimated locally from catalog per-token prices, which drifts from what OpenRouter actually charges (dynamic routing, BYOK, promos, provider-specific caching). Request OpenRouter's usage.include extension and use the returned usage.cost as the authoritative figure when present, falling back to the per-token estimate for providers that don't report it.