User Manual · v1.3
VeloMetrics

Deine Self-hosted Cycling Performance Platform. Dieses Manual erklärt alle Features — vom ersten Import bis zur Fitness-Interpretation.

Your self-hosted cycling performance platform. This manual covers all features — from your first import to reading your fitness chart.

v1.3-dev
📊
Dashboard

Das Dashboard ist die Startseite nach dem Login. Es zeigt einen Überblick über deine Aktivitäten im gewählten Zeitraum (Woche / Monat / Jahr / Gesamt) sowie eine Tabelle der letzten Fahrten.

The Dashboard is the landing page after login. It shows an overview of your activities for the selected period (Week / Month / Year / All time) and a table of recent rides.

DistanzDistance
km
Gesamtkilometer im ZeitraumTotal kilometers in period
ZeitTime
h
Bewegungszeit gesamtTotal moving time
HöhenmeterElevation
m
Kumulierter AufstiegCumulative ascent
TourenRides
#
Anzahl AktivitätenNumber of activities

Ein Klick auf Details → in der Aktivitätentabelle öffnet die Detailansicht mit Karte, Wetterdaten, HR-Zonen und Performance-Analyse.

Click Details → in the activity table to open the detail view with map, weather data, HR zones and performance analysis.

🚴
Tour-DetailActivity Detail

Die Tour-Detailansicht zeigt alle Kennzahlen einer einzelnen Fahrt — von Geschwindigkeit und Herzfrequenz bis zu persönlichen Bestleistungen und Segmenten.

The activity detail view shows all metrics of a single ride — from speed and heart rate to personal best efforts and segments.

Best Efforts

Best Efforts

VeloMetrics berechnet automatisch deine schnellsten Abschnitte über definierte Distanzen auf jeder Fahrt:

VeloMetrics automatically calculates your fastest sections over defined distances on each ride:

🏅 Gemessene DistanzenMeasured distances
  • 1 kmschnellster 1-km-Abschnitt der Fahrtfastest 1 km section of the ride
  • 5 kmschnellster 5-km-Abschnittfastest 5 km section
  • 10 kmschnellster 10-km-Abschnittfastest 10 km section

Für jeden Abschnitt werden Zeit, Durchschnittsgeschwindigkeit und Herzfrequenz angezeigt.

For each section, time, average speed and heart rate are displayed.



Aktivität bearbeiten

Edit Activity

Über den Button ✏️ Bearbeiten im Tour-Detail kannst du Name, Aktivitätstyp, Rad und Notizen einer Fahrt nachträglich ändern oder die Aktivität löschen.

Use the ✏️ Edit button in the activity detail to change the name, activity type, bike and notes of a ride, or to delete the activity.

Name Name Freitext — wird in der Aktivitätsliste und im Detail-Header angezeigt. Free text — shown in the activity list and detail header.
Aktivitätstyp Activity Type Cycling, Gravel, E-Bike, MTB, Running, Walking, Trekking oder Virtual Ride. Cycling, Gravel, E-Bike, MTB, Running, Walking, Trekking or Virtual Ride.
Rad Bike Wähle ein Rad aus deiner Garage oder lasse das Feld leer. Select a bike from your garage or leave the field empty.
Notizen Notes Optionaler Freitext — z.B. Streckenbeschreibung oder besondere Ereignisse. Optional free text — e.g. route description or special events.
Löschen Delete Löscht die Aktivität samt aller GPS-Daten und Segment-Efforts unwiderruflich. Permanently deletes the activity including all GPS data and segment efforts.
⚠️ Löschen ist permanentDeletion is permanent
Gelöschte Aktivitäten können nicht wiederhergestellt werden. Stelle sicher, dass die Original-FIT-Datei noch vorhanden ist, falls du die Aktivität später erneut importieren möchtest. Deleted activities cannot be recovered. Make sure the original FIT file is still available if you want to re-import the activity later.

Größter Anstieg Pro

Biggest Climb Pro

Der größte zusammenhängende Anstieg der Fahrt wird automatisch erkannt und analysiert:

The biggest continuous climb of the ride is automatically detected and analyzed:

⛰️ AnzeigeDisplay
  • VAMVertikale Aufstiegsgeschwindigkeit in m/h (Velocità Ascensionale Media). Profi-Kletterer erreichen >1500 m/h, Freizeitfahrer typisch 400–800 m/hVertical Ascent per Minute in m/h. Pro climbers reach >1500 m/h, recreational cyclists typically 400–800 m/h
  • GradientDurchschnittliche Steigung des Anstiegs in %Average gradient of the climb in %
  • HRDurchschnittliche Herzfrequenz während des AnstiegsAverage heart rate during the climb
💪
Fitness PRO

Was sind CTL, ATL und TSB?

What are CTL, ATL and TSB?

VeloMetrics berechnet deine Trainingsform täglich anhand von drei Kennzahlen aus dem Performance Management Chart (PMC) — dem Industriestandard im Leistungssport.

VeloMetrics calculates your training form daily using three metrics from the Performance Management Chart (PMC) — the industry standard in performance sports.

