∿The Swimming Hub

Comment ça marche

Le suivi de performance

Comment ça marche

Version du 21 octobre 2026 — la séance de suivi, socle de la récolte, fusion de cases, lecture des relevés, blocs étalés, lecture en quatre niveaux, nages par tour, séries qui retrouvent leur place, effectif dit en faits, valeurs qui se retrouvent une par une, une déclaration qui compte ce qu'elle couvre, une mesure par ligne, deux onglets pour le pouls et le ressenti, huit indices calculés à la lecture (dont le temps de repos), un bilan par allure ramené au 50 m, un bandeau, la distance dominante d'une case, une vue d'ensemble par partie du corps (calendrier, zones, répétitions par date, mesures et leurs totaux), l'analyse des répétitions dans le temps (chiffres clés, mesures superposées axe par axe, vitesse, SWOLF), une répétition composée lue comme sa ligne est écrite.

Ce que c'est

Un espace à part, séparé du programme. Il sert à noter ce qui s'est réellement passé dans l'eau : les chronos d'une série, ce qui a été compté longueur par longueur, la fréquence cardiaque, la difficulté ressentie.

Il lit le programme — tes séances, tes groupes, tes présences, tes bassins — et il n'y écrit jamais. Il n'écrit rien non plus vers le profil du nageur ni vers le moteur des allures : ce que tu notes ici ne change aucun temps cible et aucune ancre.

On l'active saison par saison

Une saison est un cadre de temps : elle ne s'ouvre ni ne se ferme. Ce qui s'active, c'est le suivi d'entraînement sur une saison : tant qu'il n'est pas activé, le module ne récolte rien de ses séances et ne propose rien pour elles — ni séance suivie, ni case « ⏱ Suivre », ni « Remplis tes séries ».

Désactiver le suivi d'une saison ne commande que la récolte. Ses nouvelles séances ne se récoltent plus ; ce qui a déjà été relevé reste lisible, pour toujours, et rien n'est effacé.

Deux façons d'alimenter

  • Automatique — un nageur était présent sur une séance à contenu détaillé. La structure est déjà là : séries, répétitions, distances, nages, départs, corps (bras / jambes / nage complète), matériel. Tu cliques sur la série que tu veux suivre, et tu remplis.
    Tu peux aussi cocher d'avance, en écrivant la séance. Quand le suivi d'entraînement est activé sur sa saison, chaque bloc de l'éditeur de séance porte une case « ⏱ Suivre ». C'est la même case que dans le suivi : cocher là, c'est suivre la série ici, et une série déjà suivie apparaît cochée dans l'éditeur. Décocher masque la série, sans rien effacer de ce qui a été relevé. Dès qu'un nageur est mis présent, la séance suivie s'ouvre toute seule avec ces blocs, il y est suivi, et il reçoit « Remplis tes séries » s'il peut saisir sur cette saison — y compris quand c'est lui-même qui s'est mis présent. Ce message part une seule fois par séance.
  • La séance de suivi — une vraie séance, créée par « ⏱️ Ajouter une séance de suivi », dans la liste des Séances. C'est le formulaire de séance, réduit à ce que ce cas demande : le groupe (ses nageurs sont tous cochés, on en décoche), une date — elle est toujours datée —, et un contenu toujours détaillé (autant de modules qu'on veut, lignes, sous-lignes, tours, variantes par répétition). Le suivi s'ouvre dès l'enregistrement, sans aucun lien avec les présences. Elle est sur le planning comme les autres.
    ⭐ Son référentiel est le sien. Par défaut : le référentiel de sa saison quand elle en suit un, sinon celui du programme, et tout activé (intensité, nages, matériel, départ, temps cibles, types). Ce réglage se range dans la séance, pas dans la saison : il ne change rien aux autres séances du groupe. Ses allures se nomment dans son référentiel — à la saisie, à la lecture et dans le nom des séries.
    ⭐ Les deux référentiels s'avertissent, ils ne se bloquent pas. Une séance de suivi réglée sur un autre référentiel que sa saison le dit dans son formulaire ; une saison dont on active le référentiel d'intensité dit sur quel référentiel sont déjà ses séances de suivi, avec leur nombre, et recommande celui-là. Rien n'est refusé, rien n'est réaligné : chacun garde ce qu'on lui a choisi.
    ⭐ Elle se refait un autre jour par « Dater à une autre date » : la copie garde le contenu, le groupe, les nageurs, le référentiel, la coche du kilométrage et les blocs à suivre, et ne porte aucun relevé.
    ⭐ Elle compte, ou non, dans le quantitatif — et c'est écrit sur elle. La coche « Compte aussi dans le kilométrage » est décochée par défaut : la séance reste alors dans le suivi seulement. Sa carte montre ses mètres, mais aucun total ne les compte — volume de la semaine, frise, bilans par zone, kilométrage — et un appel validé dessus n'y verse aucun mètre. La coche se change après coup : les totaux suivent, les relevés ne bougent pas. Pourquoi décochée par défaut : un volume qui manque se voit et se répare, un volume qui gonfle en silence, non.

Une répétition ne se réduit jamais à sa distance

Si tu as prescrit un 4 × 50 en « 25 rouge / 25 bleu », l'outil ne te demande pas « le temps du 50 » : il te demande le 25 rouge, puis le 25 bleu. Chaque morceau de la répétition — on l'appelle un bout — porte sa distance, sa nage, son allure et son matériel, et chaque longueur hérite de ceux du bout qui la couvre. C'est ce qui permettra, plus tard, de demander « toutes les 25 rouge de la période ».

Et une répétition est une chose à part entière. Quand une ligne de séance est détaillée en sous-lignes qui se répartissent la ligne entière — « 10 × 50 » écrit en 3 crawl tuba + 1 battement + 3 crawl + 1 battement + 2 crawl à deux allures —, chaque répétition reçoit de SA sous-ligne sa distance, sa nage, son allure, son matériel, son temps de départ et ses bouts. La série garde son résumé ; ce sont les répétitions qui portent le détail.
Une sous-ligne est toujours une répétition, jamais un morceau de répétition : une alternance à l'intérieur d'une répétition s'écrit dans la ligne elle-même (« 15 MAX - 35 SOUPLE »). La seule question est une addition, les tours des sous-lignes compris : les sous-lignes couvrent-elles la ligne entière (leur enchaînement se nage une fois), ou une de ses répétitions (il se nage une fois par répétition) ? Si aucune des deux additions ne tombe juste, rien n'est déduit.
Une sous-ligne qui a elle-même des sous-lignes, ou des tours, se déplie à son tour, jusqu'au dernier étage : « 2 × 400 » = 3 tours de (2 × 25 + 50) + 100 donne 10 répétitions par tour.
Et ce qu'une sous-ligne ne dit pas — nage, allure, matériel —, elle le reprend de la ligne du dessus, étage par étage : c'est la règle de la séance.
Conséquence : les répétitions d'une même série peuvent ne pas avoir la même distance, donc pas le même nombre de longueurs. Une case qui n'existe pas le dit, elle n'est pas dessinée vide — et une déclaration de groupe ne peut pas recouvrir une case qui n'existe pas.

Et une répétition appartient à SON TOUR. Une ligne répétée plusieurs fois peut se nager autrement d'un tour à l'autre : « 2 tours de 10 × 50 », le premier en brasse et ciseaux, le second en papillon et battement dos. Le plan d'une répétition porte donc son tour, et ce qui est mesuré le portait déjà. ⛔ Le tour 0 veut dire « vaut pour tous les tours » — c'est le cas d'une ligne sans retouche, et rien ne change pour elle.
L'unanimité descend d'un cran, elle ne change pas : si les tours ne disent pas tous la même chose, la SÉRIE reste muette sur ce point — elle n'emprunte pas la nage du premier tour — et c'est chaque répétition de chaque tour qui porte la sienne. C'est exactement la règle d'une nage composée, appliquée un étage plus bas.
⛔ Et la comparaison porte sur ce qu'un point veut dire, pas sur la façon dont il est écrit : un matériel que les deux tours portent reste celui de la série, même si l'un le tient de la ligne et l'autre de la retouche du tour.
⚠️ Le numéro d'une répétition ne bouge pour autant jamais : une retouche de tour ne change que la nage, l'allure ou le matériel. Si elle changeait une distance ou un découpage là où des valeurs existent, le programme ne touche à rien et dit laquelle le bloque.

Une ligne mère ou ses sous-lignes, jamais les deux. Suivre les deux ferait compter deux fois les mêmes mètres et les mêmes relevés. Dès que l'une est suivie, l'autre n'est plus cochable, et l'écran dit pourquoi. ⛔ Rien n'est décoché d'office : si des valeurs existent des deux côtés, c'est au coach de trancher lesquelles comptent.

