Asked

Proposal for alternative streak model that doesn't reset

WIP's streaks are always a decisive topic. Some people claim it's what finally made them a productive maker while others dislike the unhealthy incentive to work every single day.

For the people that do like streaks, it can be very demotivating when they eventually lose them and have to start from scratch again.

We've had many discussions about streaks and how to improve upon them. From adding "rest days" to changing it to "ship once a week instead of daily".

The problem with all of these however is they were still very much subjective (e.g. how many rest days are you allowed to have?) or they become complex to explain and understand.

The beautify of the current model is how simple it is. But it still has its flaws.

So I'm wondering, what if change the streaks to the following:

  • Every day you complete at least one todo, your streak increases by one.
  • When you miss a day, your streak decreases by one.
  • Your streak can never go below.

Here's how your streak might evolve:

CleanShot 2022-12-05 at [email protected] 163 KB

Some interesting observations:

  • See that straight line in the beginning? That was this user keeping a streak as we know today.
  • The ragged line right after their original streak reset zero they had off and on days.
  • Then around January 1st 2019 after a few weeks of not completing any todos, they started a streak again.
  • Going great for a while, but eventually missed a day and it went downhill from there.
  • Etc.

Note that long upwards trend that started around the start of 2021? That's a great indicator this person started reliably shipping (assuming a decent amount of work-related todos) but since the chart is not completely linear like in the beginning, it also means the maker didn't earn a streak from this (as there's at least a few missed days).

However with this new type of streak calculation, they would have a decent score which would accurately reflect their consistency. Better than the hardcore approach of our current streak calculations.

But what about people who like this hardcore daily shipping?

The great thing is that they can still do that and earn the associated credit with doing so. As shipping every single day without missing a beat remains the only way to reach the highest streak possible.

And they'd get a nice straight line like this 😄

CleanShot 2022-12-05 at [email protected] 120 KB

But does it make the streak less effective if you know you can skip a day without issue?

Possibly. I think this is my main concern with the proposed alternative. But I still think you'll build up number you can be proud off and you don't want to completely lose. So while you might decide to skip a day, you probably wouldn't want to let it all go to waste.

But this assumes you have a decent streak to begin with. I'm not sure how this alternative approach would affect new users building up a streak for the first time.

I'm curious what everyone thinks.


Tough one! Maybe we should keep tabs of two types of streaks?

So we could have a "hardcore streak" and a "mere mortal consistency streak".

The #life tag that many of us use is generally a "quality of life" kind of todo, not strictly a "shipping" todo. Still, I enjoy following other people's life events and it's an important part of the WIP experience.

Maybe a #life type of projects could be a special type of project that does not go into the hardcore streak?

When I'm sick, I feel like adding "Sick on day 7 #life" todo does not feel genuine, so I don't do it and lose my streak. But if it's considered a special type of todo, I would not feel this.

We can then post to #life every day we are sick or are having a vacation/enjoying life, and it still maintain a genuine type of consistency streak.

Also, maybe one could get a chance to add todos to the day before?

Some days I just work so much I forget to post, and that's the most disheartening type of streak breakage 😅

Otherwise, I support you trying out your current idea :)

I'm new here and I like the hardcore approach, it's like trying to go to workout every day and counting your best streaks trying to get a better one in the next attempt.

One thing about the alternative, is the streaks rank would become waaay more difficult for beginners as old members won't reset when failed.

Maybe you can reset streak after 2 days without todos completed or also have a shipping consistency metric.

I like the streak how it is currently. It's brutal but fair. There's no gray area or rules. You do something each day or you lose it. It's that simple.

Diverging from that makes it less 'hardcore' and a less valuable metric.

If you want to change the metric from consistency to total amount of 'work' than the new proposal looks good.

Curious to know what other people think about it

Part 1:

I like the "hardcore" aspect of the current streak system because it has allowed me to create that pressure for me to ship.

When I first came on to the platform, I did worry about the streak and pressure of keeping up; but the #life tag helped me bring this equilibrium. I implemented the #life tag after seeing @levelsio do it. However, as others have mentioned, it can feel weird when you use it, but I think in general it helps with balance and people in general don't abuse it.

I think he #life tag could be set as default for every new profile to encourage its use, the user can delete it if they don't wish to use it.

Part 2:

However, I can see how losing your streak can impact your motivation to execute, and most importantly be active on the platform (this is where the value is). Many times I have thought about this. What will I do if I go to the forest and there is no signal? 😂. Or I'm completely sick. Etc. Etc.

Mainly, if you do decide to go on a trip after 12376 days of shipping, "punishment" for taking a break (which we all need at some point) may be harsh.

