How to have a long streak (> 100) on without being stressed?

I will go for a ski holiday in August 2022.

As of 2022-06-10, I am on 109 straight for updating on wip.

As of 2022-06-10

I have a > 80% confidence I will keep this streak into my ski holiday.

So how do I do it?

## First things first, a habit to write down what you did on daily basis

I write down what I intend to do on daily basis in a daily note markdown file.

Then i ✅ those I completed.

I moved those I cannot complete to a future date daily markdown.

This is the section of what I intend to do in 2022-06-09 markdown

Screenshot of my markdown in VS Code

Notice how I'm grouping my tasks based on my hashtags.

The uncompleted ones have already been moved to future daily markdowns.

## Telegram is my secret weapon

There's a wipbot in telegram

It's the 2nd one @wipbot

There's a scheduled message button in telegram
Inside telegram

Use scheduled message inside `wipbot`.

Use `/mdone` to post multiple done tasks for the same hashtag.

What it looks like on telegram after copy-pasting from VS code and with `/mdone`

Make sure only have 1 tag per `/mdone` and make sure it's on the same line as `/mdone`

Make sure your tasks that are meant for your tag are on separate newlines.

Hit Enter and select the date to schedule that message.

Calendar to schedule message

Which brings me to the most controversial or counterintuitive part of my strategy

## Use Buffers

If you're observant enough, you would notice I finished the tasks in the above example on 2022-06-09. But I am posting them for 2022-06-18.

That's the final part of my strategy. I use buffers.

Initially, I started by dividing up my real completed tasks in a single day and sprinkled-scheduled them into multiple dates in the future.

Once I have enough buffer, I no longer spread. I just take whatever I completed today and scheduled them in a single future date. This maintains my buffer.

So whenever I have a "do nothing" day, it's fine. I have buffer.

If my buffer is going too low, I will again take my completed daily tasks in the same day and spread them across multiple future dates to build up my buffer again.

## I'm not alone in ensuring streak by using workarounds

Everybody has different way of ensuring their streak while living a balanced life. This is mine.

I know someone who simply posts their rest day activities to ensure their streak and hashtag as `#life`.

I prefer having buffers of completed tasks instead of posting my rest day activities. Also buffer allow me to be human. Being human means I can fall sick and forget. I can go on holiday and turn off all socials.

Being human should be the center of any systems we adopt.


What's your strategy of ensuring streaks in while staying sane? Share yours below.

I actually let my streaks expire all the time. I know we have some things on the site like the homepage leaderboard that incentivise building as big a streak as possible, but it's a simplistic view of consistency. As the final image in your post explains it's not about never ever missing a single day, but about getting have a steady cadence over time.

I haven't figured out yet how to design streaks around that, but I'd love to hear your ideas. Ideally you wouldn't have jump through these hoops just to feel good about going on a ski holiday.

Jumping through hoops during a ski vacation sounds pretty great to me though.

but I'd love to hear your ideas

So I'm in another community that's very well-read.

One of them pointed me to the concepts of superordinate goals vs intermediate goals vs subordinate goals…

and also pointed me to this paper which is about pairing goals with emergency reserves.…

I have a ahem copy from ahem questionable source. You can try to find it on your own quite easily :D

Basically to summarize the second paper,

goals with emergency reserves (7 days with 2 emergency skip days) works better than hard goals (exercise 7 days) and easy goals (5 days)

This is true when there's a superordinate goal present and that the goals are related to. Without superordinate goal's presence, preference becomes easy > with emergency reserves > hard

I don't really have time to try to build a product that reflects this research but in essence,

let people log a superordinate goal (a goal that's broad and close to reflect their ideal self). then the todos tracked in streaks must be related to that superordinate goal somehow.

Then give people emergency reserves somehow. Perhaps they earn 1 emergency day for every 3 days streak. The emergency day will expire if unused for more than 3 months or 13 weeks.

Also track weekly streaks. A week streak is when all 7 days of that week log a todo or don't run out of unused emergency day. Use the calendar week of the year as the unit.

So also every 3 week streaks, the user gets 1 free week emergency

Week emergencies expire if un-used for more than 3 quarters or 39 weeks.

Always expire emergency days first before expiring week emergencies. Always expire the emergency reserves that are the oldest if still valid.

That way, you can imagine people auto fall sick or go vacation, the emergency reserves kick in.

The streaks mechanism as it is right now, unwittingly, promote hustle culture or promote workarounds like mine.

They are not natural.

Of course, as you said, can just let them expire :D

Wow this sounds super interesting. Thanks for sharing and summarizing :)

The idea of skip days/weeks sounds very compelling and makes a lot of sense. The primary downside I see with it though, is that it's conceptually a lot harder to explain and understand than "work towards your goal every day"

There's a bigger risk people will lose their streak, because they misunderstand how it works. Or they simply stop ignore it altogether, because it's too confusing.

Duolingo lets you buy "streak freezes" which are basically skip days that are automatically applied whenever you accidentally skip a day that would have reset your streak. I think they have a limit to how many you can use in sequence.

Skipped days wouldn't count towards your streak count, but they would ensure it wouldn't get reset to zero.

What would you think of this?

Conceptually it's similar to what you describe, but I think a bit simpler to grasp. Basically the streaks continue to work as-is, relying on consecutive days, but if you skip the odd day your streak continues going the next day.

Maybe you earn a free 'streak freeze' every 5 days or so. They don't expire, but you can only keep up to 3 on your account. While you got 3 unused streak freezes, you won't earn any additional ones.

Some other ideas I had were to allow members to choose their own streak requirements. The current 7-days-per-week approach would be considered "hardcore mode", but you can change to a more relaxed 5-days/week system if you prefer.

We'd show your choden difficulty-mode along with your streak. So it still is fair to people who prefer a harder mode.

I am okay with any of them. They all sound great. Maybe except the part where you can only buy reserves instead of earning them.

Give people options. Let them have the ability to earn reserves.

Any worries about making it complicated just use a simple projection calculator.

Give them a calendar and let them pick a day to stop doing stuff. Then show them how long they can go without doing stuff until they lose streak.

Have this feature regardless the underlying calculation, then is fine.

Don't make the users think.

Also follow stackoverflow way of showing them based on their streaks they are top x%. Rather than showing a pure linear rank by raw streak.

This gives people a chance to feel they can move up

See attached

Duolingo gives you points for completing lessons that you can trade in for streak freezes. A streak freeze costs 200 points (IIRC), and you seem to normally get ~5-10 points per day that you complete a lesson (closer to 5 or 6 on average, it seems a little random). But basically it seems like you earn enough points to buy a streak freeze every month or so.

An interesting design challenge. The first thing that popped into my head is a sort of 'pulse'. An element that is showing how your cadence/flow is going.
Maybe it will move a little back when you are on a vacation, but you need vacations to keep building. But you are not losing the whole state.
Maybe it is even good to have a consistent pace, like every other day, or every weekend. Then it not the hours/days you put in that is the most important, but the progress you make over time.