# Metric definitions

This dictionary names every selectable chart metric in the current dashboard. Metrics are calculated from verified observations and projections; they are not interchangeable with store payout reports. Keep app, environment, product filter, currency, range, and resolution alongside any exported number.

## Units and attribution

Counts represent the named transaction, lineage, customer, or event population. Rates in the UI are percentages; their backing ratio series use basis points (10,000 means 100%). Monetary series use integer milliunits of a stated currency, where 1000 milliunits equal one currency unit.

Standard gross/net/refund charts attribute known refunds to the original purchase period. LTV windows instead include refunds according to the refund timestamp inside the selected customer lifetime. Refund-request outcomes use the request period. Choose the right temporal question before comparing them.

## Revenue and run rate

### Net revenue

Metric ID: `net`. Sales minus refunds, attributed to the purchase date. Each currency is shown separately.

### Gross revenue

Metric ID: `gross`. Store-reported purchase value before refunds; currencies remain separate.

### Cohort refunded value

Metric ID: `refunds`. Known full and partial refund amounts assigned to the original purchase period for cohort analysis.

### Refunded transaction cohorts

Metric ID: `refundTransactions`. Paid and unpaid transactions with a known full or partial refund, grouped by original purchase date.

### Non-subscription purchases

Metric ID: `nonSubscriptionPurchases`. Consumable, non-consumable and non-renewing purchases counted in the period they were bought; Google prepaid subscription plans and family-shared entitlements are excluded.

### Realized LTV per customer

Metric ID: `realizedLtvPerCustomer`. Gross store value minus refunds generated inside each first-seen cohort's selected customer lifetime, divided by every new customer.

### Realized LTV per paying customer

Metric ID: `realizedLtvPerPayingCustomer`. Gross store value minus refunds generated inside each first-seen cohort's selected customer lifetime, divided by customers with net-positive funded value.

### Monthly run rate

Metric ID: `mrr`. Active paid subscription value normalized to one month at each period end; currencies remain separate.

### Annual run rate

Metric ID: `arr`. Annualized paid subscription run rate: each period-end monthly run rate multiplied by twelve.

### Run-rate movement

Metric ID: `mrrMovement`. New, returning, expanded, contracted, and churned monthly run rate in each period.


## Subscription activity

### Paid subscriptions

Metric ID: `activePaidSubscriptions`. Unique paid subscriptions that remain unexpired at each period end; cancelled access stays active until expiry.

### Paid movement

Metric ID: `paidSubscriptionMovement`. New, returning, and ended paid subscriptions explain the net change in each period.

### Subscription retention

Metric ID: `subscriptionRetention`. Paid subscription cohorts and the share that made each duration-matched renewal; incomplete cohorts are never projected.

### Cohort matrix

Metric ID: `cohortExplorer`. A cohort of customers followed forward month by month, anchored by first seen, initial conversion or first unrefunded purchase; month 0 is the cohort's own month and currencies are never combined.

### New subscription chains

Metric ID: `newSubscriptions`. First projected transaction in each store subscription renewal chain.

### Repeat subscription transactions

Metric ID: `renewals`. Subsequent projected transactions after the first transaction in each renewal chain.

### Current status

Metric ID: `subscriptionStatus`. Current subscription lineages grouped by authoritative projected status.

### Current phases

Metric ID: `subscriptionPhases`. Current subscription lineages grouped by trial, introductory offer, or normal phase.

### Current access by store

Metric ID: `activeByStore`. Current subscription access, including paid and trial phases, split by store.


## Trials and health

### Active trials

Metric ID: `activeTrials`. Unexpired free trials at each period end, including trials whose auto-renewal was disabled.

### Trial movement

Metric ID: `trialMovement`. Free trials that started and ended in each period, with their net change.

### Trial conversion rate

Metric ID: `trialConversionRate`. Trial-start cohorts that convert directly into a funded subscription; open cohorts remain incomplete and later resubscribes are excluded.

### Trial cancellation rate

Metric ID: `trialCancellationRate`. Trial-start cohorts that ended without converting after the customer turned auto-renewal off inside the selected window; trials that convert after an opt-out are not cancellations.

### Paid churn

Metric ID: `paidChurnRate`. Paid subscriptions that ended in a period as a share of paid subscriptions active at its start.

