Skip to main content

Derived metrics

ROAS, CPA, AOV, CTR, CPM — Level doesn't ship these as built-ins. You create them as Formula custom metrics; the auto-formatter does the rest.

The metrics every performance marketer wants — ROAS, CPA, AOV, CTR, CPM — aren't built into Level as fixed metrics. You create them yourself as Formula custom metrics. The catch: Level's auto-formatter recognises these names and applies the right currency / percent / ratio formatting automatically.

Define them once per client, picking the canonical short names below, and they look right in every report.

The five canonical formulas

MetricNameFormulaAuto-format
Return on ad spendroas#revenue / #cost3.58×
Cost per acquisitioncpa#cost / #purchasescurrency ($24.18)
Average order valueaov#revenue / #purchasescurrency ($134.20)
Click-through ratectr#clicks / #impressionspercent (2.84%)
Cost per millecpm#cost / (#impressions / 1000)currency ($8.42)

The pattern: name drives auto-formatting; display name can be anything readable.

Why naming matters

Level's metric formatter recognises a small set of canonical names:

  • Monetary (renders as currency): cost, revenue, cpa, cpm, aov.
  • Percent (renders as XX.XX%): ctr.
  • Ratio (renders as X.XX×): roas.

If you name your custom metric roas (lowercase, no suffix), Level renders the column as 3.58× — which is what stakeholders expect. If you name it Smart ROAS or roas_blended, the formatter doesn't match and the column renders as a plain number.

The display name (what shows in report headers) can be anything. So you can have:

  • Name: roas
  • Display name: Blended ROAS
  • Formula: (#revenue * 0.85) / #cost

…and it shows in reports as Blended ROAS with 3.58× formatting.

Variations worth defining

Once the basic five are in place, the following come up often:

Display nameNameFormulaWhy
Profitprofit#revenue - #costDirect margin reading. Renders as currency.
ROI(any)(#revenue - #cost) / #costProfit-as-percentage view.
True ROASroas(#revenue * 0.85) / #costApply a margin factor; still auto-formats as 3.58×.
Blended CPAcpa#cost / (#purchases + #lead)Combine system metrics for a unified cost-per-conversion.
Cost per 1k impressionscpm#cost / (#impressions / 1000)Same as the canonical CPM but useful when impressions metric is named differently.

The Name column matters most; pick from the canonical list when you want auto-formatting, otherwise the metric still works — it just renders as a plain count.

Order of definition

Formula metrics can reference other metrics, including other custom metrics. Plan the dependency order:

  1. Map system metrics first (Purchases, Revenue, Lead) — see Conversion mapping.
  2. Define basic derived metrics (cpa, roas, aov, ctr, cpm) — they reference system metrics.
  3. Define composite metrics (profit, Blended CPA, etc.) — they can reference your basic derived metrics.

If you try to reference a metric that doesn't exist yet, the formula editor flags Unknown metric: … and Save is disabled. Build prerequisites first.

What about platform-side ROAS?

Each platform (Google Ads / Meta) computes its own ROAS using the conversions tracked on that platform. Level's roas is computed across whatever conversion definitions you mapped to Revenue, summed across all the placements in the report.

So Google's reported ROAS for an account ≠ Level's ROAS row for that placement, by design — Level's number reflects your unified definition, not the platform's view of itself.