{"slug": "ai-observability-model-pricing-set-llm-token-costs", "title": "AI Observability Model Pricing - Set LLM Token Costs", "summary": "SigNoz's AI Observability feature lets teams set per-model token prices so it can calculate the USD cost of each span, with SigNoz Cloud shipping default prices for common models while self-hosted SigNoz requires a pricing rule per model. Admins add rules via the Model pricing tab by entering a Billing Model ID such as `openai:gpt-4o`, a provider, prefix-match patterns on `gen_ai.request.model`, and input and output costs per 1M tokens, plus optional `cache_read` and `cache_write` buckets using Subtract (OpenAI style), Additive (Anthropic style), or Unknown cache modes. The Unpriced models tab lists models seen in spans from the last hour that match no rule, and SigNoz cannot calculate cost for those spans until they are mapped to an existing rule or given a new one.", "body_md": "Use the **Model pricing** tab of [AI Observability](https://signoz.io/docs/ai-observability/) to set the price for each model. SigNoz uses these prices to calculate the cost of each span in USD. For prerequisites, see the [AI Observability overview](https://signoz.io/docs/ai-observability/#prerequisites).\n\nTo open the tab, select **More** > **AI Observability** in the side navigation, then select the **Model pricing** tab.\n\nThe tab has two parts: **Model Costs** lists your pricing rules, and **Unpriced models** lists models that no rule prices.\n\n## Model Costs tab\n\nSigNoz Cloud includes default prices for common models. In self-hosted SigNoz, add a pricing rule for each of your models.\n\n| Column | What it shows | \n|---|---|\n| **Model** | The billing model name and its ID, for example `openai:gpt-4o` . | \n| **Provider** | The provider of the model, for example OpenAI or Anthropic. | \n| **Input / 1M** | The price for one million input tokens, in USD. | \n| **Output / 1M** | The price for one million output tokens, in USD. | \n| **Extra buckets** | The prices for cached tokens (Cache Read, Cache Write), if the rule has them. | \n| **Source** | **Auto** for a default price from SigNoz Cloud (**Auto-populated** in the drawer), or**User override** for a price that an Admin set. | \n| **Last seen** | The time since the rule was last updated or synced. | \n\nTo find a rule, type a model name or a provider name in the **Search by model or provider** box. To show only one type of rule, select **User override** or **Auto** in the source filter.\n\nTo share the filtered table, copy the page URL.\n\n## Add a pricing rule\n\nOnly Admins can add, edit, map, or delete pricing rules.\n\n1. On the **Model Costs** tab, select**Add model cost** .\n2. In **Billing Model ID** , type an ID for the rule, for example`openai:gpt-4o` . You cannot change the ID or the**Provider** after you save.\n3. Select the **Provider** .\n4. In **Model name patterns (prefix match)** , add the`gen_ai.request.model` values that this rule prices. To match every name that starts with a prefix, end the pattern with`*` , for example`gpt-4o*` . A pattern without`*` matches only that exact name.\n5. In **Pricing (per 1M tokens, USD)** , type the**Input Cost** and the**Output Cost** . If the provider charges a different cached-token price, select**Add pricing bucket** . Add a`cache_read` or`cache_write` price.\n6. If you added cache prices, select the **Cache mode** that matches the provider:\n  - **Subtract (OpenAI style)** : the input token count includes cached tokens. SigNoz subtracts the cache-read tokens from the input tokens and bills them at the`cache_read` price.\n  - **Additive (Anthropic style)** : the input token count excludes cached tokens. SigNoz bills input,`cache_read` , and`cache_write` tokens at their own prices.\n  - **Unknown** (default): SigNoz bills all input tokens at the input price and does not use the cache prices.\n7. Select **Save** .\n\n## Edit or delete a pricing rule\n\nTo edit a rule, open the menu (⋮) at the end of its row and select **Edit**.\n\nYou cannot change the prices of an **Auto-populated** rule. To set your own, change the source to **User override**. To go back to the default price, select **Auto-populated** again and confirm. SigNoz discards your custom prices.\n\nTo delete a rule, open the menu (⋮) on its row. Select **Delete**, then confirm.\n\n## Price an unpriced model\n\nThe **Unpriced models** tab lists models that SigNoz found in spans from the last hour but that match no pricing rule. SigNoz cannot calculate cost for spans from these models. In this tab, the UI calls a pricing rule a pricing model.\n\nTo price a model:\n\n1. In the **Map to billing model** column of the model, open the**Select / Create a pricing model** dropdown.\n2. Select an existing rule.\n3. Select **Map model** . SigNoz adds the model name as a pattern on that rule.\n\nTo set a new price instead, select **Create a new pricing model** at the bottom of the dropdown. The **Add model cost** drawer opens with the model name in **Billing Model ID**. Complete it as in [Add a pricing rule](#add-a-pricing-rule).\n\nWhen no model from the last hour is unpriced, the tab shows \"All models in your traces are priced.\"\n\n## When price changes take effect\n\nA price change applies to spans that SigNoz receives after the change. If you reset a rule to the default SigNoz price, the reset can take up to 24 hours. Stored spans do not change.\n\n## Validate\n\n1. After the new price takes effect, send a new LLM span for the model from your application.\n2. In the [Explorer](https://signoz.io/docs/ai-observability-explorer/)**List View** , run a filter on the model, for example`gen_ai.request.model = 'gpt-4o'` .\n3. Select a span. The span opens in Trace Details.\n4. In the span attributes, make sure that `signoz.gen_ai.usage.tokens.cost` exists. If it is missing, no rule matches the model name, so check the patterns of the rule. A value of`0` means the price or the token count is zero.\n\n## Next steps\n\n- [AI Observability overview](https://signoz.io/docs/ai-observability/) : see cost, tokens, latency, and tool calls on one dashboard.\n- [Explorer](https://signoz.io/docs/ai-observability-explorer/) : query your LLM and agent traces.\n- [Attribute Mapping](https://signoz.io/docs/ai-observability-attribute-mapping/) : map other attribute names to the GenAI names.\n- [LLM Observability integrations](https://signoz.io/docs/llm-observability/) : instrument OpenAI, Anthropic, LiteLLM, CrewAI, and other frameworks.\n\n## Get Help\n\nIf you need help with the steps in this topic, please reach out to us on [SigNoz Community Slack](https://signoz.io/slack/). If you are a SigNoz Cloud user, please use in product chat support located at the bottom right corner of your SigNoz instance or contact us at [cloud-support@signoz.io](mailto:cloud-support@signoz.io).", "url": "https://wpnews.pro/news/ai-observability-model-pricing-set-llm-token-costs", "canonical_source": "https://signoz.io/docs/ai-observability-model-pricing", "published_at": "2026-09-29 00:00:00+00:00", "updated_at": "2026-09-30 17:18:25.239965+00:00", "lang": "en", "topics": ["ai-infrastructure", "mlops", "large-language-models", "ai-tools"], "entities": ["SigNoz", "AI Observability", "OpenAI", "Anthropic", "gpt-4o"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/ai-observability-model-pricing-set-llm-token-costs", "markdown": "https://wpnews.pro/news/ai-observability-model-pricing-set-llm-token-costs.md", "text": "https://wpnews.pro/news/ai-observability-model-pricing-set-llm-token-costs.txt", "jsonld": "https://wpnews.pro/news/ai-observability-model-pricing-set-llm-token-costs.jsonld"}}