Graduate new card when the user presses again or hard and has 0 learning steps

Continue the discussion: FSRS 5 Support for AnkiDroid - #21 by sorata

There are some problems:

  1. if the initial stability of again, hard and good is shorter than 1 day and the desired retention is 90%, the intervals of those three buttons will be the same.
  2. if the user doesn’t enable FSRS, and just uses the default setting, the graduating interval is 1 day, we will have the same problem #1. And the ease factors are also consistent.
3 Likes
  1. Is this a problem we’d like to solve? To be sure, I do think FSRS should be able to better schedule cards. But, all buttons having the same interval shouldn’t be a problem. Most “normal” users have non-zero number of steps so this change wouldn’t cause any confusions.

  2. I thought this was a FSRS specific change. But in any case, is this even a problem here? If you’ve configured no steps, you would still see 1m on both again and hard. And with this PR, that would change for most zero-step users.

I don’t know if there’s a better way to do this though without allowing sub-day intervals. @Expertium

I don’t think this is very helpful without allowing FSRS to schedule <1d intervals. But it’s a step in the right direction, at least.
@dae this shouldn’t be too hard to implement, right?
EDIT: nvm, LMSherlock already submitted a PR.

I guess so. Because in review mode, Anki’s code enforces hard, good and easy have different intervals.

Nope. It affects the step module, which is shared with SM-2 and FSRS.

I expect most people to expect peculiar behaviour if you remove all learning steps. The only problem I see is sub-day intervals. But it’s still a good change I guess?

OK. I will update the PR later. I’d like to ask for Dae’s advice, too.

Done.

For a new card with the default FSRS settings and empty learning steps:

For a new card with default SM-2 settings and empty learning steps:

3 Likes

Why are you changing the default behavior for SM-2? Did I miss a reason why that is necessary?

Because I think it’s weird that the user still has step when they set empty steps.

1 Like

Oops. I have a new problem. If the user disable FSRS and set graduating interval to 3 days, the intervals of again, hard and good all are 3 days. Here are two solutions:

  1. only change the behavior when user enables FSRS.
  2. use some formula to calculate the intervals of again and hard based on graduating interval, such as again interval = graduating interval / 4 and hard interval = graduating interval / 2
1 Like

we might wanna wait until we hear back from dae; things don’t happen here until dae agrees.

Anki requires at least one learning step, because it makes no sense for a card to graduate when you’ve forgotten it. The UI should be reflecting this, but it’s current not. If no steps are found, Anki acts like you’ve set a single 1 minute step.

But doesn’t it also apply to relearning? In the current implementation, the user could skip relearning step by leave the relearning step field empty. It seems to be inconsistent.

3 Likes

The thinking behind the current behaviour is that relearning cards have already been learnt, and are more likely to be successfully recalled after a 1 day interval (which is what they’ll get with the default non-FSRS settings).

But current implementation also allow user to set 1d+ learning step as the first step, right? In this case, the user will learn the card in the next day even when they press again.

And according some cases I researched, the stability of again could be larger than 1d.

23-1

image

1 Like

There are a lot of people who learn things outside Anki so the same logic might also apply here, and for things that do require short learning steps users have the option to set up learning steps and not leave it blank.

I wouldn’t assume this is not useful for anybody. And as Jarrett has pointed out, 1d can already be set as first step in Anki.

What is the alternative? With no learning steps, what should again and hard do?

FSRS applies initial stability to calculate the next interval.

Here is the related PR:

Sorry, I’d seen you sent through a PR, but had not had time to look closely yet. I will follow up there.