CTL
Fitness
Chronic Training Load — gewichteter Ø der letzten ~42 Tage. Steigt langsam, zeigt langfristige Fitness.Chronic Training Load — weighted average of the last ~42 days. Rises slowly, reflects long-term fitness.
ATL
ErmüdungFatigue
Acute Training Load — Ø der letzten ~7 Tage. Reagiert schnell auf akute Belastung.Acute Training Load — average of the last ~7 days. Reacts quickly to acute load.
TSB / Form
CTL − ATL
Training Stress Balance — zeigt, ob du ausgeruht oder übermüdet bist.Training Stress Balance — shows whether you're rested or over-fatigued.

Nach dem ersten Import oder nach Änderungen an den HR-Werten in den Settings kann die Fitness komplett neu berechnet werden: ↻ Neu berechnen oben rechts in der Fitness-Ansicht. Die Berechnung läuft im Hintergrund und aktualisiert automatisch alle Werte.

After the first import or after changing HR values in Settings, the fitness can be fully recalculated: click ↻ Recalculate in the top right of the Fitness view. The calculation runs in the background and automatically updates all values.

Berechnung

Calculation

Jede Fahrt erzeugt einen Load-Wert basierend auf TRIMP (Training Impulse) — kombiniert aus Herzfrequenz, Fahrtdauer und deiner persönlichen HF-Konfiguration:

Each ride generates a Load value based on TRIMP (Training Impulse) — combining heart rate, ride duration and your personal HR configuration:

Load = Dauer_min × HR_ratio × e^(exp_factor × HR_ratio) × Load_Scale
HR_ratio = (HR_avg - HR_rest) / (HR_max - HR_rest)

CTL und ATL werden dann täglich als exponentiell gewichtete Mittelwerte fortgeschrieben:

CTL and ATL are then updated daily as exponentially weighted moving averages:

CTL_heute = CTL_gestern × (1 − 1/42) + Load_heute × (1/42)
ATL_heute = ATL_gestern × (1 − 1/7) + Load_heute × (1/7)
TSB_heute = CTL_gestern − ATL_gestern
💡 HinweisNote
An trainingsfreien Tagen wird Load = 0 eingesetzt — CTL sinkt dann langsam, ATL fällt schneller. So sinkt auch die Ermüdung schneller als die Fitness. On rest days, Load = 0 is used — CTL drops slowly while ATL drops faster. This means fatigue decreases quicker than fitness.

Erstkonfiguration — Startwerte setzen

Initial Setup — Setting Seed Values

Da VeloMetrics nur Fahrten kennt, die du importiert hast, muss die Berechnung mit einem Startwert (Seed) initialisiert werden — sonst beginnt CTL bei 0 und braucht Monate um sich aufzubauen.

Since VeloMetrics only knows about rides you've imported, the calculation needs to be initialized with a seed value — otherwise CTL starts at 0 and takes months to build up.

📋 KonzeptConcept
Du gibst an, welchen CTL- und ATL-Wert du an einem bestimmten Startdatum hattest. Ab diesem Datum rechnet VeloMetrics korrekt weiter — nur auf Basis deiner importierten Touren. You specify what CTL and ATL values you had on a specific start date. From that date onwards, VeloMetrics calculates correctly — based only on your imported rides.

So ermittelst du deine Startwerte

How to find your seed values

1
Startdatum wählen Choose a start date

Wähle ein Datum, ab dem du alle Fahrten importiert hast. Empfehlung: 30–60 Tage vor heute — weiter zurück bringt kaum Genauigkeitsgewinn.

Pick a date from which you have all your rides imported. Recommended: 30–60 days before today — going further back rarely improves accuracy significantly.

2
Fitness-Tool deines GPS-Anbieters öffnen Open your GPS provider's fitness tool

Garmin Connect, Wahoo, Polar Flow und andere zeigen ähnliche CTL/ATL-Werte. Navigiere zur Fitness-Übersicht und fahre mit der Maus auf dein gewähltes Startdatum.

Garmin Connect, Wahoo, Polar Flow and others show similar CTL/ATL values. Navigate to the fitness overview and hover over your chosen start date.

3
FITNESS- und ERMÜDUNGSWERT ablesen Read FITNESS and FATIGUE values

Den angezeigten Fitness-Wert trägst du als CTL Startwert ein, den Ermüdungswert als ATL Startwert.

Enter the displayed Fitness value as CTL Start, and the Fatigue value as ATL Start.

4
Speichern & Neuberechnen Save & Recalculate

Speichere das Profil und klicke danach auf ⟳ Fitness neu berechnen. Die Berechnung läuft durch alle importierten Fahrten ab dem Startdatum.

Save your profile, then click ⟳ Recalculate Fitness. The calculation runs through all imported rides from the start date onwards.

⚠️ WichtigImportant
Die Startwerte sind nur sinnvoll, wenn du für den Zeitraum ab Startdatum alle Fahrten importiert hast. Lücken im Import verfälschen die Berechnung — fehlende Fahrten zählen als Ruhetage. Seed values only make sense if you have all rides imported from the start date onward. Gaps in your import skew the calculation — missing rides count as rest days.

