# Product and app usage dashboard

**Product and app usage** treats every page type and click type as a feature, and shows how widely and how often each is used, which first-visit paths and features go with coming back, where visitors struggle, and which pages are slow.

Use it for product decisions: what to promote, what to fix and what nobody uses.

## Good to know

- Features are your [page and click types](/docs/data-capture/page-and-click-types), so the more of your site is typed, the more this dashboard can see.
- The **Feature** filter picks one feature for the lower half of the **Features** tab.
- The **Friction** and **Speed** tabs need friction capture turned on for the property, as [struggle signals](/docs/data-capture/struggle-signals) describes, and only count visitors who consented.
- The **Paths** tab keeps its own 90-day range of first visits.

<!-- GENERATED: everything below is written by scripts/dashboard-reference.mjs from autocapture 69662e2. Edit the explanation above it, and rerun the script to refresh this part. -->

## At a glance

Which features visitors use, how widely and how often, and who uses each; how new visitors' first visits unfold and which paths and features go with coming back; where visitors struggle, with errors, rage, dead and error clicks and quick backs; and which pages are slow.

- **Tabs**: 5, Usage, Features, Paths, Friction and Speed
- **Charts and numbers**: 55
- **Built on**: the [Feature usage](/docs/analytics/feature-usage) explore, with some tiles on [Visits](/docs/analytics/visits), [Page views](/docs/analytics/page-views), [First visits](/docs/analytics/first-visits), [Friction](/docs/analytics/friction) and [First-visit paths](/docs/analytics/first-visit-paths), as each says

## Filters

The filters across the top apply to every tile they can, unless a tile says it has its own range.

- **Date range**: the last 30 days, today included. It does not apply to 11 tiles on the Usage and Paths tabs.
- **Device type**: not set when the dashboard opens, so it keeps everything until you pick a value.
- **Allowed origin**: set to true, so tiles count only the origins your property allows. Clear it to see every origin the tag ran on. It does not apply to 27 tiles on the Usage, Features and Paths tabs.
- **Feature**: not set when the dashboard opens, so it keeps everything until you pick a value. It does not apply to 47 tiles on the Usage, Features, Paths, Friction and Speed tabs.

Date zoom is turned off on this dashboard, because its charts already set their own time grain.

## Tabs

### Usage

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Active visitors | Number | Visitors with a visit on an allowed origin in the date range, each once. |
| Features per visitor | Number | How many different features the average active visitor used in the date range: page types they viewed and click types they clicked. |
| Visits with a typed page or click | Number | The share of visits that viewed a page or clicked something Kontala gives a type: how much of what visitors do this dashboard can see. From the [Visits](/docs/analytics/visits) explore. |
| Back within 7 days | Number | The share of new visitors of the last 90 days who came back within 7 days of their first visit, over the first visits at least 7 days old. From the [First visits](/docs/analytics/first-visits) explore. |
| Visits with frustration | Number | The share of measured visits that met an error click, a rage click, a dead click or a quick back. From the [Visits](/docs/analytics/visits) explore. |
| Good page views | Number | The share of measured page views whose LCP, INP and CLS, of those they measured, were each good: the Core Web Vitals' pass rate. From the [Page views](/docs/analytics/page-views) explore. |
::

#### What do people use, and how often?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Engagement matrix: how many use each feature, and how often | Matrix | Each feature by the share of active visitors who used it in the date range and how many days a week they did, split at the medians into core, power, one-off and underused features. |
::

**How to read this dashboard**

A **feature** is a page type or a click type: viewing a page of a type, or clicking something of a type, as the [Page types](/docs/data-capture/page-and-click-types) and [Click types](/docs/data-capture/page-and-click-types) pages classify them.
Unclassified and Other are no feature, so the more of a site Kontala classifies, the more this dashboard sees; **Visits with a typed page or click** says how much it sees now.

