Beyond Streaks: Daily & Weekly Anki Goals

Streaks are currently being considered whether they should be implemented into Anki, where dae seems to want to do away with traditional streaks in favor of a daily goal to complete a certain number of reviews a day. With the current way that users use Anki and how setting goals both in the short and longer term can motivate users, I think users would benefit even greater with an even more customizable goal system in the form of both daily and weekly goals, not only for motivating users to complete reviews, but also for consistently using Anki throughout the week, adding more cards for motivating continuous learning, as well as for incrementally completing backlogged decks to help them focus on making small steps forward instead of being overwhelmed about thinking they have to complete the whole thing in a short period, which could otherwise lead to overwhelm/burnout.

This goal system will make use of distinguishing decks that are either being actively studied and aren’t backlogged, vs. decks being studied that are backlogged. This allows users to exclude inactive decks from goals, while simultaneously providing a universal system that future features and add-ons can use for excluding inactive decks. This would also allow search filters for easy searching across all “active” or “backlog” decks.

Users can mark their decks in the “Decks” screen via the gear icon as either an “active” or a “backlog” deck, and when a user creates a new deck, it is automatically marked “active.” Decks can not be marked as both “active” and “backlog” at the same time.

Terminology:
Active decks — Decks the user marks as currently studying every day, but aren’t backlog decks.
Backlog decks — These decks are recognized by the user as decks they can’t finish within a day, but are currently trying to finish them.
Daily Review Target — a percentage range from 1-100% that the user aims to complete every day of their total daily workload, where 100% will be the total number of reviews due from active decks (including new, (re)learning, and due cards). Only reviews from “active decks” are counted to progress this target; “backlog decks” are not counted, even if the user is studying them. The percentage of the daily workload is recalculated every day at the “New day starts at” time from the Preferences settings.

Each goal has a progress bar to motivate the user to complete it. Each goal can be toggled on or off.

Three Daily and Three Weekly Goals (6 goals total):

  • “Daily Reviews From Active Decks” goal for completing their “Daily Review Target” for the active decks (decks the user is currently studying). This will show up as complete X number of reviews, after the daily workload is calculated.
    • Total number of cards to complete the goal is recalculated every day at the “New day starts at” time from the Preferences settings.
    • Percentages over a fixed number of cards are used since the daily workload can change drastically, especially for students who are no longer reviewing certain decks after completing a course, or students taking more courses and adding a significant number of new cards each day, leading to a larger workload over time. It also prevents users from falling into a massive and demotivating backlog, where if a user misses their goal for a day, they’ll likely have a higher goal the next day for make-up work.
  • “Weekly New Cards Added” goal for adding X number of cards a week, and a “Daily New Cards Added” goal for adding Y number of cards a day.
    • This encourages continual knowledge growth. Users can be motivated to add a certain number of cards each day to incrementally expand their knowledge over time, or they can choose to set a weekly goal for users who don’t plan on adding cards every day, but still want to hit a certain amount of new cards by the end of the week.
  • “Weekly Consistency” goal for completing their “Daily Review Target” percentage of active deck workload X days per week (same implementation as “Daily Reviews From Active Decks” goal) (i.e., 6/7 days completed, 5/7, etc.)
  • “Weekly Backlog Reviews” goal for completing X due cards in a backlogged deck, and a “Daily Backlog Reviews” goal.
    • Progressing any deck marked as “backlog” will count towards the Backlog Reviews goal. If enough users want individual control over how many cards in each backlogged deck should count, and then sum that number for the daily and weekly goals, then this could be an advanced feature for power users.

These goals are personal, so the user chooses the numbers for these goals. Goals will be persistent: users set them once, and they recur every day and week, until the user changes them.

Changing weekly goals will only affect the next week & changing daily goals only affect the next day; this is to prevent users from making the goals easier out of laziness when they don’t really want to, as well as to encourage users to commit to them (prevent users from raising their current goals if they want to go overboard, which may lead to burnout).

