# Model Rate Registry `llm_connect.rates` owns static model list prices used for planning and post-hoc estimates. ## Contract - `ModelRate` records `model_id`, prompt and completion rates in USD per 1,000 tokens, `currency`, `source_url`, and `captured_at`. - `ModelRateRegistry.default()` returns the bundled OpenRouter snapshot (base rates captured `2026-05-17`; `moonshotai/kimi-k3` captured `2026-08-03` at `$0.003` / `$0.015` per 1k prompt/completion). - `ModelRateRegistry.from_yaml(path)` accepts the package/consumer override shape: ```yaml schema_version: 1 currency: USD source_url: https://openrouter.ai/models captured_at: "2026-05-17" rates: openai/gpt-4o-mini: prompt_per_1k: 0.00015 completion_per_1k: 0.00060 moonshotai/kimi-k3: prompt_per_1k: 0.003 completion_per_1k: 0.015 ``` - `merged_with(override)` returns a new registry where matching override entries replace default entries by `model_id`. Rates are a static snapshot. Consumers decide whether `captured_at` is fresh enough for their workflow. List prices remain USD; EUR display conversion is handled by `llm_connect.fx` / `estimate_cost`.