Building Better Habits

After going through James Clear’s "Atomic Habits" for the umpteenth time, I decided to incorporate a strategy to improve the odds of keeping to my habits.
Table of contents
- The four laws of behavior change
- Quick detour: what are the SAVERS?
- How I track habits
- An easier way to track habits using a Google Sheet
- Looking forward
The four laws of behavior change
In the book, James discusses 4 stages of a habit and 4 corresponding laws:
- Cue: make it obvious
- Craving: make it attractive
- Response: make it easy
- Reward: make it satisfying
I tackled laws 1, 2, and 4 for every any habit I wish by creating a system that each time a stuck to a habit, I would set aside a corresponding dollar amount. It’s difficult for me to justify spending money on gadgets that I day dream about on a regular basis. This way, I could splurge guilt-free knowing that it tied into my personal growth.
I create a journal markdown document every day from a template. Some of it is for actual journaling, but most of it is just used to takes notes, write drafts for code or emails, and track what I do throughout the day. I made it obvious by adding a section to my journal template including each of these habits and made it attractive by attaching them to a dollar amount. This will ultimately make it satisfying once I save enough to buy something on my wish list.
Quick detour: what are the SAVERS?
One of the habits I track is the SAVERS.
In Hal Elrod’s “The Miracle Morning”, he outlines the most effective morning routine activities to jump-start your day:
- Meditation
- Affirmations
- Visualizations
- Exercise
- Reading
- Journaling
But since MAVERJ doesn’t have the same ring to it, he changed Meditation → Silence and Journaling → Scribing, hence SAVERS.
How I track habits
As you might be able to tell, I like markdown. That’s where I keep a bunch of my personal data, and that’s also where my habit tracking goes. See below for a Google Sheet template instead.
In markdown, you can store data in YAML at the top of the file called “front matter”. In my journals, this data looks like:
SAVERS (S, L): Silence: S Affirmations: S Visualizations: S Exercise: L Reading: L Scribing: L Todoist (E1, E2, E3): - E1 - E2 - E3 Workout (Boolean): true Blog (Integer): 1 Sparkling (Integer): 3
I built a CLI to manage all of my markdown files, and I added a script to it that:
- Reads front matter from each journal file
- Calculates the dollar value from the habits performed
- And outputs total amount accrued as well as some structured data into a yet another YAML file.
Each habit can be tracked using an integer value, a boolean (i.e. checkbox), or an enum (one or more options from a predefined list).
My journal template shows the data types and enum values just to help me remember, but the weights are all defined in the script itself.
-
SAVERS - enum with
SorL- A
Short version of one of the SAVERS yields$0.20 - A
Long version yields$0.50
- A
-
Todoist - enum with efforts
E1,E2, orE3- I use Todoist to track my tasks and use the labels
E1,E2, andE3to signify how much effort is required - A trivial task (
E1) yields$1.00(<1 hour) - A medium task (
E2) yields$3.00(1-3 hours) - A major task (
E3) yields$5.00(usually 5+ hours)
- I use Todoist to track my tasks and use the labels
-
Workout - boolean
- Completing a workout (e.g. a 1+ hour gym session, not the 5-10 minutes I do during the SAVERS) yields
$5.00 - Since it’s been over five years since I’ve done more than one workout in a single day, this one’s a boolean (
trueorfalse)
- Completing a workout (e.g. a 1+ hour gym session, not the 5-10 minutes I do during the SAVERS) yields
-
Blog -- integer
- I record the integer value of how many blogs I write in any given day (which very rarely exceeds one)
- Each blog yields
$5.00
-
Sparkling (water) - integer
- Every time I opt to drink a sparkling water rather than a beer or hard seltzer in the evening yields
$0.50 - This is close to the amount of money it saves
- Every time I opt to drink a sparkling water rather than a beer or hard seltzer in the evening yields
An easier way to track habits using a Google Sheet
Another option I tried before settling on my current system is using a Google Sheet.
To use it yourself:
- Create a copy (
File→Make a copy) - List the following in the
Habitssheet- Which habits (and their keys) you want to track
- Their data types
- And weights (dollar amounts) for any integers and booleans
- List any multiple-choice options and their weights in the
Enumssheet - Copy the habits keys you’ve recorded to the headers in the
Logsheet (leave theDateandValuecolumns in tact) - Then track your habits:
- For enums, put options defined in the
Enumssheet separated by,. The space after the comma is required (and looks better) - For booleans, check the box
- For integers, put the number of times you performed the habit that day
- For enums, put options defined in the
The corresponding dollar value is then calculated for each row.
To learn more about how it all works, check out the Information sheet.
Looking forward
As of 10/14/2025, I’m a week in, and I’ve accrued $29.30 (the values in the Google Sheet aren’t accurate, I just put random values there). After writing this, that’ll be another $5.00 💸.
I still have an iPhone 11, but after a few months, I should be able to buy a newer model and replace all the lightning cables around my house with USB-C cables. That would definitely be satisfying.