Day boundaries and Anki step intervals

Sleep plays an important role when solidfying memories. Despite the spaced repetition effect, I’m rather able to recall a card I have answered 8 hours ago spending those 8 hours sleeping, than a card I answered 16 awake hours ago.
Also, that’s just how people work. If I meet someone tonight and expect to see them again the next morning, I say ‘see you tomorrow’, even if it won’t even be 12 hours.
Likewise with my Anki reviews: Reviewing daily is a much more practical goal than reviewing once every 24 hours. Maybe I usually review in the evening, but tomorrow I’ll only have time in the morning. If Anki scheduled a card today to be due in 24 hours, it would be 48 hours until I could review it (or two sleep cycles).


Hmm, I’m not really convinced. Maybe what you are studying works well enough like that, but if I review a card at 11:59PM and Anki reschedules it for the next day, and this arbitrary cut off time occurs at midnight, then it will be rescheduled for a minute later rather than 24 hours later. This alone just doesn’t make sense to me. More than anything though, I get really overwhelmed by seeing the giant stack of cards in the morning rather than having a gradual growth over time. I can manage a few cards an hour, but can’t manage 150 in the morning before work.

The only thing I can think is that having every card split between the “learning” phase and the “long term memory” phase is just a way to save disk space (i.e. saving shorter numbers representing day interval as opposed to longer numbers representing minute intervals). With current computational power and disk space of phones/PCs, I no longer think this should be an issue.

To reiterate, it doesn’t matter if the technically scheduled interval is 1 minute, if you’re asleep at the time. This typically means an interval of at least 6 to 8 hours.
If you feel overwhelmed by the daily due count, there are techniques to deal with that, e.g. timeboxing.
Disk space is not a consideration. I’ve explained above why due dates are day-based.

1 Like

The default day cutoff is 4am. If you’re awake at that time, you should adjust the cutoff to a time that occurs when you’re usually sleeping.

1 Like

No one is debating the importance of sleep for memory, I’m debating the need to stick to the intervals assigned to a card rather than rounding to the nearest arbitrarily set cut-off time. But on the topic of sleep, there are all sorts of sleep schedules. Not everyone sleeps 6-8 hrs in one go. Feel free to search wikipedia for “polyphasic sleep” if interested.

If you abide by the theory that the days vs minute interval makes sense you’d have to agree that if I study a card at 11:59PM, press Good with an interval of 1 day, go to sleep, and my Anki cutoff time is midnight, and I wake up at 6am (such that I abide by your monophasic sleep assumption), then me studying that same card at 6am is the same as me studying that card at 11:59PM that evening. Obviously I’m more likely to remember that card at 6am than I am at 11:59PM, so schedule according to the interval it has been assigned, not some random round-to-the-nearest-cut-off-interval.

I find this to be completely irrelevant to my question. If I tell someone I will see them in 12 hours I will show up at the meeting place in 12 hours, not expect them to be waiting there from 4am or some other random cutoff time.

I review multiple times a day as it would be impossible to review everything in one sitting, and I find this approach to be lead to much better retention anyway (small doses rather than all at once).

I want to review the cards I reviewed longest ago first, not the ones I reviewed before going to bed last night. If I review CARD1 at 6am and and CARD2 at 11:59, answering each with a 1day interval Good answer, I would expect to see CARD1 before I see CARD2.

I’m afraid there will inevitably be different opinions about how programs function, and it’s not always practical to support every desired use case. If this is something you feel strongly about, perhaps there is some alternative software out there that better meets your needs.

Thank you for your message @dae. Your work on this is greatly appreciated, and I apologize if my tone came off negatively on that. I’m sure I can find some workaround with the custom scheduler options available now.

I was more curious as to why the initial split in “learning” vs “reviewing” and why one used minutes and the other days to track intervals. I was looking for a deeper discussion on this that maybe involved some research into how humans handle short-term vs long-term memory or the like, and some quantitative models used for each region that don’t lend themselves to a single unified model. I think at the extreme end of each (new cards and mature cards) the two different models work well enough, but the cross-over areas near the longest learning interval and before “review” starts seem forced/arbitrary/clunky for the reasons I mention in previous posts.