Form-Zonen — Bedeutung & Interpretation

Form Zones — Meaning & Interpretation

Der TSB-Wert (Form) bestimmt deine aktuelle Trainingszone:

The TSB value (Form) determines your current training zone:

ZoneZone TSBTSB BedeutungMeaning
FrischFresh > +10> +10 Gut erholt, bereit für intensive Einheiten oder Wettkämpfe. Zu lange in dieser Zone = Fitness-Verlust. Well rested, ready for intense efforts or races. Too long here = fitness loss.
NeutralNeutral −10 bis +10−10 to +10 Ausgeglichene Balance. Guter Zustand für moderates Training. Balanced state. Good for moderate training.
TrainingTraining −10 bis −30−10 to −30 Produktive Trainingsbelastung. Fitness wird aufgebaut — klassischer Trainingsblock. Productive training load. Fitness is being built — classic training block.
ErmüdetFatigued −30 bis −50−30 to −50 Zu hohe Belastung. Leistung sinkt, Verletzungsrisiko steigt. Erholungstage einplanen. Too much load. Performance drops, injury risk rises. Schedule recovery days.
ÜbertrainingDeep Fatigue < −50< −50 Kritischer Bereich. Sofortige Erholung notwendig, ansonsten droht Übertraining oder Verletzung. Critical zone. Immediate recovery needed — risk of overtraining or injury.

Den Fitness-Chart lesen

Reading the Fitness Chart

Der Chart zeigt CTL (blau), ATL (rot) und TSB (grün/rot) über den gewählten Zeitraum. Typische Muster:

The chart shows CTL (blue), ATL (red) and TSB (green/red) over the selected period. Typical patterns:

📈 CTL steigt, ATL höher als CTL → Trainingsblock
📈 CTL rising, ATL above CTL → Training block

Hohe Belastung wird in Fitness umgewandelt. TSB ist negativ — du bist müde, aber du baust auf.

High load is being converted to fitness. TSB is negative — you're tired, but building.

🏁 ATL fällt schnell, TSB steigt → Tapering / Formaufbau
🏁 ATL drops quickly, TSB rises → Tapering / Peak form

Weniger Training lässt die Ermüdung abbauen, die Fitness bleibt kurzzeitig erhalten. Ideal vor einem wichtigen Ereignis.

Reduced training lets fatigue dissipate while fitness is briefly preserved. Ideal before an important event.

📉 CTL fällt seit Wochen → Detraining
📉 CTL falling for weeks → Detraining

Zu wenig Training. Die aufgebaute Fitness wird abgebaut. Zeit, wieder in den Sattel zu steigen.

Too little training. Built-up fitness is being lost. Time to get back in the saddle.

ZielwerteTarget values
Ein CTL von 60–100 gilt für Hobbysportler als sehr gutes Fitnessniveau. Elite-Ausdauersportler erreichen CTL > 150. Wichtiger als der absolute Wert ist der Trend — steigt dein CTL über mehrere Wochen, wirst du fitter. A CTL of 60–100 is considered a very good fitness level for amateur athletes. Elite endurance athletes reach CTL > 150. More important than the absolute value is the trend — if your CTL rises over several weeks, you're getting fitter.
📅
TrainingskalenderTraining Calendar PRO

Der Trainingskalender zeigt alle Aktivitäten in einer Monatsübersicht — analog zu Strava's Trainingskalender, aber mit deinen eigenen Daten und vollständiger Formanalyse. Jede Zelle zeigt die Trainingsbelastung des Tages, alle Aktivitäten mit Klick-Navigation zur Detailansicht sowie Wochensummen in der rechten Spalte.

The training calendar shows all activities in a monthly overview — similar to Strava's training calendar, but with your own data and full form analysis. Each cell shows the day's training load, all activities with click-navigation to the detail view, and weekly totals in the right column.

Aufbau der Ansicht

View Structure

Monats-Summary Monthly Summary Oben rechts: Gesamtkilometer, Stunden, Höhenmeter und Anzahl Aktivitäten des Monats auf einen Blick Top right: total kilometers, hours, elevation and number of activities for the month at a glance
Heute-Button Today button Springt sofort zum aktuellen Monat — egal wie weit man in der Vergangenheit navigiert hat Jumps immediately to the current month — regardless of how far back you've navigated
Form-Balken Form bar Farbiger Balken in jeder Tageszelle — Farbe zeigt die Form-Zone, Breite die Intensität. Tooltip zeigt CTL, ATL und Form-Wert. Colored bar in each day cell — color shows the form zone, width shows the intensity. Tooltip shows CTL, ATL and form value.
Aktivitäts-Cards Activity cards Jede Fahrt zeigt km, Label, Dauer und Höhenmeter. Gravel/MTB in Orange, E-Bike in Blau. Klick öffnet die Detailansicht. Each ride shows km, label, duration and elevation. Gravel/MTB in orange, E-Bike in blue. Click opens the detail view.
Wochenspalte Week column Rechts: km-Summe, Stunden, Höhenmeter und Anzahl Touren der Woche Right side: total km, hours, elevation and number of rides for the week

