The percentage that had no denominator
A board slide reports ninety-four percent endpoint coverage. Someone asks for the denominator. Four teams give four different answers: the CMDB count, the Active Directory machine object count, the cloud inventory API total, and the number of licensed agent seats deployed. The percentage is real. The denominator is not agreed upon. That gap is the problem this article addresses.
Coverage is a ratio. A ratio without a defined denominator describes only its numerator. When four teams calculate the same metric against four different populations, the resulting percentages cannot be compared, aggregated, or trended — they are four separate claims about four separate scopes. The decision that matters is not how to raise the percentage. It is which denominator counts as authoritative, who owns it, and what the ratio excludes by construction.
That exclusion is where the exposure lives. A ninety-four percent figure computed against licensed agent seats tells you about licensed agent seats. It says nothing about the unmanaged device that joined the network last Tuesday, the cloud instance spun up outside the change process, or the contractor endpoint that never received a license. Knowing the denominator does not close those gaps automatically, but it makes them visible. Not knowing it makes them invisible while the percentage looks healthy.
Choosing a denominator and defending it
The denominator is not a technical output. It is a governance decision. Picking the wrong population understates exposure; picking a population that cannot be maintained produces drift between the metric and reality within weeks.
NIST SP 800-53 Rev. 5 control CM-8 requires that system component inventories be updated as components are installed, removed, or updated, distinguishing a governed removal from an asset that has simply stopped reporting (Source: NIST SP 800-53 Rev. 5, https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final). That distinction is load-bearing here: an asset that stops sending telemetry has not left the denominator unless a governed process removed it. Treating silence as absence inflates coverage silently.
The inventory serving as your denominator requires a named owner—a team holding both the operational authority to add or remove records and direct accountability when the count is inaccurate. Without designated ownership, the inventory inevitably drifts, eroding confidence in the coverage metric. Each candidate source—whether a CMDB, cloud provider API, directory service, or network discovery tool—carries inherent coverage assumptions and operational blind spots. Evaluate the tradeoffs among these sources, select the one that most accurately reflects your declared scope, document what it intentionally excludes, and confirm clear ownership before computing any metrics.
The practical test: can you query the denominator programmatically, reproduce the count on demand, and explain why a given asset appears or does not appear? If the answer to any of those is no, the denominator is not yet defensible.
The four coverage figures worth computing
These four figures are computable from records a practitioner already has. Each requires the same preparation: resolve asset identity before computing the ratio, and state the denominator explicitly alongside the result.
| Figure | Denominator | Numerator source | Identity key used | What overstates it |
|---|---|---|---|---|
| Endpoint agent coverage | Governed asset inventory (e.g., CMDB or cloud API) | Agent management console — assets with agent check-in within defined window | hostname + serial_number where available | Stale CMDB records inflate denominator; duplicate hostnames deflate numerator |
| Vulnerability scan coverage | Same governed asset inventory | Vulnerability scanner — assets with completed scan in current cycle | IP address correlated to hostname via DNS or CMDB | Shared IPs (NAT, load balancers) overcount scanned assets; ephemeral instances that scanned then terminated look covered |
| Identity provider (IdP) representation | Same governed asset inventory | IdP device object records — enrolled and active | device ID from MDM or IdP device record | Devices enrolled to a shared service account appear covered; stale device objects not pruned after decommission |
| Named ownership | Same governed asset inventory | CMDB or asset management system — records with a non-null, active owner field | asset_id linked to owner_id in HR or IAM system | Departed employee records not deprovisioned; leave assets appearing owned; shared group ownership with no primary contact |
Each figure answers a specific operational question. Agent coverage answers whether you have telemetry. Scan coverage answers whether vulnerability state is current. IdP representation answers whether the asset participates in your authentication control plane. Named ownership answers whether there is an accountable human for the asset — without which remediation workflows break before they start.
Running all four against the same denominator lets you see their intersection: assets with agent telemetry but no vulnerability scan, assets in the IdP but with no named owner, assets with a named owner but no agent. Those intersections are where unmonitored exposure concentrates. In environments with high asset churn — cloud, contractor endpoints, lab networks — the intersection view often reveals more actionable gaps than any single coverage figure.
Where double counting creeps in
The same physical or virtual host can appear as a hostname in one tool, an instance identifier in a second, and a MAC address in a third. Calculating coverage before completing identity resolution inflates the metric, and that distortion peaks where the estate is most dynamic. Unowned or improperly tracked populations—such as ephemeral cloud workloads, hosts cycling through DHCP reassignments, or devices roaming across network segments—heavily skew this ratio when suppressed rather than systematically assigned and accounted for.
The remedy is identity resolution before ratio computation, not after. In most environments, a composite key combining at minimum two stable identifiers — for example, serial_number and hostname, or instance_id and private_IP — reduces false matches more reliably than either field alone. The right combination depends on what your tools consistently expose; choose fields that are populated in your actual records, not fields that are theoretically available.
Deduplication logic should be versioned and reproducible. If the coverage figure changes because the deduplication logic changed, that is a methodology change, not a coverage improvement. Track both separately.
What the figure cannot tell you
Coverage is a population statement, not a risk statement. A ninety-percent coverage figure that excludes your most sensitive systems is operationally worse than a sixty-percent figure that includes them. The percentage does not encode which assets matter — it encodes only what fraction of the named population meets the criterion.
NIST SP 800-30 Rev. 1 directs that risk assessments document their assumptions, constraints, and the degree of uncertainty in results, and communicate that uncertainty to decision-makers rather than presenting determinations as if made under complete information (Source: NIST SP 800-30 Rev. 1 Guide for Conducting Risk Assessments, https://csrc.nist.gov/pubs/sp/800/30/r1/final). The same obligation applies to coverage metrics reported upward: state the denominator, state what the denominator excludes by construction, and state the confidence in the identity resolution that produced the numerator. A figure without those qualifications is precise but not accurate.
The procedure to run this quarter
Run these steps in order. Skipping identity resolution before computing ratios produces a figure that looks precise and may be wrong.
Step 1 — Name the denominator and its owner. Select one governed inventory as the authoritative population. Document what it excludes. Assign a named owner with authority to add and remove records. Confirm the inventory is queryable programmatically.
Step 2 — Resolve asset identity. Before joining any tool's output to the denominator, establish a composite identity key. Determine which two or more fields are consistently populated across your tools. Deduplicate within each tool's output first, then join to the denominator. Version the deduplication logic.
Step 3 — Compute each of the four figures. Run each ratio against the same denominator in the same reconciliation cycle. Record the denominator count at the time of computation — it may change between runs.
Step 4 — Compute the intersection. Identify assets that appear in the denominator but are missing from two or more coverage figures simultaneously. Those assets have neither telemetry nor scan coverage nor IdP representation, and are the highest-priority remediation target regardless of the overall percentage.
Step 5 — State what the figure excludes. Before reporting upward, document the denominator scope, the date of last reconciliation, and any population explicitly excluded (air-gapped systems, OT assets not in scope, assets pending classification). A coverage percentage without a declared scope is not a coverage measurement. Treating this documentation step as optional is where coverage metrics most often mislead the teams that rely on them.
Sources
- NIST SP 800-53 Rev. 5: https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final
- NIST SP 800-30 Rev. 1 Guide for Conducting Risk Assessments: https://csrc.nist.gov/pubs/sp/800/30/r1/final