FSRS 5: <1d Scheduling and Learning Steps

So how does this differ from anything that Expertium suggested or what the original plan would have been :question:

The plan was:

1-If it is empty it is controlled by FSRS completely
2-If not, it is controlled completely by you.

What benefit does a completely empty learning steps field bring :question: The only reason why it exists in this beta as a feature, is because it is a work unfinished, all in order to leave place for the <1d Learning step scheduler.

It exists so that the cards immediately become a review card.
That’s how it worked with Relearning steps. But for some reason it did not work with Learning steps (if the field is empty, then it was read as 1 m).
Now it is proposed to put the empty value under the control of FSRS. And the interval will be controlled by FSRS.

I guess we’re just going in circles. It boils down to me not wanting to add any more stuff that requires the user to make yet another decision about scheduling, and DerIshmaelite wanting more flexibility.
Let’s defer to Jarrett and Dae.

2 Likes

I gotta think the eventual solution is to just get rid of days as the default increment. No need for a “Next day starts at” option. Just set minutes as the default increment and let the algorithm do its thing.

All the stats would probably still show Days for when cards are due, but that would only be for visual simplicity.

1 Like

How is that a solution as a middle ground between me and Expertiums suggestions

I wasn’t trying to find a middle ground. I’m just predicting what’s going to eventually happen. Not necessarily in the next couple updates.

1 Like

I have seen the SRS application where this is the case. It’s terribly inconvenient.
I hope that this will never happen to anki.

What’s inconvenient about it? Not arguing, just curious.

Also, was FSRS part of the implementation you saw? If not, then I understand. But FSRS is pretty good about pushing out of low intervals quickly, so can’t imagine this would be a bad thing.

For many, it is important to complete all reviews. But if what you propose is implemented, then no matter how much the user logs into the application, there will always be review cards.
The results of search queries will become less predictable.

Searching

1 Like

Yeah. I think it makes sense to keep track of the fractional part internally, at least up until some point (there is a big difference between 0.6 days and 1 day, but not between 100.6 days and 100.0 days), but it’s actually more convenient to display all cards due within a certain 24-hour period as “due today”.

If card A is scheduled to appear at 1 PM and card B at 2 PM, might as well show both immediately.

2 Likes

This would just take a little getting used to because everyone is so accustomed to the current system. You could complete all reviews in a sitting and disregard what might pop up later on in the day.

Yeah, I think search queries would still use days as the main increment. There could be another graph showing the current day’s schedule, and you could see in the card info how many days/hours/minutes away a card is from coming due. None of that would be hard to code.

Again, not making a suggestion for the near future. I just think that’s the ultimate solution.

I use one of these applications. It’s impossible to get used to it, it’s just inconvenient. There is no pleasure in the fact that the task is completed.

1 Like

Which application? Is it possible other aspects of the application are contributing to the frustration?

What separates tomorrow from today is sleep. If a card is scheduled for tomorrow, it’s because my brain will process it during the night, and it should be tested again tomorrow. I don’t see any use in having a sub-day resolution for anything that’s not scheduled for today. I can’t see why my memory would be different tomorrow at 1 pm versus 4 pm. The only thing I can see is how I annoyed I would be if my reviews were spread out.

I only use learning steps for failed cards (I have it set at 15m), but I can see it being useful if FSRS foresees that an extra repetition later on the same day might help it be committed to my long-term memory faster. As long as FSRS will let me repeat my failed cards I’m happy and whatever it does on top of that is fine, as long as the volume is manageable.

For me, it would be a nightmare if both FSRS as well as my own learning steps would be mixed because that would mean that I have less time to learn new words, and I’m doing more work than what FSRS thinks is optimal for my configure retention. I’m not against flexibility per se, but I am doubting the use case here. If you think you know better than FSRS, why bother letting FSRS handle intraday reviews at all?

4 Likes

I’m not against flexibility per se, but I am doubting the use case here. If you think you know better than FSRS, why bother letting FSRS handle intraday reviews at all?

In my case, it would not be about knowing better than FSRS; it is rather about convenience and learning style.

I for example like to always have my cards, if the again button is pressed, be shown after 1s. In this case, it is not about getting the optimum but rather just tailor it to your learning style and reviewing habits.


For me, it would be a nightmare if both FSRS as well as my own learning steps would be mixed because that would mean that I have less time to learn new words, and I’m doing more work than what FSRS thinks is optimal for my configure retention

  • I suppose what FSRS would do is dish out learning steps based on what it think is optimal for your retention, but that WITH taking your own custom learning steps into consideration, not in spite of it. With no custom learning steps, you might get 3 automatic steps, with a single custom learning step, you might get 1 or 2 steps. However, I dont the inner technicalities of this and dont even know if this is even possible in the first place.

Yeah, fair enough.

This probably makes more sense then. The underlying formula is calculating everything by minutes, but if a card’s next review doesn’t fall on the current day, then it gets put in a floor() function that schedules it at the beginning of whatever day it lands in.

Exactly. I think it makes sense to lose the idea of “Learning” cards altogether. Just have everything calculated at the scale of minutes. Again, not anytime soon. There are probably too many changes happening now and this would be low priority.

3 Likes

This thought came to me: How does the <1d scheduler reconcile between its own “again” interval and the “again” intervals people have.

How low or high can it get :question:

Jarret and Dae are still busy, they havent answered :frowning:

It works only if you leave (re)learning steps empty so that’s out of the question.

I don’t know but the median user will get a less than 1 minute first step (if the initial analysis Jarrett shared still holds true).

1 Like

You guys are active on Github though :face_in_clouds:

GitHub has more people working than talking. Dae came online today, merged some PRs. The only prediction he made was in Jarrett’s PR that he’ll try to get to it tomorrow.

Okay, I actually watched it again as I was trying to get the link for you. Watch this amazing video explaining how GitHub or Git works:

As the video says GitHub allows multiple people work on the same files on their own timelines, then we can merge these timelines back to the main Anki repo (or create alternative forks altogether!). Most of what people are doing with the files is invisible to me until the changes are either commited to main repo or a Pull Request is opened (which can be merged with a merge commit).