For Adventure / Bikepacking / Enduro / DH athletes, it would be very helpful to know how much time was spent walking the bike uphill vs. riding uphill vs. taking a chairlift up.

Some ideas to compute this:

Walking uphill can be estimated by observing a cadence of 0, while uphill progress is made past a certain distance (say 1000 ft etc.), and a certain speed window (say 0-10kph)

Lift access can be calculated by using the GPS data, Cadence of 0 for prolonged period of time ( say >1 min) and a VAM threshold greater than a certain amount.

Not sure how to approach this for walking the bike on flat terrain, but that would be another aspect in addition to walking while going uphill.

You could try create custom activity fields to compute these things. This one calculates â€śHike ascent timeâ€ť (total time doing power hike in trail run):

{
let time = icu.streams.time
let alt = icu.streams.fixed_altitude
let cadence = icu.streams.cadence
// https://forum.intervals.icu/t/elevation-gain-off/8463/16
let threshold = 1.2
let totSecs = 0.0
let prev = 0
let maxDeltaTime = activity.icu_median_time_delta ? activity.icu_median_time_delta * 2 : 0
if (maxDeltaTime < 30) maxDeltaTime = 30
let prevAlt = alt[0]
let prevTime = 0
for (let i = 1; i < alt.length - 1; i++) {
let t = time[i]
if (t == null) continue
let deltaTime = t - prev
if (deltaTime <= maxDeltaTime) {
let v = alt[i]
if (v != null) {
if (prevAlt != null) {
let delta = v - prevAlt
if (Math.abs(delta) >= threshold) {
if (delta > 0.0 && cadence[i] <= 69) totSecs += t - prevTime
prevAlt = v
prevTime = t
}
} else {
prevAlt = v
}
}
} else {
prevAlt = alt[i]
prevTime = t
}
prev = t
}
totSecs
}