> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enfinitos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Metering

> How delivery events are projected into the metered units that contracts are denominated in.

Metering is the projection from raw delivery events into the
**metered units** a contract is denominated in: impressions, dwell
seconds, surface-hours, attention seconds, message sends, render
opportunities.

## Why projection, not aggregation

A delivery event is the source of truth. The metered unit is a
projection — derived from the event, not stored alongside it. Two
properties follow:

1. **Re-projectable.** Given the same delivery events and the same
   projection rules, the metered units are bit-identical. This is
   how the auditor checks the platform's numbers.
2. **Versioned.** When the projection rules change (e.g. a new IAB
   viewability standard), we version the rule set and reproject
   historical data. Old rules are kept reachable for compliance
   audit.

## Substrate-specific projection rules

Each substrate has its own projection rules. The headline ones:

| Substrate            | Metered unit                                              |
| -------------------- | --------------------------------------------------------- |
| `DOOH`               | Impressions × surface attention factor                    |
| `CTV`                | Impressions (qualified by IAB definition)                 |
| `MOBILE`             | Render opportunities + dwell                              |
| `GAMING`             | Viewability seconds per IAB Gaming SIG 2024               |
| `AUTOMOTIVE`         | Dwell, gated by vehicle speed                             |
| `AUDIO`              | Listen-through seconds, gated by AudioAttentionConstraint |
| `MESSAGING`          | Sends, gated by OptOutRegistryConstraint                  |
| `DRONE` / `ROBOTICS` | Surface-hours, with airspace / kinematic gating           |
| `SATELLITE`          | Beam-footprint-hours                                      |

The full rule set ships in the `@enfinitos/sdk-auditor` package
(metering module) with every release — so a regulator can
reproject historic packs offline.

## Settlement

Metered units feed [settlement](/concepts/settlement). Until the
auditor confirms that the metering projection is bit-identical, the
settlement number is not legally final.