Very old versions of Anki treated reviews like you describe - they were scheduled to a particular second, and it resulted in them becoming available throughout the day. Many people did not like that; they wanted to have access to all of their cards at any time the next day.

Learning steps were initially intended to be used for short intraday periods, so per second scheduling made more sense. When users started using them for multi-day delays, it reintroduced the same issue of reviews trickling in throughout the day, and so the code was changed to treat intervals that cross a day boundary like reviews are treated.

1 Like

Thank you for the insight! I’m curious to try out some of the more modern custom schedulers listed on here (after fixing my issue you’re helping me with surrounding the default scheduler), but curious to know if you know any existing custom schedulers that would work similar to what you are describing about earlier versions of Anki?

I can see the point of being able to review “ahead” in that sense, if you have time in the morning but not the evening, or some other reasoning, but can you confirm how the following scenario would play out:

  1. You have two cards in a deck CARD1 and CARD2. They are unrelated as far as Fuzz is concerned. They currently have the exact same review history, are in the REVIEW state and have intervals of 1d.
  2. You press Good (1 day interval) on CARD1 at 06:01AM on DAY1
  3. You press Good (1 day interval) on CARD2 at 11:50PM on DAY1
  4. Your cutoff time for the day is midnight.

If I open the deck for review on on DAY2 at 12:01AM, will I surely see CARD1 before CARD2 or is their order randomized within the day in which they are both due?

If cards cross a day boundary, they are treated like reviews, and will be shown in a random order. It is not practical to make this behaviour customizable.

Hmm, but don’t you think equating an interval of 24 hrs and 8 hrs is undesirable? Again, it makes much less impact on larger intervals (i.e. the difference between 14days and 8hrs vs 15 days is proportionally much less than 1 day and 8 hrs), but for the default settings, this cutoff point seems quite unexpected/undesirable due to the relative extreme rounding.

I’ve explained why cards are scheduled at the start of the next day in my previous post: Day boundaries and Anki step intervals - #11 by dae. Sleep plays an important role in consolidating memories, and I suspect getting a good night’s rest matters more than whether you wait an extra number of hours the next day before reviewing again.

Ok, so I guess the solution to this is to always have learning steps well beyond a single day interval, else this issue will exist. Seems strange that the default deck settings would not do so though as I expect others would be surprised that 24 hrs and 8 hrs (or whatever number of hours they sleep) are equivalent. With larger maximum learning steps, I can see most people being ok with this difference of up to a day. Have you considered increasing the default learning steps to be up to 3 days or something like that? It sounds like that would please both those of my opinion and those from what you described.

Sorry, I have not seen much demand for this, and it would be troublesome to change.

I wonder if it is just the case that users do not know about this. For example, I’ve been using Anki since 2012 or so and had no idea about any of this until looking into the code just recently. Is there any place in the docs that describe the actual calculations done within the scheduler? I think it is difficult to realize what the scheduler is actually doing without looking at the code, and I’d venture to guess most users aren’t doing that. I can only speak from personal experience here, but the code I reviewed did not match what I had understood from the docs regarding the deck preferences, and I’m guessing I’m not alone in that.

It is covered in the manual (eg Deck Options - Anki Manual), and there are various references to intraday and interday learning throughout the UI. If you feel the existing coverage in the manual is inadequate, please feel free to submit a pull request that makes it clearer in the manual.

Yeah, I would like to understand the code better, and while doing so, I can work on writing up some changes to the docs. Ideally I’d like to see something like a flow chart showing the if/else statements you have, along with the actual calculations of the intervals, ease-factor, etc.

Please bear in mind that user manual’s intended audience is regular users, and not programmers - flow charts and pseudo-code is probably not useful for the majority of users, and it increases the maintenance burden of the manual. I’d recommend trying to pick key points (eg from the recent discussion, “the good interval will always be at least one greater than hard”), rather than trying to cover everything the code does - interested parties can read the code for that.

Yep, I agree. I was mainly hoping for something that explained the fully expanded equation showing the “normal” calculation of the intervals (ignoring all the if/else caveats). As an end user I was hoping for some more transparency with regard to that. Anyway, I’ll keep this in mind when making any proposed change.

This topic was automatically closed after 11 days. New replies are no longer allowed.