---
title: interpolated_delta() | Tiger Data Docs
description: Calculate the change in a gauge, interpolating values at boundaries as needed
---

Early access [1.8.0](https://github.com/timescale/timescaledb-toolkit/releases/tag/1.8.0)

Calculate the change in a gauge over the time period covered by a gauge aggregate. Data points at the exact boundaries of the time period aren’t needed. The function interpolates the gauge values at the boundaries from adjacent gauge aggregates if needed.

## Samples

Calculate the gauge delta for each 15-minute interval, using interpolation to get the values at the interval boundaries if they don’t exist in the data.

```
SELECT
    id,
    bucket,
    interpolated_delta(
        summary,
        bucket,
        '15 min',
        LAG(summary) OVER (PARTITION BY id ORDER by bucket),
        LEAD(summary) OVER (PARTITION BY id ORDER by bucket)
    )
FROM (
    SELECT
        id,
        time_bucket('15 min'::interval, ts) AS bucket,
        gauge_agg(ts, val) AS summary
    FROM foo
    GROUP BY id, time_bucket('15 min'::interval, ts)
) t
```

## Arguments

The syntax is:

```
interpolated_delta(
    summary GaugeSummary,
    start TIMESTAMPTZ,
    interval INTERVAL
    [, prev GaugeSummary]
    [, next GaugeSummary]
) RETURNS DOUBLE PRECISION
```

| Name       | Type           | Default | Required | Description                                                                                                                                                                     |
| ---------- | -------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `summary`  | `GaugeSummary` | -       | ✔        | A gauge aggregate created using [`gauge_agg`](/docs/reference/toolkit/counters-and-gauges/gauge_agg/gauge_agg/index.md)                                                         |
| `start`    | `TIMESTAMPTZ`  | -       | ✔        | The start of the time period to compute the delta over                                                                                                                          |
| `interval` | `INTERVAL`     | -       | ✔        | The length of the time period to compute the delta over                                                                                                                         |
| `prev`     | `GaugeSummary` | -       |          | The gauge aggregate from the previous interval, used to interpolate the value at `start`. If `NULL`, the first timestamp in `summary` is used as the start of the interval.     |
| `next`     | `GaugeSummary` | -       |          | The gauge aggregate from the next interval, used to interpolate the value at `start + interval`. If `NULL`, the last timestamp in `summary` is used as the end of the interval. |

## Returns

| Column              | Type             | Description                                                                                                                                                                                                                |
| ------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| interpolated\_delta | DOUBLE PRECISION | The delta between the first and last points of the time interval. If exact values are missing in the raw data for the first and last points, these values are interpolated linearly from the neighboring gauge aggregates. |