It’s important to note that the effectiveness and reliability of the two percentage-based goals (dependent on the ‘Daily Review Target’) are significantly enhanced by the future adoption of FSRS as the default scheduling algorithm. FSRS ensures that the daily workload calculation is based on genuine learning and honest ratings, making goal achievement a true reflection of progress.

If the user has a Backlog Reviews goal active, the goal’s completion will show up at the bottom when the user has reviewed enough to finish their daily goal, so they don’t have to exit out of the review screen to check their progress.

As a final note, the aim of this goal system is to foster consistent, sustainable learning habits that fit the user’s needs instead of promoting an ‘all-or-nothing’ approach or fostering unhealthy obsession with metrics (like streaks often bring), where goals can be turned off or adjusted to be made easier to accomplish by the user. Thus, goals are flexible and forgiving, which instills long-term engagement and prevents burnout.

2 Likes
  1. The distinction between “active decks” and “backlog decks” seems like an unnecessary complication. Anki already knows which cards are overdue so we can make use of that. Besides, this might encourage the user to prioritize certain decks over others purely by the goals.

  2. If I understand correctly, there is no need for the “percentage of the daily workload” since you later say that

    Percentages over a fixed number of cards are used

    so just a fixed number as a daily goal? In any case, I think it’s better to use time based goals instead.

  3. The 6 goals feel like a chore. To be frank, you’re basically telling the user to study X cards a day/week with nothing in return, but another goal the next day/week.

  4. The goals being configurable is nice, but it also means that users might be tempted to lower their goals (even if it means waiting for a day/week) when they get lazy just like how streakphiles do 1 review to keep their streak. A good system would make the user want to maintain a reasonably high goal.

3 Likes

Hello, I’m currently sick and have brain fog right now, but I’ll try my best to respond:

  1. The goals based on active decks are different from backlog decks, where the active decks are percentage-based and the backlog goals are fixed numbers, which encourages more motivation to complete the active deck goals in order to not fall into a backlog, as if they fall behind, the percentage-based goals will punish them. Additionally, the psychological distinction between differentiating backlog and active decks is very real, and having goals to specifically separate the goals between completing backlog and active decks is supposed to allow for more flexibility in how they want to tackle each one, rather than just lumping them together and completing a single goal. Users may want to prioritize only their active decks that they are always completing every day, while being fine if they fall behind some other, not-so-important decks that can be in the backlog category. I don’t see this prioritization as a problem; this flexibility allows users to configure the goals to how they see fit when it comes to prioritizing the decks they want to focus on, which I see as a plus, especially when users use Anki for all sorts of reasons.
  2. I’m not sure what you mean here? Like I said, the percentage of all active decks’ daily workload combined will be used for goals related to completing active decks, while fixed-number goals are used for backlog decks. This allows for flexibility: if users want to see an uncapped amount of due cards, say 9999 reviews per deck, then if they have a large backlog they want to complete, it would make it very difficult to lump it together with the active deck goals that are percentage-based, which is why fixed numbers are used for backlog goals, as well as for creating a psychological distinction in their efforts between both.

Also, I’m not exactly sure what you mean by time-based goals. I already have a “Weekly Consistency” goal, which promotes completing their daily review target X days per week, so if they complete their percentage-based goal for active decks X days in a week (5/7 days, 6/7 days, etc.), they’ll complete the weekly goal, which I assume is what you mean.

If you mean having X minutes of study goals over workload goals, I don’t agree with shifting to that because the number of minutes to complete their deck can change drastically over time, especially for students dropping decks or/and making new cards. Percentage-based goals based on active deck workload allow the user to set and forget, rather than having to constantly change their goal every time their workload goes up or down significantly, which can otherwise feel frustrating and clunky from a UX perspective. It can also lead to having a goal that user once set no longer being feasible to achieve: like having a X minutes goal being set too high when the user doesn’t have a high enough workload to complete.

  1. The 6 goals all have different use cases and don’t all have to be active at once. For example, if a user isn’t planning on adding any more cards, then they can have a maximum of only 4 goals, and if that user doesn’t have any backlogged decks they want to finish, then they can further reduce that to just 2 goals. These goals are supposed to be flexible for many users if they want to use them; users don’t have to have all of them active at once if they don’t want to, which is why you can toggle them on or off.

