On this page

Unit Count (Latest Value) Metrics

Unit count metrics with the latest rollup type measure if a unit participated on the last observed day.

Use cases

This metric type is useful for measuring state. For example, use it to determine whether a test variant currently has more active subscribers or active users than the control group.

Calculation

At the unit level, unit count metrics create a 1/0 flag for if they participated on a given day. Statsig carries this forward to the current date if data is behind.

At the group level, Statsig calculates the mean as the SUM of the unit-level flags, divided by the count of UNIQUE UNITS exposed to the experiment.

The SQL for this calculation:

sql
-- Unit Level
SELECT
  unit_id,
  group_id,
  if(passes_filter, 1, 0) as value
FROM (
    SELECT
        source_data.*,
        exposures_data.group_id,
        source_data.date = MAX(source_data.date) over (partition by source_data.unit_id) as is_latest_date
    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
)
WHERE is_latest_date = 1
GROUP BY
  source_data.unit_id,
  exposure_data.group_id;

-- Experiment
SELECT
  group_id,
  COUNT(distinct unit_id) total_units
FROM exposure_data
GROUP BY group_id;

-- Group Level
SELECT
  group_id,
  SUM(value)/SUM(total_units) as mean
FROM unit_data
JOIN group_data
USING (group_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.

Was this helpful?