# `Agentic.CostCalculator`

Calculates LLM costs from token counts and model pricing data.

Uses a hardcoded fallback pricing table. All rates are per million tokens (mtok).

# `calculate`

```elixir
@spec calculate(
  String.t() | nil,
  String.t() | nil,
  non_neg_integer(),
  non_neg_integer()
) :: float()
```

Calculate cost in USD from token counts and model pricing.

Returns 0.0 if pricing cannot be determined.

# `lookup_pricing`

```elixir
@spec lookup_pricing(String.t() | nil) :: {float(), float()} | nil
```

Look up pricing for a model. Returns `{input_rate, output_rate}` or `nil`.

# `lookup_pricing_table`

```elixir
@spec lookup_pricing_table() :: %{required(String.t()) =&gt; {float(), float()}}
```

Returns the hardcoded fallback pricing table as a map of
`%{model_id => {input_rate, output_rate}}`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
