# A proponent of exponents

A couple of nights ago, I came across Sage Canaday’s race report from his second place finish at the Rut 50k in Montana. It looks like a gnarly race, one I’d love to do someday if I had the balls to run with that kind of exposure. But what struck me about Sage’s report were the mathematical terms he used to describe his difficulties with some of the steeper terrain, and Kilian’s uphill charge on the steep stuff that cut apart the lead Sage had built on the flatter portions of the race. He used the term “exponential,” 3 or 4 times including in the title.

The report intrigued me because, at that time, I was rejiggering some polynomial curves (full of fun constants and exponents) that are used to create Run Ranger, a tool that I immodestly claim to be the world’s best running calculator.

# Run Ranger reduces surprises

Since I’m not young or fast like Sage Canaday… and I live at sea level… and train on a trail that’s more like a superhighway than a tough race course… I suffer a lot of race envy. I run trail races in and around Virginia pretty often, at distances up to 50k at this point, and I travel periodically to try my legs on courses like the Mont Blanc Marathon and the Zermatt Marathon. So, you’ll have to forgive me if, after laying out a couple grand of my hard-earned cash on plane tickets and unpronounceable French food, I don’t like surprises on race day.

When I first began running trail and mountain races, I was always wondering just what kind of pace I should be shooting for given the wildly varying conditions on the trail. Overshoot, and you can turn a decent effort into a long and miserable day. Some might argue that the unknowns are all a part of trail running, but I say there are enough other unknowns – such as if you’re going to have to crap behind a tree once or a dozen times – to satisfy the trail runner’s taste for adventure. Most runners wouldn’t roll the dice on shoes, training or nutrition when making a good race effort, so why should we have to roll the dice on the amount of effort to put forth on a given course?

In order to reduce the surprises, I built Run Ranger. From the beginning, I wanted it to be more than a pace calculator.

Little by little, I loaded Run Ranger with one-of-a-kind features in order to let any runner predict (with some degree of accuracy, I hope) what his performance will be on an unfamiliar course. Provided you know a few things about the course (terrain, climb, descent, likely weather, and altitude) and provided you use a Windows Phone, you should be able to get a pretty good idea of what your time will be, so long as you’re honest about the effort you’ll be putting in.

# Why there’s nothing else like it

I’ve done a lot of research to come up with important tidbits, like a reliable system for handicapping race pace at a certain temperature. Of course, in order to optimize that, I eventually had to create custom heat index for runners. (The typical heat index is built on subjective temperature feel for sedentary subjects. Anyone who’s ever raced in 68 degrees and 90% humidity knows that it does not feel like 68 degrees, as the heat index would have us believe.) Those calculations are fairly straightforward, even if they give me fits because I was an art history major and I have to figure out the math along the way. (Marrying a calculus teacher was a good move!)

Climbing and altitude are much, much harder to get a handle on. In my experience, response to these variables swings wildly between even very fit athletes who might otherwise run neck-and-neck on a flatter course. Some of this is undoubtedly due to genetics. Science still hasn’t answered the fundamental questions of what exactly it is about altitude that causes the performance penalty most of us feel, at least not in the 50+ studies I’ve read on the subject. Lacking that, there’s almost no hope of predicting an individual’s altitude response. Climbing is similar, though again, in my experience, plenty of horrible, long uphill treadmill training plus step-ups can help, if you’re not lucky enough to live near the trails that provide these conditions. Worst of all, these variables aren’t independent of other variables. The relative slowdown factor from a climb may be much higher given trail surface, and it may be much different for a short race than a long race.

# Good is never good enough

To improve Run Ranger, I have calculated and recalculated these dozens of times, putting new logic into place to account for outliers, analyzing new research on the subject (which is all over the place in methodology and results) and looking at real-world efforts of elite and non-elite runners to inform and double-check the outputs.

I’m never truly satisfied.

The final test on the math is usually with this guy here (I’m waving my hand.) Since I can verify via my GPS and HR-monitor-informed training diary what my relative effort for a given course was, I can therefore verify whether the offsets between two different courses look correct. That’s not possible when using larger datasets of running performances for comparisons – I simply won’t know if individual efforts were equal, so trying to calculate performance offsets from them becomes dangerous.

# Testing Sage’s ascent

After reading Sage’s post, I decided to test the new algorithms and programming logic on his effort on a course I now know, Pike’s Peak. I’m pretty sure I know that Sage Canaday put in a full effort there this year, as he won the Mountain Running championship in August with a 2:10 performance on the ascent. Here he is, on the way to that win.

I was seated at the last big turn near the top, one member of the small crowd yelling for him as he pulled away from the guys who had led most of the race. I know the course fairly well because I ran the marathon the following day, hitting the top in 3:17, about at my goal. (My vision then doubled due to eyestrain and I had to walk almost all of the descent, watching 60-some runners go by me, pushing me out almost to six hours, about 40 minutes slower than my goal. But I digress…) My point is, Sage’s time here and his road-running pedigree made him an ideal candidate for a quick test of my new algorithms. Most top mountain runners don’t ever step foot on the road except to get to the starting line, so it’s almost impossible to make comparisons with their data.

