Beeminding as a university student
The bulk of my academic life as an undergraduate consists of trying my best to meet a series of assignment deadlines. The number of due assignments each term varies quite a lot, but typically it looks roughly like 3-4 deadlines a week for 2 months.
A lot of the time, the deadlines for the last assignment of each course wrap around to the start of the next term. There’s also mock exams on all of the courses at the start of every term, so there’s plenty of stuff to do in the holidays.
But this pattern leads to a trap I kept falling into over and over: I would spend all the holidays procrastinating the remaining deadlines, finishing them a week before starting again, and then trying to cram in as much revision as possible.
At the start of this year, I began using a really helpful piece of software called Beeminder. Beeminder lets you set up commitment contracts: do $X$ or get charged $£Y$.
What is Beeminder?
In their own words, Beeminder is a service that lets you set up “reminders with a sting”. You can give it any quantifiable goal, like “run 30 miles a week” or “write for 30 minutes every day”, and it will enter you into a commitment contract: if you don’t check in to say that you’ve done these things, you’ll get charged a certain sum of money. If you miss the deadline, the goal staggers itself by a week so you have some time to readjust, and the amount of money you’re on the hook for ticks up (exponentially!).
Beeminder themselves explain it much better than I can. You can tell tons and tons of thought has gone into how it works, maybe as a consequence of it’s age: it’s been around for 13 years, so has had plenty of time to mature.
Over the last year, I’ve set up a bunch of these and as a result have had a very productive year so far. These are all catalogued over on [[Beeminders]]M, including the one that makes sure I post to this blog regularly.
Beeminding for studying
I am not the first person to apply Beeminder to studying: there have been many, many, many, many posts over the internet about this already. A lot of them advocate the same idea: work out how many hours of studying you should be doing per week (e.g. 40 hours) and then set up a Beeminder goal to make sure you hit the daily rate necessary in order to make that happen.
While I think this can work very well, I organised mine around completing assignments which I found more effective than just a purely time-based goal.
Hitting assignment deadlines
Here’s one of my Beeminders from earlier this year:
The horizontal axis is time, and the vertical axis is “cumulative total problem sheets”. At the start of the term, I added up the number of assignments in each course to get that there was a total of 22 assignments to complete. Although each term is 8 weeks long, I thought it would be a good idea to try and complete the 22 assignments in 7 weeks instead so that I could have a week off at the end before getting into revision when I got back home.
I counted a problem sheet as being completed when I could hand it into a tutor without much embarrassment. It’s not the case that every data point on here represents a perfect completion of the assignment – just something I would be comfortable handing in.
This worked great overall! I had a very relaxed end to the term and could get revising over the break without having to worry about outstanding assignments to complete. One of the nice things was that the first few assignments were relatively easy compared to the later ones, so I built up some healthy slack in the system at the start and didn’t have to stress about falling over the red line.
Another nice consequence is that it forced me to decouple the lectures and the assignments: a lot of the time, this commitment meant that the work was due before the in-person lectures had covered the content. This was great because then I could cover all the content twice: once myself, and then once in lectures.
This is similar to what one of the posts I linked above talks about: Beeminder, With The Power Of Reading!. Rather than beeminding the time spent reading a textbook, the author argues it’s better to beemind completing sections of a textbook to ensure steady progress.
Completing and reviewing past papers
To make sure I then started revising after that term ended, I set up two new Beeminders: one for completing past papers, and one for reviewing them.
The reason for having two Beeminders rather than just one was mainly a motivation one: adding a paper once when I’d completed it and once when I’d reviewed it made me feel better. Completing the paper and reviewing the paper were very different tasks: I’d complete the paper in “exam conditions”, and then make notes and flashcards on what I could learn from the mark scheme at a much more leisurely pace afterwards.
There’s a small kink in the above graph, that’s where the holidays finished and I went back to uni and so doubled the rate at which I’d have to complete past papers.
Going over past content
I also had a couple of more time-based goals like the other posts suggest. One of these was for spending time on Anki (I’ve written some more about how I use Anki and spaced repetition in [[University Notes]]U):
I defined a “good amount” of Anki as:
Either getting to 0 cards remaining to review, spending at least an hour and a half reviewing, or reviewing 100 cards.
This definition was made so that it was a bit easier to build up slack in the system. Most days each data point just ended up being an hour and a half of Anki, typically right away in the morning.
I also had another one for “Sergeant”:
which was for using a program I wrote to help with A-levels revision and described in [[Sergeant, applying spaced application to A-levels]]B. Each data point corresponds to completing a single past paper question. This one didn’t work as well – a lot of the time I found myself taking a very liberal interpretation of “completing” a past paper question.
Some thoughts on Beeminder in general
I haven’t read nearly as much of the Beeminder blog as I would liked to, so I doubt very much that any of the points I’m about to make are new.
Where does the money go?
When I talk to people about Beeminder, the most common first impression is that it is a stupid idea. The immediate question is typically “where does the money go”? Unfortunately, the money goes straight to Beeminder, and not to charity.
There is an option to allow the money you might be charged to go to charity, but if you want this option then you need to have the “Beemium” plan, which costs a huge $64 a month!
There are practical reasons related to motivation for this being the case, like how it might feel more justifiable to “derail” on your goal if the money on the line is a potential donation to charity. Another possibility is that the money sent to your friends, if you have any left after telling everyone about Beeminder. It could also be in the form mutual bets between users of the app. But these options also has some problems, like how you might feel like derailing on your goal won’t really matter since you could just ask the person on the other end of the bet very nicely if they wouldn’t take your money.
Defending a business’ choice to not donate money to charity is obviously going to be a questionable one, and it’s hard to argue that it wouldn’t be a net benefit if instead it went to an effective charity.
But Beeminder needs to make money somehow. Maybe on average a user spends the same amount on Beeminder as they do on an Evernote subscription, but no one is campaigning for Evernote to donate all their profits to charity. It’s just the way that the interaction with Beeminder is presented that makes it seem like keeping the money rather than donating it is greedy.
Who tracks the data?
This is another common question. You’re the one who keeps everything up to date and inputs all the data. But if this is the case, why can’t you just lie?
You can just lie.
I admit there has been a couple of times where I have taken a very liberal interpretation of the Beeminder I have set up, or where I’ve been in a position where it’s nearly impossible to complete the thing I’m tracking before the midnight deadline, so I’ve added fake data points that I then make into real ones the next day.
But what stops me from lying all the time and the service completely losing its value is that I really want to continue using the service, so I have some personal stake in making sure I consistently tell the truth.
There’s also something like the placebo effect going on: really, Beeminder has no sting, since I could always just make the data up. But telling myself that “oooh, if you don’t do this you’re going to get charged money!” is a useful fiction I tell myself, and it actually works for staying on top of things.
Goodhart’s law
As a final remark, Goodhart’s law is an adage typically stated as:
“When a measure becomes a target, it ceases to be a good measure.”
There are examples of Goodhart’s law all over the place. One famous example is the “Cobra effect”, where the Indian government offered money in exchange for dead cobras in hopes of curbing the number of snakes on the streets. This worked okay for a while, until people started breeding snakes on purpose so that they could hand them in and make some money. When the government subsequently scrapped this policy, all the snakes were released into the wild, making the problem worse than it was initially.
Beeminder is great for turning measures into targets: using the number of past papers I have completed is a convenient proxy measure for the true goal, which is something like “get good grades”. But this means that Beeminder goals can also fall victim to Goodhart’s law – if you spend all your time completing past papers then you might also neglect other important parts of what’s necessary to “get good grades”, like reviewing other content or forgetting more fundamental things like getting plenty of rest.