Strava description ideas

12 ready-made templates · last updated 1 August 2026

The description box is the one part of a Strava activity that stays empty unless you fill it. Below are twelve descriptions worth writing — each one built from live ride data, so the same template reads differently on every ride. Copy any of them, or load it into Velometry with one click and have it written for you the moment your ride uploads.

On this page What makes a good description Wind templates Season templates Weekly templates Make it automatic FAQ

What makes a good Strava description

A ride page already shows distance, elevation, time and power. Repeating those adds nothing. A description earns its place when it carries something the activity page cannot show:

Keep it to one to three lines. Strava truncates long descriptions in the feed, so whatever matters most belongs on line one.

In every example, {token} is a placeholder Velometry replaces with the real value for that ride. The second block shows how the description actually lands on Strava.

Wind description templates

Wind is the biggest thing missing from a Strava activity page, which makes it the most interesting thing to put in a description. See wind data on Strava for how the numbers are worked out.

1. Full wind breakdown

The complete picture — overall factor, wind speed and direction, then the head / side / tail split.

🌬️ WindFactor {wind_factor} · {average_wind_speed} {wind_direction_indicator}
🧭 Head {head_wind_percent} ({head_wind_factor}) · Side {side_wind_percent} ({side_crosswind}) · Tail {tail_wind_percent} ({tail_wind_factor})
🌬️ WindFactor 1.08 · 18.4km/h ↗
🧭 Head 48% (1.21) · Side 33% (12.7km/h) · Tail 19% (0.82)
//velometry.cc

2. Wind one-liner

Minimal, and the one that survives feed truncation: the headline number, speed, direction.

🌬️ Wind {wind_factor} · {average_wind_speed} from {wind_direction_indicator}
🌬️ Wind 1.08 · 18.4km/h from ↗
//velometry.cc

3. Headwind hero

Narrative flavour — frames the ride as a fight rather than a data dump. Good on the days the average speed looks worse than the effort felt.

💪 Fought {head_wind_percent} headwind at {head_wind_factor}× effort
🌬️ {average_wind_speed} from {wind_direction_indicator} · overall {wind_factor}
💪 Fought 48% headwind at 1.21× effort
🌬️ 18.4km/h from ↗ · overall 1.08
//velometry.cc

4. Wind plus season combo

One wind line, one season line — the everyday all-rounder, and the template most riders end up keeping.

🌬️ {wind_factor} wind · {average_wind_speed} {wind_direction_indicator}
📊 YTD {distance_ytd} · {elevation_gain_ytd} · {avg_speed_ytd}
🌬️ 1.08 wind · 18.4km/h ↗
📊 YTD 4 210km · 51 300m · 29.4km/h
//velometry.cc

Season and year-to-date templates

Year-to-date values are computed as of the ride, not as of today — so a description written in March still reads like March, even if you regenerate it in November.

5. Season progress

Cumulative totals plus how much this single ride moved your season averages.

📊 Season: {distance_ytd} · {elevation_gain_ytd} climbed
⚡ Avg {avg_speed_ytd} ({avg_speed_ytd_impact}) · {avg_power_ytd} ({avg_power_ytd_impact})
📊 Season: 4 210km · 51 300m climbed
⚡ Avg 29.4km/h (+0.2km/h) · 212W (-3W)
//velometry.cc

6. Climber's log

For riders who count metres rather than kilometres. Climb rate is metres gained per kilometre ridden, so a hilly season reads high even when the distance does not.

⛰️ {elevation_gain_ytd} climbed this year over {distance_ytd}
📈 That is {climb_rate_ytd} average · {ride_count_ytd} rides · {active_days_ytd} days out
⛰️ 51 300m climbed this year over 4 210km
📈 That is 12.2m/km average · 112 rides · 96 days out
//velometry.cc

7. Engine room

Power, heart rate and energy for the season. Needs a power meter and a strap — anything you did not record renders as n/a instead of a wrong number.

🫀 Season engine: {avg_power_ytd} · {avg_hr_ytd} · {energy_ytd} burned
⚡ This ride moved it by {avg_power_ytd_impact}
🫀 Season engine: 212W · 142bpm · 109 400kJ burned
⚡ This ride moved it by -3W
//velometry.cc

8. Ride of the year?

Ranks the ride you just did against every other ride this year by distance — the description that makes a big day feel big.

🏅 Ride #{distance_rank_ytd} by distance this year
📊 {distance_ytd} across {ride_count_ytd} rides · avg {avg_distance_ytd} each
🏅 Ride #3 by distance this year
📊 4 210km across 112 rides · avg 37.6km each
//velometry.cc

Weekly templates

The week runs Monday 00:00 to Sunday, and every year-to-date token has a _week twin. Weekly numbers are the ones that actually change training behaviour — they are small enough to chase.

9. Week so far

Where the current week stands after this ride. Resets every Monday, so it never becomes background noise.

📅 Week so far: {distance_week} over {ride_count_week} rides ({active_days_week} days)
⏱️ {moving_time_week} in the saddle · {elevation_gain_week} climbed · avg {avg_speed_week}
📅 Week so far: 186km over 4 rides (3 days)
⏱️ 6h 12min in the saddle · 2 140m climbed · avg 30.1km/h
//velometry.cc

10. Week vs season

The week set against the whole year — the quickest way to see whether you are ahead of your own pace.

📅 This week: {distance_week} · {elevation_gain_week} · {moving_time_week}
📊 This year: {distance_ytd} · {elevation_gain_ytd} · {moving_time_ytd}
📅 This week: 186km · 2 140m · 6h 12min
📊 This year: 4 210km · 51 300m · 143h 20min
//velometry.cc

11. Coffee-stop audit

Moving-time share is how much of your total time out was actually spent pedalling. Below 85% and the café is winning.

☕ {moving_time_week} moving this week — {moving_time_ratio_week} of the time out
📅 {ride_count_week} rides · {distance_week} · avg {avg_distance_week}
☕ 6h 12min moving this week — 91% of the time out
📅 4 rides · 186km · avg 46.5km
//velometry.cc

12. Everything, everywhere

The maximalist option: wind, week and season in three lines. Best kept for long rides, where a wall of numbers feels earned.

🌬️ Wind {wind_factor} · {average_wind_speed} {wind_direction_indicator}
📅 Week: {distance_week} · {elevation_gain_week} · {moving_time_week}
📊 Year: {distance_ytd} · {elevation_gain_ytd} · avg {avg_speed_ytd} ({avg_speed_ytd_impact})
🌬️ Wind 1.08 · 18.4km/h ↗
📅 Week: 186km · 2 140m · 6h 12min
📊 Year: 4 210km · 51 300m · avg 29.4km/h (+0.2km/h)
//velometry.cc

Make it automatic

Typing any of this by hand after every ride lasts about a fortnight. Velometry does it for you:

Changed your wording later? The Recent rides tab regenerates the description of any of your last 10 rides with the new template. Every token available is listed in the full token reference.

FAQ

What should I write in a Strava description?

Anything the ride data alone does not tell: how it felt, what the conditions were, and the numbers Strava does not show on the activity page — the headwind share, your season totals, or where the week stands. One or two lines is plenty; a wall of numbers reads as noise.

Can I reuse the same description on every ride?

Yes, as long as the numbers inside it change. Velometry keeps one template and re-renders it for each activity, so identical wording carries different values every time.

How long can a Strava activity description be?

Strava accepts a long description, but the feed shows only the first couple of lines before truncating. Put the line you actually want read first.

Connect with Strava