Skip to main content
Metrics Center is the single source of truth for how every number is defined. Define a metric once and it is available everywhere: KPI cards, table cells, dashboards, reports, and Nova. Because every surface reads the same definition, the same number means the same thing on every screen.

The Four Metric Kinds

Formula Syntax

Derived metrics are written as formulas that reference other metrics by code, prefixed with @. For example, a gross-margin-percent metric might read:
The editor autocompletes @code references as you type, and the formula preview renders each reference as a named pill so the formula reads in plain terms, not raw codes. Referencing a metric that does not exist is flagged, so a formula can never silently point at nothing.

Why a Registry

  • No drift. Every surface that shows a metric reads the same definition, so a figure is identical wherever it appears.
  • Single source. An active metric resolves to exactly one implementation, so a surface never hand-rolls its own version of the math.
  • Traceable. Click a metric anywhere to see its definition, its formula, and a drill-through.
  • Versioned. Changing a definition bumps its version, so history stays honest.

Adding a Metric

1

Create it

In Reporting, open Metrics Center, choose a kind, and define it. For derived metrics, build the formula with the @code autocomplete.
2

Place it

Bind it to a KPI card, a table column, or pin it to a dashboard.
3

Use it

The metric is now available to Nova and to anyone building reports.

Common Questions

A ratio is exactly one metric over another. A derived metric is a full formula that can combine several metrics with operators, so it handles anything beyond a single division.
A metric needs a source: a bound calculation for primitive and engine kinds, or a compiled formula for derived and ratio kinds. Without one it can render its label and definition but cannot produce a number.
The definition is versioned. Editing it bumps the version so prior reports remain explainable, and the change is traceable.
They should not. If they do, one surface is computing its own number instead of reading the metric’s single source. The registry exists precisely to prevent that.

If the Numbers Look Off

  • If a derived metric reads blank, confirm every @code it references exists and resolves; one missing reference can empty the whole formula.
  • If a metric disagrees across two surfaces, treat it as a binding problem (one surface not reading the registry), not a data problem.
Metrics defined here flow straight into Report Builder, dashboards, and Nova, so define once and reuse everywhere.