Form-Legende

Form Legend

Die Zellfarben und Balken entsprechen den Form-Zonen aus dem Fitness-Chart:

The cell colors and bars correspond to the form zones from the fitness chart:

FarbeColor Form (TSB)Form (TSB) BedeutungMeaning
> +20> +20 Peak — gut erholt, Höchstform Peak — well rested, top form
0 bis +200 to +20 Fresh — ausgeruht, moderate Belastung Fresh — rested, moderate load
−20 bis 0−20 to 0 Tired — leicht ermüdet, aktiver Trainingsblock Tired — slightly fatigued, active training block
−60 bis −20−60 to −20 Fatigued — hohe Belastung, Erholung einplanen Fatigued — high load, schedule recovery
< −60< −60 Ruined — kritisch überlastet, sofortige Erholung nötig Ruined — critically overloaded, immediate recovery needed
💡 TippTip
Der Kalender erfordert berechnete Fitness-Daten. Falls Zellen keine Formbalken zeigen, prüfe ob dein Startdatum und deine Seed-Werte in den Einstellungen konfiguriert sind und klicke auf ⟳ Fitness neu berechnen. The calendar requires calculated fitness data. If cells show no form bars, check whether your start date and seed values are configured in Settings and click ⟳ Recalculate Fitness.
📈
Segmente

Segmente sind selbst definierte Streckenabschnitte, auf denen VeloMetrics automatisch alle Durchfahrten erkennt und vergleicht. Anders als bei Strava erstellst du hier vollständig eigene Segmente — auf deinen Lieblingsanstiegen oder Verbindungsstücken.

Segments are self-defined route sections on which VeloMetrics automatically detects and compares all passages. Unlike Strava, here you create entirely custom segments — on your favorite climbs or connector roads.

Segment erstellen

Create a Segment

⚠️ Wichtig / Important
Setze Start- und Endpunkt nicht an einen Wendepunkt der Strecke. Wenn der GPS-Track dort umkehrt, kann das Segment nicht zuverlässig erkannt werden. Setze die Punkte stattdessen auf einen geraden Streckenabschnitt. Do not place the start or end point at a turning point of the route. If the GPS track reverses there, the segment cannot be reliably detected. Place the points on a straight section of the route instead.
1
Aktivität öffnen Open an activity

Öffne eine Aktivität die in der Nähe des gewünschten Segments gefahren wurde.

Open an activity that was ridden near the desired segment.

2
Segment-Panel öffnen Open the segment panel

Klicke oben rechts auf 📐 Segment. Die Karte zeigt deinen GPS-Track und zwei Schieberegler erscheinen.

Click 📐 Segment in the top right. The map shows your GPS track and two sliders appear.

3
Start- und Endpunkt per Slider setzen Set start and end point with sliders

Bewege den grünen Slider für den Startpunkt und den orangen Slider für den Endpunkt entlang des Tracks. Die Marker auf der Karte aktualisieren sich in Echtzeit.

Move the green slider for the start point and the orange slider for the end point along the track. The markers on the map update in real time.

4
Name vergeben & erstellen Name and create

Gib dem Segment einen Namen und stelle den Match-Radius ein (Standard: 100m). Klicke Segment erstellen — VeloMetrics durchsucht jetzt alle importierten Touren nach Durchfahrten.

Give the segment a name and set the match radius (default: 100m). Click Create segment — VeloMetrics now searches all imported rides for passages.

💡 Match-Radius
Der Match-Radius bestimmt, wie nah ein GPS-Punkt am definierten Start-/Endpunkt liegen muss, damit er als Durchfahrt gewertet wird. Bei kurvigen Straßen oder älteren GPS-Aufzeichnungen ggf. auf 40–60m erhöhen. The match radius determines how close a GPS point must be to the defined start/end point to count as a passage. For winding roads or older GPS recordings, consider increasing to 40–60m.

Segmente verwalten

Manage Segments

Die Liste aller eigenen Segmente findest du unter ⚙ SettingsMeine Segmente. Jedes Segment zeigt eine Mini-Karte, die Bestzeit, Durchschnittsdistanz und Anzahl Durchfahrten. Klick auf ein Segment öffnet die Detailansicht mit dem Podest.

The list of all your segments can be found under ⚙ SettingsMy Segments. Each segment shows a mini map, best time, average distance and number of efforts. Click a segment to open the detail view with the podium.


Efforts & Zeitenvergleich

Efforts & Time Comparison

Klicke auf ein Segment um alle Efforts mit Zeit, Datum und Durchschnittsgeschwindigkeit zu sehen — sortiert vom schnellsten zum langsamsten. Die Top 3 werden auf einem Podest hervorgehoben.

Click a segment to see all efforts with time, date and average speed — sorted from fastest to slowest. The top 3 are highlighted on a podium.

📋 Anzeige pro EffortDisplay per effort
  • Zeit — Fahrzeit durchs Segment in mm:ss
  • Time — Passage time through segment in mm:ss
  • Datum — Datum der Fahrt
  • Date — Date of the ride
  • Ø Speed — Durchschnittsgeschwindigkeit im Segment
  • Avg Speed — Average speed through the segment
  • Klick auf einen Effort → öffnet die zugehörige Aktivität
  • Click an effort → opens the associated activity

