---
title: "S13 bindings"
description: "Data-binding map of Diagnostic · Diagnostic result · animated reveal: every field to its source, and what each required state shows."
source: "design/hifi/S13/bindings.md"
---

> Part of [Brand and design](/design/llms.txt). Every page: [llms.txt](/llms.txt).

# Data-binding map: S13 Diagnostic · Diagnostic result · animated reveal

> Generated by `botgumi-design index` from `../../screens.json`. Edit that file, not this page.

Every field [S13](/design/hifi/s13/index.md) shows and where it comes from.

| Field | Source (endpoint or local state) | Format | Fallback |
|---|---|---|---|
| result · score ring + count-up | `api GET /attempts/{attempt_id} assessment.overall` · `assessment.overall`, `assessment.band` (colour), `assessment.band_label` (Accept-Language) | 0→N count-up 1200 ms | — (screen only shown when assessed) |
| result · score ring + count-up | `api GET /attempts/{attempt_id} assessment.band` |  |  |
| result · score ring + count-up | `api GET /attempts/{attempt_id} assessment.band_label` |  |  |
| result · summary, notes, evidence, one-action | `api GET /attempts/{attempt_id} assessment` · `assessment.*` (article language) | — | dimension with `insufficient_evidence` → `dimension.insufficient` |
| result · evidence chips | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` · `assessment.evidence[].start_ms` | `mm:ss` | — |
| result · key points | `api GET /attempts/{attempt_id} assessment.key_point_coverage[]` · `assessment.key_point_coverage[]` | covered ✓ / missed ! | hide section if empty |
| `GET /v1/plan` | `call GET /plan` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.band_label (Accept-Language)` | `api GET /attempts/{attempt_id} assessment.band_label` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.dimensions.efficiency.note` | `api GET /attempts/{attempt_id} assessment.dimensions.efficiency.note` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.dimensions.efficiency.score` | `api GET /attempts/{attempt_id} assessment.dimensions.efficiency.score` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.dimensions.fluency.note` | `api GET /attempts/{attempt_id} assessment.dimensions.fluency.note` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.dimensions.fluency.score` | `api GET /attempts/{attempt_id} assessment.dimensions.fluency.score` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.dimensions.key_info.note` | `api GET /attempts/{attempt_id} assessment.dimensions.key_info.note` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.dimensions.key_info.score` | `api GET /attempts/{attempt_id} assessment.dimensions.key_info.score` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.dimensions.structure.note` | `api GET /attempts/{attempt_id} assessment.dimensions.structure.note` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.dimensions.structure.score` | `api GET /attempts/{attempt_id} assessment.dimensions.structure.score` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[0].note` | `api GET /attempts/{attempt_id} assessment.evidence[].note` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[0].start_ms` | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[0].transcript_excerpt` | `api GET /attempts/{attempt_id} assessment.evidence[].transcript_excerpt` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[1].note` | `api GET /attempts/{attempt_id} assessment.evidence[].note` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[1].start_ms` | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[1].transcript_excerpt` | `api GET /attempts/{attempt_id} assessment.evidence[].transcript_excerpt` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[2].note` | `api GET /attempts/{attempt_id} assessment.evidence[].note` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[2].start_ms` | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[2].transcript_excerpt` | `api GET /attempts/{attempt_id} assessment.evidence[].transcript_excerpt` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[3].note` | `api GET /attempts/{attempt_id} assessment.evidence[].note` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[3].start_ms` | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[3].transcript_excerpt` | `api GET /attempts/{attempt_id} assessment.evidence[].transcript_excerpt` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[id=ev_d1].start_ms` | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[id=ev_d2].start_ms` | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[id=ev_d3].start_ms` | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.evidence[id=ev_d4].start_ms` | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.key_point_coverage[0].text` | `api GET /attempts/{attempt_id} assessment.key_point_coverage[].text` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.key_point_coverage[1].text` | `api GET /attempts/{attempt_id} assessment.key_point_coverage[].text` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.key_point_coverage[2].text` | `api GET /attempts/{attempt_id} assessment.key_point_coverage[].text` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.one_action.evidence_id → evidence.start_ms` | `api GET /attempts/{attempt_id} assessment.one_action.evidence_id` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.one_action.evidence_id → evidence.start_ms` | `api GET /attempts/{attempt_id} assessment.evidence[].start_ms` |  |  |
| `assessment.one_action.example_sentence` | `api GET /attempts/{attempt_id} assessment.one_action.example_sentence` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.one_action.instruction` | `api GET /attempts/{attempt_id} assessment.one_action.instruction` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.one_action.micro_skill_id` | `api GET /attempts/{attempt_id} assessment.one_action.micro_skill_id` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.one_action.title` | `api GET /attempts/{attempt_id} assessment.one_action.title` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `assessment.summary (article language)` | `api GET /attempts/{attempt_id} assessment.summary` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |
| `derived: count(key_point_coverage.covered)` | `derived key_points_covered` · From the board's `data-bind`; no row in data-binding.md yet. |  |  |

## Derived values

Computed on device; each from the sources it names.

| Value | From | How |
|---|---|---|
| `key_points_covered` | `api GET /attempts/{attempt_id} assessment.key_point_coverage[].covered` | How many key points the retelling covered. |

## Binds on the boards

The `data-bind` values across every state.

- `GET /v1/plan`
- `assessment.band_label (Accept-Language)`
- `assessment.dimensions.efficiency.note`
- `assessment.dimensions.efficiency.score`
- `assessment.dimensions.fluency.note`
- `assessment.dimensions.fluency.score`
- `assessment.dimensions.key_info.note`
- `assessment.dimensions.key_info.score`
- `assessment.dimensions.structure.note`
- `assessment.dimensions.structure.score`
- `assessment.evidence[0].note`
- `assessment.evidence[0].start_ms`
- `assessment.evidence[0].transcript_excerpt`
- `assessment.evidence[1].note`
- `assessment.evidence[1].start_ms`
- `assessment.evidence[1].transcript_excerpt`
- `assessment.evidence[2].note`
- `assessment.evidence[2].start_ms`
- `assessment.evidence[2].transcript_excerpt`
- `assessment.evidence[3].note`
- `assessment.evidence[3].start_ms`
- `assessment.evidence[3].transcript_excerpt`
- `assessment.evidence[id=ev_d1].start_ms`
- `assessment.evidence[id=ev_d2].start_ms`
- `assessment.evidence[id=ev_d3].start_ms`
- `assessment.evidence[id=ev_d4].start_ms`
- `assessment.key_point_coverage[0].text`
- `assessment.key_point_coverage[1].text`
- `assessment.key_point_coverage[2].text`
- `assessment.one_action.evidence_id → evidence.start_ms`
- `assessment.one_action.example_sentence`
- `assessment.one_action.instruction`
- `assessment.one_action.micro_skill_id`
- `assessment.one_action.title`
- `assessment.overall`
- `assessment.summary (article language)`
- `derived: count(key_point_coverage.covered)`

## States

- Loading: From [states.md](/design/states/index.md) (Diagnostic result): ring at 0 until data (never shown before `assessed`)
- Empty: From [states.md](/design/states/index.md) (Diagnostic result): —
- Error (retryable / not): From [states.md](/design/states/index.md) (Diagnostic result): — · fatal: —
- Offline: From [states.md](/design/states/index.md) (Diagnostic result): cached assessment
