Force myself to get out of bed before 7am

Hello; I’m new to Beeminder. Still trying to configure things properly.

I want to incentivize myself to get out of bed on time every day.

Ideally, this is how I want it to work:

  • I am required to get up on time every morning and scan a QR code posted in my bathroom to prove that I actually got out of bed instead of just turning off the alarm.
  • When I scan my QR code with my phone, it sends data to Beeminder.
  • I am required to do one “QR code check-in” every day in order to stay on track.
  • The QR code check-in DOES NOT COUNT if it’s after 7am. In that case, I slept too late and missed my chance for that day.

I’ve managed to get 80% of the way there thanks to this advice. My QR code works and a “1” is sent to Beeminder every time I scan it.

How can I implement the rest of what I want to do?
(Ideally in a way that makes it hard for me to cheat, although I’m not a weasel so it doesn’t have to be 100% flawless.)


Welcome to the forum!

I’d suggest:

  • Set the rate on your goal to 1 per day
  • Set your deadline to 7am
  • Set your days of mercy to zero so you’re on the hook tomorrow even if you didn’t make it today
  • Enable weasel insurance to prevent adding data after your deadline

I think that gets you all the way there.


Cool! Thank you for the response.

If I fail my goal one day, is Beeminder going to expect me to do 2 “wake-ups” the next day to make-up / get back on track? Or is it like a fresh start every day?

Maybe that’s the purpose of the “days of mercy” you mentioned. I’m not sure I totally understand all the Beeminder features yet.


No worries! It’s a lot to take in when you’re first starting out. :stuck_out_tongue_winking_eye:

Days of mercy determines how much of a break Beeminder gives you when you derail. It defaults to 7 days, meaning you could sleep in for the next week after a derail if you didn’t change the setting.

Regarding post-derail requirements, when you derail, the road drops to where your data reaches at the time of derail.

Here’s a screenshot of what your road would look like if you derailed with the default days of mercy:

And here’s a screenshot of what you’re road should look like if you derail with zero days of mercy:

So in both cases, a derail causes the road to “reset” so you’re back on track, the difference being that the days of mercy setting determines how large a break (that flat section of the road) you’re given immediately following your derail.

Answering your specific question, this means that, regardless of what you set for your days of mercy, Beeminder won’t require you enter 2 after you derail.


Okay! That totally makes sense now.

Thank you so much for the careful explanation and screenshots. You rock!

One other question: You mentioned that the weasel insurance feature will prevent me from scanning the QR code and adding data after my 7am deadline has passed.

But if, for example, I slept late and scanned the QR code at 7:08, wouldn’t that add data for the NEXT day/deadline? I.E. that late check-in would get counted as my check-in for tomorrow morning, since today’s deadline already passed.

Or… does a “day” always roll over at midnight, not at the deadline time I set?


No, you’re right, scanning your QR code would count towards the next day, since your deadline determines the boundary between days.

If you’re OK with using a bit of the honor code, you could just decide not to check in the same day after your deadline, though that doesn’t seem terribly satisfying. You could include it as a rule in your fine print or your goal’s description to make the commitment explicit.

If you’re on an Android phone and don’t mind putting out a few dollars, you could probably figure out how to use Tasker plus this Tasker plugin to post the data point only when the bar code is scanned between 3am and 7am, say. I’d be happy to help you get that going if you’re interested in that route.

Though I somewhat doubt you’ll find this to be a real issue in practice, since the time that this cheat would work (the day before your deadline) is not the time you’ll be tempted to use it (6:30am the next morning).

Any other ideas, @dreev, @shanaqui, @adamwolf?

1 Like

Gotcha. I think the 80/20 solution for me will be to just not “check in” if it’s after my deadline.

Like you said, there’s little incentive to “cheat” at that point because it doesn’t save me from paying the penalty for the deadline I already missed. It just screws up my system for the next morning, which is not desirable or tempting.

Thanks for taking the time to answer all my questions! I think this is going to work for me.


Glad to help, and looking forward to hearing how it goes! :smiley:

1 Like

@chronotrigger21 This might not be helpful for your situation, in which case I apologise for hijacking your thread, but it’s something exciting I’ve just thought of for myself and it might be useful to others who sleep on Japanese futons on the floor…

Each morning I want to hang up my futon for airing or fold it into a corner of the room to give myself more bedroom floor space during the day (e.g., for doing stretches on the floor). I can put the QR code UNDER my futon each night! That would ensure that I do actually lift the futon every day (I get so lazy sometimes) and there’s no chance at all I’d go back to bed after going to all the trouble of moving it. :slight_smile:


Hey @chronotrigger21, this might differ somewhat from what you are after, but might solve your problem. It uses Sleep as Android, so you would need an android phone.

Sleep has an option with its alarms that you can only turn off an alarm by scanning its QR code, so you set up an alarm that goes off just before 7am and requires a QR code scan to dismiss (or if you like to wake up slowly, you could set a max snooze time of eg 25 mins and set the alarm to go off at eg 6:30).

Then you use Tasker to listen for an Alarm dismissed event: (see API docs) com.urbandroid.sleep.alarmclock.ALARM_ALERT_DISMISS_AUTO
and write your Tasker script to submit a datapoint to Beeminder (see my post on Tasker and Beeminder API http requests here) when this happens, or not submit it at all if the time is after 7am.