# `stddev`

## Description

Returns the standard deviation of a numerical expression within a group.

- Useful for measuring how much values vary around the mean.
- Best applied when a complete dataset is available (for sampled data, use `sample_stddev`).

## Syntax

```dataprime
stddev(expression: number): number
```

## Arguments

| Name       | Type   | Required | Description                                               |
| ---------- | ------ | -------- | --------------------------------------------------------- |
| expression | number | **true** | Numerical expression whose standard deviation is computed |

## Example

**Use case: Calculate the standard deviation of API latency**

Traces contain a `duration` field representing execution time. Computing its standard deviation helps you understand the variability of API performance.

### Example data

```json
{ "operationName": "MalfunctioningDatabase", "duration": 10100 },
{ "operationName": "checkout", "duration": 350000 },
{ "operationName": "brokenPrinter", "duration": 20000 },
{ "operationName": "ScheduledEvent", "duration": 1500000 },
{ "operationName": "checkout", "duration": 100000 },
{ "operationName": "MalfunctioningDatabase", "duration": 10050 },
{ "operationName": "brokenPrinter", "duration": 400000 },
{ "operationName": "ScheduledEvent", "duration": 900000 },
{ "operationName": "checkout", "duration": 600000 },
{ "operationName": "brokenPrinter", "duration": 800000 },
{ "operationName": "ScheduledEvent", "duration": 1200000 },
{ "operationName": "checkout", "duration": 500000 },
{ "operationName": "MalfunctioningDatabase", "duration": 9950 },
{ "operationName": "ScheduledEvent", "duration": 500000 },
{ "operationName": "brokenPrinter", "duration": 1000000 },
{ "operationName": "checkout", "duration": 250000 },
{ "operationName": "MalfunctioningDatabase", "duration": 10000 },
{ "operationName": "brokenPrinter", "duration": 600000 },
{ "operationName": "ScheduledEvent", "duration": 50000 },
{ "operationName": "MalfunctioningDatabase", "duration": 9800 }
```

### Example query

```dataprime
groupby $m.operationName aggregate stddev($m.duration) as latency_stddev
```

### Example output

| operationName          | latency_stddev     |
| ---------------------- | ------------------ |
| checkout               | 241610.80691335752 |
| brokenPrinter          | 279989.950525226   |
| ScheduledEvent         | 343380.2645421216  |
| MalfunctioningDatabase | 554.8304396318806  |
