If you ride both indoors and outdoors on the same bike, keeping profiles accurate just got a lot easier. Profiles can now be tagged as Indoor or Outdoor, and Componentry will automatically assign the right one based on the type of activity that comes in.
The Problem
Bike profiles solve the interchangeable-setup problem — rotating chains, swapping wheelsets, switching between a turbo trainer and outdoor riding. But until now, the only automatic assignment option was a single default profile. If you trained indoors on Monday and rode outside on Wednesday, you had to remember to switch the default each time. Forget once and wear accumulates against the wrong setup.
For riders who split time between the trainer and the road, that manual switching added friction to a feature designed to remove it.
How Activity Type Matching Works
Each profile can now have an activity type: Indoor, Outdoor, or None.
When a new activity arrives — from Strava, Wahoo, Garmin, or Hammerhead — Componentry reads the activity type from the provider data. Every provider classifies rides differently (Strava uses "Ride" and "VirtualRide", Wahoo uses numeric type codes, Garmin uses activity type strings), but Componentry maps all of them to a simple indoor or outdoor classification.
If the bike has a profile matching that classification, it gets assigned automatically. No manual intervention needed.
The Priority Chain
Profile assignment now follows this order:
- Activity type match — if the bike has a profile tagged Indoor or Outdoor that matches the incoming activity, use it.
- Default profile — if no activity type match exists, fall back to the bike's default profile.
- No profile — if neither is set, no profile is assigned. Only default (non-profiled) components accumulate wear.
This means you can have an Indoor profile for your turbo trainer setup, an Outdoor profile for your road components, and a default profile as a catch-all — and the right one activates every time.
Setting It Up
- Go to your bike's detail screen and find the Profiles section.
- Create a profile or click the settings icon to edit an existing one.
- Select Indoor or Outdoor from the Default activity dropdown next to the profile name.
- Save.
That's it. Each bike can have one Indoor profile and one Outdoor profile. The dropdown disables types that are already assigned to another profile on the same bike.
Once set, the activity type badge appears next to the profile name in the list so you can see your configuration at a glance.
Example: Road Bike with a Turbo Trainer
Say you have a road bike that lives on a direct-drive trainer during the week and goes outside on weekends. You have two setups:
- Turbo Setup (Indoor) — trainer-specific tyre, dedicated chain
- Road Setup (Outdoor) — road tyres, waxed chain, race cassette
Tag the Turbo Setup profile as Indoor and the Road Setup as Outdoor. Now when a Zwift ride syncs from Wahoo, the Turbo Setup profile activates and only the trainer tyre and dedicated chain accumulate wear. When a Saturday ride syncs from Strava, the Road Setup profile activates and your road components get the wear credit.
No switching. No forgetting. The right components track the right rides.
Works Across All Providers
Activity type classification is built into every sync path:
- Strava — Ride, GravelRide, MountainBikeRide map to Outdoor. VirtualRide maps to Indoor.
- Wahoo — Road, mountain, cyclocross, e-bike types map to Outdoor. Indoor cycling, indoor trainer, virtual cycling map to Indoor.
- Garmin — CYCLING, ROAD_BIKING map to Outdoor. INDOOR_CYCLING maps to Indoor.
- Hammerhead — RIDE, GRAVEL, MOUNTAIN_BIKE map to Outdoor.
Manual uploads and default bike fallback assignments also resolve the activity type from the stored activity data, so the matching is consistent regardless of how the activity enters the system.
Get Started
Head to your bike's detail screen and set an activity type on your profiles. If you don't set one, everything works exactly as before — this is a purely additive feature with no changes to existing behavior.
For the full details on how profiles work, check out the Profiles documentation.
