Zum Inhalt springen
Ein Dashboard aus Balken, Linien und einer Heatmap neben einer kleinen Sprechblase, als leuchtende Low-Poly-Illustration.
Alle Beiträge
Serie: training mcpTeil 4 von 4
·KINuxtDatenvisualisierungTraining

Was nicht in den Chat gehört

Wochenumfang, Zonen, Belastung und Bestleistungen über ein Jahr: Solche Fragen haben feste Antworten. training mcp rechnet sie auf dem Server und zeigt sie im Web, neben dem Gespräch statt darin.

Ein Sprachmodell kann ein Jahr Training auswerten. Es braucht dafür nur 120 Aufrufe und hat am Ende trotzdem keine Grafik, die man nächste Woche wieder aufmacht.

Die ersten drei Teile drehten sich darum, was das Modell im Gespräch braucht: den Ansatz, die Daten und das Wissen. Dieser Teil handelt von dem, was ich bewusst aus dem Gespräch herausgenommen habe.

Wer trainiert, will regelmäßig sehen, wie die letzten Monate gelaufen sind. Wie viel je Sportart? Lag der Umfang im Korridor der Phase? Wie viel vom Plan ist erledigt, wo lag die Zeit in den Zonen? Diese Fragen haben feste Antworten, die aus den Daten folgen. Ein Sprachmodell braucht man dafür nicht.


Der Versuch im Chat

Am 14. Oktober habe ich es trotzdem ausprobiert. Claude sollte aus den Daten meines Kontos, rund 200 Einheiten aus einem Jahr, eine Auswertung als Artefakt bauen: Wochenumfang, Zonen, Belastung, Plan gegen Ist. Über die MCP-Werkzeuge, ohne Hilfe von außen.

Das Ergebnis sah gut aus und hat zwei Dinge gezeigt. Das erste war unerwartet nützlich: Beim Zusammenrechnen fielen drei Fehler im Server auf. Ältere doppelte Fassungen einer Einheit waren nicht nachträglich zusammengeführt, die Zeit in Zonen zählte nach Prozent des Maximalpulses statt nach den eigenen Zonen, und eine geplante Einheit vom Typ „other" belegte jede Sportart des Tages. Meine Tests hatten keinen der drei gefunden. Wer ein Jahr Daten am Stück zusammenrechnet, stößt eben auf die Ränder.

Das zweite war der Aufwand. Für die Zonen über sechs Monate brauchte das Artefakt rund 120 Aufrufe von activity-detail, einen pro Einheit. Das dauert, es kostet Kontext, und beim nächsten Mal fängt alles von vorne an. Eine Auswertung, die man jede Woche ansieht, gehört nicht in ein Gespräch, das jedes Mal neu rechnet.


Ein Endpunkt, alles gerechnet

Die Web-Fassung rechnet deshalb auf dem Server, in einem einzigen Aufruf:

GET /api/analytics?weeks=52

Die Antwort enthält alles, was die Seite braucht, nach Abschnitten getrennt: Kalenderwochen je Sportart mit Dauer, Strecke, Last und Zonen, die Phasen mit ihren Zielwerten in der Fassung, die in der jeweiligen Woche galt, Monate, Summen, Tageslast mit CTL, ATL, TSB und ACWR, Trends je Einheit, Vitalwerte als Wochenmittel und die Rennen aus den Zielen. Gezählt werden dieselben Einheiten wie bei der Belastung im Chat, also nur die führende Fassung einer mehrfach gelieferten Einheit. Die Zahlen im Web und im Gespräch passen dadurch zusammen.

Belastungskurven CTL, ATL und TSB über ein Jahr, darunter der ACWR mit hinterlegtem Bereich
Reiter Belastung: CTL, ATL und TSB aus der Tageslast, darunter der ACWR. Demo-Konto mit erfundenen Daten.

Die Seite selbst hat fünf Reiter: Überblick, Plan, Belastung, Intensität und Bestleistungen, dazu einen Zeitraum von 12, 26 oder 52 Wochen und einen Filter nach Sportart. Zu sehen sind unter anderem der Wochenumfang als gestapelte Balken mit den Phasen als Bänder dahinter und Rennen als Marker, die Korridore der Phase, Plan gegen Ist, die Belastungskurven, Zonen je Woche und Monat und eine Heatmap, wann trainiert wird: Wochentag gegen Startstunde.

Gestapelte Wochenbalken je Sportart über ein Jahr, dahinter fünf Phasen als Bänder und drei Rennen als senkrechte Linien
Wochenumfang je Sportart mit Phasen und Rennen. Demo-Konto mit erfundenen Daten.