### Refund rate

Metric ID: `refundRate`. Paid transaction cohorts that were fully or partially refunded, attributed to their purchase period.

### Refund request outcomes

Metric ID: `refundRequests`. Store refund reviews matched to a tracked transaction, counted in the period the request arrived and split by the decision that followed; reversals are App Store only, and a request the store never answered becomes a decline after 48 hours.


## Customers and events

### Initial conversion

Metric ID: `initialConversion`. New-customer cohorts that start any subscription or purchase any product within the selected conversion timeframe, including free trials.

### Conversion to paying

Metric ID: `conversionToPaying`. New-customer cohorts that make a funded purchase within the selected conversion timeframe; free trials alone are excluded.

### Customers with store activity

Metric ID: `activeCustomers`. Distinct App User IDs that produced at least one matching store event in each period.

### New customers

Metric ID: `newCustomers`. Customer identities first created in the selected window and matching the current filters.

### Transactions

Metric ID: `transactions`. Projected store transactions observed in the selected window.

### Events

Metric ID: `events`. Normalized immutable ledger events received each day.

## Formulas and denominators

| Metric | Calculation / interpretation |
| --- | --- |
| Net revenue | Gross store-reported value − known full/partial refunds in that purchase cohort |
| Annual run rate | Period-end monthly run rate × 12 |
| Run-rate movement | New + returning + expansion − contraction − churn |
| Paid movement | New + returning − ended paid lineages |
| Trial movement | Started trials − ended trials |
| Paid churn | Ended paid lineages / paid lineages active at the start of the period |
| Refund rate | Paid transactions with a known full/partial refund / paid transactions in the purchase cohort |
| Initial conversion | New customers with a qualifying trial/purchase in the window / new-customer cohort |
| Conversion to paying | New customers with a qualifying funded purchase in the window / new-customer cohort |
| Realized LTV per customer | In-lifetime net observed value / every customer in the first-seen cohort |
| Realized LTV per paying customer | In-lifetime net observed value / net-positive funded customers, separately per currency |
| Relative subscription retention | Qualifying retained journeys at that renewal opportunity / original paid cohort |

A zero or unavailable denominator does not justify manufacturing a 0% success rate. Use the report's undefined/incomplete state. Cohort maturity and opt-out/reversal rules are detailed in [Cohorts](/docs/cohorts).

## Monthly normalization

The current implementation normalizes each observed funded service period and then evaluates active value at period end. It uses these observed-duration bands, rounded to whole days:

| Observed days | Multiplier applied to paid value |
| --- | --- |
| 0–1 | 30 |
| 3 | 10 |
| 6–8 | 4 |
| 12–16 | 2 |
| 27–33 | 1 |
| 58–62 | 1/2 |
| 88–95 | 1/3 |
| 179–185 | 1/6 |
| 363–375 | 1/12 |
| Other valid durations | 28 / observed duration in days |

Normalization uses effective observed service duration, so a grace/expiry extension can affect the estimate. This is a run-rate estimate, not a contractual invoice schedule or a tax/accounting close. The preview also has partial-month boundary limitations in movement buckets; reconcile source transactions for a precise partial-period close.

## Read refunds and request outcomes carefully

Refund rate includes paid transactions with any known full/partial refund and excludes family-shared purchases from its paid denominator. Refunded transaction cohorts also include unpaid refunded transactions, so their counts need not equal the refund-rate numerator.

Refund requests are review events, not refund amounts or a button to issue refunds. They are matched to tracked transactions and grouped by request date. Apple can report reversals. A store request without a later decision is classified as declined after 48 hours; an explicit later decision wins when it arrives. That timeout is an analytical rule, not a statement that Google sent a decline notification.

## What these numbers do not include

Currencies are not converted or summed into an invented reporting currency. Taxes, store commission, developer proceeds, future predicted LTV, and unidentified/unknown product types are not inferred. Data can be incomplete when an app has not ingested history or accounting enrichment is missing.

A current status/phase snapshot does not reconstruct every past daily state. Customers with store activity are not product engagement DAU/MAU. Repeated transaction/notification observations are not automatically repeated purchases. Use [Transactions and events](/docs/transactions-and-events) to resolve the evidence behind an unexpected number.
