Do we need historical retention setting?

If someone’s using Ignore cards reviewed before, why do they also need to manually adjust Historical retention?

@L.M.Sherlock If the revlogs haven’t been deleted, doesn’t it make sense to just use those undeleted revlogs? Essentially, if we want to get historical retention we can simply plug-in the value from the actual data.

Also, how is it supposed to work for “can be useful if you imported someone else’s scheduling data”? In historical retention’s tooltip, we are talking about the user’s retention when they were doing their earlier reviews. Here, we just use whatever the other person’s retention was?

(ping @expertium)

1 Like

Because Ignore cards reviewed before cuts off the review history of card when FSRS inferences the memory state.

1 Like

Therefore, we use the Historical retention value? I get it, but I’m asking why do users have to configure it themselves. Retention is already calculated for Stats screen. Do the same here?

I still don’t understand why we can’t just calculate historical retention first, and then apply “Ignore cards reviewed before”.

The revlogs may already be partially or fully missing, and calculating the historical retention every time you save the deck options would not be efficient.

How common is missing revlogs? It seems only a subset of a subset of users will be using Ignore cards reviewed before and will have missing/deleted revlogs together. To be clear, we can still allow people to change the value themselves, either through a deck option or some other way.

I’d think we’ll need to calculate it only seldomly i.e., when we’re setting the ignore date or changing it. It doesn’t need to be recalculated every time. Is that doable?

1 Like

Maybe provide a button to autofill the field?

At that point might as well just always use it and hide the field from the user.

People who already have deleted revlogs and want to manually adjust it? Can we let them have a way maybe through the debug console? I don’t think deleting revlogs will be common.

A button to calculate the value avoids problems with when exactly the value should be recomputed (e.g. we can’t just wait for changes made to the deck options, since the available cards/reviews may also have changed even when deck options haven’t). I’m not sure it’s that useful though, since you’d still need to communicate to the user when it would make sense to use the button vs enter in a value yourself (based on which revlogs are still available, known historical retention, etc).

A button AND a field is just extra complexity. Historical retention should be calculated behind the scenes so that the user doesn’t need to worry about it.

As I mentioned above, we can’t do it automatically if some of the revlogs are already missing. And only the user can know if that’s the case, so I don’t think we can fully automate this.

1 Like

I think long-term we can store the average retention somewhere so that even if someone deletes their revlogs through the debug console the retention data can be accessed.

It will probably be better than setting the value yourself in both use cases of “Historical retention” as we can store seperate values for different periods of time. The user probably changes desired retention value from time to time. @expertium thoughts?

I agree. I don’t see why it wouldn’t work.

Also, as dae said is there no way to tell apart people with missing revlogs and people without? If its possible to tell them apart, we can show a pop up to current users with missing revlogs asking them to update it possibly through the debug console. I don’t think this is a must but something dae might want to do.