Un identifiant de séance n'est pas une ancre stable. Enregistrer une séance la recrée : ses modules et ses lignes repartent avec de nouveaux identifiants, à contenu identique. Une série suivie perd donc le fil qui la reliait à sa ligne, et sans ce fil il n'y a plus de séance à interroger. ⛔ Ce module ne la supprime jamais et ne la double jamais : il la reconnaît orpheline, il le dit, et il la recolle quand les FAITS le permettent — même place dans la séance, même nombre de répétitions (celui de la répartition quand la ligne s'étale), même distance, même nombre de tours. Si plusieurs lignes correspondent, ou si aucune ne correspond exactement, rien n'est fait et c'est annoncé : rattacher des relevés à la mauvaise ligne serait pire que de les laisser détachés.

Et ce qui a été mesuré ne change jamais de répétition. Un détail ajouté après coup ne fait qu'ajouter ce qui manquait. S'il changerait le nombre de répétitions, leur distance, ou s'il retirerait sa case à un chrono déjà pris, la série reste telle quelle et le programme le dit.

Quand la séance change, le suivi suit. Si tu corriges après coup l'allure, la nage ou la distance d'un bloc dans la séance, ses séries suivies prennent la correction à l'enregistrement de la séance : la série, chacune de ses répétitions et chacun de ses bouts. Les valeurs relevées, elles, ne bougent pas : un chrono reste le même chrono, il se range sous la nouvelle allure — et peut rejoindre un bloc qui la portait déjà. Une série composée garde ses bouts, chacun avec la sienne. Deux cas restent tels quels, et c'est voulu : une distance qui change alors que des relevés ont été pris sur l'ancienne, et une répétition que la séance découpe désormais autrement — des mesures ne se reclassent pas sous une forme qui n'était pas la leur. Une série sans séance du programme n'a rien derrière elle : elle ne suit rien.

Un découpage prescrit ajoute ses repères, il n'enlève aucun mur. Par défaut, une répétition se découpe en longueurs, selon le bassin. Quand la séance prescrit un découpage — un 15 / 35 sur un 50 —, ce sont ses bouts qui portent le chrono de base de ces répétitions. Le chrono par longueur, quand il est relevé, garde tous ses murs : le 15 s'ajoute, le 25 et le 50 restent. Les autres mesures restent par longueur, puisque les longueurs existent toujours : le bout de 15 → 35 m contient le virage du 25, et c'est normal. Là où un mur est aussi la fin d'un bout, ce sont deux relevés côte à côte, comme le chrono de la répétition et sa dernière longueur : rien n'est recopié de l'un dans l'autre.

Un bout qui ne finit pas sur un mur porte son temps comme les autres. Un 15 m chronométré donne une vitesse, et une vitesse n'a pas besoin d'un mur. Le mur reste écrit à côté du bout — il dit d'où vient le temps —, mais il ne refuse plus la mesure.
⛔ Et ce n'est pas une marque du coach : une marque est un repère posé à l'œil, qui ne nourrit aucun calcul ; un découpage prescrit est une mesure normée, écrite dans la séance au mètre près. Les deux gardent leurs propres tables et ne se remplacent jamais.

Un temps de bout est un temps depuis le départ de la répétition, exactement comme un temps par longueur : les bouts partitionnent la répétition, la grammaire ne change pas. La durée d'un bout se lit par soustraction avec le dernier bout renseigné avant lui — et avec le départ s'il n'y en a aucun — et ne se stocke jamais. En saisie par durées, c'est le même appui : le dernier bout ne réclame jamais ceux d'avant, et s'il est le seul noté, ce qu'on y tape est le temps depuis le départ.
⛔ Et le dernier bout et le chrono de la répétition sont le MÊME fait : ils ne se comptent qu'une fois. C'est la même règle que le dernier mur d'un relevé par longueur.
⭐ Un découpage prescrit ne rend jamais le total impossible à saisir. La case du chrono existe donc aussi sur une répétition découpée : elle porte la valeur du dernier bout, les deux cases se reflètent, et il n'y a qu'un rangement. Le total se note seul, un bout se note seul, ou les deux ensemble.

Le grain : la répétition

L'unité de référence est la répétition — le « 100 » de 8 × 100. C'est elle qui porte un chrono, une difficulté ressentie, une fréquence cardiaque. La longueur est le grain d'en dessous : c'est là qu'on note ce qui relève de la technique (coups de bras, coulée, virage, respirations). La série est le grain d'au-dessus : c'est elle qui porte la nage, l'allure, le matériel, le départ.

⭐ D'où part la répétition — dans l'eau (poussé au mur, le défaut), plongé ou lancé — vient du plot que la séance pose sur sa ligne, et suit ses tours comme la nage. Un rang qui ne dit rien part comme sa série. La prise du chrono en découle : au pied pour dans l'eau et lancé, au signal pour le plongé (réaction et plongeon compris). ⭐ Il ne sépare rien dans la lecture : une série nagée avec un départ plongé et des départs dans l'eau reste UNE série, dans le même bloc, le même bilan, la même case — et sur les courbes, chaque répétition plongée ou lancée porte le plot (bleu, rouge) à la place du point. ⛔ Ce qui ne se moyenne pas, en revanche, se ventile dans le bloc : la coulée de la 1re longueur a une ligne par départ — une coulée d'après un plongeon et une coulée au mur ne se mêlent jamais —, et l'état des lieux les dit à part. Une répétition plongée ou lancée peut porter en plus, sur sa 1re longueur, le temps de réaction et l'entrée dans l'eau (temps et distance), avec les définitions de l'analyse de course : l'origine du temps découle du départ — le signal pour un plongé, le toucher du camarade pour un lancé (la réaction peut alors être négative) —, et ces deux temps se lisent donc par départ. La distance part du mur dans les deux cas. ⛔ Le départ ne se pose jamais sur un bout d'une répétition.

Une longueur d'entraînement se note exactement comme une longueur de course : mêmes mesures, mêmes unités, mêmes définitions que dans la fenêtre d'analyse d'une épreuve. C'est ce qui permettra, plus tard, de comparer les deux.

Tu choisis ce que tu mesures

Rien n'est imposé. Tu coches une fois ce que tu veux voir à l'écran, et l'écran ne montre que ça. Un champ décoché disparaît de l'écran ; ce qui a déjà été noté dedans reste en base et revient si tu le recoches.

Et ça tient même quand tu enregistres : ce qui n'est pas à l'écran ne fait pas partie de l'enregistrement, donc rien ne peut l'effacer. Cacher n'est jamais détruire — c'est vrai pour un champ décoché et pour des cases repliées sur leur moyenne ; et désactiver le suivi d'une saison ne cache même rien : ses relevés restent lisibles.

Par défaut, trois cases seulement sont cochées : le chrono de la répétition, le ressenti, et la difficulté de la séance. Tout le reste est fermé — la fréquence cardiaque, les notes libres, et les mesures par longueur (en bassin de 25 m, suivre une séance entière longueur par longueur, c'est de l'ordre de 160 lignes par nageur). Tu ouvres ce dont tu as besoin, quand tu en as besoin.

Tu relèves où TU veux — pas seulement aux murs

L'outil disait que les seules marques qui existent sont les murs. C'est faux : en bassin de 50, un coach relève au 25. « 26 coups de bras sur le 50, dont 11 au 25 ». Tu poses donc ta marque, une fois pour la série, et tu la retrouves sur chaque répétition.

⛔ Une marque et une longueur sont deux grains, et ils ne se mélangent jamais. Le 26 et le 11 sont deux mesures : l'outil n'en fait pas 37, et ne déduit pas que le second 25 valait 15. Ce que tu n'as pas compté n'est écrit nulle part — et ce sera vrai aussi dans les vues d'analyse, qui sont écrites avec cette règle plutôt qu'après elle.
⚠️ Une marque n'est pas un mur : le chrono y est pris à l'œil, et l'écran le dit.

Tu peux répondre par groupe — en fusionnant des cases

Sur un 20 × 100, tu ne notes pas vingt chronos : tu dis « les 5 premiers à 1:15, les 5 suivants à 1:13 », ou simplement « en moyenne 1:13 ». Tu le fais dans le tableau, comme dans un tableur : tu balaies les cases avec la souris, tu écris ton chiffre, et elles deviennent une seule case.

  • Le balayage peut prendre plusieurs répétitions et plusieurs longueurs : « j'étais à 13 coups de bras du 8ᵉ au 12ᵉ » sur les longueurs 1 à 4, c'est une case.
  • Le regroupement se fait par mesure : les chronos avec les chronos, les coups de bras avec les coups de bras. Si ton balayage couvre deux mesures, tu obtiens deux cases — on ne donne pas un seul chiffre pour un chrono et un nombre de coups de bras.
  • Un clic sur le nom d'une mesure prend toute sa colonne d'un coup.
  • Rien n'est écrit tant que tu n'as pas cliqué « Regrouper » : balayer ne fait que proposer.

La case fusionnée garde ce que tu as voulu dire, et il y a trois façons de le dire — ce ne sont pas les mêmes données :

  • en moyenne — « en moyenne 1:13 sur les cinq ». Une seule des cinq peut valoir 1:13.
  • chacune — « 13 coups de bras du 8ᵉ au 12ᵉ ». Chaque longueur vaut 13.
  • au total — « 26 coups de bras sur le 50 ». Tu n'as pas compté longueur par longueur, tu as compté plus large. C'est une mesure réelle, prise à un grain plus grossier : ni un calcul, ni une promesse sur chaque longueur. ⛔ Elle ne se répartit jamais sur les longueurs qu'elle couvre — on ne sait pas si c'était 13+13 ou 11+15.

Tu chronomètres comme tu veux — le programme range toujours pareil

Certains coachs laissent le chrono tourner et lisent le cadran à chaque mur (14.20 · 30.70 · 45.10 · 59.80). D'autres notent chaque longueur (14.20 · 16.50 · 14.40 · 14.70). Les deux existent, l'outil accepte les deux : tu le dis une fois dans « Données récoltées ».

⛔ C'est ta façon de taper qui change, jamais le sens de la donnée. Ce qui est rangé est toujours le temps depuis le départ de la répétition — la même forme qu'au carnet de course, et la seule qui reste lisible quand il manque une longueur. Sinon, dans un an, la même valeur voudrait dire deux choses selon un réglage oublié.

⭐ Et l'écran montre toujours les deux : à côté de chaque case, l'autre lecture. Une longueur qui affiche « +2.30 » se repère à l'œil, avant même d'enregistrer. Quand la longueur d'avant manque, la durée ne peut pas se calculer. Ce que tu tapes en durée part, lui, du dernier chrono noté avant, et du départ si aucun ne l'est.

Et le chrono, quand tu n'as que le passage au 50 ? Les chronos de longueur sont des temps cumulés depuis le départ : tu remplis la 2ᵉ longueur, tu laisses la 1ʳᵉ vide. C'est exact, mais ça se lit comme un oubli. Replie les deux : la case dit « 1:02.40 · passage · au 50 m ». ⛔ Ce n'est pas une moyenne — on ne moyenne pas des temps cumulés —, c'est la valeur au bout. Et si le bout manque, la case n'affiche rien plutôt que de faire passer le 25 pour le 50.
⭐ Cette carte se remplit directement, sans rien déplier — et elle parle la langue de ton réglage : le passage au bout si le chrono tourne, ce que l'empan a coûté si tu notes chaque longueur (« le deuxième 50 »). L'autre lecture est écrite en dessous. Les longueurs qu'elle couvre restent vides — une valeur d'empan ne se répartit jamais.
⭐ Et le chrono de la répétition et le détail par longueur sont la même mesure : l'écran écrit ce que le détail donne au bout, juste sous la case, et signale quand les deux ne disent pas la même chose.

Et si les cases sont déjà remplies ? Alors on ne déclare pas — ces valeurs serviront à l'analyse, et on ne joue pas sur les deux tableaux. L'écran propose autre chose : afficher leur moyenne, avec son effectif (« 6 valeurs sur 8 cases »). ⛔ C'est une lecture, pas une donnée : elle se recalcule à chaque affichage — une valeur ajoutée demain la fait bouger toute seule. Le programme retient où tu as replié, jamais le chiffre : ton repli te retrouve quand tu rouvres, et il s'efface tout seul si les cases qu'il recouvrait se vident.

⛔ Elle n'est jamais recopiée sur chaque case. Des mesures qui n'ont jamais existé fausseraient tout ce qu'on lira plus tard. Et dégrouper — le ✕ sur la case — remet des cases vides : la valeur déclarée ne s'y recopie pas non plus, tu ne l'as jamais donnée case par case. Pour la même raison, une déclaration et des valeurs case par case ne peuvent pas porter la même mesure au même endroit : l'outil refuse, et il dit lesquelles gênent.

Ce qui ne se regroupe pas est dit, jamais avalé en silence. Le chrono de chaque longueur, le toucher de main et le décollage des pieds sont des instants comptés depuis le départ de la répétition : les moyenner ne voudrait rien dire. Si ton balayage les attrape, elles sont laissées telles quelles et l'écran te dit pourquoi.
La nage n'est pas une mesure non plus, et elle n'a plus de colonne du tout : elle vient de la séance. Elle se lit au-dessus du tableau, longueur par longueur, quand elle change en cours de route — il n'y a rien à y remplir.

L'écran ne déroule pas

La séance se lit comme elle a été écrite : une liste de ses séries, dans l'ordre de l'entraînement, avec une case à cocher. Cocher ne déplace rien — l'échauffement reste avant la série principale, quoi que tu suives et dans quel ordre.

Cocher ne recharge rien non plus. Tu peux en cocher cinq d'affilée : la liste ne se referme pas, la page ne saute pas, rien ne bouge sous tes doigts. C'est la règle de tout cet écran : un geste qui ne change que l'affichage ne repart jamais au serveur — cocher, déplier, replier. Le programme n'écrit que quand tu cliques sur « Enregistrer ».

Ce que tu coches apparaît au-dessus, une ligne par série, avec ce qu'il reste à remplir. La saisie se fait dans une fenêtre : une ligne par répétition, et toutes ses cases dessus. Le chrono, le ressenti, puis les mesures cochées, chacune avec ses longueurs — leur nombre est connu d'avance, elles n'ont donc rien à faire derrière un bouton. Quand le tableau devient large, il défile tout seul et la colonne des répétitions reste collée à gauche.

Un petit cœur, posé juste après le numéro de répétition, ne reste que pour ce dont le nombre varie : la fréquence cardiaque (autant de moments de prise que tu veux) et les fréquences de nage (autant de mesures par longueur). Il s'ouvre dans une petite fenêtre par-dessus, coiffée du numéro de la répétition, et ne touche à rien de ce que tu as déjà tapé ailleurs. Échap ne referme que cette petite fenêtre, jamais la série derrière.
⭐ Cette colonne est collée à gauche avec les numéros de répétition : elle ne part jamais hors écran, même avec trois mesures sur huit longueurs.

Un seul bouton enregistre, et il referme. Tu remplis tout ce que tu veux — plusieurs répétitions, leurs longueurs, les détails — puis tu enregistres une fois : la fenêtre se referme sur ce geste. À côté, Annuler et fermer referme sans rien écrire. Ce qui n'est pas à l'écran n'est pas envoyé, donc pas touché ; et si tu fermes par la croix avec des saisies en cours, le programme te le dit avant.

Ce qui se suit, et comment tu le sais

Il n'y a pas de liste de choses à faire, ni d'état à poser. Le suivi s'active dans la saison ; en écrivant la séance, tu coches ce que tu veux suivre ; la présence ouvre la séance suivie ; et ceux qui peuvent saisir reçoivent Remplis tes séries. C'est tout : rien d'autre ne se marque, et aucune séance n'est à aller activer après la présence.

La page « Suivi d'entraînement » est la lecture de tes relevés : c'est elle qu'ouvre le menu. Tes séances de suivi s'y lisent avec toutes les autres : ce sont des séances du programme.

La lecture se fait par nageur : tu choisis le nageur d'abord, puis la portée — toute sa vie, une saison, une période, une semaine, un cycle. La saison, le cycle et la semaine sont ceux de la planification : les choisir pose leurs deux dates, rien de plus. Par défaut, la saison en cours. Dès qu'une date est posée, ou « toute sa vie », la lecture couvre toutes ses saisons : une période qui enjambe deux saisons se lit d'un seul coup.
⛔ Ce qui borne la lecture, c'est ton périmètre, jamais l'interrupteur du suivi. Tu lis les relevés des saisons de tes groupes ; un nageur lit en plus les siens, dans les saisons où il nage — et jamais ceux d'un autre. Une saison dont le suivi n'est plus activé reste lisible.
⭐ Un bandeau dit de qui et de quoi on parle — le nageur, la saison lue, la portée, les dates —, puis une vue d'ensemble, lue sur les mêmes valeurs que tout le reste de l'écran, et rangée par partie du corps : nage complète, jambes, bras (lues dans le référentiel des nages, à la nage de la valeur), et « sans nage renseignée » pour les valeurs dont la nage n'est pas dite. Une partie qui ne porte aucune répétition relevée n'a pas d'onglet. Un enchaînement de nages (« Mixte ») va à la nage complète.
· Le calendrier : une case par jour, de la première à la dernière date de la portée (sinon de la première à la dernière séance lue) ; le chiffre est le nombre de répétitions DISTINCTES qui portent une valeur ce jour-là, pouls et ressenti compris. Le titre compte les séances qui en portent.
· L'état des lieux des zones : une ligne par zone ACTIVE du référentiel de la saison (plus toute zone retirée qui porte encore des valeurs), dans son ordre, avec le nom et la couleur que l'utilisateur lui donne ; une colonne par nage relevée dans la partie et le bassin choisis. La case lit le chrono de la répétition : chaque chrono est RAMENÉ sur la distance de la zone — temps × (distance de la zone ÷ distance de la répétition) —, puis moyenné sur les valeurs (une moyenne annoncée pèse le nombre de cases qu'elle couvre). La distance de la zone se lit sur son jeton, jamais sur son nom : 100 et 50 (et i_anaero) → 25 m ; 25 (et i_max) → 15 m ; tout autre jeton → 50 m (choix du programme, sans source publiée). Les coups de bras, les ondulations, la fréquence et la coulée s'y ajoutent, en moyenne par longueur, quand ils sont relevés. ⛔ Le bassin, la nage, l'allure ET le matériel restent des conditions : un matériel n'est jamais moyenné avec un autre. Une valeur sans allure, ou à allures enchaînées, n'a pas de zone : elle n'entre pas dans le tableau, et l'écran dit combien de répétitions en portent.
· Répétitions × dates : une ligne par bloc (distance, nage, allure, bassin, matériel), une colonne par date ; dans la case, les répétitions distinctes qui portent une valeur et la moyenne de leur chrono.
· Les mesures : pour chaque mesure de répétition et de longueur (hors texte libre), le nombre de répétitions distinctes et de dates qui en portent, et, pour celles qui s'additionnent (coups de bras, ondulations, respirations — le catalogue des déclarations le dit), leur total : la somme des valeurs relevées et déclarées « chacune », des déclarations « au total », et, pour une déclaration « en moyenne », sa valeur multipliée par le nombre de cases qu'elle couvre. Un 0 relevé compte.
⛔ Aucun indice calculé n'y entre, aucune quantité nagée (mètres, volumes) n'y figure.
⭐ Une case de ces tableaux ouvre l'analyse d'un bloc dans le temps — le second onglet de l'écran. Une ligne de « répétitions × dates » ouvre son bloc ; une case de zone, qui rassemble plusieurs blocs, ouvre celui qui a le plus de dates, puis le plus de répétitions.

Un bloc dans le temps : l'analyse des répétitions

Un bloc : bassin, nage, allure, distance et matériel, lus par leurs codes. Son nom nomme le matériel quand il y en a un, et rien sinon. Il est comparable quand ses mesures portent au moins deux dates. Le bloc analysé se choisit parmi tous les blocs relevés, par les niveaux de la lecture avec la partie du corps entre le bassin et la nage — bassin, partie du corps (celle de la vue d'ensemble, lue dans le référentiel des nages), nage, allure, distance —, puis le matériel quand un bloc restant en porte, chacun ne proposant que ce qui existe sous le précédent, par leurs codes ; un niveau laissé ouvert prend la valeur du bloc qui a le plus de dates, puis le plus de répétitions. Un bloc d'une seule date montre ses chiffres clés ; les graphiques demandent deux dates. Tout ce que l'écran affiche, tu peux le refaire ainsi :
· le point d'une date est la moyenne des valeurs de ce jour (relevés et moyennes annoncées, une moyenne annoncée pesant le nombre de cases qu'elle couvre) — la même règle que la case ;
· la moyenne d'une mesure est celle de la case : toutes ses valeurs, pondérées par l'effectif. ⛔ Jamais la moyenne des dates : sur un bloc de 33 répétitions en six dates, la moyenne des six moyennes du jour ne pèse pas un jour de 3 répétitions comme un jour de 9 ;
· l'écart d'une date est son point moins la moyenne ; l'étendue des moyennes, le plus grand point moins le plus petit, et son pourcentage, cette étendue divisée par la moyenne ;
· la moustache d'une date vaut ± 1 écart type des valeurs de ce jour (calcul de la case, divisé par effectif − 1), dès qu'il y en a deux ;
· les répétitions d'une date sont les répétitions DISTINCTES du bloc qui portent une valeur ce jour-là — le chiffre de « répétitions × dates ». Leur somme est l'effectif du bloc. Elles sont montrées, elles ne pondèrent aucun point ;
· la vitesse est celle du module : la distance de la répétition divisée par son chrono, répétition par répétition, puis moyennée comme le reste — ce n'est pas la distance divisée par le chrono moyen ;
· le SWOLF est celui du module : le temps d'une tranche de 50 m plus ses coups de bras (la somme des longueurs). Une nage de jambes, une distance qui n'est pas un multiple de 50 m ou des coups manquants n'en donnent pas, et l'écran dit lequel.
⭐ La règle des axes : les mesures d'un graphique sont posées ensemble, chacune sur son axe, centré sur sa moyenne. Toutes partagent la même amplitude relative, ± 5 % de leur moyenne, élargie au point (ou à la moustache) le plus éloigné s'il en sortirait, plus un dixième, arrondie au pour cent supérieur. Une valeur v d'une mesure de moyenne m se place donc à (v ÷ m − 1) ÷ A de la demi-hauteur, au-dessus ou au-dessous du pointillé : toutes les moyennes tombent sur le pointillé, et une même pente vaut une même variation en pourcentage. Une mesure de moyenne nulle, ou qui n'a qu'une date, n'a pas d'axe en pourcentage, et l'écran le dit. Les dates sont posées à intervalle égal, dans l'ordre ; le trait relie deux dates qui existent, rien n'est tracé à la place d'une date qui manque.
⛔ Aucun lissage, aucune tendance, aucun seuil, aucune couleur de jugement. Le pouls et le ressenti ne sont pas des propriétés d'un bloc : ils restent dans leurs onglets.

Un module, une date

Le troisième onglet lit un bloc à une date — ou à toutes ses dates —, choisi par la même cascade et le même état que l'analyse. Tout se lit dans ce qui est déjà servi :
· les répétitions de la date sont celles de la lecture relationnelle du bloc (les grandeurs d'une même répétition, côte à côte), gardées à cette date, dans l'ordre nagé — série, tour, rang ; leur nombre est celui des répétitions distinctes du bloc ce jour-là. Une répétition saisie en groupe par une déclaration « chacune » en est une, avec la valeur déclarée ; une déclaration « en moyenne » ou « au total » n'en fait pas (elle décrit l'ensemble, pas chaque répétition) ;
· une répétition prise dans une répétition composée (le 25 jaune d'un « 50 (25 jaune / 25 souple) ») est une répétition du bloc de son morceau : elle compte dans le nombre de répétitions de la date, se lit dans le tableau et sur les graphiques à sa place dans l'ordre nagé, avec sa marque (« dans un 50 m · 25 Papillon JAUNE / 25 Crawl Souple ») dans la ligne et dans la bulle, et se dessine en creux. Ses chiffres clés sont les siens : une tuile par forme, la moyenne des répétitions nagées seules d'abord, puis celle de chaque forme marquée, et le pied du tableau donne les deux. Les axes se centrent sur la moyenne des répétitions nagées seules, à défaut sur celle de la forme marquée. ⛔ Aucun chiffre ne mélange deux formes, et les totaux de la vue d'ensemble comptent cette répétition une seule fois, dans le bloc de sa répétition composée ;
· les chiffres clés de la date sont ceux de son point : moyenne (pondérée, comme la case), écart type (divisé par effectif − 1, dès deux valeurs), médiane, étendue (la plus petite et la plus grande valeur) ; les répétitions qui portent ces deux bornes sont nommées. La tuile « toutes dates » est la case du bloc, et l'écart de la date est celui de l'analyse (la moyenne de la date moins celle de la case) ;
· la récupération est le temps de repos dérivé du bloc : le départ de la répétition moins son chrono, moyenné à la date ;
· l'allure porte la couleur et le rang de sa zone dans le référentiel de la saison, retrouvés par son code (son nom, lui, se lit dans le référentiel de la séance de suivi quand elle a le sien) ;
· les colonnes du tableau sont les mesures relevées du bloc, une par longueur pour celles qui se relèvent à la longueur, et seulement celles qui portent une valeur ce jour-là ; le pied est la moyenne de la date de chaque mesure.
· la valeur d'une répétition, pour une mesure relevée à la longueur, est la moyenne de ses longueurs ce jour-là, calculée comme une case (même règle de moyenne, sur les seules longueurs de cette répétition ; une longueur vide n'entre pas) ; pour une mesure de la répétition (le chrono), c'est la valeur relevée ;
· « Répétition par répétition » pose ces valeurs dans l'ordre nagé, un axe par mesure, centré sur la moyenne de la date de cette mesure (son point). Tous les axes ont la même amplitude relative A : A part de 5 %, et pour chaque valeur v d'une mesure de moyenne μ, si 1,1 × |v / μ − 1| dépasse A, A devient ce nombre arrondi au centième supérieur ; la bande compte aussi (μ ± σ du chrono). L'axe va de μ × (1 − A) à μ × (1 + A) ;
· la bande est la moyenne de la date ± σ, où σ est l'écart type des chronos de la date (somme des carrés des écarts divisée par effectif − 1). Elle n'existe qu'à partir de deux chronos ;
· « Longueur par longueur » pose chaque longueur de chaque répétition, dans l'ordre nagé : une position par longueur qui porte une valeur d'au moins une mesure, un trait par répétition (il se coupe entre deux répétitions), le fond grisé à partir de la longueur 2. Les axes suivent la règle de A ci-dessus, centrés sur la moyenne de la date. Une mesure n'y entre que si elle se relève à la longueur ET porte une valeur ce jour-là ; sans aucune, la carte n'existe pas ;
· « Dispersion de la série » pose les chronos de la date — ceux des répétitions nagées seules, une seule forme — sur un axe, avec la moyenne et la bande ci-dessus. Un chrono est « dans la bande » quand μ − σ ≤ v ≤ μ + σ, bornes comprises ; le compte affiché est le nombre de ces chronos sur le nombre de chronos de la date. Des chronos égaux s'empilent sur la même abscisse. Sous deux chronos, la carte le dit ;
· « La série, date par date » (toutes les dates) trace une courbe par date : en abscisse le numéro de la répétition dans l'ordre nagé de cette date, en ordonnée son chrono. Une courbe s'arrête à la dernière répétition chronométrée de sa date ; rien n'est prolongé ni complété. La teinte va de la plus ancienne (la plus claire) à la plus récente (la plus foncée). Sous deux dates, la carte le dit.
⛔ Aucune valeur n'est reconstruite ni supposée : un fait que le suivi ne récolte pas (le départ plongé ou dans l'eau, le module type) le dit, et une case sans valeur ne s'affiche pas. Un module sans matériel n'a pas de case « Matériel ».

Rien n'est obligatoire, et une case vide n'est pas un zéro

Tu peux remplir une longueur et en laisser sept vides, un chrono et pas la fréquence, une série et pas les autres. Une case vide veut dire « rien relevé » : elle ne vaut pas zéro, et le programme n'invente jamais une valeur à sa place. Vider une case remplie efface ce relevé, et lui seul.
⭐ Et dans l'autre sens, un 0 relevé est une valeur : une longueur à 0 coup de bras compte dans l'effectif, entre dans la moyenne, s'écrit dans la liste et pose son point sur la courbe.

Et il te rend ce qu'il a avalé

Un écran de lecture, par nageur et par période, rangé en QUATRE NIVEAUX EMPILÉS : le bassin, puis la nage, puis l'allure, puis la distance. Au bout des quatre, il ne reste qu'une chose qui distingue deux relevés : le matériel. La vue tient donc en un bloc par matériel — son intitulé (« 50 m · Crawl · Amplitude · 25 m · Tuba ») et, dessous, toutes ses mesures côte à côte. Une case, c'est la moyenne, et rien d'autre. ⛔ Sauf le pouls et le ressenti d'une répétition, qui ne sont pas des cases — voir plus bas pourquoi.

La nage, ce sont les nages DITES — crawl, battement, dos, ondulation, brasse, ciseaux — pas des familles. « Battement » et « crawl » sont deux niveaux, parce que ce sont deux gestes ; et il n'y a pas de niveau « corps » à côté, parce que « battement » EST déjà les jambes du crawl. ⛔ Rien n'est retiré de la base pour autant : la famille et le travail de bras ou de jambes existent toujours et servent ailleurs. C'est le RANGEMENT de cet écran qui change, pas la donnée.

Chaque niveau PARTITIONNE, et c'est ce qui rend la lecture vérifiable : toute valeur a un bassin, une nage, une allure et une distance — « non dite » comprise, avec son propre code. La somme des effectifs de toutes les combinaisons est donc égale, mesure par mesure, à celle de l'écran entier. ⚠️ C'est aussi ce qui a fait entrer la DISTANCE dans les conditions de ce qui décrit une longueur prise à part (coups de bras, ondulations, coulée, virage) : un niveau qui ne partitionne pas compterait des valeurs deux fois, ou pas du tout.

⭐⭐ UNE RÉPÉTITION COMPOSÉE EST UN BLOC À PART : L'ANALYSE SUIT L'ÉCRITURE DE LA LIGNE. Un « 50 (25 jaune / 25 souple) » n'est pas un 25 jaune plus un 25 souple ; un 200 en « 25 jaune / 25 bleu » est un 200. Un rang est composé quand ses bouts ne disent pas tous la même nage et la même allure, et que la répétition, lue en entier, est un enchaînement : les codes de ses bouts dans l'ordre, chacun avec sa distance. ⛔ Seulement là où le rang et la série ne disent rien ; des bouts qui disent tous la même chose ne font pas un enchaînement (un 15 MAX + 35 souple en crawl a pour nage le crawl, et pour allure l'enchaînement) ; le matériel seul ne compose pas ; et un bout sans code laisse l'axe « non dit », avec sa cause.
· Le bloc composé se nomme comme la ligne est écrite : « 50 m · 25 Brasse JAUNE / 25 Crawl Souple · 25 m » — la distance, la suite de ses morceaux, le bassin, le matériel quand il y en a. Deux compositions différentes sont deux blocs. Il porte le chrono de la répétition, ses indices, et, morceau par morceau, ce qui a été relevé sur chacun : le cumul d'un morceau (« Chrono du bout — 25 m (0 à 25 m) »), les coups, les ondulations, la coulée de ses longueurs. ⛔ Il ne se mêle jamais à un bloc de même distance nagé d'une seule nage et d'une seule allure. Une longueur à cheval sur deux morceaux s'y lit sans morceau, et le dit.
· Un morceau qui n'est pas le dernier se lit AUSSI à côté des répétitions de même nature : un 25 jaune reste un 25 jaune. Dans « 25 m · Brasse · JAUNE », son temps propre et les mesures de ses longueurs ont leur ligne à eux, marquée « dans un 50 m · 25 Brasse JAUNE / 25 Crawl Souple », avec leur moyenne ; les 25 nagés seuls gardent la leur, et aucun chiffre ne mélange les deux formes. Le temps propre d'un morceau se lit par la règle du cumul : le premier, son cumul ; un morceau du milieu, son cumul moins celui du morceau d'avant — et si ce cumul-là manque, il n'y a pas de temps propre.
⛔ Le dernier morceau ne se lit que dans le bloc composé : il est le chrono de la répétition.
⛔ Un même relevé peut être lu dans deux blocs, il n'est jamais compté deux fois dans une même moyenne. La vue d'ensemble et le bilan par allure le comptent une fois, dans le bloc composé.
⛔ Rien n'est recalculé : ce sont les mêmes valeurs, qui se lisent à leur place. Un enchaînement n'a pas de rapport coups/cycle — la distance par cycle le dit — et les autres indices se calculent comme avant. Un rang qui n'est pas composé se range exactement comme avant : une valeur de longueur relevée dans un de ses bouts prend la nage, l'allure et la distance de ce bout.
⭐⭐ DANS LES ONGLETS, TOUT ENCHAÎNEMENT SE RANGE SOUS « MIXTE », en nage comme en allure : une seule entrée, quelle que soit la composition — sinon les combinaisons feraient autant d'onglets que de séances. Elle se reconnaît au code (le rang a plus d'un bout), jamais au nom affiché. Le bloc, lui, garde son enchaînement et son nom composé : « Mixte » est un filtre, il ne fusionne rien.

⭐⭐⭐ UNE DÉCLARATION COMPTE CE QU'ELLE COUVRE, ET SA NATURE DIT COMMENT. Une déclaration « chacune » posée sur un rectangle de tours × répétitions × longueurs dit que chaque case porte cette valeur : elle vaut donc autant de valeurs que de cases, et ces valeurs se posent SUR ces cases, sous les conditions de chacune. Une « en moyenne » est UNE mesure qui PÈSE son nombre de cases dans la moyenne, et qui ne fournit aucune valeur individuelle : l'étendue, l'écart type et la médiane ne portent pas sur elle, et l'écran le dit. Une « au total » est une somme sur un empan : elle garde sa ligne, à son grain.
⛔⛔ UNE CASE, UNE VALEUR : un relevé individuel pris dans le rectangle d'une déclaration GAGNE, et la déclaration ne compte pas cette case ; entre deux déclarations qui se recouvrent, la plus récente l'emporte. Le même fait ne peut pas compter deux fois.
⭐ ET UNE MESURE N'A QU'UNE LIGNE. Le relevé case par case et les déclarations qui portent sur cette mesure alimentent le même effectif et la même moyenne. La NATURE est une provenance, pas une mesure : elle se lit sur chaque valeur, et la modale dit combien viennent d'un relevé, combien d'une déclaration, et par combien de gestes.

⭐⭐ L'EFFECTIF SE DIT EN FAITS, PAS EN POURCENTAGE : « 4 valeurs — 4 répétitions, 2 séries, 2 séances », sous chaque case. Une moyenne sur 3 valeurs ressemble exactement à une moyenne sur 300 : il faut donc dire sur quoi elle porte — mais le dire par un FAIT du nageur. ⛔ Le pourcentage de remplissage et son dénominateur ont disparu de l'écran : « 8 cases pouvaient en porter » est un raisonnement du programme sur ce qui AURAIT pu être relevé, et deux comptes qui ne parlent pas de la même chose dans la même fenêtre ne se lisent pas. ⚠️ Le compte des cases possibles reste CALCULÉ — c'est lui qui décide si une mesure jamais relevée doit se dire — mais il ne s'affiche plus.

Un clic sur une case ouvre le reste : sur quoi les valeurs ont été prises, la moyenne, l'étendue avec la séance et la série de chacun de ses deux extrêmes, l'écart type, la médiane — chaque nombre avec sa définition, pour qu'on puisse le refaire soi-même — puis la LISTE des valeurs, une par une, chacune avec sa date, sa séance, sa série, sa répétition et sa longueur, triable par valeur. ⛔ Rien n'est calculé de plus pour ça : ce sont les mêmes valeurs que la moyenne. ⚠️ La liste se borne à 40 et le DIT, avec le total ; les comptes, eux, portent sur toutes.

Une case ne rassemble que des valeurs comparables : même nage, même allure, même matériel, même distance de répétition, même bassin. Un chrono de 50 m et un chrono de 200 m ne se moyennent pas ; 26 coups de bras en brasse et 26 en dos ne décrivent pas le même geste ; et 26 coups de bras avec un tuba ne décrivent pas le même geste que 26 sans. Ce qui ne varie pas d'une ligne à l'autre devient un titre au-dessus du tableau plutôt qu'une colonne répétée ; ce qui varie reste une colonne d'identité, à gauche.

⛔ Une mesure jamais relevée n'est pas dessinée — mais elle est dite, par son nom, sous son bloc. ⛔ Un bloc sans aucune valeur ne s'affiche pas du tout, ni dans les blocs ni dans les onglets : s'il n'y a rien à lire, il n'y a rien à montrer. Un bloc « non dit » qui porte des valeurs, lui, reste affiché avec sa mention : c'est elle qui montre l'oubli dans la séance. ⚠️ Une mesure couverte par une déclaration, elle, n'est plus une case vide : la déclaration dépose ses valeurs SUR les cases qu'elle couvre, et la mesure en porte donc.

⭐⭐⭐ HUIT INDICES SONT CALCULÉS À LA LECTURE, ET AUCUN N'EST STOCKÉ. Le SWOLF, la vitesse moyenne, la distance par cycle, le temps ramené au 50 m, les coups de bras ramenés au 50 m, la fréquence de cycles théorique, le stroke index et le temps de repos se refont à chaque affichage depuis les valeurs relevées — aucune colonne, aucun cache, exactement comme les moyennes. ⚠️ Les deux RAMENÉS AU 50 n'existent que dans le bilan d'une allure : ils y sont la base commune sans laquelle une moyenne entre distances ne décrirait aucune nage.
⛔⛔ UN INDICE N'EST PAS UN RELEVÉ, et ça se voit partout : il ne compte pas dans l'effectif des valeurs récoltées, un bloc annonce ses valeurs et ses indices séparément, et la conservation se vérifie sans lui. ⛔ Aucune étiquette de valeur : ni « bon », ni « mauvais », aucune couleur, aucun seuil. Chaque indice porte sa formule et ce qu'il ne dit pas — un nombre qu'on ne peut pas refaire soi-même est un nombre qu'il faut croire.
⭐ UNE CASE REMPLIE PAR UNE DÉCLARATION « CHACUNE » EST UN RELEVÉ COMME UN AUTRE, et c'est ce qui donne aux indices leur portée : les coups d'une répétition sont la somme de ses longueurs, d'où qu'elles viennent. Mesuré sur le dossier de référence : 17 SWOLF avec les seuls relevés directs, 61 avec les déclarations — 44 d'entre eux reposent sur au moins une case déclarée.

  • SWOLF, à la maille de la répétition, ramené au 50 m : (temps de la répétition en secondes ÷ base) + (coups de bras de la répétition ÷ base), où base = distance ÷ 50. ⛔ Il faut TOUTES les longueurs : une seule case de coups manquante et la somme serait fausse.
    ⭐ ET IL DESCEND À LA TRANCHE DE 50 DÈS QUE LES PASSAGES SONT LÀ : un 200 dont les passages au 50, 100 et 150 sont relevés donne QUATRE SWOLF, un par 50, chacun sur ses deux murs et ses propres coups. ⛔ TOUT OU RIEN PAR RÉPÉTITION : mélanger deux 50 mesurés et une moyenne pour le reste compterait deux fois les mêmes secondes. ⚠️ Et chaque VALEUR dit lequel des deux elle est — une ligne peut porter les deux, une étiquette ne pourrait pas le dire.
  • Vitesse moyenne, à la maille de la répétition : distance ÷ chrono, en m/s. ⚠️ Elle porte la répétition ENTIÈRE — départ, coulées, virages et touche compris — et ce n'est donc pas la vitesse de nage du stroke index, qui retire la coulée. ⭐ C'est le SEUL chiffre de temps qui se compare d'une distance à l'autre, et c'est ce qui rend le bilan d'une allure possible.
  • Distance par cycle, à la maille de la répétition, sur la partie nagée : distance nagée ÷ cycles, en m/cycle. La distance nagée est la somme, longueur par longueur, de (longueur − longueur de coulée de cette longueur) ; la longueur est le bassin, sauf la dernière d'une distance qui n'en est pas un multiple, qui s'arrête à la distance de la répétition. Cycles = coups de bras de la répétition ÷ k (2 en crawl et en dos, 1 en brasse et en papillon — la famille de la nage décide). ⛔ Il faut les coups ET la coulée de TOUTES les longueurs, comme pour le SWOLF : une coulée absente n'est ni supposée ni comptée à zéro, et la case dit alors ce qui manque. Elle n'a besoin ni de chrono, ni de base de 50. C'est le rapport distance nagée ÷ cycles du stroke index, pris sur toute la répétition. ⚠️ Elle suit la vitesse à l'écran, mais les deux ne portent pas sur la même distance : la vitesse compte la répétition entière, coulées comprises. En cycles, pas en coups de bras. Une nage de jambes n'en a pas : aucun battement n'est compté. Une répétition qui enchaîne plusieurs nages n'en a pas non plus : un cycle n'y vaut pas le même nombre de coups d'une nage à l'autre.
  • Fréquence théorique, à la maille de la longueur, sur la portion nagée : cycles ÷ temps nagé × 60. Un cycle vaut 2 coups de bras en crawl et en dos, 1 en brasse et en papillon — la famille de la nage décide, et le référentiel la porte. Le temps nagé est la différence entre deux murs moins le temps de coulée ; au dernier mur, le chrono de la répétition fait office de mur. ⛔ Elle ne se mélange jamais avec la fréquence MESURÉE sur 3 cycles : deux mesures, deux lignes.
  • Stroke index, même maille et même portion, avec les mêmes temps nagé et cycles : distance nagée² ÷ (temps nagé × cycles), en m²/s par cycle, où distance nagée = longueur du bassin − longueur de coulée. [source : Costill et al. 1985, PMID 4055188]. ⚠️ Il monte quand on va vite ET quand on avance beaucoup par cycle : il ne distingue pas les deux.
  • Temps de repos, à la maille de la répétition : départ − chrono de la répétition, en secondes. Le départ est celui de la série, ou celui du rang quand la série est étalée. C'est le repos RÉALISÉ, jamais le repos prescrit. ⛔ Il n'existe que si les deux existent : sans départ ou sans chrono, la case dit ce qui manque. ⛔ Un chrono plus long que le départ ne donne pas une valeur négative : la case dit que le chrono dépasse le départ. Un chrono égal au départ donne 0, et 0 est une valeur. Il suit les données récoltées : sans chrono de la répétition récolté, il ne demande rien. ⛔ Il n'entre pas dans le bilan d'une allure : c'est un temps à sa distance, comme le chrono.

⭐⭐⭐ LE BILAN D'UNE ALLURE — CE QUE « TOUTES LES DISTANCES » REND. Les quatre niveaux ne changent pas, et les onglets de distance rendent exactement l'écran de détail. C'est l'entrée « Toutes » qui change de nature : au lieu d'empiler les blocs de toutes les distances, elle rend UN bilan par (bassin, nage, allure, matériel), et le détail PAR DISTANCE au clic — c'est ce qui permet de mettre en perspective les coups de bras d'un 50 et ceux d'un 200 à la même allure.
⛔⛔ ET ON N'AGRÈGE ENTRE DISTANCES QUE CE QUI SE RAMÈNE À UNE BASE COMMUNE, ET CETTE BASE EST LE 50 m — la même que celle du SWOLF, pour la même raison. Un 50 à 44 s et un 200 à 185 s moyennés ensemble donnent 114,5 s : arithmétiquement juste, physiquement vide. Entrent donc dans le bilan : la VITESSE (commune par construction), le TEMPS RAMENÉ AU 50 (temps de la répétition ÷ (distance ÷ 50)), les COUPS RAMENÉS AU 50 (même division), le SWOLF (déjà au 50) et les mesures de LONGUEUR (déjà par longueur).
⛔ UNE GRANDEUR BRUTE QUI DÉPEND DE LA DISTANCE N'ENTRE PAS : le chrono d'une répétition et celui d'un bout sortent du bilan, et le bilan le DIT en renvoyant à la vitesse. C'est le défaut mesuré qui a fait naître la ventilation, et il ne revient pas par la fenêtre.
⛔ ET ON NE CONVERTIT RIEN EN DOUCE : une valeur ramenée au 50 porte ce nom à l'écran (« Temps (par 50 m) », « Coups de bras (par 50 m) »), pour qu'on ne la confonde jamais avec un relevé. ⭐ Les deux descendent à la TRANCHE de 50 dès que les murs sont relevés — même découpage que le SWOLF, lu une seule fois, et tout ou rien par répétition : mélanger deux 50 mesurés et une moyenne pour le reste compterait deux fois les mêmes secondes. ⭐ D'où un invariant vérifiable valeur par valeur : SWOLF = temps par 50 + coups par 50.
⛔⛔ MAIS LEURS REFUS NE SONT PAS LES MÊMES. Le temps n'a besoin que d'une base de 50 et du chrono de la répétition ; les coups ont besoin en plus d'une nage QUI EN A et de TOUTES les longueurs. Une répétition peut donc porter l'un sans l'autre, et chacun dit ce qui lui manque — mesuré : 97 temps par 50, 68 coups par 50, 61 SWOLF sur 105 répétitions.
⛔⛔ CE QUI N'EST PAS UNE DISTANCE NE S'AGRÈGE PAS DU TOUT : le bassin, la nage, l'allure ET LE MATÉRIEL restent des conditions du bilan. Mesuré en crawl bleu, bassin de 25 : 1,15 m/s et 20,28 coups par 50 ; au tuba 1,10 m/s et 19,44 — plus lent ET moins de coups. La seule condition que le bilan efface est la DISTANCE.
⛔ ET UN BILAN DIT COMBIEN DE DISTANCES IL RECOUVRE, carte et case : c'est la RÉUNION des distances de ses mesures, et deux mesures d'une même carte peuvent ne pas recouvrir les mêmes (le SWOLF n'existe qu'à partir de 50 m). Une mesure qui n'a qu'une distance s'affiche quand même, avec un détail d'une seule ligne : c'est une information, pas un cas à masquer.
⛔ L'AGRÉGAT SE REFAIT SUR LES VALEURS BRUTES, jamais sur des moyennes de moyennes : les entrées se fusionnent AVANT la statistique, sinon une distance à 4 valeurs pèserait autant qu'une distance à 32. ⭐ Et les ENSEMBLES se réunissent au lieu de s'additionner : une série qui porte des valeurs sur deux distances ne compte qu'UNE série.
⛔⛔ ET LES DEUX MESURES RAMENÉES AU 50 N'EXISTENT QUE DANS LE BILAN — PAR CONSTRUCTION, PAS PAR FILTRE. Elles sont calculées dans un sac SÉPARÉ, qui n'alimente que le bilan : les lignes par distance, les quatre niveaux, les blocs et les quatre comptes de lignes ne les voient jamais. L'écran d'une distance choisie est donc identique au caractère près à celui d'avant. Un filtre posé plus bas aurait pu s'oublier ; une entrée séparée, non.
⚠️ Un bilan n'emporte NI la liste de ses valeurs une par une, NI son détail par série : mesuré, ça pesait 104 Ko pour rendre une seconde fois ce que les lignes de distance servent déjà. Sa question est la comparaison des distances ; le retour à une valeur se fait sur une distance, où la liste est entière.

⭐⭐ UNE CASE DU BILAN DIT À QUEL POINT ELLE EST GROSSIÈRE : sa DISTANCE DOMINANTE, les distances qui la composent et l'étendue de ses valeurs, et elle se déplie par distance — chacune avec ses mètres, sa moyenne et son effectif. La somme des effectifs dépliés égale l'effectif de la case.
⛔⛔ LA DOMINANTE SE COMPTE EN MÈTRES, JAMAIS EN RÉPÉTITIONS : mètres d'une distance = distance × nombre de répétitions qui portent une valeur de la case. 100 × 25 m = 2 500 m contre 50 × 400 m = 20 000 m : la dominante est le 400.
En cas d'égalité parfaite, et dans cet ordre : ① on retire la semaine la plus ancienne et on recompte les mètres, semaine après semaine, entre les seules distances à égalité ; ② la semaine est le microcycle de la planification qui contient la date, et une date hors de tout microcycle prend sa semaine du calendrier, du lundi au dimanche ; ③ égalité jusqu'à la dernière semaine : la distance de la répétition la plus récente l'emporte — la dernière date, puis, dans sa séance, l'ordre de la série, le tour et le rang.
⛔ Aucun autre critère, aucun arrondi, aucun hasard. Quand ces règles ne tranchent pas — deux séances le même dernier jour, une même répétition sous deux distances, une date prise dans deux microcycles —, la case dit que la dominante n'est pas tranchée, et pourquoi. Le dépli dit toujours la règle qui a choisi.

⛔⛔ ET UN BOUT QUI NE DIT RIEN NE DÉCIDE RIEN : IL LAISSE PASSER. La condition d'une longueur se lit en cascade — celle POSÉE sur la ligne, puis celle du BOUT qui la couvre, puis celle de la SÉRIE. Une cascade à trois étages ne s'arrête pas au deuxième quand le deuxième est MUET : un code vide est une absence de réponse, pas une réponse.
🔴 CE QUE ÇA RÉPARE, ET C'ÉTAIT MESURABLE : le rattrapage rend sa nage à la série sans écrire sur ses bouts. Le chrono d'une répétition (qui lit le rang) tombait alors sous « crawl » et les coups de ses longueurs (qui lisent le bout) sous « nage non dite ». La MÊME répétition occupait DEUX blocs, et chacun paraissait incomplet.
⚠️ SUR UNE SÉRIE COMPOSÉE, AUCUN REPLI : un bout muet au milieu de bouts qui parlent reste muet — la série a dit qu'elle n'avait pas une seule nage, et cette information est la bonne.

⭐⭐⭐ ET UNE CASE SANS VALEUR DIT CE QUI LUI MANQUE, NOMMÉMENT. ⛔ Rien n'est estimé, interpolé ni approché pour qu'un écran ait l'air plein : une case qui ne peut pas donner son indice reste vide et porte une phrase — « il manque le temps de coulée », « il manque un des deux murs ». Et quand la mesure manquante n'est pas suivie, l'écran le dit aussi : le coach sait alors quoi cocher pour allumer l'indice.
⛔ DEUX FAMILLES DE MOTIFS, ET ELLES NE SE LISENT PAS PAREIL. Ce qui relève de la NATURE de ce qui a été nagé n'est pas un oubli, et aucune phrase ne demande un geste : une nage de jambes n'a pas de coups de bras, une distance qui n'est pas un multiple de 50 n'a pas de base de 50, un 4 nages non décomposé n'a pas de rapport coups/cycle, un rang découpé en bouts n'a pas de chrono par longueur, et une longueur à 0 coup n'a pas de cycle. Ce qui relève de ce qui n'a pas été NOTÉ — le chrono, les coups, un mur, une coulée — est la seule famille qui nomme un relevé à prendre. ⇒ La nature passe avant le manque : annoncer « il manque le chrono » sur une nage de jambes promettrait une réparation qui ne viendrait jamais.

⭐⭐⭐ LE POULS ET LE RESSENTI ONT DEUX ONGLETS À EUX, ET C'EST UNE RAISON DE MÉTIER. ⛔ Ils ne suivent PAS les quatre niveaux, et c'est le cœur de la décision : les ranger sous « crawl · amplitude · 50 m » dirait qu'un pouls est une propriété d'une distance et d'une allure. Ils se lisent par séance et par série, dans l'ordre du calendrier, et chaque ressenti dit sa maille — la répétition, ou la séance. Le prévu s'écrit à côté du perçu là où les deux existent, et rien n'est calculé entre les deux.
Ce ne sont pas des propriétés d'une distance et d'une allure : ce sont des réponses à ce qui a été fait avant elles. Après 20 × 50 bleu, ce n'est pas la même chose qu'après 1 × 50 bleu : les moyenner entre séries différentes compare des réponses à des efforts qui n'ont rien à voir, et aucune ventilation ne répare ça — ce qui manque à la clé n'est pas une condition, c'est tout l'entraînement qui précède.
⚠️ Un second fait, du même ordre : un pouls a SEPT moments de prise possibles (au repos, à l'arrivée dans les 15 s, à 1, 2 et 3 minutes, à la fin de la série). Un pouls d'arrivée et un pouls pris trois minutes après tombaient dans la même moyenne : cette moyenne ne décrivait rien.
⇒ Ils se lisent donc série par série, une ligne par prise, avec leur moment et leur fenêtre de comptage écrits à côté. ⛔ Aucune donnée n'est effacée, aucune colonne n'est retirée, et la saisie ne change pas : on ne récolte pas moins, on lit mieux. ⚠️ La difficulté de la séance reste une mesure : elle porte déjà son contexte, qui est la séance entière.

⛔ Un temps CUMULÉ garde sa case par mur, ou par bout quand un découpage est prescrit : moyenner le cumul du 25 avec celui du 100 ne voudrait rien dire. Et une mesure qui n'est pas un nombre rend son effectif, pas une moyenne.

⭐⭐ L'ÉCRAN NE SE RECHARGE PAS. L'état complet est servi une fois avec la page ; les quatre niveaux sont des FILTRES dessus, et changer d'onglet ne demande rien au programme. L'adresse suit l'état — elle se copie, s'ouvre ailleurs sur la même vue, et le retour arrière du navigateur revient au niveau précédent. ⛔ ET AUCUN NOMBRE N'EST CALCULÉ DANS LE NAVIGATEUR : ni moyenne, ni écart type, ni effectif. Trier la liste des valeurs d'une case n'en est pas un : c'est un ordre d'affichage, sur la valeur brute que le programme met à côté de la valeur écrite. C'est pour ça que changer la période, la portée ou le nageur redemande au programme de relire — ce sont d'autres séances, donc d'autres cases possibles et d'autres moyennes. Refaire ces calculs à l'écran aurait créé une seconde autorité pour le même chiffre, et le jour où les deux divergent, personne ne le voit.

Les quatre niveaux s'enchaînent : chacun ne propose que ce qui existe sous le précédent, et le compte écrit à côté de chaque onglet est celui qu'on obtiendra. ⛔ Un niveau qui n'a qu'une valeur ne fabrique pas un choix : il l'écrit. Une entrée sans aucune valeur ne s'affiche pas. ⛔ Et « non dite » a, à chaque niveau, son propre code : le choisir filtre vraiment, il ne vaut jamais « aucun filtre ». ⛔ Le rangement ne change aucun calcul : ce sont les mêmes valeurs, les mêmes effectifs, simplement distribués.

La période se choisit aussi par CYCLE : la saison, un macrocycle, un mésocycle, une séquence, un microcycle. ⛔ Ce n'est pas une jointure : une séance ne porte aucune clé de cycle, elle porte sa DATE. Choisir un cycle écrit ses deux dates dans « Du » et « Au », qui restent visibles et retouchables. La planification reste donc la seule vérité sur « quel cycle couvre quoi », et la lecture ne s'en fabrique pas une seconde à côté. Un cycle sans dates ne se propose pas, un niveau de planification éteint dans la saison non plus.

Et quand la nage n'est pas connue, l'écran dit POURQUOI et OÙ aller la corriger. La distinction se fait sur des FAITS, jamais sur une intuition : la série porte-t-elle une ligne de séance ? son entraînement porte-t-il une séance du programme ? Selon la réponse, la phrase envoie vers la séance — avec son lien — ou vers la déclaration. ⛔ Le programme ne devine jamais une nage, et surtout pas d'après une nage voisine.

⭐ Chaque case se lit aussi dans le temps, dans sa fenêtre : un point par date de séance, la date en abscisse — le temps réel, de la première à la dernière séance de la période — et la valeur du jour en ordonnée. La valeur d'un jour est la moyenne des valeurs de ce jour, calculée comme celle de la case (une moyenne annoncée y pèse ses cases) ; ⛔ jamais la moyenne des séries du jour. Un trait vertical va du plus petit au plus grand relevé du jour, et chaque point dit, au survol, son effectif en faits et son étendue. La somme des effectifs des points vaut donc l'effectif de la case. ⛔ Rien n'est tracé entre deux dates : ni trait, ni lissage, ni tendance. Une case qui n'a qu'une date ne trace rien et le dit ; une mesure qui se compte n'a pas de courbe. Et quand la liste des valeurs d'une case s'arrête aux premières, la courbe le dit : elle, porte sur toutes.

⛔ Rien n'est stocké. Moyenne, écart, médiane, effectifs sont des lectures : elles se refont à chaque affichage depuis les valeurs brutes. Il n'y a aucune table de résultats, aucun chiffre gardé d'avance — et donc jamais un résultat périmé qui traîne.

⛔ Et les grains ne s'additionnent jamais. Les marques ont leur bloc. Une déclaration « au total » aussi : c'est une somme sur un empan, pas une moyenne par case. Un temps cumulé se lit mur par mur et jamais en moyenne d'ensemble. Le cumul de la dernière longueur, c'est le chrono de la répétition : il n'est compté qu'une fois.

Ce que le module ne fait pas — dans cette version

  • aucun chiffre calculé n'est STOCKÉ : tout se refait à l'affichage ;
  • aucun classement, aucune comparaison entre nageurs ;
  • aucune récupération déduite du temps de départ ;
  • aucune charge d'entraînement (RPE × durée) ;
  • aucun seuil, aucune alerte, aucune interprétation ;
  • aucune vue par référence de série, aucun cumul de volume : ils viendront ensuite ;
  • aucune moyenne de GROUPE : celle-là pose la question « combien de nageurs derrière ce chiffre », qui n'est pas celle du nageur seul. La sélection sépare déjà filles et garçons pour que le jour où elle arrivera, elle ne les mélange pas ;
  • aucun capteur : le bpm « lu sur un appareil » est une saisie, tu recopies ce que la montre affiche ;
  • rien du quotidien hors séance (sommeil, bien-être) : ce sera un autre outil.

Comment on y entre

Par cinq portes, et chacune ne s'affiche que si elle mène quelque part :

  • le menu du coach et celui du nageur, rubrique « Suivi » → « Suivi d'entraînement » — présents dès que le suivi d'entraînement est activé sur une saison du périmètre, ou que le périmètre porte des relevés. Le nageur d'un groupe n'a la charge d'aucune saison : son entrée est présente dès que le suivi est activé sur une saison où il nage, ou qu'il y a des relevés à lire, et elle mène à sa lecture, jamais à la liste des séances du coach ;
  • la fiche d'un nageur — la lecture de ce nageur, si on le suit et qu'il a quelque chose à lire. Sur sa propre fiche, le nageur compte aussi les saisons où il nage ;
  • pour le nageur qui était à la séance, quand elle est déjà suivie : un onglet dans la séance, et la même entrée dans le menu « ⋯ » de la séance (fiche, liste, frise, emploi du temps) ;
  • pour le coach, sur une séance déjà suivie d'un de ses groupes : cette entrée du menu « ⋯ » ouvre la saisie de la séance, avec tous ses nageurs — sauf sur sa propre saison de nageur (« Moi »), où c'est sa saisie de nageur.

La porte du nageur ouvre une saisie restreinte à lui : la page ne porte ni le nom, ni la présence, ni le ressenti d'un autre nageur, et une demande portant sur un autre est refusée.

Qui peut l'ouvrir : le nageur qui tient lui-même sa saison, et — quand le coach a ouvert la saisie aux nageurs sur une saison — chaque nageur présent à une séance suivie de cette saison. Ce second droit ne donne que sa propre saisie : choisir les séries, poser une marque et écrire une note restent au coach.

À l'intérieur, en revanche, tout se rejoint : la liste des séances mène à la saisie et à la lecture, et l'écran de saisie mène à la lecture du nageur en cours, sur la date de la séance.