Back to testing the new algos. First, I took Sage’s time for the Pike’s Peak Ascent and entered it into the pace calculator, like so.

Next, I swiped right to get to the perform tab, and switched the mode from “adjust for” to “normalize from,” because my goal was to throw in his Ascent time, add the conditions, and work backward to his flat, good conditions, road half marathon time. I selected rough trail for the surface, 60 degrees for the temp, the 7850 feet of climb, and shot for a representative slice of the altitude (the range is about 6,000 feet at start to 8,000 at the summit, but you spend a disproportionate amount of time in and around the 12,000 and up range as the air thins). Calculate and, viola, it says, wait, what’s that?

Sage Canaday can run a 56:52 half marathon? Pretty amazing, given that the world record is 58: 23.

I guessed my new algorithms sucked.

# Don’t forget the basics

Ooops. I realized that I had forgotten to update the settings page to account for Sage’s experience with trails, altitude, and climbing. These are very important, because they’re the second part of the secret sauce that makes Run Ranger better than every other running calculator out there. (As far as I know, it’s the only running calculator that works like this.)

Think of it this way. Sage’s Pike’s Ascent time only maps to a 56:52 flatland half marathon if he’s got normal acclimatization to the trail surface, climbs, and altitude on Barr Trail. Clearly, that’s not the case. He lives and trains at altitude on trails, precisely in order to improve his response in those conditions. In order to normalize his Pike’s Ascent time back to a flatland half effort, we need to account for his trail fitness in Run Ranger’s settings page.

So, I opened the settings and moved the sliders to what I thought were reasonable values for an elite guy who is none-the-less still below the superhuman levels of specific acclimatization we see from some mountain goats out there. That’s in no way meant as disrespect to his training and preparation. Settings way out to the right are for freak-of-nature outliers, like Kilian, or some of those other Europeos who can sprint down a talus field like it’s a summer lawn, and don’t seem to suffer from altitude until they hit 17,000 feet. I moved the settings for rough trail, heat, climb, descent, and altitude as you see below (two screenshots, because of the scroll):

What’s the result? According to Run Ranger and those settings, Sage’s Pike’s Peak Ascent win is about equal to a 1:06 flatland half marathon in good racing conditions.

# Is it right yet?

OK, I figured I still had it wrong. 1:06 is really flying. Can Sage run a half that quickly? I honestly didn’t know.

Time to go check Sage’s Web site to see if he’s got a half marathon time up there.

Whoah! His half marathon PR is a 1:04? Maybe Sage will drop by and confirm or deny whether or not his Pike’s Peak Ascent effort felt like a 1:06 half marathon, but in the meantime, I think the new algos are looking pretty good.

Great, but now you might be asking yourself, “So if your running calculator works for an elite athlete, it can’t work for a regular shmo, right?” I’ve seen respected sports and science writers make this claim, and I have even gotten a snotty replies from one of them when I told them that I’d programmed a better tool.

Let’s see if this writer’s shitty attitude is correct: Let’s try the new algos with a decidedly non-elite runner: Me. Will the tool still work?

# One duffer’s effort

First, a note on my effort: My Pike’s ascent was the first portion of the full marathon, so I wasn’t trying to go up at fast half-marathon pace. Rather, I was resolved to put in a decent full-marathon type effort. What’s that? Well, my marathon PR is a modest 2:55:02, and it’s a decent dose of suffering to get me there. However, as I’ve ramped up the mileage this year and closed in on my 60th Marathon (Steamtown, a couple weeks away) I find that I can generally run just a little bit slower with much less agony. That means that I can put out a 3 hour marathon without feeling too rancid. That’s about the effort I aimed to put into Pike’s Peak. By the way, I tend to run very consistent marathon halves, usually slightly negatively splitting when I have my best days. That means that when we “normalize from” my Pike’s Peak Ascent in Run Ranger, we should come out close to a time of 1:30, for a pace around 6:52 per mile.

OK, let’s check my Pike’s Ascent portion out.

First, I updated the Run Ranger settings to reflect my own conditioning at the time. I had been doing a lot of long hill climbs on the treadmill including a full simulation of the ascent. I run in 80+ degree heat all summer. I run almost all my workouts on a fairly easy trail. Oh, and I’d been sleeping in an altitude tent, gradually moving up to full nights at simulated 14,500 feet, for 3 weeks. So, I’m well acclimatized to heat, and OK with long climbs, rough trail, and altitude. That put my settings like so:

What’s the normalized time from my Pike’s Peak Ascent?

Hmm. Within a couple of minutes. That’s pretty close.

# Don’t forget the pit stop

But wait! I stopped for at least a minute and a half at aid stations along the way to fill my water bottle on the way up. On a road course, I would never have stopped. Luckily (well, it has nothing to do with luck…) I can enter that information on the perform tab as well, under stopped time.

# TLDR conclusion

Not bad. At this point, we’re within a minute and a half of the effort level I thought I’d put into the ascent. I think I’ll keep the new algos for a while. Remember, if you’re one of the 10 people out there using Windows Phone, you can get this app, free and advertisement-free, from the Windows Phone App Store. You can use it in English, German, French, Italian, Spanish, and Portuguese, and feel free to make fun of the amateurish translations.