# Content coverage

A second, separate measurement: which page roles a site has, and which it lacks.

!!!warning Not part of the total
The coverage score does **not** feed the Agent-Readiness total. It is reported alongside
it and it generates fixes, but it moves no points. Folding it in would move every
historical customer number at once, which is a product decision rather than a refactor.
!!!

## Formula

```
score = round(earned_weight / total_expected_weight × 100)
```

## Role weights

| Role | Weight |
|---|---|
| `pricing` | 10 |
| `catalog` | 10 |
| `comparison` | 9 |
| `faq` | 8 |
| `about` | 7 |
| `proof` | 7 |
| `editorial` | 6 |
| `how_it_works` | 6 |
| `contact` | 5 |
| `policies` | 4 |

## Expected roles by archetype

| Archetype | Expected roles | Total weight |
|---|---|---|
| `service`, `saas` | pricing, comparison, faq, about, proof, editorial, how_it_works, contact, policies | **62** |
| `ecommerce` | catalog, faq, about, proof, editorial, contact, policies | **47** |
| `unknown` | about, contact, faq, policies | **24** |

`unknown` expects the least, because claiming a site lacks a comparison page when you
cannot tell what kind of site it is would be a guess dressed as a measurement.

## Confidence and withholding

Confidence is `medium` when pages were found only via homepage links, `high` otherwise.

The score is **withheld** (`null`) in two cases:

- Discovery method was `home_only` — nothing but the homepage was reachable.
- The discovered-URL list was truncated. Here the roles *found* are still reported;
  only the claim about what is missing is withheld.

Both cases are the same principle as the [evidence gates](scoring.md#evidence-gates):
you cannot report an absence you were never in a position to observe.

## Fixes

Each missing expected role becomes a fix on the `content_estate` channel, with an
expected gain equal to that role's weight.
