> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.datafortennis.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.datafortennis.com/_mcp/server.

# Points, scores and statistics

Points are ordered by canonical sequence within a match and release. Corrections
replace a version of the same identity; they are not additional observed points.
Read `record_kind` and `quality` alongside score and serving fields.

| Value | Interpretation |
| --- | --- |
| `source_observed` | An accepted source-observed point record |
| `derived_terminal` | A derived finishing record, not an independent observation |
| `penalty` | A distinct accepted penalty record |
| Nullable server/outcome/score | Meaning is unavailable or unresolved; no guessed value |

The match resource provides side-oriented supported set structures and result
consistency. It does not certify universal replay of all scoring rules. Partial
PBP can coexist with a known final result. Walkover without play differs from a
played match whose point evidence is missing.

## Metrics

Read `/v1/metrics` for the versioned definitions. A metric identifies its side,
set grain, code, unit, value and available numerator/denominator. Supported units
include counts, ratios, percent, ratings and km/h. Values are decimal strings.

Do not add match totals to set totals or average ratios without operands. A
validated zero remains zero. Missing values remain null; rejected YTD zero
templates do not become measurements. For doubles, the measurement subject can
be the entire side, not an individual player.

Known matches without a statistics family return typed empty data and coverage
context. A full replay verification flag is not inferred from the presence of
statistics, a final score or many points.