> ## Documentation Index
> Fetch the complete documentation index at: https://orwel-22af1265.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Feature Tracking

> Map events to product features and measure adoption — auto-discovered and built for scale.

A **feature** maps one or more events to a meaningful part of your product, so you can measure **adoption** — how many of your active users actually use it.

| Feature        | Adoption (% of active users) |
| -------------- | ---------------------------- |
| Quote builder  | 72%                          |
| Invoicing      | 48%                          |
| Deals pipeline | 35%                          |
| Reports        | 19%                          |

<sub>Sample adoption across a rolling window.</sub>

## Auto-discovered

Like the events catalog, features surface from the data — define a feature once and the dashboard fills it in from incoming events. A feature is a set of event specs:

```json theme={null}
{
  "name": "Quote builder",
  "events": [
    { "source": "event", "code": "time_on_screen", "filters": { "section": "quotes" } },
    { "source": "event", "code": "quote_created" }
  ]
}
```

## How adoption is computed

<AccordionGroup>
  <Accordion title="Adoption %" icon="percent">
    Distinct visitors who hit **any** of the feature's events ÷ active workspace visitors, in a rolling window.
  </Accordion>

  <Accordion title="Filters" icon="filter">
    Filters match event properties (e.g. `section: "quotes"`) via JSONB containment, so one `time_on_screen` event can power many features.
  </Accordion>
</AccordionGroup>

<Tip>
  Adoption is computed from pre-aggregated rollups (materialized views refreshed on a schedule), not by scanning raw events on each request — so the feature list loads in milliseconds no matter how many events you have.
</Tip>

## Next steps

<CardGroup cols={2}>
  <Card title="Event Tracking" icon="signal-stream" href="/sdk/event-tracking">
    The events that power features.
  </Card>

  <Card title="Conversions" icon="bullseye" href="/sdk/conversions">
    Capture leads and goals, attributed across sessions.
  </Card>
</CardGroup>
