Feature request: per-card forgetting curve visualizer

We all have seen plots like this

But imagine how cool it would be if you could visualize the forgetting curve for each of your cards, based on real card data and using FSRS!
Like this:

I’m sure a lot of people would find it interesting. It could be accessed either in Browse, when a card is selected, or perhaps in More → Card Info.
@L.M.Sherlock

3 Likes

However, Anki doesn’t store the history of stability.

1 Like

better suited for the helper add-on then

But it can be recalculated using the interval lengths and grades. Surely it’s fast enough that the user won’t notice a lag, right?
EDIT: and even if it somehow takes longer than 250 milliseconds (human reaction time), we can just add a progress bar, so that the user will be like “Oh, it’s doing math”.

OK. I will consider it. My first thought is putting it in Card Info.

2 Likes

Current progress:

I added the real elapsed time of each review since the previous review.

I plan to add stability as a column.

1 Like

While adding stability as a column would be nice, I want to make it clear that my idea is having a graph, a visualization of the forgetting curve (emphasis on “visualization”)

You’re right. But it’s hard to test the feasibility without doing that. It’s still in developing stage.

Now we have enough data to draw the forgetting curve.

Done.

2 Likes

The greater the maximum stability that the card had, the less readable such a graph will be. The more reviews the card has, the less readable the graph will be. How will it look on mobile devices?
All the examples show that stability is only increasing, but in case of incorrect answers it can fall. Is there any point in such graphs?

Is it possible to draw such graphs not for a separate card, but averaged by preset? Are the FSRS parameters sufficient for this?

1 Like

The greater the maximum stability that the card had, the less readable such a graph will be. The more reviews the card has, the less readable the graph will be.

In the GitHub issue, I proposed having buttons to select the timeframe.


How will it look on mobile devices?

I think it’ll be fine. These look fine

I’m more concerned how the True Retention table will look like on mobile.

All the examples show that stability is only increasing, but in case of incorrect answers it can fall. Is there any point in such graphs?

I’m not sure what you’re trying to say. Why would a graph with incorrect answers be pointless?

Is it possible to draw such graphs not for a separate card, but averaged by preset? Are the FSRS parameters sufficient for this?

Not really, it wouldn’t be meaningful. You can’t just take two (or more) review histories and smash them together.

I meant modeling. We have FSRS parameters, why not build a graph based on them.

It is always possible to switch to horizontal mode.

I meant modeling. We have FSRS parameters, why not build a graph based on them.

Like this but with graphs instead of just raw numbers? That would be interesting, but IMO per-card is more interesting. Plus, it doesn’t require the user to input anything, whereas this would require the user to input interval lengths and grades.

Without entering information. There are FSRS parameters, there is the desired retention. Is it possible to take all this into account and simulate the growth of stability depending on the number of reviews and thereby build a schedule? A theoretical schedule of forgetting based on your memory (taking into account the complexity of the cards of this preset).
To be honest, I am not interested in the schedule of a separate card, it will be more like an accident rather than a trend.

“Compute minimum recommended retention (experimental)” is already doing something similar.

Without entering information you would have to simulate grades based on a random number generator, which is what CMRR is doing. For example, for the first review, CMRR chooses the answer button based on your history, fro mwhich it estimates the probability that you chose a specific button.
For example, if historically for your first review you pressed Again 50% of the time, Good 40% of the time, Hard 5% of the time and Easy 5% of the time, then it will use those probabilities to generate a grade for the simulated first review.
This approach allows us to simulate a review history that is “similar” (in some sense) to the user’s actual review history, but not real.

EDIT: you would probably be interested in the simulator: Feat/FSRS Simulator by L-M-Sherlock · Pull Request #3257 · ankitects/anki · GitHub. It doesn’t plot a forgetting curve, but rather, workload over time, so it’s a different thing.