Having said this, I would welcome a streak model that integrates a "buffer" as proposed, but with a few modifications to keep the "hardcore"/"pressure" aspect that many people on the platform like:

  • Every day you complete a to-do: +1 streak
  • Every 5 days of completed to-do's: +1 "streak credit"
  • Every day of inactivity: -1 streak (as long as the user has a "streak credit" balance"
  • Once the user runs out of "streak credits" and experiences another day of inactivity, streak resets to 0.

This prioritizes execution, as the current model does, while also accounting for the fact that you will eventually need a break. Similar to a traditional job where you "earn" vacation 😂.

The part that I am not sure of is -- how many "streak credits" is one allowed to accumulate? It would be ridiculous if you would be able to keep a "streak credit" balance equivalent to a year for example (i think). So maybe there would be a maximum of 15-30 days of "streak credits" ?

Part 3:

Another great addition to the platform would be a "Leaderboard" page. The current streak model, assuming daily execution from everyone, is skewed towards highlighting the oldest users of the platform at all times. As a new person, it will pretty much be impossible to beat.

A Leaderboard page would enable to highlight and "reward" different users on the platform, irrespective of when they joined, or irrespective of their streaks (some ppl may not care about the streak at all)

Things I would include on this leaderboard page are:

  • Streak leaderboard (Full table with all users; and at the top of bottom of the page, each user can see their rank)

  • Most active projects (per week / month / year / all time) based on # of completed todo's

  • Most active users (per week / month / year / all time) based on # of completed todo's

  • Most liked to-do's (per week / month / year / all time)

  • Most helpful users (per week / month / year / all time) [basically what is already available on the "Questions" tab, but have the full table"

  1. Adding a default #life project is a good idea. I'll add it as part of a new onboarding flow I want to do anyway 👍

  2. Yes "streak credits", "streak freezes", or "cheat days" come up quite a lot. But like you point out it's tricky to determine the specific implementation. How many you can use them, etc.

  3. Love the idea of having multiple leaderboards and highlight different types of community activity. Will make this! ❤️

I like the hardcore aspect of the current streak system and find it extremely motivating. That said, I do worry about exceptional situations such as if I'm extremely ill or unable to find internet while travelling through developing countries.

I would find it disheartening if I lost a streak due to these circumstances. Perhaps there is a middle ground, where the punishment for missing a day is more extreme than losing a day but less extreme than losing the whole streak. Say losing half your streak or losing a month, or anything that feels quite harsh without disrupting massive streaks due to unfortunate situations.

Yeah this is the crux of the "problem" with the hardcore streak. There might be very valid reasons you skip a day or two. But it's hard to define what exactly that middleground is.

After 1373 days of streak (and nearly 4 years of travel), I got high with my friends at Bamboo Hut and forgot to log the day's events.

I actually did fixes on #kornwolf that day and took photos of a plant I bought for #nils, but forgot to /done that night and only realized the next morning, when I saw @levelsio's update. It affected me more than I thought it would (and should?). Non-attachment, yada yada.

It's definitely discouraging me from starting another 4 year streak, but I agree that there is value in a hardcore contiguous challenge. Don't take it away! 🔥

I also agree with others that it could be fun to introduce a secondary system, just like Tweakers.net has karma points and 'Tweakotine': tweakers.net/plan/3058/het-tw…

WIP could have different ways to gain (and lose) karma by using the website. Not just score and leaderboard, but also 'ranks' and badges based on your actions: lurking, todos, commenting and receiving likes, answering questions, creating new projects, launching, keeping your backlog clean (or not!)... everything could have an impact. Lot of possibilities for gamification. 🧬

Thank you for reminding me of this amazing song from the year 2000 😄www.youtube.com/watch?v=WeYsT…

That said, you have my full sympathy!

Hahaa can imagine. Lost a 100 day streak after getting drunk and checking my phone at 00:06... nasty hangover...

I felt invested in your streak, it was very impressive and fun to follow along. I felt a bit bummed out once you lost it even though I've never met you. I think that's the power of the 'hardcore' streak. It says something about a person. If there are all these exceptions and soft streaks it loses it's meaning.

Something like Tweakers karma could be a good addition if the community grows more. But there's about 100 (?) active members, so you already get a vibe of the activity of people.

Thanks for sharing 🙌

One the one hand the streak is just a number in a database, but on the other hand it also represents all the hard you put in over the years and the consistency with which you did so.

So I think it makes a lot of sense that you grow an attachment to that number and so it hurts when you lose it.

I think those are the two sides to the metaphorical streak coin. It motivates you to keep going and the longer you keep going, the more invested you get, and so the power powerful that sense of commitment becomes.

But when you do eventually lose it, it has the opposite effect. It's really discouraging and based on anecdotal observations it seems like many members kinda start to tune out of WIP after that. It just seems like an insurmountable mountain to get back to that number.

That's why I'm considering alternatives to the current streak system. Not necessarily to replace it, but something to augment that hardcore easy-to-loose streak with something more forgiving.

A karma system is an interesting idea, but implementations always seem rather arbitrary to me. If completing a todo gives you +10 points, how much would a comment be? Etc.

But perhaps I'm overthinking it, and it's not about getting it exactly right. Just reward people for doing cool stuff in the community.

I'll give it some thought the coming weeks. I do like the idea of badges for concrete achievements. Getting the top streak. Losing your first streak. Adding your 5th project. Etc.

I was always wondering what happened to your streak haha. I was surprised I felt loss when I lost my 200 day streak as well.

Start w/ 0 streak and 1 free "cheat day".

Get 1 extra "cheat day" at streak milestones:
• 10-day streak? +1 cheat day
• 100-day streak? +1 cheat day

So it's still hardcore mode but literally one or two missed days won't sink you.

I considered cheat days (duolingo calls them "streak freezes") but they raise a bunch of additional questions like how do you earn them, how often can you use them, are they enabled by default or not, etc.

Not necessarily unanswerable questions for any individual, but I think hard to find something that works well for a majority of the group.

For example many members have a regular work/life balance, might not work on weekends so they'd need to be able to skip at least 2 days a week. And then they still don't have any flexibility to miss a work day.

Whereas for other people skipping 2 days in a week might be considered an unproductive week.

So while I like the idea of having a cheatdays (as it seems like many other members do based on the number of likes your comments got), I do wonder when it comes down to actual implementation if there's enough overlap between how people would want to see it specifically implemented. Maybe I'll run a poll to find out.

I like the hardcore streak, even being a patchy streaky myself.

I like the hardcore steak, it helps me being motivated. If is ok to post IRL stuff when on a break then is fine.

I like what @etdev proposed too

I love a good steak too! 🥩

Hahaha middle raw for me please 😄

since I started using this again, I don't think I built a streak more than 2 or 3 days. Always had a day where I didn't log something somewhere in the middle, even if I had done stuff. But I just carry on and the streak was like a bonus nice thing when one happens

I like the current hardcore streak. I did try many time to learn consistency and WIP helped a lot. But I agree hardcore is hardcore, and force us to have #life tag for exemple.

I think it should be like video games you can configure in your settings what kind of game you want and have the choice between (hardcore/normal/soft streaks.
Hardcore : same as today
Normal: win streak credit every 5 days, consume streak credit when no log, max 30 credit stored, if no credit loose all
Soft: win 1 each day you log, loose 1 each day you forgot

Then we have a badge near us if we are hardcore , normal or soft. And our account show us the streak of everyone according to our setting.

A bit of more work for you @marc but I truly believe in using the video game paradigm

Yes, has having a user-defined difficulty level might be the way to go.

The main drawback is that it introduces conceptual complexity. It makes it harder for new members to understand what a streak is, how to get one, etc.

The credits where you can miss a day (or "streak freezes" as Duolingo calls them) raise some additional questions like how many do you get, how often can you use them, etc.

I might settle on having two streak systems. The current hardcore one (lose a day and it resets), and the more forgiving one (skip a day and it decreases by 1).

I run a streak-based community too (but for daily writing), so just to share my experience:

I'm aware of the pitfalls of the conventional, consecutive day streak, so for Lifelog I created different types of streaks each with their own leaderboards (golifelog.com/community) so that everyone can grow in one metric of their liking.

  • Top streak (consecutive day streaks)
  • Best streak (longest streak ever)
  • Most streaks (the number of times someone broke their streak but bounced back)
  • Most posts (most prolific writers with most number of posts)
  • Most comments (Those who chat a lot to make everyone feel at home)
  • Most goals (on Lifelog they set goals to write to)

Maybe for WIP, could consider Most streaks model alongside top streak model? That way even if one breaks the streak, there's a number that still grows.

My two cents. This new proposed system would allow for a more accurate reflection of a person's consistency and productivity, as it would take into account the fact that people have off days and may not be able to work every single day. This could be a more fair and inclusive way of measuring progress, and it may also provide more motivation for people to work on a regular basis.

Additionally, this new system could be less intimidating for those who have not started a streak in the past because they were afraid of losing it. That's what I have.

I just created an account today, and I hope I’ll be a productive monster like all of you because of the hardcore streak system, lol.

However, as many others like @nilsw and @shashank pointed out — there might be days/situations when we cannot add a to-do due to legit circumstances: no internet while travelling or living in a developing country, sickness that impacts one’s health and mental state (no time to worry about streaks), and so on.

Personally, I want to be way more productive than I am right now, but at the same time, I want to live a life and enjoy it — keeping the hardcore streak is a tough one since it means that I need to check in every day. Literally every day. Or like @haskellpreneur said: “‘Sick on day 7 #life’ to-do does not feel genuine”.

So my two cents suggestion-wise:

  1. Keep the current system, but add a way to “live a life”, e.g., skip/rest days — not sure what’s the “way” can be, though.

  2. Add another streak system, maybe call it “Lifetime Streaks” (and the existing one will be “Hardcore Streaks”, dunno). This new streak system will account all streaks since an account was created. People will be less annoyed when their streak was broken like @nilsw (can relate) since their streaks were added to the overall counter. Doesn’t solve an issue, though.

👋 Join WIP to participate