---
title: "Retention by plan"
description: "How long logs, spans, metrics and run events are kept on each plan, how the purge runs, and the records it never touches."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.overlane.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Retention by plan

Telemetry is kept for a period set by the plan, read from the same plan data file the pricing page uses:

| Plan | Telemetry kept |
|---|---|
| Free | 7 days |
| Pro | 30 days |
| Team | 90 days |
| Business | 1 year |
| Enterprise | Set by contract; the purge deletes nothing |

```sh
overlane observe retention
overlane observe retention purge --dry-run
```

## The purge

A purge job runs on a schedule for every team that holds telemetry, and `overlane observe retention purge` runs it on demand. A row exactly as old as the period is kept; one a moment older is deleted. It removes logs, spans, metrics, run summaries, run events, resolved incidents and eval results.

## What it never touches

The task ledger, evidence, the audit log, billing and decision records are not telemetry. The purge works from a fixed list of telemetry tables and has no path to those.

```js run
const now = Date.parse("2026-10-10T00:00:00.000Z");
const cutoff = retentionCutoff(now, 30);
assert.equal(now - cutoff, 30 * 86400000);
assert.equal(retentionCutoff(now, null), null);
```

## Effect on other views

Cost and reconciliation compare over the window the plan retains, so a Free team's reconciliation covers the last seven days of the billing period rather than reporting a mismatch for data that was purged.

Command reference: [observe retention](/cli/observe-retention/) and [observe retention purge](/cli/observe-retention-purge/).

Source: https://docs.overlane.app/observability/retention/index.mdx