Additionally, I’m not sure what you mean by saying “you’re basically telling the user to study X cards a day/week with nothing in return, but another goal the next day/week?” Users get motivated by keeping their streaks up, and other apps that have streaks tend to also have daily and weekly goals, like RemNote or Duolingo. These goals are set by the user, so it creates a connection between the user and the app to motivate them to fulfill what they set out to do, and it can also give them feedback of whether their goals are realistic or not to see what they can do different to complete them the next time if they didn’t, or if they need to reduce them. A goals system is much less emotionally manipulative than a streak system, and the creator of Anki, dae, seems to support at least some version of Anki goals as well.

  1. Typically, the users who do only 1 review to keep their streak rarely do that. I said in my proposal that changing your daily goals would only be in effect the next day, not the current day, and changing weekly goals would only affect the next week instead of the current week. This prevents users who may be lazy for a day every now and then, who may want to make it easier to complete the goal in the moment, but don’t actually want to change their goal’s setting in the long term. That way, it encourages users to commit to their goal for those who may get lazy every now and then, who would otherwise take the easy way out when they don’t really want to, and don’t actually want to change their goal.

And for “A good system would make the user want to maintain a reasonably high goal,” feel free to suggest things that you think could improve this system. This goals system is supposed to combine internal and external motivators, but having too much external motivation like keeping an artificially high streak can feel really demotivating to lose, so I don’t think we can go that far on the external motivation scale, which is why I’m unsure of what exactly you want out of a goals system that Dae seems to support some version of.

1 Like

Hope you get well!

  1. A percentage for active decks is going to lead into unsustainable goals as more backlog decks are cleared. The psychological distinction is up for debate.
  2. Time based goals are basically study for X minutes a day/week. They’re a lot more manageable than goals based on review counts; cards can be of varying difficulty, so studying a 100 cards isn’t the same every day whereas 40 minutes are always going to be 40 minutes. If the user finished their reviews before the target study time, then they get a free goal! It’s always nice to finish your work early.
  3. Duolingo has an online competitive system and it rewards you with some cool stuff you can use elsewhere in the app; simple goals with no rewards, like you suggest, aren’t motivating imo.
  4. The goal can be changed. Be it a day or a week, users could reduce their goals and get used to laziness. Feeling proud of achieving a goal.
  5. I’m not the one making the suggestion, so this is just a quick thought: What if the user sets a goal to finish a deck by a certain date, then see a graph somewhere showing their progress and predicting their future trajectory. Similar to the FSRS simulator or the suggested graph of estimated total knowledge.

Edit: Here’s a more fleshed out version of 5.

  • The user can create custom goals by selecting a number of decks, a target number of “learned cards” (using the same logic the FSRS helper addon computes the estimated total knowledge), and a deadline.
  • A new “Goals” screen is added where the user can see all their past goals and some related stats (e.g. how many goals failed, the percentage of achieved goals and a graph visualizing how your progress with each goal over time).
  • Goals cannot be changed, they can only be abandoned which is considered as a fail.
  • The active goals are displayed in the deck overview screen. Together with some basic stats.
  • Anki can suggest optimal new card limits/review limits to reach the goal.
  • Particularly important, is to have a sort of weighted sum of goals where goals with a smaller card to duration ration get smaller weights, also failed goals receive a penalty. The result is a more accurate representation of the “total number of goals”.

Pros:

  1. The user can fail a day or two without impacting their goal.
  2. The numbers keep going up! Users can study more and more, and they shall see their “weighted sum of goals” increase.
  3. Stats keep the user excited for the knowledge they’ll gain at the end, while at the same time keeping straight what would happen if they slacked off.
  4. Users are not tempted to make the minimal effort possible, because of the weighted sum. Abandoning a goal is also discouraged by the history showing them their failed attempts and how close they were to success.

