Multiple input sources for more frictionless tracking


#1

Malcolm’s recent additions to the Complice app’s Beeminder integration removed a significant source of friction for me in using Beeminder: namely, that Beeminder goals can have only one automated data source, and if they’re automated, you can’t also enter the occasional data point manually.

For example, if I wanted to make progress on my guitar-playing goal, I had to open the Rock Prodigy app I’d coupled my Beeminder goal to and keep it live. (I was using RescueTime to track time spent in the RP app and send it to Beeminder.) This led to some stupid sessions where I was practicing something else that was an equally valid step toward my guitar goal (but whose time I couldn’t log in Beeminder) while I had the Rock Prodigy app open and would occasionally move the mouse to keep it live and tracking to Beeminder. Kind of the opposite of frictionless.

My only other option was to make my guitar goal use manual input for its data source, which had two significant downsides:

  • It added extra GRUNT WORK, because I was already using Complice to track a daily intention to “practice guitar”. I didn’t want to have to administrate that task’s completion in two different places.

  • It added extra MENTAL CLUTTER, because I spent all day reminding myself not to forget to do the grunt work. Manual entry meant it wasn’t enough to do the actual guitar practice; I also had to tell Beeminder about it if I didn’t want to derail. (I know you’d have nixed the derail as non-legit if I asked, but that would have been more grunt work, and just knowing that had no effect on the mental clutter.) For some of us, mental clutter is a huge obstacle to tool use. Simply is not only better, but essential if we’re going to keep using a tool. (That means that having narrow goals that match the input source, such as “practice guitar in Rock Prodigy”, don’t work: I want to track guitar practice, not Rock Prodigy use, and I definitely don’t want four different guitar practice goals to track from four different input sources!)

I therefore suggest that enabling Beeminder goals to accept input from multiple data sources (including direct manual entry) would be a really valuable thing.

I also realize that it’s probably an insanely complicated thing to implement. And I’m not sure how much it matters for the average Beeminder user, who is technically savvy and can use e.g. IFTTT to accomplish the same effect. But for the average Joe who doesn’t know regex from Klingon, I think it would be a big plus.

So the suggestion’s value is probably proportional to Beeminder’s desire to be a tool widely used by the general public. (That said, it would also be awesome for those of us who are former programmers now busy pursuing other goals, who really don’t want to spend our time tweaking our tools to help us get those other things done.)

That then raises the question of Beeminder’s fundamental appeal for the general public: its approach might inherently appeal only to the datanerdy, technogeeky akratics of the world. Trying to make Beeminder appeal to everyone might break what makes it so amazing for its existing users. Which then raises the question, can Beeminder achieve its financial goals without the average Joes of the world? I’m sure you’ve long since answered these questions for yourselves; I’m just thinking out loud here. And I’ve read things on the Beeminder blog that make me think you would like to broaden Beeminder’s appeal to the less technically savvy.


#2

Maybe I’m confused, but I think you can manually enter data on autodata goals if you set the data source back to manual. On goals you create via the regular New Goal screen there’s a radio button on the terrifyingly advanced settings:

For goals you create via an integration, you have to email support. But after that I think you would be able to manually add data (e.g. beetimerdroid) on your automated goal. (N.B. the “Data source” choice doesn’t ever prevent data from being added to a goal by an integration or the API, it just fiddles with UI elements)


#3

Maybe I’m confused, but I think you can manually enter data on autodata goals if you set the data source back to manual. On goals you create via the regular New Goal screen there’s a radio button on the terrifyingly advanced settings:

Interesting! I was referring to automated-data-source goals created using Beeminder-side integrations, which IIRC had the other data source options grayed out when I looked (but it’s been quite some time since I created one, so I may be misremembering that).

For goals you create via an integration, you have to email support.

Ah, okay, so maybe I’m remembering the grayed-out thing correctly, and a quick email would have sorted it for me. Good to know! :slight_smile:

(N.B. the “Data source” choice doesn’t ever prevent data from being added to a goal by an integration or the API, it just fiddles with UI elements)

