This was a question from a user that I think some of you all will have better answers to. How can one beemind getting to a coffee shop (or wherever you do your work) on time every day?
Here are some possible answers I’ve thought of so far:
Just beemind total time spent and let the start time take care of itself. Like if you have 8 hours of work you have to get done and you want to be home by dinner at 5pm then you have to start before 9am. So, problem solved.
Forget Beeminder. The BetterMe app purports to embarrass you on Facebook for not showing up at a prespecified location at a prespecified time. (Hasn’t been updated in a couple years though.)
Just make a binary Do More goal where you enter a 1 if you arrived on time (goal is, say, 5 on-time arrivals per week). This works better if you set your Beeminder deadline to the time of day you want to arrive by. Which is complicated by the fact that noon is currently the earliest deadline Beeminder supports.
Create an IFTTT recipe that triggers when you’re at your specified location. Have it send the time of day to Beeminder using the “TOD” macro (link below). You’ll want a Whittle Down goal. And note that this is enforcing that you arrive at a certain time on average – and I’m not sure how to have it only apply to weekdays.
My suggestion won’t apply if the user wants something automated, not prone to cheating while manually entering the data… but the solution I tried myself this spring is that I have a do-less goal where I enter the number of minutes by which I was late to classes I teach, and if I come beforehand, I can distract up to 5 minutes. I started this goal with a slope of about 10 minutes a week (an allowance to be late up to 10 minutes during a week) but soon changed it to a flat line (the late arrivals should be compensated by early arrivals), and then even my a negative slope (to arrive early by more minutes than being late, on average). But this final setting had some bugs, and as I corresponded with Bethany, I understood that do-less goals are not really intended for negative slopes. So I think I will just restart the goal with a flat line as the new academic year begins.
This type of solution implies remembering to look at my watch at the moment when I am in the class and ready to start - and honestly reporting whatever I see there. It took me a couple of weeks to develop this habit of looking on my watch at that point of time, which was at first not easy to remember especially when in a hurry. I should say that having this goal was most useful in terms of being aware - which quickly helped me to start coming earlier less late Or maybe it was about spring turning towards summer, when it feels generally nicer to walk somewhere in the morning. I’ll see in the fall
I should’ve mentioned that this works better if you actually set your Beeminder deadline to 5pm. Then if you have a beemergency day with 8 hours of work due then starting at 9am really is a hard deadline.
If that works and you want to automate this then you might need to get fancy: You could have an IFTTT recipe that sends arrival and departure times to a Beeminder goal … but then you need a custom goal with a fancy aggregation method to subtract the pairs of arrival/departure times to log total time spent at a location. I use TagTime for this sort of thing, which requires a whole other kind of fanciness.
This doesn’t address the “by a certain time” constraint, but I wanted to mention about the IFTTT location trigger: I noticed that (the android version) was triggering repeatedly the entire time I was at my specified location, so I changed my gym goal to update based on checkins on foursquare (via IFTTT still). This still requires me to do stuff to report the data, so it is slightly suboptimal, but it’s public reporting, and I’ve only forgotten once. The IFTTT location trigger could well have improved in the meantime. They’ve been doing a bunch of User Visible product development in the past months.
I think if you have an Android phone, you could do this with Tasker and AutoLocation. I haven’t tried it myself and I’m not 100% sure how AutoLocation geofences work; but I plan to do it when I go back to school in September.
You would make a Tasker profile that requires two parameters to trigger:
Time between 4:00PM and 5:00PM (if you wanted to be at the coffee shop by 5PM)
Location at coffee shop (via AutoLocation).
Maybe have another profile for arriving between 5:00PM-7:00PM that gives you 0.5 points. Wouldn’t want to say “what’s the point!” just because you’re late right?
And of course, the task would be to submit data to Beeminder. You could even do other things like make your phone go silent.
Edit: thinking about it, if you wanted to avoid nerd tools like Tasker, you could still do this with IFTTT. Using Foursquare as a trigger (or location if it’s working as expected), have it fire an email to your Gmail, and in that email you would write the time sent. Then, with Gmail filters, filter those emails and add a label (“coffee shop”) to the emails that arrived at the correct time. Then using another IFTTT recipe, for every new email in your Gmail with the label “coffee shop” as a trigger, add a datapoint to Beeminder.
Convoluted, but doesn’t have a learning curve like Tasker I’d say!
Wow, I would never have thought of that! Super smart. Eager to hear if anyone tries it!
PS: Android location triggers for IFTTT recipes seem to work fine for me. I’m not using them to beemind anything but I’ve been using a recipe that just adds a calendar entry when I enter or leave the Beehive. (It’s handy sometimes for retroactively answering tagtime pings.) I do similar but more elaborate things with Tasker recipes writing to logs on my phone when any of a set of events happen.
There is a workaround to the issue of no negative slopes for do less goals: essentially, just multiply everything by -1. So now you have a do more goal where you beemind minutes early, instead of minutes late, and you enter a positive number if you arrive early and a negative number if you arrive late.
I’ve set up this goal but I think it might be quite ‘strict’ because there is no way to build a safety buffer. You need to come in before specific time every (week)day (assuming I won’t be there on weekends and there won’t be data points for weekends) and there is no incentive in coming earlier as that won’t let me come in later some other day. I’m not sure how this would be ‘enforcing that you arrive at a certain time on average’.
As a whittle-down inbox-like goal, I think I agree that it’d be strict. @dreev may have been thinking of a do-less goal, which would enforce the average rather than put a cap on the absolute time. Conversely, a do-less goal sums the datapoints by default, which wouldn’t be helpful in this case
Couple of thoughts regarding goal settings:
visiting the coffee shop multiple times in a day will create multiple entries. You want the earliest one to count, so aggregate them as the minimum value. Which is what whittle-down does by default.
I will report back on how well this worked later, but I ended up reading this forum post as well as the others I linked to figure it out, so I thought I’d document it here. Thanks all for your previous work helping me figure out how to create this goal.