Cons:

Feel free to add any. I’m too biased to think of some haha.

2 Likes

My philosophy for an SRS goal system:
Okay, to me, it seems like our major disagreement isn’t percentage-based goals vs. fixed-number goals for active decks, but rather, how accepting we should be of letting backlogs accumulate. Anki is not Duolingo (and even Duolingo has workload-based goals instead of time-based goals), so we shouldn’t treat it like other learning apps that may implement goals differently to suit their needs and monetization styles. It is clear that Anki users get very demotivated by having an accumulating backlog, and a major problem with fixed-number goals is that they don’t do anything to prevent them from accumulating if users don’t hit their goal for the day. Percentage-based goals do, which motivates them to complete make-up work if they miss a day, and also motivates them further by preventing massive backlogs.

Your point about “A percentage for active decks is going to lead into unsustainable goals as more backlog decks are cleared” doesn’t make sense because the percentage-based active deck goals don’t have any effect on the fixed-number-based backlog deck goals, and vice versa. Decks can not be marked as both active and backlog at the same time, where active deck goals only affect active decks, and backlog deck goals only affect backlog decks. Plus, users can always lower their daily percentage target if they find it too high. If even a very low percentage of their daily active workload proves unsustainable, it indicates that the actual problem lies with their overall review volume, suggesting they might have added too many cards into Anki, rather than the goal system itself being unsustainable.

The backlog-based goals are distinct for numerous reasons: flexibility, prioritization, and different motivational needs to separate them from active decks so that Anki officially recognizes their efforts in squashing their backlog, which helps the users feel more appreciated. These goals allow users to prioritize their active decks while incrementally reducing their backlog, and while allowing users to have uncapped review limits of 9999 seamlessly, while users make sure they don’t accrue an even bigger backlog with the percentage-based goals that active decks offer.

I’ve already explained why fixed-number time-based goals feel clunky and frustrating from a UX perspective, and having a fixed-number time-based goal also doesn’t address the prevention of accumulating backlogs that further demotivate users. Your time-based goal may seem more manageable on the surface, but that’s only because it has the downside of allowing backlogs to accrue, which is demotivating in of itself. Additionally, you say “If the user finished their reviews before the target study time, then they get a free goal!” but don’t recognize that many users have decks they’re not reviewing, so there could still be frustrating cases where users complete their reviews in their active decks before the study time but can’t complete their time-based goal. My system of marking active decks provides a universal system in Anki for excluding inactive decks that future features and Anki add-ons can benefit from, rather than every add-on or feature having its own, different way of excluding inactive decks.

Duolingo has workload-based goals, as shown by a Reddit thread, and some users liked the new goals even though Duolingo has streaks as well. Users also seemed psychologically affected by it, with some saying the friends quests and friends streaks were enough for them and some wanted to opt out (which my system allows), so saying “simple goals with no rewards, like you suggest, aren’t motivating imo” doesn’t seem to be factually correct if Duolingo users were psychologically affected by Duolingo weekly goals.

“The goal can be changed. Be it a day or a week, users could reduce their goals and get used to laziness. Feeling proud of achieving a goal” seems like a useless argument. You’re talking about users who don’t have any intrinsic motivation to begin with (or have lost it over time), where no possible extrinsic motivation system could ever push them to review Anki cards. Even Duolingo, with all of its gamification features, frequently fails to retain new users and old users, which shows that there are just some users who can’t be pushed via gamification features to do their learning tasks. Your argument can be applied to any gamification system. If you want to suggest a limit for the daily review target, where instead of being 1-100% of the active decks combined workload, it’s instead 20-100%, then that would clearly be a solution to this argument. I’m always open to constructive suggestions for improving this goal system, for example, regarding the daily review target’s range, rather than just criticisms.