**Adoption** is the share of the active visitors in the date range who used a feature, and **Days a week** how many days of a week those who used it did.
The matrix splits both at their medians: **core** features many use often, **power** features a few use often, **one-off** features many try once, **underused** the rest.

**Back within 7 days** and the other first-visit figures read the last 90 days' first visits, whatever the date range.
A visitor is a device: Safari and iOS forget it after 7 days.

#### Which features reach the most visitors?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Adoption by feature | Bar chart | The share of active visitors who used each feature in the date range, the fifteen used most on top. |
| Features per visitor by week | Line chart | How many different features the average active visitor used in each complete week of the date range. |
::

### Features

#### Who uses which feature, and how often?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Feature scorecard | Table | Each feature used in the date range: who used it, how widely, how often, how much of it is a habit, and how soon new visitors found it. |
::

#### Who uses each feature?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Adoption by new and returning visitors | Bar chart | For the twelve features used most, the share of new visitors who used each on their first day against the share of returning visitors who used it on a later one. |
| Adoption by device type | Table | For each feature used in the date range, the share of active visitors on a phone, a desktop and a tablet who used it. |
::

#### How is one feature doing? Choose it with the Feature filter

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Visitors who used it | Number | Active visitors who used the chosen feature in the date range. |
| Adoption | Number | The share of active visitors who used the chosen feature in the date range. |
| Days a week | Number | On how many days of a week those who used the chosen feature in it used it, on average. |
| Weeks on 3+ days | Number | Of the weeks a visitor used the chosen feature in, the share they used it on 3 days or more. |
| First-time users | Number | Visitors who used the chosen feature for the first time ever in the date range. |
| Days to first use | Number | How many days after their first visit those who first used the chosen feature in the date range typically did. |
| The chosen feature's adoption by week | Line chart | The share of each complete week's active visitors who used the feature the Feature filter chooses. |
| The chosen feature: weeks by days used | Column chart | The weeks visitors used the feature the Feature filter chooses in, by how many days of each week they used it. |
::

**About features**

Every active visitor is counted against every feature, used or not, so each feature's **adoption** has the same visitors below it and features compare like with like.
**Days a week** and **Weeks on 3+ days** count the weeks a visitor used a feature in; a week cut by the date range counts its days in it.
**First-time users** used a feature for the first time ever in the date range, and **Days to first use** is how long after their first visit that came.
**New** visitors are on the day of their first visit and **returning** on a later one.
Every figure counts visitors whose first visit was on an origin the property allows.
Choosing one feature with the **Feature** filter fills the numbers above; it leaves the rest of the dashboard as it is.

### Paths

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| New visitors | Number | Visitors whose first visit, on an allowed origin, was in the last 90 days. From the [First visits](/docs/analytics/first-visits) explore. |
| Back within 7 days | Number | The share of new visitors of the last 90 days who came back within 7 days of their first visit, over the first visits at least 7 days old. From the [First visits](/docs/analytics/first-visits) explore. |
| Back within 30 days | Number | The share of new visitors of the last 90 days who came back within 30 days of their first visit, over the first visits at least 30 days old. From the [First visits](/docs/analytics/first-visits) explore. |
| Typed first visits | Number | The share of the last 90 days' first visits that viewed a page or clicked something Kontala gives a type. From the [First visits](/docs/analytics/first-visits) explore. |
| Strongest first-visit signal | Number | The feature whose use in a first visit goes most with coming back within 7 days, and how many times more often those who used it came back. From the [First visits](/docs/analytics/first-visits) explore. |
::

#### How do the last 90 days' first visits unfold, and who comes back?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| First visits, step by step, and whether they came back | Flow | The last 90 days' first visits at least 7 days old, flowing through their first four features, numbered from the first, to whether the visitor came back within 7 days: the 40 busiest links. From the [First-visit paths](/docs/analytics/first-visit-paths) explore. |
::

