Triathalon training goal

So I’ve been trying to figure out a good way to plan beeminding my training. I have worked my way up to the point where I’ve decided to train for a triathlon which if you haven’t heard of triathlons, incorporates goals to do better in three disciplines: biking, running and swimming. My goal in 2017 was to do 1000 miles of running and biking which I came just short of and I started a new goal for this year with the same idea before I decided on this. Similar to the weak point of that goal, this goal is making me want to do the easiest attainment of miles which is biking, next running and skip swimming which unfortunately is my weakest. I’ve thought about ways I can do a point system to encourage me to do more swimming but I worry that would be way to easy to weasel and I’ve already had to weasel-proof my exercise goals already because I’d modify the last data point to give myself a false buffer until I could do another big day to make up the deficit. Problem with that was it left big deficits and I would be doing 20+ miles on a bike and then not want to do it for a few days creating a never-ending cycle.

SO… Reading a few things I have learned that that was an outcome goal and I should instead focus on an input goal yet I can’t decide how best to approach it. My instinct is to do one of the following scenarios:
A. Make a beeminder for traking the number of workouts I do (and set a reasonable number).
1. Total workouts
2. Each discipline (one for running, one for biking, one for swimming… so I don’t just wuss out and do the easiest one for me)
B. Make a beeminder tracking the time I put into my workouts (since it’s mostly about endurance anyway a jog around my blog is different than a 45 minute jog around town)
1,2 for same reasons as above
C. All of the above (one for the times AND one for the fact I did it so I don’t build up too big a buffer on the time on the weekends when I do longer training and weasel out a few days until I’m in the red again)

I am wondering if anyone has any examples where this has worked for them and can shed some light on it.

P.S. I hate having to farm out this much accountability but I don’t have people I can train with/rely on yet and I have failed myself too much so I’m putting skin in the game until this becomes something that is a habit naturally and/or I have training partners.


If you are already predicting ways you’ll take the easy way out, it’s my experience to listen to yourself. On the other hand, it can be a trick so you never start! My suggestion is to create them all with a gentle road, and just get started!


I would create separate goals for each discipline so that there will be no incentive to do the easiest one.


I had pretty good success training for a half-marathon when I created a goal called “training” with a rate of 7/week where the input data answered the question: “did I stick to my training plan today?”

So if the day was a 10-mile long run and I went out the door for it, I put 1 in the goal. Even if I had a bad run and had to stop early due to weather, I still got to say “I did the thing my plan said I was supposed to do.” This also made rest days extra satisfying when I got to enter “1” as soon as I woke up and not worry about the goal for the rest of the day.

This does make autodata hard, but you can link it to IFTTT and use multiple applets to add data (ie, if you add a run on strava, or a ride on strava, or press a button in their DO button app to log resting).

edit: You could also independently track your mileage, and use the “added data to a beeminder goal” trigger on IFTTT to add a datapoint of 1 to your “training plan” goal whenever you add mileage to a biking or running or swimming goal, and combine this with a button for rest days to stay on track on the meta-goal.


For the time one I know how to implement it… but wondering if anyone has a suggestion for setting it up for time based goals. I tried setting one up using aggregation (clocky) for waking up early but couldn’t figure out the logistics to get it to properly track. Honestly the time ones are a little hard to conceptualize… I plan to start with 3 days a week (1 day for each exercise) and focus on doing long exercises to build up endurance. I know I could set it up with a 00:45 or 00:30 per week goal to ensure a gentle road to start and if I want to do more I can BUT trying to prevent weaseling I don’t want to split up up just doing 15 minutes and quitting knowing I can do another short exercise to avoid derailing. It is not necessarily bad to do multiple exercises but I need to focus on long exercises to build the endurance. Is there some sort of aggregation to do that (make it so a datapoint has to be at least XX minutes to count)? the only other thing I can think of is customizing my road to the extreme and making it a daily goal but building in a bunch of break flat spots. Any suggestions?

njberry, I have run into needing this a few times. I don’t have a great solution for it. I have a note here to try the Maker “javascript filter” for IFTTT and setup an example for folks if it works well. Has anyone tried that?

1 Like