Die Diagramme sind eigene SVG-Komponenten in Nuxt, ohne Diagrammbibliothek. Das war mehr Arbeit als ein fertiges Paket. Dafür sehen sie aus wie der Rest der Seite, und ich kann an jeder Stelle bestimmen, was beim Überfahren mit der Maus erscheint.

Heatmap aus Wochentag und Startstunde, dunkle Felder am Samstag- und Sonntagvormittag
Wann trainiert wird: Wochentag gegen Startstunde. Demo-Konto mit erfundenen Daten.

Zeigen, nicht werten

Die wichtigste Entscheidung für diese Seite steht als ein Satz im Konzept:

Die Diagramme zeigen, sie werten nicht. Eine Einordnung schreibt das Sprachmodell in die Coach-Notiz.

Die Auswertung sagt, dass der Laufumfang in drei von vier Wochen über dem Korridor der Phase lag. Sie sagt nicht, ob das schlimm ist. Vielleicht war Urlaub, vielleicht war das so gewollt, vielleicht steht ein Rennen an. Das weiß das Modell, weil es das Gespräch kennt, und deshalb gehört die Bewertung dorthin.

Laufkilometer und Stunden je Woche gegen den Zielbereich der jeweiligen Phase, Wochen außerhalb blass
Korridore der Phase. Was außerhalb liegt, ist blass, gewertet wird es nicht. Demo-Konto mit erfundenen Daten.

Die Erklärungen an den Grafiken bleiben bei Fakten. Sie nennen die Veränderung gegenüber den vier Wochen davor, ob ein Wert im Zielbereich liegt oder was ein TSB-Wert an diesem Tag heißt. Was es in den Daten nicht gibt, fehlt, statt als Null zu erscheinen.

Andersherum gilt dasselbe. Die Planungsseite im Web zeigt die Woche, die Saison und das Ablaufprofil jeder Einheit. Ändern kann man dort nichts. Geplant und umgeplant wird im Gespräch, die Seite zeigt, was dabei herauskam. Zwei Orte, an denen man denselben Plan bearbeiten kann, laufen früher oder später auseinander.

An einer Stelle treffen sich beide: an der einzelnen Einheit. Die Detailansicht zeigt Puls und Tempo über die Zeit, Höhenprofil, Zonen und Runden, und darunter zwei Notizen. Die eine schreibt der Nutzer, die andere das Modell über das Werkzeug coach-note. Wer nach einem Lauf im Chat fragt, wie er war, findet die Antwort danach auch an der Einheit.


Bestleistungen, und warum Schwimmen fehlt

Der fünfte Reiter zeigt Bestleistungen: beim Laufen von 400 Metern bis 50 Kilometer, beim Rad die beste Leistung von fünf Sekunden bis 60 Minuten, jeweils für die letzten 42 Tage, die Saison und alle Daten. Dazu kommt eine Tempokurve mit der kritischen Geschwindigkeit.

Tempokurve über Strecken von 400 Metern bis 15 Kilometer mit kritischer Geschwindigkeit als gestrichelte Linie
Tempokurve mit kritischer Geschwindigkeit. Darunter stehen die Karten aus dem Kompendium, auf die sich die Schätzung stützt. Demo-Konto mit erfundenen Daten.

Schwimmen fehlt mit Absicht. Beim durchgehenden Kraulen zählen die Uhren die Bahnen meist richtig. Bei einem Lagenwechsel mitten auf der Bahn lagen in einer Untersuchung alle getesteten Modelle daneben. Bestzeiten aus solchen Verläufen wären nicht verlässlich, und eine falsche Bestzeit ist schlechter als keine. Die Begründung steht als Karte im Kompendium, mit Belegstärke „schwach" und dem Hinweis, dass es eine einzelne Studie ist.


Fazit

Im Gespräch bleibt alles, was ein Urteil braucht: planen, umplanen, einordnen, nachfragen. Was feste Antworten hat und jede Woche wieder angesehen wird, steht im Web. Beide Seiten rechnen mit denselben Zahlen, und solange keine die Aufgabe der anderen übernimmt, passt das gut zusammen.

Damit ist die Serie fürs Erste durch: vom Chat als Oberfläche über die Daten und das Trainingswissen bis zu den Auswertungen daneben. Als Nächstes kommt die Strecke der Einheit als Karte. Das Konzept steht, gebaut ist sie noch nicht.


Call to Action

Bis Ende Oktober läuft training mcp als Beta in einem kleinen Kreis, Anfang November startet es öffentlich. Auswertung und Detailansicht gehören zur Stufe Plus. Alles Weitere steht auf https://training-mcp.app.

Wenn du die Serie gelesen hast und etwas fehlt oder unklar ist, sag Bescheid.