To further prove my point in our major disagreement, you suggest with your new goal, “Anki can suggest optimal new card limits/review limits to reach the goal,” which shows that your goal system plans on accepting accumulating backlogs instead of actively trying to prevent them, which I fundamentally disagree with in a spaced-repetition app like Anki, especially with FSRS. Users should be motivated to do their reviews on time instead of allowing them to fall behind, which could otherwise further demotivate them, which is why my percentage-based goals are so powerful, since they punish users (but only for active decks, NOT backlog decks like you misunderstood). If users fall behind, they can mark them as a backlog and do fixed-number review goals instead.

Additionally, you suggest, “What if the user sets a goal to finish a deck by a certain date,” but this is far less flexible than setting a percentage-based goal, since it’s similar to completing 100% active deck workload but for a single deck, but I decided against it since it would feel cumbersome for users to set such goals for every deck, especially when there are many Anki users that have many smaller Anki decks to complete. If such users decide to group all of them under one parent deck and set such a goal on this parent deck, then this goal wouldn’t be much different from having a 100% active deck workload goal to complete under my system than with your system.

Addressing your deadline-based goal system:
I’m fine with adding a Goals screen and a history and stats of goal completion. Your goals system pro of " 1. The user can fail a day or two without impacting their goal." is already accounted for with my “Weekly Consistency” goal. I also wanted to add the “Estimated Total Knowledge” graph from Luc’s Search Stats Extended add-on, but decided against it when they said that the entire history has to be calculated at once and that it would be slow, so I don’t think we can add such a graph outside of the Stats page for performance reasons.

The problem with having a deadline-based goal system is that users have to keep setting them over and over, which doesn’t really fit in Anki, where users should be maintaining their reviews every day to not accumulate a backlog. Eventually, users will most likely want to repeat them in the long run to avoid such frustration. The deadline to complete X reviews also incentivizes last-minute cramming to complete the goal, which is against the idea of SRS, where users should instead be motivated by an SRS goals system to complete their workload in a manageable way more frequently. Also, seeing a massive “target number of ‘learned cards’” can be overwhelming if the user has a lot of reviews over the deadline period, which is a significant flaw for a motivation system.

Another problem is that users can choose to fall behind on certain active decks by choosing deadline goals only for specific decks, whereas my goals system prevents this by encouraging the user to complete all of their active deck workload, since it’s percentage-based. In my system, if users fall behind on certain active decks to complete their goal, they will still be punished for not completing their total workload by having to review more cards as make-up work in order to prevent a demotivating backlog, which I argue addresses your pro in point 4, and you can also make the range for the daily review target in my system lower, say from 20-100% instead of 1-100%.

The history and goal failure system can be implemented in my goal system as well for gamification if you’d like.

1 Like

I’m sorry dude(tte)… Ain’t readin all’at!

1 Like

No problem. The main philosophical point is about proactively preventing overwhelming backlogs with consistent daily goals, rather than simply accepting their accumulation, or incentivizing last-minute cramming like your deadline-based goal system supports.

That can happen, yes. But we can add another penalty to the weighted sum for each day, based on how much less the user has reviewed than the average number of reviews (or even better, use time studied as I suggested before).

I’ve already addressed all your criticisms at length in my previous reply, including fixed-number time-based goals, which accept the accumulation of overwhelming backlogs rather than actively preventing them.

Correction:

Dae has not issued an opinion on a daily & weekly Anki goal system in Anki but wants to continue with the streak system idea. I do think that a user-friendly streak and a goal system co-exist nicely in Anki, similar to how other popular learning apps have both systems in play simultaneously like in Duolingo and RemNote. Daily & weekly goals can be used for encouraging more deeper studying, while user-friendly streaks can motivate the user for just showing up.

(For those wondering how I thought dae supported a goal system, the Github issue said ‘streak’ in quotes, which to me sounded like he wanted to do away with traditional streaks and that he was open to other similar gamification features than a streak system, and the second paragraph for the implementation was ambiguous and didn’t specifically refer to streaks. The Github user @Alhaj-nit replied, talking about a user-friendly streak based on daily & weekly goals, which got liked, and since dae didn’t correct them that dae was talking about streaks instead of daily and weekly goals, I thought that’s what dae was therefore suggesting as well.)