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

# Metric Definitions

> Exactly how Flock counts each number on your dashboards.

Two analytics tools rarely agree on a number, because each one draws its own line around
"active", "retained" and "paid". This page states where Flock draws those lines, so a figure on
your dashboard can be compared with any other tool on equal terms. Hover a number in the dashboard
for the short version; this is the long one.

> [!NOTE]
>
> **Scope:** every metric is computed per **game**.

Three rules sit under everything below.

| | |
| - | - |
| **Days are UTC days** | A day runs from 00:00 to 24:00 UTC, wherever your players are. |
| **A range includes both of its end days** | When a range reaches today, today's numbers are the day so far. |
| **An active player** | A player with a session that started that day, or any signed-in activity that day: signing in, a call made with the player's token, starting a session, or a tracked event. A game that never reports sessions still has active players. |

## Engagement

Read on **Dashboards → User Engagement**.

| Metric | How it is counted |
| - | - |
| **DAU** | Distinct active players on one UTC day. The card shows the latest day in the range. |
| **WAU** | Distinct active players in a week that runs Monday to Sunday. A week the range cuts into counts only its days inside the range. |
| **MAU** | Distinct active players in a calendar month, again counting only the days inside the range. |
| **DAU/MAU ratio** | Each day's DAU divided by the MAU of that day's month, as a percentage. The card shows the average over the range. |
| **New players** | Players whose Flock account was created that day. Flock has no install event: a new player is a new account. |
| **Returning players** | Players created before the range who were active inside it. |
| **Top events** | Gameplay events ranked by how many distinct players sent them in the range. |

## Sessions

