How is the score calculated in SRS?



I'm wondering how the SRS system by Pleco works. So I've tried to read the documentation but I couldn't find the math behind the scoring system in learning my flashcards in the Pleco Built-in SRS system with the default settings. What happens with the score when I tap "didn't know" for example?
Would be glad if someone here could help me out! :)


Hi kirkyonyx,

The basic principle you need to understand is that the score increases if you gave a correct answer, and decreases if you've given an incorrect answer, and that the amount of this increase/decrease is determined by the easiness of a flashcard, which is a number saved with the flashcard along with the score. You get an idea of how easiness works on this page in the manual:


As you can read in other places in the Flashcards reference in the manual, you can fine-tune a lot of things around scoring. If you tap "didn't know" or "incorrect answer", the score will probably go down if you haven't already been tested on the same card that day. Pleco 4's system will be radically different, but it will come with a full Pleco 3 compatibility mode, as Mike has stated.

Hope this satisfies your curiosity to some extent, :)



Hi Shun,

thank you for your answer! That describes the general approach pretty good, but I'm interested in how the score value is changed when I tap "didn't know", you know? ;) I know that I can modify the perccentage increase/decrease depending on the classification, but how is this solved by default?


Hi kirkyonyx,

you're welcome. The default values for the change of easiness are just a reasonable number. How it happens is always more or less the same, i.e. through the same formula. :) I created a new profile which has the default settings, and it says there that the easiness will change by -10 if you give an incorrect answer, and by +4 if your answer was correct.

It seems to me that there are two main paths: If you have Prompt for quality enabled, the easiness changes in one of six ways you can set under Tweak Parameters (which depend on your answer in a test, how well you knew the card from 1-6). If you have Prompt for quality disabled, which is the default way, there are only the two values above you can set under Tweak Parameters for the easiness to change, one of which would be for the "didn't know" you mentioned. How the easiness affects the score change is influenced by the easiness divisor, which works like this:

Easiness divisor is used in the formula for calculating a new card score after a correct answer. The card’s easiness factor (which defaults to 100) is divided by this amount, then multiplied by the card’s score to get the new card score. This is an easy way to quickly make the algorithm more aggressive (by lowering this value) or less aggressive (by raising it) in how quickly it increases cards’ scores.”

Pretty simple, isn't it? :)

(I know it's tricky to get one's point across over the forums without the ability to ask back and forth easily.)

Hope this helps, otherwise someone else can add to this.


PS: To be sure, I don't fully understand the current Pleco 3.2 scoring system. I prefer manual control, and I think Pleco 4's system is the one I will look at more fully. I just thought you might be happy with my level of knowledge regarding Pleco 3.2's system.
Last edited:


Staff member
I know that I can modify the perccentage increase/decrease depending on the classification, but how is this solved by default?

The default behavior in this case is that the score goes back to its minimum value of 100. (= 1 day SRS interval)
I would also like to better understand the formula, so that I'm more confident before changing the score of a card, etc. Maybe I could experiment, but if the information is already out there, I would like to know. Is the algorithm known?

It seems to me that the main factors are score and easiness. Perhaps the overdue number would also factor if a card is overdue.


Hi bryanwithay,

we can try to reproduce the formula from the manual. It isn't complete, but we can combine it with what we found out earlier in this thread to get a fuller picture. A summary from the Pleco Reference:

One part of the formula calculates how much time has passed since the last time a card was tested (the number of days, either as 24 hours/day or calendar days), and compares that number to the result of the following division:

score of card
points per day (default: 100 points)​

So if a card has a score of 400, and you left "points per day" at the default of 100 points, it will appear in the pool of cards to be studied if 4 or more days have passed since the last time you were tested on it. If you were a little lazy in the last week, then of course a much larger backlog of cards will come due. Or, as you suggest, you could increase the cards' scores by a large amount, or reduce the "points per day" number as a means of catching up. You just need to make sure the total number of semi-learned cards isn't too large for your short- and medium-term memory, and everything is able to trickle down into long-term memory.

There is also a card priority setting which overrides the above mechanism, but we can ignore it for now. There is also the Learned threshold. I'm unsure if this one is used mostly for the Random card selection, or also for Repetition-spaced.

Combined with the information on easiness further up in this thread, I think you should now have enough information to experiment with scores. You can always back up the flashcards database first, then restore it to its previous state.




In 2014 I made an Excel sheet with the formulas valid at that time. You can enter figures in yellow cells, e.g. tweak parameters and test results for 10 successive tests. Maybe some of the formulas have not changed since then ...

It is not allowed to upload Excel files, so I added .txt to the file name.


  • Pleco-Scores-0.51.xlsx.txt
    18.8 KB · Views: 114