@njberry I spent a few minutes and set up a Beeminder threshold IFTTT thing. I can walk you through trying it out, if you want. How many minutes do you want to set as your threshold of “long enough” at first?

I was just poking through that a bit.

So help me first try to understand the hierarchy of setting something like this up where it doesn’t become a crazy scenario. I’m thinking setting up one that has a non-zero agg (was doing binary but that ended up screwing things up when I derailed one and it counted a zero that ifttt copied over) that has the data point be the times THEN the javascript filter checks the comment for the datapoint of the exercise that is sent over from as example one that zapier copies from mapmyfitness (ifttt has no support for them unfortunately) “Rode 3.34 mi on 3/14/18” THEN it will trigger sending a 1 to one of the three designated exercises, in this case cycling, IF it’s at least lets say 30 minutes…

that would cover time and exercises at the same time and make it so I don’t have to setup like 6 or 8 and instead only need to setup a parent training goal and three child individual discipline goals.

Is that sound or did you have a different approach?

Yeah, that’s close! I would probably suggest copying over the whole datapoint value if it’s over the threshold, rather than just a 1, but that depends on your actual goal. How much credit do you want if you do an hour of cycling? The same amount as 30 minutes, or twice as much?

How do you like strava over other apps? I started using mapmyfitness end of 2016 because I was already using myfitnesspal and stuck with it but it’s a bit annoying now having to use zapier and their limit on zaps where ifttt has no limit that I’ve seen yet. I see that ifttt supports strava so I was considering switching this last week

Knowing me and my past I just want to avoid doing like an extra 2 hour+ bike ride on a weekend with a meetup group and then creating a mindset that I can skip the next 4 workouts. I have to be kind of strict on myself… at least until I can hack my motivation for wanting to do it naturally and beeminder will just be there to make sure a busy week doesn’t throw me off my goal.

I love using strava and IFTTT for beeminder; the connection works so well it feels seemless to me. Also Strava has a really strong community, good routebuilding because of how they leverage the massive amount of fitness data they consume, and excellent support for sensors and performance metrics for stuff like heart rate, cadence, cycling power, running ground contact time, etc.

I started off using mapmyfitness as well but it just didn’t seem as easy to use or well-supported as strava to me so I switched.

1 Like

Then I would do as you said and add a 1 if the datapoint is over your threshold.

For posterity, I played around with it, and this seems to be working. I added a Beeminder trigger and action, and then setup the filter like this:

if (parseFloat(Beeminder.datapointAdded.DatapointValue) < 0.5)
  Beeminder.addData.skip("Skipping datapoint " + Beeminder.datapointAdded.DatapointValue + " because of 0.5 threshold.")

How do you get access to the maker channel and filters like this? do you need to register your IFTTT account as a maker?

1 Like

Cool. I’ll give it a try. I was hesitant because it seemed it was geared to be for only biking and running but with a quick google looks like they support doing lap swimming in the same way as mapmyfitness. Thanks!

1 Like

you’ll need an account if you don’t already have one with IFTTT (it’s not seperate) but I have made a few custom ones to give google assistant new features like calling my phone when I lose it “HEY GOOGLE, CALL MY PHONE!”


I’m not sure, actually. I hope it isn’t some invite-only thing. I can share my applets and anyone can use them, but the thresholds aren’t user settable. I could make a 5 minute, 15 minute, 30 minute one and share them out, but once I share them, I cannot edit them, so I want to do more testing first.


I should also mention the excellent for getting pesky fitness data from one app to five others if, like me, you have a garmin you only sometimes use, a smashrun account for intense data nerdery, and sometimes track with Runkeeper when you want to do interval workouts.

Beeminder still gets data through IFTTT when tapiriik syncs a ride to strava so this ecosystem ([run] -> Tapiriik -> Strava -> IFTTT -> Beeminder) works seamlessly, you just have to be okay with Tapiriik’s sometimes-hour-long sync queue.

1 Like

Cool. I use runkeeper more only because it’s become my one place. This might help me use the right tool for each thing…

Also cool: tapiriik’s privacy page which we could emulate, given that we also have a raft of integrations and could probably make things clearer for newbees. @dreev


Did you try this filter stuff? Did it work out?