In der Aktivitäts-Detailansicht werden alle Segmente einer Tour automatisch aufgelistet — du siehst auf einen Blick, welche Segmente du auf dieser Fahrt passiert hast und wie schnell du warst.

In the activity detail view, all segments of a ride are automatically listed — you can see at a glance which segments you passed on that ride and how fast you were.

📊
Statistics

Der Statistics-Tab liefert aggregierte Auswertungen deiner Aktivitäten — aufgeteilt nach Bike, Monat oder Aktivitätstyp. Alle Auswertungen lassen sich optional auf einen Zeitraum eingrenzen.

The Statistics tab provides aggregated analysis of your activities — broken down by bike, month, or activity type. All views can optionally be filtered by date range.

📅 Beim ersten Öffnen wird automatisch das aktuelle Jahr als Zeitraum gesetzt. Mit Zurücksetzen springst du jederzeit zurück auf das aktuelle Jahr.
📅 When first opened, the current year is set as the default date range. Use Reset to return to the current year at any time.

KM pro Bike

KM per Bike

Zeigt die gefahrenen Kilometer, Fahrten, Höhenmeter und Stunden pro Fahrrad — sortiert nach Kilometern. Die Farbe jedes Balkens entspricht dem Bike-Typ (Gravel = Orange, E-Bike = Blau, Trekking = Grün, MTB = Lila, Road = Hellgrau).

Shows kilometers, rides, elevation and hours per bike — sorted by kilometers. Each bar's color corresponds to the bike type (Gravel = Orange, E-Bike = Blue, Trekking = Green, MTB = Purple, Road = Light Grey).

🚲 Damit Aktivitäten hier erscheinen, muss ihnen ein Fahrrad zugewiesen sein. Dies geschieht entweder beim FIT-Import oder nachträglich über Aktivität bearbeiten in der Tour-Detailansicht.
🚲 For activities to appear here, a bike must be assigned to them. This can be done during FIT import or afterwards via Edit Activity in the activity detail view.

Pro Monat

Per Month

Zeigt die Kilometer pro Monat für ein wählbares Jahr. Der Zeitraum-Filter wird ausgeblendet — stattdessen wählst du das Jahr direkt über das Dropdown.

Shows kilometers per month for a selectable year. The date range filter is hidden — instead, select the year directly from the dropdown.

Nach Typ

By Type

Zeigt die Verteilung deiner Aktivitäten nach Typ als Donut-Chart. Die Kategorisierung basiert auf dem zugewiesenen Bike-Typ — ist kein Bike zugewiesen, wird der Aktivitätstyp aus dem FIT-Import verwendet.

Shows the distribution of your activities by type as a donut chart. Categorization is based on the assigned bike type — if no bike is assigned, the activity type from the FIT import is used.

💡 Virtual Ride, Walk, Run und andere Nicht-Rad-Aktivitäten werden in allen Statistics-Auswertungen automatisch ausgeblendet.
💡 Virtual Ride, Walk, Run and other non-cycling activities are automatically hidden in all Statistics views.
📁
Import

VeloMetrics importiert FIT-Dateien — alle kompatiblen Geräte werden unterstützt. Drag & Drop oder Klick zum Auswählen. Bitte maximal 5 Dateien auf einmal importieren.

VeloMetrics imports FIT files from Garmin, Wahoo and other compatible devices. Drag & drop or click to select — multiple files at once supported (max. 50 MB per file).

📂 Alternative: Import-Ordner (Standard)Alternative: Import folder (default)
Statt Dateien einzeln hochzuladen, kannst du FIT-Dateien auch direkt in den Import-Ordner deiner Installation legen (das Verzeichnis neben docker-compose.yml). Klappe auf der Import-Seite die Karte „Import-Ordner (Standard)“ auf — VeloMetrics zeigt dir alle dort liegenden FIT-Dateien zur Auswahl an. Nach erfolgreichem Import werden sie automatisch nach Import/processed/ verschoben; fehlgeschlagene Dateien bleiben liegen, damit du sie erneut versuchen kannst. Instead of uploading files one by one, you can also place FIT files directly in the Import folder of your installation (the directory next to docker-compose.yml). On the Import page, expand the “Import folder (default)” card — VeloMetrics lists all FIT files found there for you to select. Successfully imported files are automatically moved to Import/processed/; failed files stay in place so you can retry them.
1
FIT-Datei von deinem Gerät exportieren Export FIT file from your device

Garmin: Gerät per USB verbinden → Ordner GARMIN/Activity/. Wahoo: Elemnt App → Aktivität → Teilen → FIT.

Garmin: Connect device via USB → folder GARMIN/Activity/. Wahoo: Elemnt App → Activity → Share → FIT.

2
Fahrrad zuweisen Assign a bike

Vor dem Import ein Fahrrad aus der Liste wählen oder ein neues anlegen. Jede Fahrt wird dann diesem Rad zugeordnet.

