---
title: rate() | Tiger Data Docs
description: Calculate the rate of change from a counter aggregate
---

Since [1.3.0](https://github.com/timescale/timescaledb-toolkit/releases/tag/1.3.0)

Calculate the rate of change of the counter. This is the simple rate, equal to the last value minus the first value, divided by the time elapsed, after accounting for resets.

## Samples

Get the rate of change per `id` over the entire recorded interval.

```
SELECT
    id,
    rate(summary)
FROM (
    SELECT
        id,
        counter_agg(ts, val) AS summary
    FROM foo
    GROUP BY id
) t
```

## Arguments

The syntax is:

```
rate(
    summary CounterSummary
) RETURNS DOUBLE PRECISION
```

| Name      | Type             | Default | Required | Description                                                                                                                     |
| --------- | ---------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `summary` | `CounterSummary` | -       | ✔        | A counter aggregate created using [`counter_agg`](/docs/reference/toolkit/counters-and-gauges/counter_agg/counter_agg/index.md) |

## Returns

| Column | Type             | Description                       |
| ------ | ---------------- | --------------------------------- |
| rate   | DOUBLE PRECISION | The rate of change of the counter |
