> ## Documentation Index
> Fetch the complete documentation index at: https://docs.evidence.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Delta

> Display an inline delta value with an up/down indicator

<img src="https://mintcdn.com/evidence/Z2CIIsynbphd2HX3/images/components/delta/delta.png?fit=max&auto=format&n=Z2CIIsynbphd2HX3&q=85&s=fe51a0cd84cde3e514892dfd54c869ff" alt="Basic Usage" width="1000" height="48" data-path="images/components/delta/delta.png" />

```liquid theme={null}
{% delta 
	data="demo.daily_orders" 
	value="sum(total_sales)"
	comparison={
		compare_vs="target"
		target="120000000"
	}
/%}
```

## Examples

### Basic Usage

<img src="https://mintcdn.com/evidence/Z2CIIsynbphd2HX3/images/components/delta/delta.png?fit=max&auto=format&n=Z2CIIsynbphd2HX3&q=85&s=fe51a0cd84cde3e514892dfd54c869ff" alt="Basic Usage" width="1000" height="48" data-path="images/components/delta/delta.png" />

```liquid theme={null}
{% delta 
	data="demo.daily_orders" 
	value="sum(total_sales)"
	comparison={
		compare_vs="target"
		target="120000000"
	}
/%}
```

## Attributes

<ResponseField name="data" type="string" required>
  Table or view to query
</ResponseField>

<ResponseField name="value" type="string" required>
  SQL expression to insert into the SELECT part of the query (e.g., "COUNT(\*)", "SUM(sales)")
</ResponseField>

<ResponseField name="fmt" type="string">
  Format code for the value (e.g., "num", "usd", "pct"). See formatValue documentation for available formats. See [Value Formatting](/core-concepts/value-formatting) for available formats.
</ResponseField>

<ResponseField name="text" type="string">
  Text appearing after the delta (e.g., vs. prev month)
</ResponseField>

<ResponseField name="chip" type="boolean" default="false">
  Whether to display as a chip
</ResponseField>

<ResponseField name="comparison" type="options group">
  Comparison configuration object

  **Example:**

  ```
  comparison={
    compare_vs = "prior year"
    display_type = "compared_value"
    target = "string"
    benchmark = {
      agg = "avg"
      subject = "store_name"
      within = ["region"]
    }
    hide_pct = true
    pct_fmt = "string"
    abs_fmt = "string"
    down_is_good = true
  }
  ```

  **Attributes:**

  * compare\_vs: `string` - Type of comparison to perform. Options: prior year (same period last year), prior period (previous period of same duration), target (compare against a target value), benchmark (compare against group average/aggregate)
    * **Allowed values:**
      * `prior year`
      * `prior period`
      * `target`
      * `benchmark`
  * display\_type: `string` - What to display for comparison. Options: compared\_value (comparison period value), abs (absolute change), pct (percentage change). Default: pct
    * **Allowed values:**
      * `compared_value`
      * `abs`
      * `pct`
  * target: `string` - Target value for target comparison. Can be a column name, aggregation (e.g., "sum(target\_sales)"), or literal value.
  * benchmark: `options group`
    * **Options:**
      * agg: `string` - Aggregation function to apply across benchmark group. Options: avg (average), median, min, max, sum, count, count\_distinct
        * **Allowed values:**
          * `avg`
          * `median`
          * `min`
          * `max`
          * `sum`
          * `count`
          * `count_distinct`
      * subject: `string` - Column or expression that defines individual entities in the benchmark (e.g., "store\_name", "customer\_id"). Required for single-value components.
      * value: `string` - Optional column or expression to use for benchmark calculation. If not specified, uses the main value column. Useful if you have a pre-aggregated benchmark table for RLS reasons.
      * within: `array of strings` - Dimension columns to group the benchmark by (e.g., \["region"]). Leave empty for dataset-wide benchmark.
      * where: `string` - SQL WHERE clause to filter which entities are included in the benchmark
      * exclude\_self: `boolean` - Exclude the current row from its own benchmark calculation (table context only). Default: false
  * hide\_pct: `boolean` - Hide the percentage change line in comparison tooltips
  * pct\_fmt: `string` - Format code for percentage values in comparison tooltips
  * abs\_fmt: `string` - Format code for absolute values in comparison tooltips
  * down\_is\_good: `boolean` - Whether a downward trend is considered positive
</ResponseField>

<ResponseField name="show_value" type="boolean" default="true">
  Whether to show the value
</ResponseField>

<ResponseField name="show_symbol" type="boolean" default="true">
  Whether to show the delta symbol
</ResponseField>

<ResponseField name="symbol_position" type="string" default="right">
  Position of the delta symbol relative to the value

  **Allowed values:**

  * `left`
  * `right`
</ResponseField>

<ResponseField name="neutral_range" type="array" default="[0,0]">
  Range \[min, max] for neutral values. Use null for infinity (e.g., \[null, 0] means anything ≤ 0 is neutral)
</ResponseField>

<ResponseField name="filters" type="array">
  IDs of filters to apply to the query
</ResponseField>

<ResponseField name="refresh_interval" type="number">
  Time in seconds between automatic data refreshes (minimum 60). Overrides the page-level auto-refresh setting for this component.
</ResponseField>

<ResponseField name="where" type="string">
  Custom SQL WHERE condition to apply to the query. For date filters, use date\_range instead.
</ResponseField>

<ResponseField name="having" type="string">
  Custom SQL HAVING condition to apply to the query after GROUP BY
</ResponseField>

<ResponseField name="limit" type="number">
  Maximum number of rows to return from the query. Note: When used with tables, limit will disable subtotals to prevent incomplete subtotal rows.
</ResponseField>

<ResponseField name="order" type="string">
  Column name(s) with optional direction (e.g. "column\_name", "column\_name desc")
</ResponseField>

<ResponseField name="qualify" type="string">
  Custom SQL QUALIFY condition to filter windowed results
</ResponseField>

<ResponseField name="date_range" type="options group">
  Use date\_range to filter data for specific time periods. Accepts predefined ranges (e.g., "last 12 months"), dynamic ranges (e.g., "Last 90 days"), custom date ranges (e.g., "2020-01-01 to 2023-03-01"), or partial ranges (e.g., "from 2020-01-01", "until 2023-03-01")

  **Example:**

  ```
  date_range={
    range = "today"
    date = "string"
  }
  ```

  **Attributes:**

  * range: `string` - Time period to filter. Use presets like 'last 7 days', dynamic patterns like 'Last 90 days', custom ranges like '2020-01-01 to 2023-03-01', or partial ranges like 'from 2020-01-01'.
    * **Allowed values:**
      * `today`
      * `yesterday`
      * `last 7 days`
      * `last 30 days`
      * `last 3 months`
      * `last 6 months`
      * `last 12 months`
      * `previous week`
      * `previous month`
      * `previous quarter`
      * `previous year`
      * `this week`
      * `this month`
      * `this quarter`
      * `this year`
      * `next week`
      * `next month`
      * `next quarter`
      * `next year`
      * `week to date`
      * `month to date`
      * `quarter to date`
      * `year to date`
      * `all time`
  * date: `string` - Date column to filter on. Required when the data has multiple date columns.
</ResponseField>

<ResponseField name="width" type="number">
  Set the width of this component (in percent) relative to the page width
</ResponseField>