Before importing, select a bike from the list or create a new one. Each ride will then be assigned to that bike.

3
Name vergeben (optional) Set a name (optional)

Nach dem Import erscheint eine Ergebnistabelle. In der Spalte Name ist der aus der FIT-Datei übernommene Wert vorausgefüllt — du kannst ihn direkt überschreiben. Der Name wird sofort gespeichert und erscheint überall in VeloMetrics, insbesondere im Route Replay Suchfeld.

After import, a results table appears. The Name column is pre-filled with the value from the FIT file — you can overwrite it directly. The name is saved immediately and appears everywhere in VeloMetrics, especially in the Route Replay search field.

4
Doppelte Imports werden verhindert Duplicate imports are prevented

Jede Aktivität erhält eine eindeutige ID (SHA1-Hash aus Datei + User). Dieselbe Datei kann nicht zweimal importiert werden.

Each activity gets a unique ID (SHA1 hash from file + user). The same file cannot be imported twice.

Nach dem ImportAfter import
Segment-Matching und Fitness-Chart werden automatisch aktualisiert. Wetterdaten werden bei bis zu 5 Dateien automatisch geladen — bei mehr Dateien bitte einzeln nachimportieren. Segment matching and fitness chart update automatically. Weather data is fetched automatically for up to 5 files — for larger imports, re-import individually if needed.
🎬
Route Replay PRO

Route Replay ist ein eigenständiger 3D/2D-Viewer, der deine Fahrt animiert auf einer interaktiven Karte abspielt — mit Echtzeit-HUD, Geschwindigkeitssteuerung, Pausen-Skip und einem optionalen 3D-Flyover-Modus mit Geländedarstellung.

Route Replay is a standalone 3D/2D viewer that plays back your ride animated on an interactive map — with a real-time HUD, speed control, pause skipping, and an optional 3D flyover mode with terrain rendering.

📋 VoraussetzungRequirement
Route Replay benötigt GPS-Daten in der Aktivität (importiert via FIT-Datei mit aufgezeichnetem GPS-Track). Aktivitäten ohne GPS-Koordinaten werden nicht angezeigt. Pro-Account erforderlich. Route Replay requires GPS data in the activity (imported via FIT file with a recorded GPS track). Activities without GPS coordinates are not shown. Pro account required.

Route Replay starten

Getting Started

1
Menüpunkt öffnen Open the menu item

Klicke im Navigationsmenü auf 🎬 Route Replay. Die Ansicht öffnet sich mit einer Aktivitätsliste auf der linken Seite und dem Replay-Viewer rechts.

Click 🎬 Route Replay in the navigation menu. The view opens with an activity list on the left and the replay viewer on the right.

2
Aktivität auswählen Select an activity

In der linken Liste findest du alle importierten GPS-Aktivitäten — sortiert nach Datum, neueste zuerst. Über das Suchfeld kannst du nach Name oder Typ filtern. Die zuletzt gefahrene Aktivität wird automatisch vorgeladen.

The left list shows all imported GPS activities — sorted by date, newest first. Use the search field to filter by name or type. The most recent activity is automatically preloaded.

3
Laden abwarten Wait for loading

Der Viewer initialisiert MapLibre GL und lädt den GPS-Track. Bei langen Fahrten (>5h) kann das einige Sekunden dauern. Sobald die orange Route erscheint, ist alles bereit.

The viewer initializes MapLibre GL and loads the GPS track. For long rides (>5h) this may take a few seconds. Once the orange route appears, everything is ready.

4
Play drücken Press Play

Der ▶ Play Button startet die Animation. Der Marker fährt die Route entlang, die orange Linie zeichnet die zurückgelegte Strecke nach.

The ▶ Play button starts the animation. The marker rides along the route, the orange line traces the distance already covered.

💡 TippTip
Route Replay ist auch über den Details → Button einer Aktivität erreichbar — dort öffnet sich der Replay-Tab direkt mit der gewählten Fahrt vorgeladen. Route Replay is also accessible via the Details → button of an activity — the Replay tab opens directly with the selected ride preloaded.

Steuerung — alle Controls im Überblick

Controls — All Controls at a Glance

Wiedergabe

Playback

▶ / ⏸ Play / Pause — startet oder pausiert die Animation Play / Pause — starts or pauses the animation
FortschrittsbalkenProgress bar Klick oder Drag auf die Zeitleiste springt zu jedem Punkt der Fahrt Click or drag the timeline to jump to any point of the ride
1× 2× 5× 10× Wiedergabegeschwindigkeit — 1× Echtzeit bis 10× sehr schnell. Ideal für lange Touren. Playback speed — 1× real time to 10× very fast. Ideal for long rides.

Pausen-Skip

Pause Skip

Der Button ⏭ Pausen skip ist standardmäßig aktiv (orange). Er erkennt Stopps unter 2,5 km/h — Ampeln, Kreuzungen, kurze Pausen — und überspringt diese automatisch in der Animation. Die Gesamtroute bleibt vollständig gezeichnet, nur die Standzeit wird überbrückt.

