
## Use cases

This metric type is an analogue for DAU. It is useful for growth accounting and for measuring ongoing usage and retention.

## Calculation

At the unit level, unit count metrics create a 1/0 flag for if they participated on a given day.

At the group level, Statsig calculates the mean as the SUM of the unit-level flags divided by each unit's days in the experiment, then divided by the count of UNIQUE UNITS exposed to the experiment.

The SQL for this calculation:

```sql expandable
-- Unit Level
SELECT distinct
  source_data.unit_id,
  exposure_data.group_id
  COUNT(distinct source_data.date) as value
FROM source_data
JOIN exposure_data
ON
  -- Only include users who saw the experiment
  source_data.unit_id = exposure_data.unit_id
  -- Only include data from after the user saw the experiment
  -- In this case exposure_data is already deduped to the "first exposure"
  AND source_data.timestamp >= exposure_data.timestamp
GROUP BY
  source_data.unit_id,
  exposure_data.group_id;

-- Experiment
SELECT
  group_id,
  unit_id,
  date_diff(first_exposure_ds, today()) + 1 AS days_exposed
FROM exposure_data
GROUP BY group_id;

-- Group Level
SELECT
  group_id,
  SUM(value/days_exposed)/COUNT(distinct unit_id) as mean
FROM unit_data
JOIN group_data
USING (group_id, unit_id)
GROUP BY group_id;
```

## Options

* Metric Breakdowns: configure Metadata Columns to group results by for dimensional views in pulse results.
* Multi Source: build metrics from multiple metric sources, equivalent to a UNION in SQL. Useful when the same measure exists in sharded or disparate tables.
* Rollup Mode: controls the specific way that Unit Count metrics are aggregated.
