Back in January I made some New Year’s resolutions about keeping up on a few hobbies, like playing music and meditating. I’ve had trouble with building habits in the past, so this year I tried a new approach adapted from two ideas in this blog post by Andy Matuschak.

The first idea is to use fine-grained measurements wherever possible. Instead of setting a goal like “practice guitar three days per week,” for instance, I used “practice guitar for 60 minutes per week.” Fine-grained measurements don’t work for every type of habit—it’s not very useful to, say, cram all of your meditation into a two-hour session one day a week—but it works for most of mine.

The second idea is to use a moving time window when setting your goals. Continuing with the same example, “practice guitar for 60 minutes per week” can be revised further into “practice guitar for 60 minutes over each seven-day period.” In other words, if you count backwards seven days from today and you’ve logged an hour of guitar practice over that period, you’re good. (And this one does work for habits like meditation—you can say “meditate for five days over each seven day period,” for example.)

Both of these ideas were appealing to me for the same reason: they offer flexibility for maintaining a streak.

Streaks are great for motivation, but traditional methods of measuring them can feel brittle. In the past, when I’ve set a goal like “practice guitar three days per week,” I’d sometimes get into a situation where it was Friday and I hadn’t managed to practice at all yet; then I’d think “Well, I already failed, so there’s no use now—I give up.” Not only would I not bother practicing for the rest of the week, but it was that much harder to start up again the next week since I didn’t have an active streak anymore.

But when I frame the goal as practicing for a certain amount of time over a certain period, and without the constraint of it being within a calendar week, I never get into those situations. If I’m going on a trip, or I’m busy with work, or am just feeling too out of it to get something done one day, I don’t have to spike all of my progress—there is flexibility built into the goal. All six of my habit-based New Year’s resolutions still have perfect, unbroken streaks, two thirds of the way through 2018!

To facilitate tracking this stuff more easily, I made a spreadsheet in Numbers that has two tables side by side. In the left table, I type in how much time I spend each day on various habits; the right table is then automatically filled in with a sum of the last seven days of activity, with conditional formatting to turn the cell green when I’ve hit that day’s goal. The result is something like this. When I’m busy (or tired, or lazy), I can look at my spreadsheet and see what the bare minimum is to keep my streaks alive.