The ⏭ Pause skip button is active by default (orange). It detects stops below 2.5 km/h — traffic lights, intersections, short breaks — and automatically skips these. The full route remains drawn; only the stationary time is bridged.

💡 TippTip
Pausen-Skip deaktivieren für eine authentische 1:1-Wiedergabe — sinnvoll z.B. bei Zeitfahrten wo jede Sekunde zählt. Disable pause skip for an authentic 1:1 playback — useful e.g. for time trials where every second counts.

Turbo-Modus

Turbo Mode

Der Button ⚡ Turbo aktiviert den Performance-Modus. Karten-Updates werden seltener ausgeführt, was auf langsameren Geräten oder im GPU-intensiven 3D-Modus die Wiedergabe deutlich flüssiger macht.

The ⚡ Turbo button activates performance mode. Map updates are executed less frequently, making playback noticeably smoother on slower devices or in GPU-intensive 3D mode.


2D und 3D Flyover-Modus

2D and 3D Flyover Mode

🗺 2D
Vogelperspektive
Bird's Eye
Klassische Top-Down-Ansicht. Kamera folgt dem Marker und dreht sich mit der Fahrtrichtung. Geringe GPU-Last, läuft auf jedem Gerät flüssig.
Classic top-down view. Camera follows the marker and rotates with direction of travel. Low GPU load, runs smoothly on any device.
🚁 3D Flyover
Geländeflug
Terrain Flight
Perspektivische 3D-Ansicht mit echtem Geländerelief. Kamera fliegt hinter und über dem Marker — Anstiege und Täler werden plastisch sichtbar.
Perspective 3D view with real terrain relief. Camera flies behind and above the marker — climbs and valleys become visually tangible.
⚠️ 3D Performance-Hinweis3D Performance Note
Das Geländemodell wird erst beim ersten Wechsel in den 3D-Modus geladen (Lazy Loading) — ein kurzer Laderuckler ist beim ersten Aktivieren normal. Bei älteren GPUs oder integrierten Grafikkarten empfiehlt sich ⚡ Turbo. The terrain model is loaded only on the first switch to 3D mode (lazy loading) — a brief stutter on first activation is normal. On older GPUs or integrated graphics, ⚡ Turbo is recommended.
💡 Kamerasteuerung im 3D-ModusCamera control in 3D mode
Im 3D-Modus kann die Karte mit der Maus frei gedreht, gezoomt und gekippt werden — auch während der Wiedergabe. Die automatische Kameraführung übernimmt die Position nach kurzer Zeit wieder. In 3D mode the map can be freely rotated, zoomed and tilted with the mouse — even during playback. Automatic camera tracking resumes after a short time.

Route Replay verwendet MapLibre GL mit dunklem Kartenstil passend zum VeloMetrics-Design. Im 3D-Modus wird ein Terrain DEM (Digital Elevation Model) geladen — ein weltweites Höhenmodell mit ~30m Auflösung.

Route Replay uses MapLibre GL with a dark map style matching the VeloMetrics design. In 3D mode a Terrain DEM (Digital Elevation Model) is loaded — a worldwide elevation model with ~30m resolution.


HUD — Live-Metriken während der Wiedergabe

HUD — Live Metrics During Playback

Das HUD (Heads-Up Display) zeigt oben links auf der Karte in Echtzeit alle verfügbaren Metriken des aktuellen Punktes — kontinuierlich zwischen den aufgezeichneten GPS-Punkten interpoliert.

The HUD (Heads-Up Display) shows top-left on the map in real-time all available metrics for the current point — continuously interpolated between recorded GPS points.

GeschwindigkeitSpeed
km/h
Aktuelle Geschwindigkeit aus dem FIT-RecordCurrent speed from the FIT record
HerzfrequenzHeart Rate
bpm
Nur wenn HR im FIT aufgezeichnet wurdeOnly if HR was recorded in the FIT file
LeistungPower
W
Nur bei Powermeter-AufzeichnungOnly with power meter recording
Cadence
rpm
Trittfrequenz, falls im FIT vorhandenCadence if present in the FIT file
HöheAltitude
m
Barometrische Höhe des Geräts über NNBarometric altitude from the device above sea level
DistanzDistance
km
Zurückgelegte Strecke bis zum aktuellen PunktDistance covered up to the current point
💡 VerfügbarkeitAvailability
Welche Metriken erscheinen, hängt davon ab was dein Gerät aufgezeichnet hat. Ein Garmin mit Herzfrequenzgurt und Powermeter liefert alle sechs Werte. Ein reines GPS-Gerät zeigt nur Geschwindigkeit, Höhe und Distanz. Which metrics appear depends on what your device recorded. A Garmin with HR strap and power meter delivers all six values. A pure GPS device shows only speed, altitude and distance.

Routen-Layer

Route Layers

