The max aggregation type selects the highest value of a specified event property from all received events.

## MAX billable metric

Here is how you can create a max aggregation from the UI:

1. Access the **“Billable metrics”** section via the side menu;
2. Create a new billable metric;
3. Define a name, a code and an optional description;
4. Select **“max”** as the aggregation type;
5. Define the property to aggregate;
6. Apply dimension groups if any; and
7. Click **“Add billable metric”**.

This billable metric is `metered` only, meaning it cannot be recurring, and the number of billing units resets to 0 at the end of each period.

```
    LAGO_URL="https://api.getlago.com"
    API_KEY="__YOUR_API_KEY__"

curl --location --request POST "$LAGO_URL/api/v1/billable_metrics" \
    --header "Authorization: Bearer $API_KEY" \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "billable_metric": {
        "name": "API Request",
        "code": "api_requests",
        "description": "Number of API requests.",
        "aggregation_type": "max_agg",
        "field_name": "total_requests",
        "group": {}
    }
}'
```

## Calculation example

Lago calculates the `MAX(events.properties.property_name)` for the two following events received.

```json
//Event received #1
{
    "transaction_id": "transaction_1",
    "external_customer_id": "1",
    "timestamp": "2022-03-16T00:00:00Z",
    "code": "api_requests",
    "properties": {
        "total_requests": 20
    }
}

//Event received #2
{
    "transaction_id": "transaction_2",
    "external_customer_id": "1",
    "timestamp": "2022-03-17T00:00:00Z",
    "code": "api_requests",
    "properties": {
        "total_requests": 10
    }
}
```

In that case, with this aggregation type, Lago takes the highest value of `total_requests` property from all events, **resulting in a billable value of 20 units.**
