Skip to content

Conversation

Luc-Mcgrady
Copy link
Contributor

@Luc-Mcgrady Luc-Mcgrady commented May 11, 2025

Keeps a warning active when the users desired retention 90% to try and hint at the correlation between desired retention and intervals for people who have not yet changed the value.

image

I'm not positive on what the message should be, suggestions welcome.

c.c. @Expertium

@dae
Copy link
Member

dae commented May 15, 2025

Nothing else in the deck options screen shows an info 'warning' out of the box. This PR increases the amount of text the user sees by default, which I'm not really fond of - those boxes are intended to call the user's attention to things that may not be right.

That said, I do appreciate that devs want to make the option more discoverable, and showing something in the 90% case may be the best way to do that.

On the wording: it doesn't feel very accessible. If your goal is to appeal to the masses, 'retention', 'intervals' etc is not great. What about something like the following?

"To see cards more frequently, increase this above 90%"

@Luc-Mcgrady
Copy link
Contributor Author

Maybe both this message and(?) the 100 days will become x message we currently have could be hidden until the user does something FSRS related. For example maybe show it if they:

  • Enable FSRS for the first time
  • Optimize
  • Change desired retention or focus on the input

With the exception of if desired retention is set to a "warning" or "danger" value.

@Expertium
Copy link
Contributor

Expertium commented May 15, 2025

Dae

On the wording: it doesn't feel very accessible. If your goal is to appeal to the masses, 'retention', 'intervals' etc is not great.

But the setting is literally called "desired retention"

Luc

Maybe both this message and(?) the 100 days will become x message we currently have could be hidden until the user does something FSRS related.

No, please don't hide "A 100 days interval will become X days". Hiding the default message is ok.

@dae
Copy link
Member

dae commented May 15, 2025

The idea of a subtitle/caption is to explain the (by necessity, concise) title in more detail/simpler language. If you're arguing that the description should use complicated language because the title does, I don't understand that logic. If you're arguing that we shouldn't bother as the title itself is too complicated, do you have a suggestion for a better title we could use?

@Luc-Mcgrady
Copy link
Contributor Author

No, please don't hide "A 100 days interval will become X days"

Why not? As far as I see it it's extra information that's provided to give you perspective while changing your desired retention. If you're not modifying it and there's no problem with it then how would it help?

@brishtibheja
Copy link
Contributor

brishtibheja commented May 15, 2025

would it be clear "this value" refers to desired retention and not the params below it? sure, many native speakers might understand "this value" is a single value but there might be some confusion. any thoughts on this?

As far as I see it it's extra information that's provided to give you perspective while changing your desired retention. If you're not modifying it and there's no problem with it then how would it help?

have said this last year that this info is almost meaningless. when it comes to exact stats, how workload is increasing matters more from a user perspective. ivls are secondary to that. +1 to removing this bit.

@Expertium
Copy link
Contributor

Expertium commented May 15, 2025

Why not? As far as I see it it's extra information that's provided to give you perspective while changing your desired retention. If you're not modifying it and there's no problem with it then how would it help?

The goal is to make people understand how desired retention affects interval lengths. Removing that message would move us further away from achieving that goal.

@Expertium
Copy link
Contributor

@dae @Luc-Mcgrady how about only displaying the "The higher the desired retention, the shorter the intervals between reviews." message if the user has never changed DR from the default value of 90? Add another variable like dr_changed that will serve as a "flag": when the user changes DR, dr_changed will be set to True, and if it's True, then the message doesn't appear.
Basically, the message will be shown ONLY to people who have never changed DR and will stop appearing after that.
The "A 100 days interval will become X days" message should remain unchanged, as it is now.

@Maltesaa
Copy link

There's already a page explaining what DR does inside the settings menu for people who care. I think this would just be unnecessary clutter for people who either don't care or already know.

If this is implemented I def agree that it should only be shown when the user enables FSRS for the first time, or if the user has never changed DR from the default.

@dae
Copy link
Member

dae commented May 19, 2025

I don't want to faff about with extra logic to show such a message only if the value has never been changed before, as we have to track that then. I'm not particularly fond of the current wording either, as I don't like how we switch between quantitive and qualitative messages for only 90%. If this is something that is really worth pursuing, and there's consensus that focusing on workload is more intuitive/useful than interval, then perhaps the "a 100 day interval will become 46 days" message could be reworked into something like "Reviews required: 217% of default"? Then the 100 case doesn't look silly.

@Expertium
Copy link
Contributor

