user4399: Where can I find a site that calculates Neustadtl Sonneborn–Berger score (or Sonneborn–Berger score or whatever) given a cross-table? Closest I found is this.
Eg Given the cross-table (implied from these results by rounds) from St Louis Chess Club's 2021 Chess 9LX tournament:

I calculated the ff: (And you can also see SB in the players' links in the 2nd column.)

Based on Neustadtl Sonneborn–Berger score, Wesley So is 4th place behind Sam Shankland & MVL even though they are tied for 2nd place.

user30545: pgnhelper is a command line tool to generate a round-robin table along with some tie-break systems one of which is the SB. It can take a pgn file and output to html, csv and txt formats.
Setup

Install python 3.7 or later like 3.10
Open command prompt or powershell if you are in windows.
Install the package with the command:

pip install pgnhelper -U

Example
PS F:\Github\position-trainer\pgn> ls


    Directory: F:\Github\position-trainer\pgn


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2023-02-12     23:50         536764 airthingsmastpl23.pgn
-a----        2022-09-21     02:52        1516345 cheurind22.pgn
-a----        2022-09-21     02:50         114370 ftxcrpyto22.pgn
-a----        2022-08-14     17:01        3859792 olym22.pgn
-a----        2022-09-08     10:37          87717 stlbli22.pgn
-a----        2022-09-08     20:26           1719 stlbli22_2games.pgn
-a----        2022-09-08     20:05           3602 stlbli22_4games.pgn
-a----        2023-02-12     23:59          85511 tatamast23.pgn
-a----        2023-02-13     00:04         775054 wbliw22.pgn
-a----        2023-02-15     16:32        2575075 world_blitz_women_2022.json


PS F:\Github\position-trainer\pgn> python --version
Python 3.10.6
PS F:\Github\position-trainer\pgn> pip install pgnhelper -U

PS F:\Github\position-trainer\pgn> pgnhelper roundrobin --inpgnfn tatamast23.pgn --output tatamast23.html

output
tatamast23.html

Standing
You can also use standing directive to output the standings.
pgnhelper standing --inpgnfn tatamast23.pgn --output stand_tatamast23.txt

Output
 Rank                   Name  Rating   RChg  Games  Score  Score%  DE  Wins    SB  Koya
    1            Giri, Anish    2764  15.41     13    8.5   65.38 0.0     0  0.00   0.0
    2 Abdusattorov, Nodirbek    2713  20.49     13    8.0   61.54 1.0     4 51.25   5.0
    3        Carlsen, Magnus    2859  -7.56     13    8.0   61.54 0.0     5 48.00   4.0
    4             So, Wesley    2760   6.20     13    7.5   57.69 0.0     0  0.00   0.0
    5    Maghsoodloo, Parham    2719   9.31     13    7.0   53.85 0.5     4 42.50   3.0
    6       Caruana, Fabiano    2766   0.02     13    7.0   53.85 0.5     2 43.75   3.0
    7       Rapport, Richard    2740   0.16     13    6.5   50.00 0.5     3 37.75   2.0
    8         Aronian, Levon    2735   1.15     13    6.5   50.00 0.5     1 41.25   3.0
    9      Praggnanandhaa, R    2684   6.15     13    6.0   46.15 1.0     2 38.75   3.0
   10    Van Foreest, Jorden    2681   6.73     13    6.0   46.15 0.0     2 38.50   3.5
   11            Ding, Liren    2811 -23.71     13    5.5   42.31 1.0     1 35.00   3.0
   12              Gukesh, D    2725  -6.88     13    5.5   42.31 0.0     2 35.00   3.0
   13        Keymer, Vincent    2696  -6.18     13    5.0   38.46 0.0     0  0.00   0.0
   14        Erigaisi, Arjun    2722 -21.28     13    4.0   30.77 0.0     0  0.00   0.0

Tie-break is described in the documentation. The source code is in github.
Chess 9LX
pgn source is from weekinchess.
pgnhelper roundrobin --inpgnfn champshow9lx21.pgn --output 9LX.html



4399: <p>Where can I find a site that calculates <a href="https://en.wikipedia.org/wiki/Sonneborn%E2%80%93Berger_score#Neustadtl_Sonneborn%E2%80%93Berger_score" rel="nofollow noreferrer">Neustadtl Sonneborn–Berger score</a> (or Sonneborn–Berger score or whatever) given a cross-table? Closest I found is <a href="https://www.codewars.com/kata/tournament-cross-table-with-sonneborn-berger-score/python" rel="nofollow noreferrer">this</a>.</p>
<p>Eg Given the cross-table (implied from these results by rounds) from <a href="https://www.uschesschamps.com/2021-champions-showdown-chess-9lx/pairings-regulations" rel="nofollow noreferrer">St Louis Chess Club's 2021 Chess 9LX tournament</a>:</p>
<p><a href="https://i.stack.imgur.com/mHPqE.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mHPqE.png" alt="enter image description here" /></a></p>
<p>I calculated the ff: (And you can also see SB in the players' links in the 2nd column.)</p>
<p><a href="https://i.stack.imgur.com/yk7EN.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/yk7EN.png" alt="enter image description here" /></a></p>
<p>Based on Neustadtl Sonneborn–Berger score, <a href="https://chess.stackexchange.com/questions/41615/what-exactly-does-sam-shankland-mean-by-talented-players-vs-hard-working-players">Wesley So is 4th place behind Sam Shankland</a> &amp; MVL even though they are tied for 2nd place.</p>
 30545: <p><a href="https://pypi.org/project/pgnhelper/" rel="nofollow noreferrer">pgnhelper</a> is a command line tool to generate a round-robin table along with some tie-break systems one of which is the SB. It can take a pgn file and output to html, csv and txt formats.</p>
<h3>Setup</h3>
<ol start="0">
<li>Install python 3.7 or later like 3.10</li>
<li>Open command prompt or powershell if you are in windows.</li>
<li>Install the package with the command:</li>
</ol>
<pre><code>pip install pgnhelper -U
</code></pre>
<h4>Example</h4>
<pre><code>PS F:\Github\position-trainer\pgn&gt; ls


    Directory: F:\Github\position-trainer\pgn


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2023-02-12     23:50         536764 airthingsmastpl23.pgn
-a----        2022-09-21     02:52        1516345 cheurind22.pgn
-a----        2022-09-21     02:50         114370 ftxcrpyto22.pgn
-a----        2022-08-14     17:01        3859792 olym22.pgn
-a----        2022-09-08     10:37          87717 stlbli22.pgn
-a----        2022-09-08     20:26           1719 stlbli22_2games.pgn
-a----        2022-09-08     20:05           3602 stlbli22_4games.pgn
-a----        2023-02-12     23:59          85511 tatamast23.pgn
-a----        2023-02-13     00:04         775054 wbliw22.pgn
-a----        2023-02-15     16:32        2575075 world_blitz_women_2022.json


PS F:\Github\position-trainer\pgn&gt; python --version
Python 3.10.6
PS F:\Github\position-trainer\pgn&gt; pip install pgnhelper -U

PS F:\Github\position-trainer\pgn&gt; pgnhelper roundrobin --inpgnfn tatamast23.pgn --output tatamast23.html
</code></pre>
<h3>output</h3>
<p>tatamast23.html</p>
<p><a href="https://i.stack.imgur.com/LOMcC.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/LOMcC.png" alt="enter image description here" /></a></p>
<h3>Standing</h3>
<p>You can also use standing directive to output the standings.</p>
<pre><code>pgnhelper standing --inpgnfn tatamast23.pgn --output stand_tatamast23.txt
</code></pre>
<h3>Output</h3>
<pre><code> Rank                   Name  Rating   RChg  Games  Score  Score%  DE  Wins    SB  Koya
    1            Giri, Anish    2764  15.41     13    8.5   65.38 0.0     0  0.00   0.0
    2 Abdusattorov, Nodirbek    2713  20.49     13    8.0   61.54 1.0     4 51.25   5.0
    3        Carlsen, Magnus    2859  -7.56     13    8.0   61.54 0.0     5 48.00   4.0
    4             So, Wesley    2760   6.20     13    7.5   57.69 0.0     0  0.00   0.0
    5    Maghsoodloo, Parham    2719   9.31     13    7.0   53.85 0.5     4 42.50   3.0
    6       Caruana, Fabiano    2766   0.02     13    7.0   53.85 0.5     2 43.75   3.0
    7       Rapport, Richard    2740   0.16     13    6.5   50.00 0.5     3 37.75   2.0
    8         Aronian, Levon    2735   1.15     13    6.5   50.00 0.5     1 41.25   3.0
    9      Praggnanandhaa, R    2684   6.15     13    6.0   46.15 1.0     2 38.75   3.0
   10    Van Foreest, Jorden    2681   6.73     13    6.0   46.15 0.0     2 38.50   3.5
   11            Ding, Liren    2811 -23.71     13    5.5   42.31 1.0     1 35.00   3.0
   12              Gukesh, D    2725  -6.88     13    5.5   42.31 0.0     2 35.00   3.0
   13        Keymer, Vincent    2696  -6.18     13    5.0   38.46 0.0     0  0.00   0.0
   14        Erigaisi, Arjun    2722 -21.28     13    4.0   30.77 0.0     0  0.00   0.0
</code></pre>
<p><a href="https://pgnhelper.readthedocs.io/en/latest/api.html#module-pgnhelper.roundrobin" rel="nofollow noreferrer">Tie-break</a> is described in the <a href="https://pgnhelper.readthedocs.io/en/latest/index.html" rel="nofollow noreferrer">documentation</a>. The <a href="https://github.com/fsmosca/pgnhelper" rel="nofollow noreferrer">source code</a> is in github.</p>
<h3>Chess 9LX</h3>
<p>pgn source is from <a href="https://theweekinchess.com/chessnews/events/champions-showdown-9lx-2021" rel="nofollow noreferrer">weekinchess</a>.</p>
<pre><code>pgnhelper roundrobin --inpgnfn champshow9lx21.pgn --output 9LX.html
</code></pre>
<p><a href="https://i.stack.imgur.com/YznZw.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/YznZw.png" alt="enter image description here" /></a></p>