FIRST SET OF THOUGHTS UPON READING THIS:
RIght, the reason Complice’s new Beeminder integration feature does the awesomesauce I was describing is because it’s from the Complice side, and effectively posing as me to “manually” enter data into Beeminder. And this does indeed work for anything you can integrate from the outside. You can authorize any number of apps to send data to your Beeminder account, from the apps themselves (assuming they offer that functionality or you can get there via IFTTT). What I was suggesting is enabling multiple Beeminder-side integrations.

So, for example, I set up my aforementioned guitar-practice goal as a Beeminder integration with RescueTime, and was then given one choice of RT activity to use as a data source for the Beeminder goal. (Again, this was a while ago, so that setup may have changed since I used it.) What I’m suggesting is that Beeminder let me first create a goal of the type I want (Do More, Do Less, etc.) and then associate it with possibly several input sources: let’s say two RescueTime activities and an IFTTT recipe, for example.

But maybe this is really just a cherry-on-top kind of feature, rather than something that would actually make Beeminder more average-user-friendly (which was my thinking when I wrote my initial post). It’s hard for me to gauge that well; it might still all be Klingon to the type of user I was thinking it would help.

SECOND SET OF THOUGHTS UPON READING THIS:
Wait, wait, I think you’re saying that the Beeminder “create a new RescueTime goal” was just a convenience to get one automated data source linked to that goal, and I could have set up as many as I liked from the outside to go along with it. So I misunderstood the freedom I had. Good to know! And possibly worth documenting somewhere.


#4

I think the missing detail here is that there’s really two types of integrations under the hood.

There’s the kind where Beeminder pulls from a source (e.g. Fitbit, Gmail, etc.) and the kind where the source pushes into Beeminder (e.g. IFTTT, Complice, etc.). Beeminder itself (website, app, api) is just another push source.

Right now a goal can have any number of push sources and you don’t need to tell Beeminder about them in advance. When IFTTT or an API call pushes data into Beeminder, Beeminder just happily accepts it.

But the pull sources don’t know about Beeminder at all. The Beeminder folks are doing the work of pulling data from the source and pushing it into Beeminder under the hood for us so we don’t have to do it ourselves. Right now a goal can only have one pull source. To change that, the Beeminder folks would need to make changes to their system to let it know about multiple pull sources and to actually do the work of pulling from them. For example, when you click the fetch data button:

this does a fresh pull from the pull source on the goal if there is one. For goals without a pull source, it just refreshes the graph but doesn’t do anything else.

So hopefully this helps explain why there is this limitation for certain integrations but not others?


#5

One more note: Having a pull source on a goal doesn’t prevent it from having push sources. This is why you should be able to manually add data to any goal, or send any goal IFTTT data regardless of whether it has a pull source configured.


#6

Right now a goal can only have one pull source. To change that, the Beeminder folks would need to make changes to their system to let it know about multiple pull sources and to actually do the work of pulling from them.

Yes, I understand this, and this is what I meant by “insanely complicated” for Beeminder to change it on the Beeminder end.

Having a pull source on a goal doesn’t prevent it from having push sources. This is why you should be able to manually add data to any goal, or send any goal IFTTT data regardless of whether it has a pull source configured.

This is fabulous, and I didn’t know it. Again, this is worth noting somewhere reasonably prominent for users like me, that it to say, intelligent users with a technical background who will get it, but are not in this for the joy of the mucking around with settings and innards. (Check back with me in ten years, when the kids are grown and the house is paid off. :wink: ) The Goldilocks users, you might say: halfway between the fanatical users deep in the API and loving it and the “I just want to track my progress toward goals please stop throwing technical terms at me” users. (It would be interesting to know how many users Beeminder has in each category, actually.)

On that note: you’ve done a great job of explaining this. Maybe you should be tapped to write the Great Big Beeminder User Manual! :slight_smile:


#7

Aw shucks


Road editor: Resource not found, but page refresh updates road within akrasia horizon
#8

Agreed with you from a UX perspective, but I think one of the awesome
things of goals linked up like this is that it can make it a huge pain to
cheat, for those who might be inclined to try to fudge the numbers then
catch up later.

So I would be careful with this.