Expertium commented May 19, 2025

Dae, with all due respect, you make making progress very hard.
There is a problem - users don't understand that DR affects intervals, which is especially bad if the user never changes DR from the default 90%. Showing a text only to users who have never changed DR is the simplest solution that I could think of, though not the best - the best is fake answer buttons by Brayan:
image

Or a sequence of "Good" reviews
(I am using a screenshot from another app and Paint, lol)
image

So we have a problem and the simplest possible solution to that problem, and yet you still don't say, "Nice, let's merge this PR immediately". And don't get me started on Evaluate. Or on the Hard button misuse.

I don't want to faff about with extra logic to show such a message only if the value has never been changed before, as we have to track that then.

Really? That is your objection? Really? Do you not think that the current solution has a good "amount of work"/"problems solved" ratio?

could be reworked into something like "Reviews required: 217% of default"

Sadly, that would require simulations using the FSRS simulator, which is too slow to be practical. I thought of something like this when thinking of the desired retention overhaul, and yeah, unless we speed the simulator up by a factor of 50, it's not viable.

@brishtibheja
Copy link
Contributor

brishtibheja commented May 19, 2025 via email

@Expertium
Copy link
Contributor

Expertium commented May 20, 2025

Dae, if you want another idea, here: https://forums.ankiweb.net/t/desired-retention-ui-overhaul/57678/59?u=expertium
Anki desired retention Godo answer button sequence

Instead of showing intervals per buttons, we show a sequence of “Good” reviews and their intervals.
The advantage of this method is that it shows interval lengths after the first interval, giving the user a better understanding of what kind of intervals he will have.

But this is more complicated and will require more discussions than the simple fix in this PR. If you like this idea - great. If not - this PR offers the simplest possible solution.

Actually, on second thought, while this would be an improvement overall, it wouldn't solve the specific problem of users not realizing that DR affects interval lengths if they have never changed DR. So we would still have to somehow give a nudge to people who always keep DR at the default value, which this approach with a sequence of "Good" does not.

Completely unrelated, but Dae, please take a look at this and give Luc a green light: https://forums.ankiweb.net/t/estimated-total-knowledge-graph-over-time/57390?u=expertium
You didn't respond to my ping or Luc's ping, so that's why I'm asking this way.

@Danika-Dakika
Copy link
Collaborator

There is a problem - users don't understand that DR affects intervals
...
So we have a problem and the simplest possible solution to that problem

You keep saying it's the "simplest solution" -- but that doesn't mean it's a good solution to that problem. I still don't see any indication that there's a segment of users who will understand this better by having this warning in the Deck Options screen (vs. somewhere else), or that the folks who are looking for solutions will find this more actionable by having it there. In my experience, many users simply ignore anything in a colored box in that screen 😅 -- just like they ignore the ❔'s staring them in the face when they have questions about something.

@brishtibheja
Copy link
Contributor

brishtibheja commented May 21, 2025 via email

@Expertium
Copy link
Contributor

Expertium commented May 21, 2025

NNgroup's eye tracking study comes to mind. Users ignore UX elements that resemble ads, so boxes like these.

Then we might as well give up, to be honest. We could rename "Desired retention" to "Desired retention (affects intervals)", but that's just a worse version of what this PR does.

Btw, do you mean this one?
https://www.iso.org/files/live/sites/isoorg/files/styleguide/resources/How_People_Read_on_the_Web.pdf

@Expertium
Copy link
Contributor

Expertium commented May 21, 2025

@Danika-Dakika I've said this before, and I'll say it again: both here and on the forums, people don't agree on anything and don't understand that having a solution is better than having no solution. With UI there are often many ways to approach a problem, and many different better alternatives to the current implementation. But if nobody agrees on anything, then none of the better alternatives will be implemented.

Is showing a blue box with "The higher the desired retention, the shorter the intervals between reviews." better than the current implementation? Yes.
Is showing fake answer buttons better than the current implementation? Yes.
Is showing a sequence of "Good" reviews and their intervals better than the current implementation? Yes.
Will we agree to implement any of the above? Evidently no.

Just to clarify, I would be happy with any of the above, or with some other solution, but we have to choose something instead of playing the Internet version of tug-of-war for days and writing a hundred comments.

@brishtibheja
Copy link
Contributor

brishtibheja commented May 21, 2025

Btw, do you mean this one?
https://www.iso.org/files/live/sites/isoorg/files/styleguide/resources/How_People_Read_on_the_Web.pdf

