Beeminder Forum

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 https://github.com/Zacharius/beeminder/

To run it you would first put your username, token, and a list of goals in a file called vars.py. A file called vars.example.py 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

python auto_incrementer.py

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

3 Likes