<Comment deleted by user>
The tsv theorists haven't catalogued many branches for 1. a3
You can see 1. e4 has 1,941 entries for e4 vs. 5 for a3.
I guess it's a reflection of how popular those openings are in the real world or maybe it's just a lichess choice, since it's their tsv file.
https://github.com/lichess-org/chess-openings/tree/master
# ️ SCA Master Index
| Sector | Start Move | Fact Volume | Total Lines |
|---|---|---|---|
| 01 | a3 | [a3 Volume] | 5 |
| 02 | a4 | [a4 Volume] | 7 |
| 03 | b3 | [b3 Volume] | 15 |
| 04 | b4 | [b4 Volume] | 26 |
| 05 | c3 | [c3 Volume] | 1 |
| 06 | c4 | [c4 Volume] | 179 |
| 07 | d3 | [d3 Volume] | 5 |
| 08 | d4 | [d4 Volume] | 1183 |
| 09 | e3 | [e3 Volume] | 6 |
| 10 | e4 | [e4 Volume] | 1987 |
| 11 | f3 | [f3 Volume] | 6 |
| 12 | f4 | [f4 Volume] | 27 |
| 13 | g3 | [g3 Volume] | 21 |
| 14 | g4 | [g4 Volume] | 20 |
| 15 | h3 | [h3 Volume] | 4 |
| 16 | h4 | [h4 Volume] | 9 |
| 17 | Na3 | [Na3 Volume] | 4 |
| 18 | Nc3 | [Nc3 Volume] | 29 |
| 19 | Nf3 | [Nf3 Volume] | 104 |
| 20 | Nh3 | [Nh3 Volume] | 3 |
Feature,Legacy ECO, The SCA System
Address,B20 (Arbitrary),10.20.1 (Sector.Digits.Depth)
Storage,Subject-based,Sector-based (1st move)
Identity,PGN String (Fragile),Zobrist Hash (Absolute)
Transpositions,Hard to find,Auto-mapped in Index
Data Integrity,Manual checking,Automatic debug file auditor
The script is still a work in progress ...
Engine Linked: Stockfish on 4 threads with 768MB Hash.
Processing 3641 facts at Depth 24...
[291/3641] d4.00.2 | WDL: 0.5%/94.0%/5.5%
I should have the WDL for each opening in the TSV files when complete.
Instead of ECO numbers, I'm using my own volume numbering system: d4.00.2
The tsv theorists haven't catalogued many branches for 1. a3
You can see 1. e4 has 1,941 entries for e4 vs. 5 for a3.
I guess it's a reflection of how popular those openings are in the real world or maybe it's just a lichess choice, since it's their tsv file.
https://github.com/lichess-org/chess-openings/tree/master
# ️ SCA Master Index
| Sector | Start Move | Fact Volume | Total Lines
| :--- | :--- | :--- | :---
| 01 | `a3` | [a3 Volume] | 5
| 02 | `a4` | [a4 Volume] | 7
| 03 | `b3` | [b3 Volume] | 15
| 04 | `b4` | [b4 Volume] | 26
| 05 | `c3` | [c3 Volume] | 1
| 06 | `c4` | [c4 Volume] | 179
| 07 | `d3` | [d3 Volume] | 5
| 08 | `d4` | [d4 Volume] | 1183
| 09 | `e3` | [e3 Volume] | 6
| 10 | `e4` | [e4 Volume] | 1987
| 11 | `f3` | [f3 Volume] | 6
| 12 | `f4` | [f4 Volume] | 27
| 13 | `g3` | [g3 Volume] | 21
| 14 | `g4` | [g4 Volume] | 20
| 15 | `h3` | [h3 Volume] | 4
| 16 | `h4` | [h4 Volume] | 9
| 17 | `Na3` | [Na3 Volume] | 4
| 18 | `Nc3` | [Nc3 Volume] | 29
| 19 | `Nf3` | [Nf3 Volume] | 104
| 20 | `Nh3` | [Nh3 Volume] | 3
Feature,Legacy ECO, The SCA System
Address,B20 (Arbitrary),10.20.1 (Sector.Digits.Depth)
Storage,Subject-based,Sector-based (1st move)
Identity,PGN String (Fragile),Zobrist Hash (Absolute)
Transpositions,Hard to find,Auto-mapped in Index
Data Integrity,Manual checking,Automatic debug file auditor
The script is still a work in progress ...
Engine Linked: Stockfish on 4 threads with 768MB Hash.
Processing 3641 facts at Depth 24...
[291/3641] **d4.00.2** | WDL: 0.5%/94.0%/5.5%
I should have the WDL for each opening in the TSV files when complete.
Instead of ECO numbers, I'm using my own volume numbering system: **d4.00.2**
Bobby Fischer once commended to a chess player that, if he wished truly to improve, he was to study the openings contained in a certain encyclopaedia. The player obeyed, studied it in full, and, having finished, a month and a half latter, returned to Fischer to ask for further counsel. Fischer answered with the same severity as before: he must read it again, and again, until he knew it completely.
Conclusion: Fischer was right — or, perhaps, Fischer was wrong.

