How is the score calculated in SRS?

mikelove

皇帝
Staff member
Sorry, the interval calculations on the buttons are not actually reliable - I thought we had removed the option for them, are you maybe running an old version of Pleco?
 

Cameroon

探花
Sorry, the interval calculations on the buttons are not actually reliable - I thought we had removed the option for them, are you maybe running an old version of Pleco?

Seemingly I use the latest version up to date (screenshots below):

photo1692785367 (1).jpegphoto1692785367.jpeg

That's sad news (on buttons' intervals being unreliable). Does this mean that only calcultaions shown on buttons are unreliable?

But what about actual intervals used to postpone cards in the studying process, are they correct?
Do they follow the user-defined settings for the desired intervals whilst studying?

Or are the SRS part of flashcards totally unpredictable and actually random, being the result of the old code's undocumented twists and turns?
 
Last edited:

mikelove

皇帝
Staff member
They’re unrelated - the buttons attempted to reproduce the algorithm with different code but did so inaccurately. (If/when we ever add that feature again it’ll run through the same code path the algorithm does)
 

Cameroon

探花
Thanks! Sounds quite promising. So, we can keep on using Pleco's SRS algorithms being assured they act exactly as they are tuned to (in Settings)?

And, as I understand, in order not to be distracted, we'd better remove time indicators from buttons as they're totally incorrect (currently).
Right?

BTW these indicators are quite informative (of course unless they show irrelevant info), so I'd put forth my little 'pro' for this feature being reapproached someday and reintroduced back when it becomes completely correct and reliable )

UPD:
I'm afraid there are glitches in the Pleco's SRS algorith itself, not only in buttons.
I've just answered a card with a 'Correct' button.
Based on formula,

New score = Old score * (easiness / easiness divisor) * correct score increase * review late/early modifier

The initial score 300 should have been:
multiplied by the correct scale score increase 250%
multiplied by easiness (codenamed difficulty in cardinfo) 100
divided by easiness divisor 100
multiplied by review late/early ratio 1 (irrelevant as I set it to unchange/normal),
thus the resulting score must be equal to 750,
but instead, it's 375 points only (I've checked the final score in the card's info).


Where's the bug?

Seems like the correct resulting score was (unneededly) divided by 2 somewhere inside Pleco's math?
(if I learned two times earlier before the actual due date and the settings were set to change linearly if review early, then it would be ok, but my settings are don't change/change normally, plus I reviewed later, don't know how much because there's no place to look at the cards due dates...).

UPD 2:
I've raised correct scale score increase from 250% to 500% (keeping in mind that there's division by 2), but the final score only reached 450 points.

It seems like the formula isn't
New score = Old score * (easiness / easiness divisor) * correct score increase * review late/early modifier
but
New score = Old score + Old score/10 * (easiness / easiness divisor) * correct score increase * review late/early modifier

A (temporary?) solution:
As the algorithm seemingly takes one tenth of initial score and then multiplies it (instead of initial score itself) and then ADDS the result to the initial score, I set the correct scale score increase parameters to (120*10 - 1000 =) 200%, (250*10 - 1000 =) 1500%, (320*10 - 1000) = 2200% and finally got the expected result.
Now have to watch how the changes in easiness (codenamed difficulty in cardinfo) parameter would influence the result and (if needed) invent a workaround for it, too.
Also the 'if review early/late' parameter might come out with some surprises (although I don't intend to use this parameter, but if I do, perhaps there could also be some similar decision).

The good news is that intervals on buttons are showing (generally) correctly.
So please don't remove it :)

Chapter II
Easiness (codenamed difficulty in cardinfo) changes +/- correctly (as it's actually prescribed in settings) only when the answers are correct (though it renders numbers less than 10 - as 10).
When answers are incorrect, easiness (difficulty) changes abnormally, when it should lower by 5 points, it rises instead by 10 ))
Guess I'd better change it to 0 to get rid of surprises...
Upd, changing to 0 doesn't help, the algorithm treats -10, -5, and 0 as +10 ))
Positive numbers are ok, happily, 25 is still = 25, and 50=50 (except that positive numbers less than 10 are rounded to 10)...
 
Last edited:

mikelove

皇帝
Staff member
Sorry, correct scale increase applies to *the increase*. Per the instruction manual:
Correct scale score increase %: only really interesting with “prompt for quality” enabled, this lets you multiply the amount by which a card’s score will be increased after a correct answer by a set percentage based on the answer quality (4/5/6); it’s a multiplication, so 90% would mean that whatever score boost the algorithm generated would be multiplied by .9.
As far as easiness: are you reviewing the card early? We never change it in that scenario, there's not even an option to have it change - it would be too easy for a card to spiral into ridiculously high/low easiness levels if we did. I don't think we ever bothered documenting this because nobody ever complained about it before, but it's very much intentional at any rate.
 

Cameroon

探花
Sorry, correct scale increase applies to *the increase*
Even when my easiness factor was 100 and divisor 100 as well (so the initial score should be multiplied by 1, i.e. stay the same), the correct score increase actually applied to a 1/10 of the current score, not on the increase (which equalled to 0 in this case).

As far as easiness: are you reviewing the card early?
I'm reviewing late. And I have settings not to change anything depending on early/late trigger.
Whatever I put in Easiness change for incorrect answers, positive or negative numbers, I never seen easiness factor to go lower than 100. For some numbers it even rose! What's more, this increased wasn't equal to the actual number in settings...
Also whatever I set for Answer 4 (Barely remembered), it ignores the settings and adds 10 to the Easiness factor...
While I'd like that Answer 4 doesn't change, especially increase, the Easiness. When I enter 0 into the correspoinding settings field, this is also ignored and the Easiness rises anyway by 10...

Feels like the inner math here is pretty complicated and sometimes gives unexpected and unwanted results. Anyway I found some combination of settings which provides more or less behaviour similar to that of Anki's SRS v.2 Scheduler. Which I'll share here after some additional try-outs.
 

mikelove

皇帝
Staff member
Even when my easiness factor was 100 and divisor 100 as well (so the initial score should be multiplied by 1, i.e. stay the same), the correct score increase actually applied to a 1/10 of the current score, not on the increase (which equalled to 0 in this case).
Was there a bonus involved? Or any other adjustment? Also, has the easiness perhaps changed as part of this action (it's going to be based on the new easiness, not the old one).

Also whatever I set for Answer 4 (Barely remembered), it ignores the settings and adds 10 to the Easiness factor...
With this 100 factor / 100 divisor business I'm wondering whether you might be running into another one of our hard-coded sanity-check limits - if I remember correctly there's some code specifically to make sure that a card doesn't end up in a situation where its easiness is so low that its interval never increases.

Feels like the inner math here is pretty complicated and sometimes gives unexpected and unwanted results.
I mean yes - it's not meant to be exactly specified, there are some quirks to it, some of them intentional and some accidental-but-people-have-been-using-them-for-years-and-we-don't-want-to-blow-up-everyone's-happy-SRSing-by-fixing-them.
 
Top