Microstings

I came up with a possibly-novel beeminder usage that I figured I would share.

The use case is a do-less goal for something that is mildly subconscious and hard to precisely define what counts as doing it. This means with a traditional do-less goal it’s easy to get into an internal argument with myself about whether I actually need to log a datapoint, and it becomes high stakes if I’m at the point where it would cause a derail.

In the past in a similar situation I’ve tried to implement “microstings”, where I can charge myself (e.g.) $0.25 for each time I do something; enough to tip the scales, but also a small enough amount that I don’t bother arguing with myself about it. I think it’s a nice effect, but for a while I assumed I couldn’t do anything like that with beeminder due to the $5 minimum.

But then I thought of this setup:

  • do-less goal
  • min/max charge is $5 (i.e., it doesn’t go up after a derail)
  • the road is flat, but you arrange it so that you initially have 20 items you can log before a derail, and after a derail it jumps by another 20 (I had to use the road editor to get into this state, but I think after that it should Just Work)

And so the effect is that you are essentially getting charged $0.25 for each item you log, but the charges are batched (and also you’re not actually beeminderly on the hook for the pending “charges”, but I don’t think this is a problem for the same reason all the other beeminder loopholes are not a problem).

And of course you can get sting amounts other than $0.25 by replacing the 20 safebuf quantity with something else.

10 Likes

The charge endpoint lets you charge yourself an arbitrary amount at an arbitrary moment. If that accepts fractions of a whole dollar, you could use it to pay beeminder the quarter dollar as your microsting.

https://api.beeminder.com/#charge

2 Likes

Yeah, I’ve thought of that, and I use that API for other things. I’m curious if it does accept smaller numbers, since I think the credit card fees could be prohibitive in some way, but I haven’t bothered trying.

Understandable. The API description makes no mention of that and furthermore, these days it probably just means an immediate withdrawal from the prepaid Honey Money (no credit card involved).

If I recall correctly, I believe there is an undocumented minimum charge of $1 on that endpoint. Actually, it’s easy to test with the dryrun parameter:

curl https://www.beeminder.com/api/v1/charges.json \
  -d auth_token=$TOKEN -d amount=0.1 -d dryrun=true

The response:

{"errors":{"amount":["must be greater than or equal to 1"]}}                           

So yeah, seems like that limit is still there. It makes sense given credit card fees, but with honey money it would be less of a problem. But not all users run a honey money balance, and it seems complicated to try to deal with the special cases that result, so my guess is that it’s rather unlikely that this will change any time soon.

4 Likes

Nice, thanks for checking!

2 Likes

I talked about this in a daily beemail and got some interesting feedback. Excerpts:

  1. Wanted: a way to be charged $5 for every incomplete item in Todoist at the end of the day. (Maybe they just want TaskRatchet?)
  2. Someone who’s intrigued about this as a way for their kids to use Beeminder, since $5 is too much to have at stake for a kid.
  3. “Yes – but I would also want to be able to schedule a bigger sting if I constantly went over a certain number of data points. Else I’d be afraid I wouldn’t be discouraged enough – ‘oh, it’s just 25 cents’ – each time. So like maybe a 2nd goal that derails if goal 1 hits a certain count within a certain time period.” (:heart_eyes: meta-beeminding is always the answer)
  4. “Yes, my use cases mostly depend on at least starting at sub-dollar charges”
2 Likes