Read on **Dashboards → User Engagement**. When a session starts, pauses and ends is covered in
[Analytics and Events](https://docs.qwacks.com/guides/analytics-and-events.md#sessions). A session belongs to the day it
started.

| Metric | How it is counted |
| - | - |
| **Sessions per active player** | The day's sessions divided by that day's DAU. |
| **Session duration** | The average length of the sessions that started that day and have ended. A session that was never ended is left out. |
| **Events per session** | The day's tracked events divided by the day's sessions. Events the SDK sends on its own count too. |
| **Screens per session** | The average number of screen views reported per session. |
| **Bounce rate** | The share of the day's sessions the SDK marked as a bounce when they ended: shorter than the bounce threshold, ten seconds unless you change it. |

## Retention

Read on **Dashboards → User Retention**.

Retention follows the players who **first played** inside the range. A player's **day 0** is their
first active day, and the players who share a day 0, or a week of them, form a **cohort**.

| Metric | How it is counted |
| - | - |
| **D1, D7, D30 retention** | The share of a cohort active on exactly that day after day 0. This is the classic definition and the headline on the cards. |
| **Back by day N** | The share of a cohort that came back on any day from day 1 to day N. It is never lower than the classic figure. |
| **New players** | On this page, players whose first active day fell in the range. |
| **Signed up, never played** | Players created in the range with no activity at all. They belong to no cohort and are in no retention figure. |
| **Churn rate** | For each day, the share of the players active in the seven days before it who were not active on it. The card shows the average over the range. |

**A figure appears only once its day has fully passed** for every player it covers. Until then the
cell stays empty, where a number would only climb later. Today is never counted, and the page says
which day it has **counted through**. The headline figures for a range are taken over the daily
cohorts old enough for each one, and each card says how many players that is.

The **platform** and **version** filters count only the sessions that match them, since signed-in
activity carries neither. A range can cover up to 180 days.

## Monetization

Read on **Dashboards → User Monetization**, one currency at a time. Amounts are never converted
between currencies.

Revenue is every **completed** purchase, at the amount and in the currency the player was
**charged**. Purchases the Flock shop confirmed itself and purchases your game reports for sales
settled elsewhere both count, and the page shows them apart as **confirmed by the server** and
**reported by the game**. **Test purchases** are left out: sandbox receipts, test keys and license
testers. A **refund** is a negative amount on the day it happened, so it lowers that day and leaves
the day of the sale as it was.

| Metric | How it is counted |
| - | - |
| **Total revenue** | The sum of those amounts in the selected currency over the range, refunds included. |
| **Purchases and refunds** | The number of sales and the number of refunds in the range. |
| **Payers** | Distinct players with at least one sale in the range. A refund never makes a payer. |
| **ARPU** | Revenue divided by the players active in the range. |
| **ARPPU** | Revenue divided by payers. |
| **LTV** | Everything the players who joined in the range have paid to date, divided by the number who joined. It keeps growing after the range ends. |
| **Cohort LTV** | Revenue per player, cumulative by day since first play, for the players who first played each week. Every member counts, payer or not, and a day appears only once it has fully passed. |
| **Payer conversion** | Payers divided by the players active in the range. |
| **Repeat purchase rate** | The share of payers with a second sale at any time up to the end of the range. |
| **Time to first purchase** | For players whose first sale in the selected currency fell in the range, the time from their first activity to that sale. The card shows the median, with the average beside it. |
| **Top spenders** | Players ranked by what they paid in the range, refunds taken off. |

The daily charts use the same rules per day: a day's ARPU divides by that day's active players, and
a day's conversion is the share of them who paid. The **Conversion Rate** card on
**Dashboards → Home** is the average of those daily shares over the range, across all currencies.

## Funnels

Read on **Dashboards → Funnels**.

A player **enters** a funnel at their first event in the range that matches the first step. In the
default order, each later step counts when its event arrives after the previous step and within
the funnel's time window from entry, one day unless you change it; other events may come in
between. In **strict** order the event must be the player's very next tracked event, and events the
SDK sends on its own are skipped. A step's conversion is the share of the players who entered that
reached it.

## What changed this week

Read at the top of **Dashboards → Home**.

The home page opens with a few lines that state what moved: the last seven whole UTC days against
the seven days before them. Today is never part of either week, since it has not finished.

| Line | How it is counted |
| - | - |
| **Active players** | Distinct active players across the seven days. |
| **New players** | Player accounts created in the seven days. |
| **Day 1 and day 7 retention** | Of the players whose day 1 (or day 7) fell inside the week, the share who were active on it. Both weeks are measured the same way, which is why these figures can differ from the retention page: that page groups players by the day they first played. |
| **Revenue** | Completed purchases over the week in one currency, as charged, with refunds taken off. The three largest currencies each get a line. |
| **Abnormal exits** | Runs of the game that did not end cleanly, which the SDK reports on the next launch, for every 100 sessions started in the week. A run that ended while the game was in the background is not counted. |
| **Most frequent error** | The most logged error of the week among exceptions and logic errors that carry a code, counted per log type and code, with the same pair's count the week before. |

A line says **up** or **down** only when at least ten players, sessions or log entries are behind
the figure; with fewer, the two weeks are shown side by side and no direction is given. A move under
1 percent, or under half a point for a rate, reads as about the same. Counts and revenue change in
percent and rates in points. Revenue always gets a direction, since money is exact however small,
and a line with nothing in either week is left out.

## Why a number can differ from another tool

| | |
| - | - |
| **Day boundaries** | Flock cuts days at UTC midnight. A tool on your local time files the same evening under a different date. |
| **What "active" means** | Flock counts signed-in activity as well as sessions, so its DAU can be higher than a tool that counts sessions alone. |
| **Today is partial** | A range that reaches today shows today so far, which makes the last point of a daily chart read low and the last point of churn read high. Retention and cohort LTV leave today out. |
| **Late data** | The SDK keeps events and session ends on the device while it is offline and sends them with their original time on the next connection, so the last few days can still rise. |
| **Session length needs an ending** | Duration counts only the sessions the game ended, and time spent in the background is not playtime. |
| **Retention waits** | Another tool may show a day 7 figure for players who started three days ago. Flock leaves it empty until day 7 has passed for all of them. |
| **Payers who were never active** | A game can report a purchase for a player Flock has seen no activity from. That player is a payer and not an active player, so a day's conversion can pass 100%. |
| **Billing counts differently** | The monthly active users on your studio's [Usage](https://docs.qwacks.com/qwacks/billing-usage.md) tab are counted from sessions, across all of the studio's games. On the plans page, **analytics retention** means how long data is kept, which is a different thing from player retention. |


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