Bobby Fischer once commended to a chess player that, if he wished truly to improve, he was to study the openings contained in a certain encyclopaedia. The player obeyed, studied it in full, and, having finished, a month and a half latter, returned to Fischer to ask for further counsel. Fischer answered with the same severity as before: he must read it again, and again, until he knew it completely.
Conclusion: Fischer was right — or, perhaps, Fischer was wrong.

Actually as far as I'm concerned ECO only really has one practical use. When doing opening preparation against an opponent you'll often see the names of the players, result, ratings, tournament and ECO.
Knowing the ECO allows you to do three important things:
- What openings they play at a glance
- Whether it's a game that will involve lines you're likely to play
- It can be used as a database filter if researching lines
One problem is that ECO codes are based on starting positions of arbitrary length. As an example I'll give:
D68 1. d4 d5 2. c4 e6 3. Nc3 Nf6 4. Bg5 Be7 5. e3 O-O 6. Nf3 Nbd7 7. Rc1 c6 8. Bd3 dc4 9. Bc4 Nd5 10. Be7 Qe7 11. O-O Nc3 12. Rc3 e5
D69 1. d4 d5 2. c4 e6 3. Nc3 Nf6 4. Bg5 Be7 5. e3 O-O 6. Nf3 Nbd7 7. Rc1 c6 8. Bd3 dc4 9. Bc4 Nd5 10. Be7 Qe7 11. O-O Nc3 12. Rc3 e5 13. de5 Ne5 14. Ne5 Qe5
In contrast I'll give another ECO
D30 1. d4 d5 2. c4 e6
This means that when trying to code something to allocate an ECO you cannot allocate a code after a set number of moves and have a few problems.
To reach a position with an ECO of D69 you have to do it after reaching a position of D68 (move 12b), D67 (move 9b), D66 (move 8w), D63 (move 7w), D60 (move 6b), D55 (move 6w), D53 (move 4b), D50 (move 4w), D35 (move 3b), D31 (move 3w), D30 (move 2b), D06 (move 2w), D00 (move 1b)
This means that if checking a position for an ECO code in the extreme case of D69 you actually get matching results for 14 wrong ECO codes before reaching the correct one.
You can also use an approach based on a FEN position. The problem with this is you can miss positions very easily through move order tricks. For example 1.e4 c5 2.Nf3 d6 3.d4 cxd4 is standard open Sicilian starting position. However you can also get 1.e4 c5 2.Nc3 d6 3.Nf3 Nf6 4.d4 cxd4 that will transpose into exactly the same lines but will bypass the move 3 position. This means that in practice a D60 won't always arise from a D55 move order with for example 1.c4 c6 2.e4 d5 3.exd5 cxd5 4.d4 is the Panov-Botvinnik attack of the Caro-Kann aka B13 rather than anything in A's for English as it transposes to 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4
You can also get interesting questions like if a game starts 1.e3 e5 2.e4 should the eco code for 1.e4 e5 be used but from a reversed viewpoint or should it end up in A00 if you reach same position as C99 with colours reversed. There's also issue of whether 1.e3 e6 2.e4 e5 should fall under same ECO code as 1.e4 e5 as position is identical but there's one extra move that can be relevant when one side has option of a perpetual.
Even if you solve these problems among other you also have issues of adoption and it potentially breaking legacy applications. For example if a database is used to store ECO names and it's stored as a hexadecimal (0-9 + A-F) value of max length 3 anything larger would break it. If wanting to be really code efficient you can use 9 bits of data that gives you 512 values that just covers every ECO. On top of that you'll have players needing to get used to new codes and it could be like changes from descriptive to algebraic notation.
Overall I think ECO is far from perfect but I think replacing with something better would take a lot of work, could still end up flawed and give little benefit. I also think that's why no one has done so up until now
Actually as far as I'm concerned ECO only really has one practical use. When doing opening preparation against an opponent you'll often see the names of the players, result, ratings, tournament and ECO.
Knowing the ECO allows you to do three important things:
1. What openings they play at a glance
2. Whether it's a game that will involve lines you're likely to play
3. It can be used as a database filter if researching lines
One problem is that ECO codes are based on starting positions of arbitrary length. As an example I'll give:
D68 1. d4 d5 2. c4 e6 3. Nc3 Nf6 4. Bg5 Be7 5. e3 O-O 6. Nf3 Nbd7 7. Rc1 c6 8. Bd3 dc4 9. Bc4 Nd5 10. Be7 Qe7 11. O-O Nc3 12. Rc3 e5
D69 1. d4 d5 2. c4 e6 3. Nc3 Nf6 4. Bg5 Be7 5. e3 O-O 6. Nf3 Nbd7 7. Rc1 c6 8. Bd3 dc4 9. Bc4 Nd5 10. Be7 Qe7 11. O-O Nc3 12. Rc3 e5 13. de5 Ne5 14. Ne5 Qe5
In contrast I'll give another ECO
D30 1. d4 d5 2. c4 e6
This means that when trying to code something to allocate an ECO you cannot allocate a code after a set number of moves and have a few problems.
To reach a position with an ECO of D69 you have to do it after reaching a position of D68 (move 12b), D67 (move 9b), D66 (move 8w), D63 (move 7w), D60 (move 6b), D55 (move 6w), D53 (move 4b), D50 (move 4w), D35 (move 3b), D31 (move 3w), D30 (move 2b), D06 (move 2w), D00 (move 1b)
This means that if checking a position for an ECO code in the extreme case of D69 you actually get matching results for 14 wrong ECO codes before reaching the correct one.
You can also use an approach based on a FEN position. The problem with this is you can miss positions very easily through move order tricks. For example 1.e4 c5 2.Nf3 d6 3.d4 cxd4 is standard open Sicilian starting position. However you can also get 1.e4 c5 2.Nc3 d6 3.Nf3 Nf6 4.d4 cxd4 that will transpose into exactly the same lines but will bypass the move 3 position. This means that in practice a D60 won't always arise from a D55 move order with for example 1.c4 c6 2.e4 d5 3.exd5 cxd5 4.d4 is the Panov-Botvinnik attack of the Caro-Kann aka B13 rather than anything in A's for English as it transposes to 1.e4 c6 2.d4 d5 3.exd5 cxd5 4.c4
You can also get interesting questions like if a game starts 1.e3 e5 2.e4 should the eco code for 1.e4 e5 be used but from a reversed viewpoint or should it end up in A00 if you reach same position as C99 with colours reversed. There's also issue of whether 1.e3 e6 2.e4 e5 should fall under same ECO code as 1.e4 e5 as position is identical but there's one extra move that can be relevant when one side has option of a perpetual.
Even if you solve these problems among other you also have issues of adoption and it potentially breaking legacy applications. For example if a database is used to store ECO names and it's stored as a hexadecimal (0-9 + A-F) value of max length 3 anything larger would break it. If wanting to be really code efficient you can use 9 bits of data that gives you 512 values that just covers every ECO. On top of that you'll have players needing to get used to new codes and it could be like changes from descriptive to algebraic notation.
Overall I think ECO is far from perfect but I think replacing with something better would take a lot of work, could still end up flawed and give little benefit. I also think that's why no one has done so up until now
Encyclopaedia of Chess Openings contains cross references. If you are in same code, it says for exampe: "3... d5 - 2. f4." Or if you are for example in C00 with the line 1. e4 e6 2. c4 d5 3. cd5 ed5 4. ed5 Sf6, then the move 4. ... Sf6 has the foot note: 4. ... Dd5 5. Sc3 Dd8 6. Lc4 Ld6 7. d4 Sf6 8 Sf3 - D20. (I hope I did no typo)
Encyclopaedia of Chess Openings contains cross references. If you are in same code, it says for exampe: "3... d5 - 2. f4." Or if you are for example in C00 with the line 1. e4 e6 2. c4 d5 3. cd5 ed5 4. ed5 Sf6, then the move 4. ... Sf6 has the foot note: 4. ... Dd5 5. Sc3 Dd8 6. Lc4 Ld6 7. d4 Sf6 8 Sf3 - D20. (I hope I did no typo)
ECO is history and not useful anymore as chess database programs are able to find the games for a given position in a second.
But interesting is a classification of middle game positions. It is what you aim for when choosing an opening. Something like Isolany, Hanging pawns, Carlsbad, Maroczy, Benoni strucure. Then you have no problems with the fact that isolany positions can occure in many openings.
ECO is history and not useful anymore as chess database programs are able to find the games for a given position in a second.
But interesting is a classification of middle game positions. It is what you aim for when choosing an opening. Something like Isolany, Hanging pawns, Carlsbad, Maroczy, Benoni strucure. Then you have no problems with the fact that isolany positions can occure in many openings.
