Skip to content

Metric Best Practices

Guidelines for getting reliable signal from Metric checks while keeping the noise (and the maintenance) low.

Put the value in one row first

A Metric check evaluates exactly one row. When the number you care about is an aggregate, build it with a Computed Table that returns a single row, such as yesterday's total or this week's average. When it already lives in a summary table, narrow the table to its row with the filter clause. A container that returns several rows makes the check Not Asserted on every Scan. See Exactly One Row.

Run change comparisons under one read strategy

Absolute Change and Percentage Change compare with the previous Scan of the same read strategy. If a container is scanned both Incrementally and in Full, the check keeps two histories, and each one compares with a different moment. Schedule the check's Scans with a single strategy, usually Full for a computed KPI, so every comparison means "since the last time we looked".

Prefer Full Scans for summary rows

An Incremental Scan reads only rows that are new or changed. A summary row that did not change since the last Incremental Scan leaves nothing to evaluate, and the check is Not Asserted for that Scan. A Full Scan always reads the row.

Match the comparison to the value

  • A value with a known acceptable range, such as a rate or a ratio: Absolute Value.
  • A value that drifts but should not jump, such as a balance: Absolute Change.
  • A total whose size varies with the business: Percentage Change.

See Comparisons for the details of each.

Expect a pair of anomalies after a spike

A change comparison always compares with the previous measurement, even when that measurement was itself anomalous. After a one-day drop, the recovery the next day breaks the limit in the other direction. Triage both together.

Choose the field and comparison before the first Scan

The field and the comparison are locked once a Scan has included the check. Settle both before activating, for example by keeping the check as a Draft until it is ready. Changing them later means creating a new check.

Name the scope in the description

When the filter clause picks one row out of a summary table, write the scope into the check's description (for example, "EMEA conversion rate"). Checks for different regions on the same field look alike in a list otherwise.

See Also