Basic Explanation

FSRS uses a model of memory called DSR - Difficulty, Stability and Probability of Recall, or Retention, or Retrievability if you are Piotr Wozniak, although in his terminology "recall" and "retrievability" are different things...look, trying to come up with a good naming convention can be hard.

R is the probability that a user will recall a particular card on a particular day, given that card's repetition history. It depends on how many days have passed since the last review and on S. What's important is that every "honest" spaced repetition algorithm must be able to predict R, one way or another (even if it doesn't use memory stability). Otherwise it cannot possibly determine which intervals are optimal.

S is memory stability, it is defined as the amount of time, in days, during which R decreases from 100% to 90%. Higher is better. For example, S=365 means that an entire year will pass before the probability of recalling a particular card will drop to 90%. Estimating S is the hardest part, this is what FSRS is all about.

D is difficulty. Unlike the other two variables, difficulty has no precise definition and is calculated using a bunch of heuristics that are not based on a good understanding of human memory. Difficulty is just stuff that goes down if you press "Easy", and goes up if you press "Hard" or "Again".

Full Explanation (no maths)

For any given card, FSRS does the following:

If this is the first review:

If this is not the first review:

Full Description With All The Math

Read the actual docs

To read more about the accuracy, click here.