Transport modes
Every GPS point you publish gets auto-classified into a transport mode. The mode drives how the route is drawn, how stats are computed, and how segments are coloured.
The modes
| Mode | Top speed |
|---|---|
| Walking | 8 km/h |
| Running | 15 km/h |
| Cycling | 35 km/h |
| Driving | 200 km/h |
| Public transport | 120 km/h |
| Metro | (gap-based) |
| Boat | 80 km/h |
| Flying | unlimited |
| Horse 🐴 | 30 km/h |
Top speeds are the upper boundary used by the auto-classifier. A 50 km/h GPS reading on what was a walking trip flips that point to driving (then sliding-window smoothing decides whether it sticks — see How classification works below).
Line styles — fully customizable
You decide how every mode looks on the map. In org admin → Settings → Transport line styles, each mode has its own dropdown with these built-in options:
Pick any style for any mode. A bike trip that you want bold and solid? Set Cycling → Solid. A flight you want barely visible? Set Flying → Dotted thin. Defaults exist (table below) but they're opinions, not rules.
Default styles
These are what you get out of the box, if you never touch the settings:
| Mode | Default style |
|---|---|
| Walking | Solid |
| Running | Solid |
| Cycling | Solid thin |
| Driving | Dashed thin |
| Public transport | Dashed |
| Metro | Dashed underground |
| Boat | Long dash |
| Flying | Dotted thin |
| Horse 🐴 | Icon trail (hoofprints) |
Color is whatever your theme accent is set to — gold by default, but it follows your theme.
How classification works
Each point goes through two passes:
- Per-point classification. Speed (computed against the previous point) maps onto the top-speed table above. If your phone provides a motion-activity hint (iOS CoreMotion, Android ActivityRecognition), it overrides speed — useful when a slow segment in a car looks like cycling speed.
- Sliding-window smoothing. A 9-point window with a 60% threshold smooths isolated misclassifications. One stray fast point in a walking sequence (GPS jitter, missed sample, sudden acceleration estimate) gets corrected to walking. Without smoothing the route would flicker between modes wherever accuracy is poor.
Per-trip override
Each trip has a default_transport_mode field. Setting it to
e.g. running, cycling, driving, boat, or horse
rewrites all auto-detected modes for that trip's points.
Useful when:
- You went for a horse ride (auto-classifier doesn't know horses exist; only the override exposes the mode).
- The whole trip is one mode (a hike, a road trip) and the speed-based fallback miscalls a few segments.
The override applies on read, not on write — your raw GPS data isn't modified, you can flip the override off anytime.
Per-segment override
For mixed trips (walked to the airport, flew, walked again at destination), the trip detail page lets you slice the trip into segments and assign each its own mode. Walking → flying → walking becomes three segments in the right order, each rendered in the line style you configured for its mode.
In your stats
- Distance is summed across all modes.
- Moving time is mode-aware: walking thresholds for stop- vs-moving differ from driving thresholds.
- Average speed is per-mode in the dashboard breakdown; aggregated for the trip total.
- Energy expenditure (kcal) uses a different metabolic equivalent per mode (walking ≈ 4 MET, running ≈ 8, cycling depends on speed, driving 1.5).
Related
- Themes — the colour your line styles use.
- Analytics glossary — how each metric is computed.
- Metro transit detection — special case for underground tunnels.
Need help? Contact support · Where Is Tereza?