Ghost-Linie Ghost line Halbtransparente orange Linie der Gesamtroute — zeigt die komplette Strecke als Orientierungshilfe von Beginn an Semi-transparent orange line of the full route — shows the complete track as a visual guide from the start
Fahrlinie Driven line Kräftige orange Linie mit Schattenlayer, die mit dem Marker mitwächst und die zurückgelegte Strecke markiert Bold orange line with shadow layer that grows with the marker, marking the covered distance
Marker Marker Leuchtender oranger Punkt mit Pulseffekt — zeigt die aktuelle Position und dreht sich mit der Fahrtrichtung Glowing orange dot with pulse effect — shows the current position and rotates with the direction of travel
EinstellungenSettings

Pro-Zugang & Key-Aktivierung

Pro Access & Key Activation

Nach dem kostenlosen 3-Monats-Trial wechselt VeloMetrics automatisch in den Basic-Modus. Pro-Features (Fitness, Route Replay, Formanalyse) stehen dann nicht mehr zur Verfügung — bis du einen gültigen Pro-Key eingibst.

After the free 3-month trial, VeloMetrics automatically switches to Basic mode. Pro features (Fitness, Route Replay, Form analysis) are no longer available until you enter a valid Pro key.

Trial Trial 3 Monate kostenlos ab Registrierung. Alle Pro-Features inklusive. 3 months free from registration. All Pro features included.
Pro-Key Pro Key Nach dem Trial erhältst du per E-Mail einen Key. Dieser verlängert deinen Pro-Zugang um 30 Tage. After the trial you receive a key by email. This extends your Pro access by 30 days.
Kosten Cost € 5,– / Monat. Monatlich kündbar. Kontakt: info@velometrics.org € 5.– / month. Cancel monthly. Contact: info@velometrics.org
🔑 Key eingebenEnter key
Gehe zu ⚙ SettingsPro-Zugang → Key eingeben → Pro aktivieren. Nach erfolgreicher Aktivierung stehen alle Pro-Features sofort zur Verfügung. Go to ⚙ SettingsPro Access → enter key → Activate Pro. After successful activation all Pro features are immediately available.

Herzfrequenz-Konfiguration

Heart Rate Configuration

Diese Werte sind die Grundlage für alle Berechnungen. Falsche Werte führen zu falschen CTL/ATL-Werten.

These values are the foundation for all calculations. Incorrect values lead to incorrect CTL/ATL values.

Max HF Max HR Deine maximale Herzfrequenz. Messbar durch einen Maximaltest oder Feldtest. Typisch: 175–205 bpm. Nicht schätzen — 5 bpm Differenz verändern alle Load-Werte erheblich. Your maximum heart rate. Measurable via a maximal test or field test. Typical: 175–205 bpm. Don't guess — 5 bpm difference significantly changes all load values.
Ruhe HF Rest HR Morgens direkt nach dem Aufwachen messen, noch liegend. Typisch: 40–70 bpm. Wird für die TRIMP-Berechnung benötigt. Measure in the morning immediately after waking, while still lying down. Typical: 40–70 bpm. Required for the TRIMP calculation.
⚠️ Nach ÄnderungAfter changes
Nach Änderung der HF-Werte musst du einen neuen FIT-Import auslösen (oder ⟳ Fitness neu berechnen klicken), damit alle Load-Werte neu berechnet werden. After changing HR values you must trigger a new FIT import (or click ⟳ Recalculate Fitness) so all load values are recalculated.

Load Scale

Load Scale

Ein Multiplikator auf den TRIMP-Rohwert. Standard ist 1.8. Mit diesem Faktor kannst du die absoluten CTL/ATL-Werte in einen Bereich bringen, der für dich sinnvoll ist.

A multiplier applied to the raw TRIMP value. Default is 1.8. With this factor you can bring the absolute CTL/ATL values into a range that makes sense for you.

Load_final = TRIMP_raw × Load_Scale
// Beispiel: 2h Fahrt mit Ø 155 bpm → TRIMP ≈ 95 → Load ≈ 171 bei Scale 1.8
💡 EmpfehlungRecommendation
Verändere Load Scale nur, wenn deine CTL-Werte unrealistisch hoch oder niedrig erscheinen. Als Referenz: Für einen Hobbysportler mit 6–10h/Woche sollte CTL im Sommer bei 60–120 liegen. Nach jeder Änderung Fitness neu berechnen. Only change Load Scale if your CTL values appear unrealistically high or low. As a reference: for an amateur athlete with 6–10h/week, CTL in summer should be around 60–120. Recalculate fitness after each change.

CTL / ATL Startwerte (Seed)

CTL / ATL Seed Values

Siehe ausführliche Beschreibung im Abschnitt Fitness → ErstkonfigurationFitness → Initial Setup.

See detailed description in the section Fitness → ErstkonfigurationFitness → Initial Setup.

📋 KurzübersichtQuick summary
  • CTL Startwert — dein Fitness-Wert laut GPS-Anbieter am Startdatum
  • CTL Start — your fitness value from your GPS provider on the start date
  • ATL Startwert — dein Ermüdungswert laut GPS-Anbieter am Startdatum
  • ATL Start — your fatigue value from your GPS provider on the start date
  • Startdatum — ab diesem Tag rechnet VeloMetrics korrekt weiter
  • Start date — from this day VeloMetrics calculates correctly