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

# Feature Tracking

> Map events to product features and measure adoption among your active users.

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>

## Define a feature

Features are defined in the dashboard, in **Features setup** (`/developers/features`): give the feature a name, pick the events that count as using it (from the catalog or as custom codes), and set the active users window. The configurator then generates the `track()` calls to add to your code, as an agent prompt, a snippet or a typed TypeScript module. See [Journeys and features setup](https://www.orwel.io/docs/guides/journeys-and-features.md).

Saved, 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" }
  ]
}
```

Custom codes used by a feature are registered in your workspace catalog when you save it, so the ingest accepts them.

## How adoption is computed

> [accordion] Adoption %
>
> Distinct visitors who hit **any** of the feature's events, divided by active workspace visitors, in a rolling window.

> [accordion] Filters
>
> Filters match event properties (for example `section: "quotes"`) via JSONB containment, so one `time_on_screen` event can power many features.

> [!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.

## Next steps

> [card] [Journeys and features setup](https://www.orwel.io/docs/guides/journeys-and-features.md)
>
> Configure features and get the code to send.

> [card] [Event Tracking](https://www.orwel.io/docs/sdk/event-tracking.md)
>
> The events that power features.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.