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

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

Calculate the slope of the linear least-squares fit for a counter aggregate. The dependent variable is the counter value, adjusted for resets, and the independent variable is time. Time is always in seconds, so the slope estimates the per-second rate of change. This gives a result similar to [`rate`](/docs/reference/toolkit/counters-and-gauges/counter_agg/rate/index.md), but it can more accurately reflect the usual counter behavior in the presence of infrequent, abnormally large changes.

## Samples

Calculate the counter slope per `id` and per 15-minute interval.

```
SELECT
    id,
    bucket,
    slope(summary)
FROM (
    SELECT
        id,
        time_bucket('15 min'::interval, ts) AS bucket,
        counter_agg(ts, val) AS summary
    FROM foo
    GROUP BY id, time_bucket('15 min'::interval, ts)
) t
```

## Arguments

The syntax is:

```
slope(
    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                               |
| ------ | ---------------- | ----------------------------------------- |
| slope  | DOUBLE PRECISION | The slope of the linear least-squares fit |
