A recording rule is a query you stopped rewriting

The same ratio appears in a dashboard, two alerts and a report, and each copy can drift from the others.

groups:
  - name: sli
    interval: 30s
    rules:
      - record: sli:checkout:availability_5m
        expr: |
          sum(rate(http_requests_total{route="checkout",status=~"2..|3.."}[5m]))
          / sum(rate(http_requests_total{route="checkout",status!~"4.."}[5m]))

A naming convention with colons is the established one — level:metric:operation — and it is what makes a recording rule distinguishable from a raw metric at a glance. The rules are also considerably faster to query, which matters for a dashboard covering thirty days where the raw expression would scan every sample.