Python Script to Auto Increment Goals

I made a script that I use to autoincrement beeminder goals and I wanted to share it here. It exists at

To run it you would first put your username, token, and a list of goals in a file called A file called exists to give you an example of the form it should have.

Each goal value should look like the below:

{"name": 'bed', "step_rate": .5, "rate_limit": 6, "buffer_threshold": 3}
  • name :: name of beeminder goal
  • step_rate :: how much to add(or subtract) from the rate
  • rate_limit :: When rate reaches this, stop incrementing
  • buffer_threshold :: must have this many days of buffer before incrementing goal

The program will check every goal that you provide and increment it if the goal meets the following conditions:

  • It is a Do More or Do Less type goal
  • your actual rate over the last period is greater than your set rate
  • Number of buffer days is greater than buffer_threshold
  • set rate is less that rate_limit(or more for Do Less goals)

Once that is set up just run from the base directory where you cloned the repo


By default the dry run option is set so that it prints the decision it makes for each goal but doesn’t actually change the rate.

It works as far as I can tell but have only been using it for about a week. Once I’m confident in it I’ll put it in a cronjob that runs once a week.

I am interested in making this usable for others so if you arent able to make it work from the info provided please let me know. I also intend on adding more error checking so its easier to debug.

Special thanks to @adamwolf for some technical assistance.

Next project is some integrations between Notion and beeminder