Yes, probably. I read some shorter articles from their website about this.

But if nobody agrees on anything, then none of the better alternatives will be implemented.

I think dae agreed to add this but alas, then the issue was complicated too much. #3995 (comment) Just agree to dae's suggestion and you have something rather than nothing.

@Danika-Dakika
Copy link
Collaborator

@Expertium

... and don't understand that having a solution is better than having no solution.

But having a solution is not necessarily better and some "solutions" are worse than making no change. I know you get frustrated when people won't sign-on to your proposals, because they are obvious improvements as far as you are concerned. But you cast those who disagree with you as people who "don't understand" instead of letting them be people who disagree with you.

Both here and on the forums, there are plenty of things that do get done -- often by consensus-building and compromise. They just might not be the things you pick to draw a line in the sand about.

Is showing a blue box with "The higher the desired retention, the shorter the intervals between reviews." better than the current implementation? Yes.
Is showing fake answer buttons better than the current implementation? Yes.
Is showing a sequence of "Good" reviews and their intervals better than the current implementation? Yes.

I disagree with all of those "yes"es (some more strongly than others!). It's not because I don't understand, it's because I don't think they are overall benefits to the UI, or that they will do anything to solve the problem you've set your mind on solving. Not every proposal is an improvement, and I, like many, would rather see things stay how they are now, until there's a better solution.

@Luc-Mcgrady
Copy link
Contributor Author

Luc-Mcgrady commented May 22, 2025

Reviews required: 217% of default

Do you think maybe it could be beneficial to compare this to the previously set desired retention instead of default. e.g.

(just opened config, DR previously set to 80%)

80%
Your intervals|workload will remain unchanged.

(change the value)

85%
Your intervals will be x% shorter than before

and there's consensus that focusing on workload is more intuitive/useful than interval

or, for the load:

Your workload will increase by approximately x%

@dae
Copy link
Member

dae commented May 22, 2025

  • Showing a message with an x still requires state: you need to record that you've shown the message somewhere so you know not to show it again. But I misspoke earlier: the 'only when first enabling FSRS' approach could work, since we don't need to persist anything then, and just show the message when toggling. Perhaps that is the best compromise here?
  • I don't mind the idea of the three good steps as a way of more clearly showing the effects of the multiplier, though as has been pointed out, it doesn't solve the "doesn't understand DR" problem that this PR was originally trying to solve. They could potentially be added in addition to this message, though I imagine it'd look more crowded if we're permanently showing the message.
  • Increase relative to before, if we can do it quickly, seems like it might be intuitive? Do we have a consensus on intervals vs workload? My vote would be for latter.

@dae
Copy link
Member

dae commented May 22, 2025

Ah, looks like your latest push already handled the first point - thanks Luc. If nobody else has something to add, I'll merge this in ~tomorrow morning.

Copy link
Contributor

@user1823 user1823 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some suggestions. Rest LGTM.

Luc-Mcgrady and others added 2 commits May 25, 2025 16:03
Co-authored-by: user1823 <92206575+user1823@users.noreply.github.com>
Copy link
Member

@dae dae left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nearly there

Copy link
Member

@dae dae left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thank you for all your hard work Luc, and to everyone who contributed here.

@dae dae merged commit f29bcb7 into ankitects:main May 27, 2025
1 check passed
@Luc-Mcgrady Luc-Mcgrady deleted the Feat/90%-dr-message branch May 27, 2025 06:32
@dae
Copy link
Member

dae commented Jun 6, 2025

I noticed this message appears after clicking the Optimize button. Was that intended?

@Luc-Mcgrady
Copy link
Contributor Author

Yep 03b42a9

@user1823
Copy link
Contributor

user1823 commented Jun 6, 2025

@Luc-Mcgrady, but why? It seems weird for a popup to appear in a place other than the one I am interacting with.

Also, would it make sense to show this popup for any user who has DR equal to the default (90%)?

@Luc-Mcgrady
Copy link
Contributor Author

Luc-Mcgrady commented Jun 6, 2025

@Luc-Mcgrady, but why? It seems weird for a popup to appear in a place other than the one I am interacting with.

  1. The parameters affect the workload calculation.
  2. The original purpose of this PR was to inform people desired retention existed and how it affected their reviewing. If they don't know it exists then they will never click on it to see the popup and optimizing seems like a good time to remind them.

Also, would it make sense to show this popup for any user who has DR equal to the default (90%)?

That seems annoying for people who genuinely want to set their DR to 90%.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants