---
title: "Attribute keys"
description: "Reference for the public judgment.* span attribute keys Judgment accepts as attribute-mapper targets."
seo:
  title: "Judgment Span Attribute Keys | Reference"
  description: "Exact public Judgment OpenTelemetry attribute keys for span display, identifiers, LLM usage, and cost."
---

Judgment reads the following public `judgment.*` OpenTelemetry span attributes
as structured fields. The Judgeval SDKs set them for you. Use this reference
when you [add attributes manually](/documentation/tracing/attributes), export
raw OpenTelemetry spans, or choose a target for an
[attribute mapper](/documentation/tracing/attribute-mappers).

Attributes that use other keys remain stored and searchable as custom
attributes.

## Core

| Label | Key | Description |
| --- | --- | --- |
| Input | `judgment.input` | The input a step receives. |
| Output | `judgment.output` | The output a step produces. |
| Tool Calls | `judgment.llm.tool_calls` | Structured tool or function calls made during a step. |
| Span Kind | `judgment.span_kind` | The type of step, such as `llm`, `tool`, `function`, or `agent`. |
| Span Name | `judgment.span_name` | The name shown for this step in the trace. |
| Agent Version | `judgment.agent_version` | The version of the agent or prompt implementation used for this step. |

## Identifiers

| Label | Key | Description |
| --- | --- | --- |
| Session ID | `judgment.session_id` | Ties traces to one conversation or session. |
| Customer ID | `judgment.customer_id` | Identifies the customer tenant or account for filtering and breakdowns. |
| Customer User ID | `judgment.customer_user_id` | Identifies an individual end user. |

## Usage and cost

| Label | Key | Description |
| --- | --- | --- |
| LLM Provider | `judgment.llm.provider` | The model provider, such as OpenAI or Anthropic. |
| LLM Model Name | `judgment.llm.model` | The exact model used. |
| Non-Cached Input Tokens | `judgment.usage.non_cached_input_tokens` | Input tokens charged at the normal uncached rate. |
| Cache Creation Input Tokens | `judgment.usage.cache_creation_input_tokens` | Input tokens written into the prompt cache. |
| Reasoning Tokens | `judgment.usage.reasoning_tokens` | Tokens a reasoning model spends thinking. |
| Cache Read Input Tokens | `judgment.usage.cache_read_input_tokens` | Input tokens read from the prompt cache at the cached rate. |
| Output Tokens | `judgment.usage.output_tokens` | Tokens the model generated in its response. |
| Non-Cached Input Image Tokens | `judgment.usage.non_cached_input_image_tokens` | Image input tokens charged at the normal rate. |
| Output Image Tokens | `judgment.usage.output_image_tokens` | Image tokens generated by the model. |
| Total Cost (USD) | `judgment.usage.total_cost_usd` | A total cost already computed for this step, in USD. |

Judgment can calculate cost from provider, model, and token counts. Set
`judgment.usage.total_cost_usd` only when you already have an authoritative
cost for the step.

## Related pages

- [Add attributes and context](/documentation/tracing/attributes)
- [Configure attribute mappers](/documentation/tracing/attribute-mappers)
- [Direct OTEL](/documentation/integrations/tracing-providers/direct-otel)