#### Which first-visit features go with coming back?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| First-visit features against coming back | Table | For each feature, the share of the last 90 days' new visitors who used it in their first visit, how often those who did and did not came back within 7 days, the lift and the correlation. From the [First visits](/docs/analytics/first-visits) explore. |
::

#### Is there an aha moment?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Back within 7 days by features in the first visit | Column chart | The share of the last 90 days' new visitors who came back within 7 days, by how many different features their first visit used. From the [First visits](/docs/analytics/first-visits) explore. |
| Back within 7 days, used it or not | Bar chart | For the ten features most new visitors used in their first visit, the share who came back within 7 days among those who used it and those who did not. From the [First visits](/docs/analytics/first-visits) explore. |
::

#### Which first-visit paths bring people back?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| First-visit paths and how they did | Table | The commonest paths of the last 90 days' first visits: how many took each, and how often they came back within 7 and 30 days and converted. From the [First visits](/docs/analytics/first-visits) explore. |
::

**About paths**

A **path** is the features a first visit used, in order: a repeat of the one before is one step, Unclassified and Other are left out, and the flow shows the first four steps, then whether the visitor came back within 7 days, along its 40 busiest links; the paths table holds every path.
**Lift** divides how often the new visitors who used a feature in their first visit came back by how often the rest did, and needs 20 first visits at least 7 days old on each side.
It says what goes **with** coming back, not what causes it: visitors who use more of a site were keener to begin with, so a strong signal is where to look, and an experiment is how to know.
For sign-ups and the action that keeps them, see the Retention dashboard's Activation tab.

### Friction

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Visits with frustration | Number | The share of measured visits that met an error click, a rage click, a dead click or a quick back. From the [Visits](/docs/analytics/visits) explore. |
| Error-free visits | Number | The share of measured visits with no JavaScript error, as Sentry's crash-free sessions count a browser's. From the [Visits](/docs/analytics/visits) explore. |
| Rage clicks | Number | The share of measured visits with three clicks or more within a second of each other, in one spot. From the [Visits](/docs/analytics/visits) explore. |
| Dead clicks | Number | The share of measured visits with a click on something that looked clickable that nothing answered within a second. From the [Visits](/docs/analytics/visits) explore. |
| Error clicks | Number | The share of measured visits in which a JavaScript error came within a second of a click. From the [Visits](/docs/analytics/visits) explore. |
| Quick backs | Number | The share of measured visits in which the visitor went back from a page within 10 seconds. From the [Visits](/docs/analytics/visits) explore. |
::

#### Is friction going down?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Visits with frustration by week | Line chart | The share of each week's measured visits that met an error click, a rage click, a dead click or a quick back. From the [Visits](/docs/analytics/visits) explore. |
| Error-free visits by week | Line chart | The share of each week's measured visits with no JavaScript error. From the [Visits](/docs/analytics/visits) explore. |
::

#### What does friction cost?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Conversion rate by the friction met | Column chart | The share of measured visits that converted, by the most telling friction each met, None first. From the [Visits](/docs/analytics/visits) explore. |
| First visits back within 7 days, by the friction met | Column chart | The share of measured first visits followed by another visit within 7 days, by the most telling friction each met. From the [Visits](/docs/analytics/visits) explore. |
::

#### Where does it happen?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Friction by page type | Table | Each page type's measured page views, and the share of them with an error, a rage click, a dead click or a quick back. From the [Page views](/docs/analytics/page-views) explore. |
| The most frustrating elements | Table | The elements visitors rage clicked, dead clicked or met an error clicking, on the page each was on, with the visits that met them. From the [Friction](/docs/analytics/friction) explore. |
::

#### Which errors reach the most visits?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| JavaScript errors by the visits they reached | Table | Each JavaScript error, grouped by name and normalised message, with the visits and visitors it reached, its error clicks, its pages and when it was last seen. From the [Friction](/docs/analytics/friction) explore. |
::

**About friction**

