How to Measure User Focus?

I want to know how to measure user focus (or fatigue) each day. Here’s my current method:

Assumption: All decks aim for a 90% retention rate.

User Focus Calculation:
User focus = (Number of “again” reviews) / (Total number of reviews)

  • If user focus is under 85%: Low focus (the user might be tired)
  • If user focus is between 85% and 95%: Normal focus (the user achieves the desired retention)
  • If user focus is above 95%: High focus (the user is very focused)

Downside: This method has a limitation because the user focus calculation also depends on how easy or hard the material is. Difficult material may lead to low focus, even if the user is trying hard.

I am looking for a better formula for my add-on. Based on this output, I plan to adjust the number of new cards each day to maximize learning speed without overwhelming the user. Low focus may indicate the user is bored due to too many reviews.

Do you have any ideas?

1 Like

I think @Expertium has also suggested something like this as an idea for the next FSRS version. I think it should not depend on this formula that you suggested for the reason you mentioned.

It should come from an external formula that has nothing to do with the cards nature irself (difficulty, etc.) to try depict user focus and how it should influence the card scheduling.

It should also depend on some manual feedback from the user: Each day the user has to input the time they slept (0h, 6h, 7h, 8h) and then the starting time (time of the first review for the day). But it is easier said than done.

1 Like

I’ve tried using the time of the day and the number of reviews (this number)
image

to estimate fatigue and incorporate it into FSRS, but it did not improve accuracy.

1 Like

I’ll copy my comments from discord.

I haven’t read anything about how you tried to incorporate fatigue but I think what might really be useful is to measure fatigue in relation to the “review session” than the “whole day” i.e. instead of trying to find the time of day, try to find out the amount of time elapsed since the review session started.
you’ll need to define review session according to some threshold time, e.g. if an hour elapses between two reviews then it’s a new session.
then you find out where in the review session the review was done (instead of hour of the day).

hmm… you’re right. but maybe most people study things in multiple sessions so that number doesn’t matter much. u did 500 cards just now versus you did them at noon before taking a power nap. totally different things.

Is there Anki discord? Please invite me :slight_smile:

I like the forums more. You’re really not missing much by not joining the discord. Plus, my comments were made in DMs. I expect intersting discussions to happen here more :slight_smile:

The idea of measuring fatigue seems worthwhile, but I have the following question: for what? For information?

My thoughts on this matter:
Anki is a program which makes remembering things easy” through spaced repetition. So, how should this ‘fatigue’ affect the intervals?

Var 1: Man, you’ve marked 10 mature cards in a row as ‘Again’. Yes, maybe you really forgot them, but maybe you’re just tired and need to rest? Let me suggest you take a break (I’ll show a notification) and I won’t count your answers on these 10 cards so as not to mess up your FSRT statistics? If so, we have a deal. If not, and you really think you forgot them, then okay, let’s continue studying.

Why do I think it’s necessary to measure only mature cards? Because with learning cards, we can’t determine the cause: the user’s fatigue or the complexity of the cards.

Var 2: The fatigue indicator should somehow influence the calculation of the next intervals for showing the card. But I don’t know what function to use since the user’s fatigue for Anki is practically a random variable.

Var 3: Base it on the time taken to answer. I think you’ll agree that we actively try to recall the card in the first 20 seconds. You either know it or you don’t. So, if at the beginning of the session you had good speed, but over time you slow down + var 1 – I think the answer is obvious, you’re tired.

Perhaps! it’s worth taking into account the session start time and comparing it to the user’s historical data since each user is unique. Yes, most likely, over time, an average statistic will be established (like, ‘it’s better to study cards right after waking up’) and thus influence with a weight coefficient, but this is a research task.

In the end, in my understanding, Anki should recognize that if a person is tired, at this moment, in this session, there’s no point in showing them cards because the effect will be minimal.
It’s case not about finding those specific time windows when the brain is working at 100%.

In the model I tried, the number of reviews done and the time of the day were used to calculate fatigue as a number between 0 and 1, and then fatigue would be used for calculating the length of the next interval. I tried both “high fatigue = intervals grow a lot” and “high fatigue = intervals barely grow at all” approaches, just in case. Neither improved accuracy. I’ve tried several different approaches, but that’s a long and technical story.