---
issueRef: "#179"
version: 9
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
updatedAt: 1785416322799
---
## Clarifications utilisateur — 30 juillet 2026

### Portée fonctionnelle V1
- Les graphes de statistiques sont **téléphone uniquement**.
- Ils sont consultables **après la séance** et **dans l'historique**.
- La navigation entre `étape`, `série`, `exercice`, `séance` se fera a priori via **un sélecteur de scope** ; UX devra confirmer la meilleure forme pour que cela tienne correctement sur un téléphone.

### Statistiques V1
- V1 limitée à :
  - `FC`
  - `distance`
  - `calories`
- Le système doit rester **hexagonal** et conçu pour permettre l'ajout simple d'autres métriques plus tard, sans recadrage structurel.

### Règles d'affichage des graphes
- `FC` : affichage normal + lignes horizontales `min` / `max` quand pertinent.
- `distance` et `calories` : même logique générale de graphe, **sans** lignes horizontales `min` / `max`, car métriques cumulatives.
- Pour les métriques cumulatives (`distance`, `calories`), la valeur affichée est **relative au scope affiché** :
  - `étape` : départ visuel à `0` au début de l'étape
  - `série` : départ visuel à `0` au début de la série
  - `exercice` : départ visuel à `0` au début de l'exercice
  - `séance` : départ visuel à `0` au début de la séance
- Cette remise à zéro est **uniquement une règle d'affichage** ; on ne duplique pas les données en stockage.

### Règles de stockage des données pour les graphes
- On stocke une donnée **toutes les 15 secondes** pour alimenter les graphes.
- Cela concerne **uniquement** les données historisées pour affichage/statistiques, pas le flux live complet.
- Source unique : **uniquement les données envoyées par la montre**.
- Aucune interpolation.
- Pour une fenêtre de 15 secondes, on conserve **la dernière donnée montre non encore consommée** au moment de l'échantillonnage.
- Les métriques calculées (ex. calories) ne sont calculées/enregistrées que si la montre a effectivement fourni les valeurs nécessaires.
- Ordre de grandeur attendu : sur 2 heures, environ **480 valeurs maximum par statistique**.

### Trous de données
- Si aucune donnée n'est reçue pendant plus de **2 minutes**, le graphe relie la dernière valeur connue à la suivante via un **segment en pointillé**.
- Ce segment pointillé est **purement visuel**.
- On ne stocke **aucune fausse valeur intermédiaire**.

### Marqueurs par scope
- Vue `étape` : pas de marqueurs supplémentaires demandés.
- Vue `série` : marqueurs de **début/fin d'étape**.
- Vue `exercice` : marqueurs de **début/fin de série**.
- Vue `séance` : marqueurs de **début/fin d'exercice**.

### Contraintes transverses — 30 juillet 2026
- Les modifications doivent être prises en compte sur **toutes les couches de l'application**, **serveur inclus**, pour que la **sauvegarde** et la **synchronisation** fonctionnent correctement.
- Il ne faut donc pas livrer une solution limitée au stockage local/UI si les données du ticket doivent voyager ou survivre correctement via les mécanismes de sync/historique.

### Hors périmètre V1
- Aucun buffer/rejeu local côté montre pour compenser une déconnexion téléphone-montre.
- Ce sujet pourra être réévalué plus tard, mais il est **hors périmètre V1**.