**Friction is measured where a property turned it on, from the visits whose visitors consented**, and every rate here is over those **measured** visits: it says *Not captured* where there are none.
An **error click** is a JavaScript error within a second of a click; a **rage click** three clicks or more within a second of each other, in one spot; a **dead click** a click on something that looked clickable that nothing answered within a second; a **quick back** a page left for the one before within 10 seconds.
A visit counts once, for the most telling friction it met.
Errors are grouped by their name and message, with numbers, addresses, ids and quoted text other than a name taken out, and an error thrown in another site's script, such as a tag manager's or a widget's, is marked so.
Dead clicks are a lower bound on pages that change by themselves, and a rage click on a quantity button is usually no frustration: in the Friction explore, *Nothing answered the burst* tells the two apart.
Friction going with fewer conversions shows where to look; visitors who try harder also meet more of it.

### Speed

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| LCP, 75th percentile | Number | LCP at the 75th percentile of measured page views, with its rating at web.dev's thresholds. From the [Page views](/docs/analytics/page-views) explore. |
| INP, 75th percentile | Number | INP at the 75th percentile of measured page views, with its rating at web.dev's thresholds. From the [Page views](/docs/analytics/page-views) explore. |
| CLS, 75th percentile | Number | CLS at the 75th percentile of measured page views, with its rating at web.dev's thresholds. From the [Page views](/docs/analytics/page-views) explore. |
| Good page views | Number | The share of measured page views whose LCP, INP and CLS, of those they measured, were each good: the Core Web Vitals' pass rate. From the [Page views](/docs/analytics/page-views) explore. |
::

#### How many page views are fast, on mobile and on desktop?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| LCP by device type | Stacked bars | The share of each device type's measured page views whose LCP was good, needed improvement or was poor. From the [Page views](/docs/analytics/page-views) explore. |
| INP by device type | Stacked bars | The share of each device type's measured page views whose INP was good, needed improvement or was poor. From the [Page views](/docs/analytics/page-views) explore. |
| CLS by device type | Stacked bars | The share of each device type's measured page views whose CLS was good, needed improvement or was poor. From the [Page views](/docs/analytics/page-views) explore. |
::

#### Is it getting faster?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| LCP by week, 75th percentile | Line chart | LCP at the 75th percentile of each week's measured page views, against web.dev's thresholds. From the [Page views](/docs/analytics/page-views) explore. |
| INP by week, 75th percentile | Line chart | INP at the 75th percentile of each week's measured page views, against web.dev's thresholds. From the [Page views](/docs/analytics/page-views) explore. |
::

#### Where is it slow?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Speed by page type | Table | Each page type's LCP, INP, CLS and TTFB at the 75th percentile, a cell that needs improvement tinted amber and a poor one red, and its share of good page views. From the [Page views](/docs/analytics/page-views) explore. |
| The slowest pages | Table | The pages with the slowest LCP at the 75th percentile, with their INP and CLS, a cell that needs improvement tinted amber and a poor one red. From the [Page views](/docs/analytics/page-views) explore. |
::

#### Does speed cost conversions?

::field-table
| Tile | Kind | What it shows |
| --- | --- | --- |
| Conversion rate by landing page speed | Column chart | The share of visits that converted, by their landing page's LCP rating. From the [Visits](/docs/analytics/visits) explore. |
::

**About speed**

**Speed is rated as web.dev and the Chrome UX Report rate it**: at the **75th percentile** of measured page views, so three in four were at least that fast, Good, Needs improvement or Poor at web.dev's thresholds, and only once 20 page views measured it.
In the tables a cell is tinted amber where it needs improvement and red where it is poor.

**LCP**, **FCP** and **TTFB** are a page load's, and a route change's only where Chrome reports soft navigations (from Chrome 151).
**INP** needs an interaction.
**CLS** is measured by Chromium browsers alone, and every browser on an iPhone or iPad is Safari's engine, so mobile INP and CLS lean on Android.
**Good page views** were good on all three Core Web Vitals they measured.
