# Screenshot to data contract

Use this when an application and its source display different values.

## Capture the claim

- Record the application value, label, filters, timestamp, and URL.
- Record the source value, dimensions, refresh date, and suppression markers.
- Write the disagreement as one sentence with matching dimensions.
- If the dimensions differ, document the grain difference before calling it a discrepancy.

## Trace one value backwards

1. UI formatter and label.
2. Component input or API response.
3. Cache key and lifetime.
4. Query or read model.
5. Stored row and key constraints.
6. Load mapping.
7. Parsed artifact.
8. Raw export and source.

At each boundary, save the value and dimensions. The first divergence locates the defect.

## Convert evidence into a contract

- Add anonymized screenshot values as fixtures.
- Preserve exact, censored, floor, and interval semantics.
- Assert that dates are parsed, not sorted as display strings.
- Assert all dimensions required by the claim are present.
- Assert a coarse exact total is never below its detailed exact-only floor.
- Assert the UI label names the qualifier it renders.
