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