user34074: Stockfish provides the best moves/lines but is there a command or technique to get inaccuracies, mistakes and blunders? How is this done by lichess or chess.com?
They also have the ability to show an evaluation chart throughout the game. Are they doing it iteratively move by move? Even in that case how can you categorize the moves as mistakes or blunders using Stockfish?

user26335: Common methods for engine annotation include a strict evaluation model or the expected points model.  In the strict evaluation model, engine annotations require user-defined parameters to classify inaccuracies, mistakes, and blunders using the strict difference in the evaluation between the move played and the engine's top choice.
In the expected points model, the engine's evaluation is mapped to a function between 0 and 1, indicating the probability of win (or the expected score). Then the assessed move's expected points score is similarly compared to the engine's top choice.
Chess.com: Using Chess.com's Knowledge Base, the current documentation for How are moves classified? What is a ‘Blunder’ or ‘Brilliant’ and etc? shows moves are classified using a new system, ClassificationV2, which uses an expected points model instead of the previous strict evaluation differences.
Chess.com is using the probability of a win evaluation and assessing the move's impact on that probability based on the following:

Best: 0 <= change <= 0
Excellent: 0 < change <= 0.02
Good: 0.02 < change <= 0.05
Inaccuracy: 0.05 < change <= 0.10
Mistake: 0.10 < change <= 0.20
Blunder: 0.20 < change <= 1.00

Lichess.org:
The documentation for Lichess indicates that they also use their Win% and Accuracy% metrics "to identify inaccuracies/mistakes/blunders in game analysis."
Lichess definitions:

"Accuracy% represents how much you deviated from the best moves, i.e. how much your winning chances decreased with each move you made."
"Win% represents your chances of winning the game from a given position."

Lichess first computes
Win% = 50 + 50 * (2 / (1 + exp(-0.00368208 * centipawns)) - 1)
which allows comparing Win% before and after each move.
This enables the Accuracy% calculation.
Accuracy% = 103.1668 * Math.exp(-0.04354 * (winPercentBefore - winPercentAfter)) - 3.1669
Older Lichess forum posts (1, 2) indicate previous strict evaluation differences such as

Inaccuracy: 0.5 < gap <= 1,
Mistake: 1 < gap <= 2, and
Blunder: 2 < gap,

may have been previously used, but it seems this is no longer the case.

34074: <p>Stockfish provides the best moves/lines but is there a command or technique to get inaccuracies, mistakes and blunders? How is this done by lichess or chess.com?</p>
<p>They also have the ability to show an evaluation chart throughout the game. Are they doing it iteratively move by move? Even in that case how can you categorize the moves as mistakes or blunders using Stockfish?</p>
 26335: <p>Common methods for engine annotation include a strict evaluation model or the expected points model.  In the strict evaluation model, engine annotations require user-defined parameters to classify inaccuracies, mistakes, and blunders using the strict difference in the evaluation between the move played and the engine's top choice.</p>
<p>In the expected points model, the engine's evaluation is mapped to a function between 0 and 1, indicating the probability of win (or the expected score). Then the assessed move's expected points score is similarly compared to the engine's top choice.</p>
<p><strong>Chess.com</strong>: Using Chess.com's <a href="https://support.chess.com/" rel="nofollow noreferrer">Knowledge Base</a>, the current documentation for <a href="https://support.chess.com/article/2965-how-are-moves-classified-what-is-a-blunder-or-brilliant-and-etc" rel="nofollow noreferrer">How are moves classified? What is a ‘Blunder’ or ‘Brilliant’ and etc?</a> shows moves are classified using a new system, <strong>ClassificationV2</strong>, which uses an expected points model instead of the previous strict evaluation differences.</p>
<p>Chess.com is using the probability of a win evaluation and assessing the move's impact on that probability based on the following:</p>
<ul>
<li>Best: 0 &lt;= change &lt;= 0</li>
<li>Excellent: 0 &lt; change &lt;= 0.02</li>
<li>Good: 0.02 &lt; change &lt;= 0.05</li>
<li>Inaccuracy: 0.05 &lt; change &lt;= 0.10</li>
<li>Mistake: 0.10 &lt; change &lt;= 0.20</li>
<li>Blunder: 0.20 &lt; change &lt;= 1.00</li>
</ul>
<p><strong>Lichess.org</strong>:
The <a href="https://lichess.org/page/accuracy" rel="nofollow noreferrer">documentation</a> for Lichess indicates that they also use their Win% and Accuracy% metrics &quot;<em>to identify inaccuracies/mistakes/blunders in game analysis</em>.&quot;</p>
<p>Lichess definitions:</p>
<ul>
<li>&quot;<code>Accuracy%</code> represents how much you deviated from the best moves, i.e. how much your winning chances decreased with each move you made.&quot;</li>
<li>&quot;<code>Win%</code> represents your chances of winning the game from a given position.&quot;</li>
</ul>
<p>Lichess first computes
<code>Win% = 50 + 50 * (2 / (1 + exp(-0.00368208 * centipawns)) - 1)</code><br />
which allows comparing <code>Win%</code> before and after each move.</p>
<p>This enables the <code>Accuracy%</code> calculation.<br />
<code>Accuracy% = 103.1668 * Math.exp(-0.04354 * (winPercentBefore - winPercentAfter)) - 3.1669</code></p>
<p>Older Lichess forum posts (<a href="https://lichess.org/forum/general-chess-discussion/wth-is-this?page=3#24" rel="nofollow noreferrer">1</a>, <a href="https://lichess.org/forum/general-chess-discussion/what-is-the-difference-between-blunders-mistakes-and-inaccuracies-in-chess-mean?page=3" rel="nofollow noreferrer">2</a>) indicate previous strict evaluation differences such as</p>
<ul>
<li>Inaccuracy: 0.5 &lt; gap &lt;= 1,</li>
<li>Mistake: 1 &lt; gap &lt;= 2, and</li>
<li>Blunder: 2 &lt; gap,</li>
</ul>
<p>may have been previously used, but it seems this is no longer the case.</p>
