← Back to blog

Use ECO Codes to Build 5 Step Opening Plans for Chess Coaches

September 22, 2026
Use ECO Codes to Build 5 Step Opening Plans for Chess Coaches

ECO codes are the A00 through E99 identifiers that the Encyclopaedia of Chess Openings uses to classify chess openings by move sequence. Every code groups a family of related lines under one shorthand, so a game database or GUI can tag, filter, and count openings automatically. For analysis, that means you can pull every Najdorf Sicilian you have played, or every Queen's Gambit Declined a student has faced, in one search instead of scrolling through months of games by hand.


TL;DR:

  • ECO codes cover five broad categories of openings, with each letter representing a specific family and numbers narrowing down to variations, from flank openings to Indian defenses.
  • Transpositions often cause misclassification, so checking the move sequence is essential before trusting an ECO tag, especially in highly analyzed or transposed positions.
  • Using ECO ranges instead of exact codes helps capture all related variations when filtering large game collections for study or analysis.
  • Software like Nexa Chess automates grouping games by ECO lines and analyzes them with Stockfish, streamlining the process of identifying and addressing recurring opening mistakes.
  • ECO codes serve as a practical shorthand for opening classification but should be used as an index rather than a definitive assessment of opening quality or theory validity.

Nexachess
Turn Opening Data Into Better Study
Nexa Chess groups your games and uses Stockfish analysis to reveal recurring opening mistakes and strategic patterns over time.
Explore Nexa Chess

Table of Contents

What Do ECO Codes Actually Cover?

The system splits into five volumes, A through E, each covering 100 numbered subcategories from 00 to 99. That range is what most players mean when they say "ECO codes chess" classification. Chess Informant built and still owns the standard, first compiling it across five printed volumes that eventually became the digital reference every major database now leans on, as documented on Wikipedia's ECO overview.

Each letter marks a broad family of openings, and the numbers inside it narrow things down to specific variations and sub-variations:

  • A00 to A99: Flank openings and irregular first moves, including 1.b3, the Bird's Opening at A02, and the English Opening starting around A10.
  • B00 to B99: Semi-open games where Black replies to 1.e4 with something other than 1...e5, covering the entire Sicilian Defense from B20 to B99 and the Caro-Kann around B10.
  • C00 to C99: Open games built on 1.e4 e5 and the French Defense, with the French living at C00 and the Ruy Lopez sprawling from C60 to C99.
  • D00 to D99: Closed games and the Queen's Gambit complex, with the Queen's Gambit itself running roughly D06 to D69.
  • E00 to E99: Indian systems, splitting the Nimzo-Indian around E20 to E59 from the King's Indian Defense at E60 to E99.

The letter tells you the opening's general character. The number tells you exactly which branch you are looking at. That two-part shorthand is why a coach can say "review your B90s" and every serious player instantly knows that means the Najdorf Sicilian, no further explanation needed.

How Are ECO Codes Assigned, and Where Does It Get Messy?

An ECO code is not assigned by opening name. It is assigned by matching the actual sequence of moves, or plies, in a game against a reference tree of known lines. According to chessprogramming.org's ECO documentation, that matching depth typically runs anywhere from 1 to about 28 half-moves depending on how deep the position has been theorized. A quiet flank opening might lock in its code after four plies. A heavily analyzed Sicilian line might not settle into its final subcode until move 14 or later.

How move sequences receive ECO codes

That depth-based matching creates a real problem: transpositions. Two games can reach the identical board position through completely different move orders, and depending on which move order the database recognizes first, they can land on different ECO codes. A Queen's Gambit Declined that transposes into a Catalan structure might get tagged under D or E depending on exactly how the moves fell. This is not a rare edge case. It happens constantly in club-level games where players are not following main-line theory move for move.

Software handles this inconsistently. ChessBase's own documentation confirms that its GUI can insert or correct ECO tags automatically, but other databases and engines apply their own heuristics, and Chess Informant's implementation, as the trademark holder, does not always agree with a third-party tool's guess.

  • Don't trust a single ECO tag when a position is known for heavy transposition traffic.
  • Search by a range (like B20–B99) instead of one exact code when you want every version of an opening family.
  • When a PGN import shows an ECO tag that looks wrong, check the actual move sequence before assuming the game is mislabeled.

Pro Tip: When a game's ECO tag looks off, don't delete it. Cross-check the first eight to ten moves against the official code definition first. Half the time the tag is correct and the "wrong" opening name in your head is the actual mistake.

A Workflow for Turning ECO Tags Into Real Study Plans

Knowing the code ranges is only useful if it changes what you study. Here is a workflow that turns raw ECO metadata into a weekly training plan, whether you are coaching a student or reviewing your own games.

  1. Identify the opening moves for the game in question. Note the first six to ten moves rather than relying on the label your platform assigned.
  2. Find the matching ECO code or range. Use a published list like the one on Wikipedia's list of ECO codes to confirm the code fits the actual moves played, not just the opening's popular name.
  3. Filter and group your games by that code or range. Pull every game in that family together so patterns across ten or twenty games become visible instead of buried in single-game review.
  4. Run engine and phase-specific analysis on the grouped set. This is where separating opening mistakes from middlegame or endgame mistakes matters. A repeated loss in the same ECO family might actually be a middlegame plan problem, not an opening problem.
  5. Extract the recurring error and build a drill around it. If five games in the same Sicilian line all lose the thread around move 15, that is your next week's study target.

Nexa Chess automates most of that pipeline. It imports games directly from Lichess and Chess.com, consolidates them into one dashboard, and runs Stockfish-based analysis broken out by opening, middlegame, and endgame phases so a recurring opening mistake does not get lost inside a broader accuracy score. The platform also groups games by their ECO opening lines automatically and surfaces which mistakes repeat most often, which is the exact grouping step described above done without manual filtering. It even estimates a virtual FIDE rating from your online games, giving coaches an extra data point when a student's Lichess rapid rating and their actual playing strength do not obviously match up.

The output of step five should not be vague. "Study the Sicilian more" is not a drill. "Review the pawn break timing in three specific B90 games where the same structural mistake occurred" is a drill, and that level of specificity is only possible once games are grouped by ECO family.

A Quick ECO Cheat Sheet for Fast Filtering

Keep this nearby when you are scanning a batch of games and need to know which range to search first.

RangeFamilyExample codes
A00–A99Flank and irregular openingsA02 Bird's Opening, A10 English Opening
B00–B99Semi-open games (1.e4, not 1...e5)B10 Caro-Kann, B20–B99 Sicilian Defense
C00–C99Open games (1.e4 e5 and the French)C00 French Defense, C60–C99 Ruy Lopez
D00–D99Closed games and Queen's Gambit linesD06–D69 Queen's Gambit
E00–E99Indian defensesE20–E59 Nimzo-Indian, E60–E99 King's Indian

When a search on one exact code turns up suspiciously few games, widen it. A Ruy Lopez search on C84 alone will miss transposed games sitting a few codes over at C78 or C90. Searching the full C60–C99 band first, then narrowing once you see the spread, wastes less time than guessing the precise code up front.

Where the ECO System Actually Came From

Chess Informant began publishing systematic opening surveys in the 1960s and 1970s, and out of that work came the five-volume reference that eventually formalized into the A through E letter system used today, according to the Encyclopaedia of Chess Openings' own history. Before that, opening theory existed mostly as scattered analysis in books and magazines, organized by author preference rather than any shared standard.

What made the ECO system stick was timing. It arrived just as international tournament play was expanding and players needed a common reference language that worked across countries and languages. A code like B90 means the same thing to a coach in Manila as it does to one in Madrid, regardless of what either of them calls the opening in their own language. That universality is arguably the system's biggest contribution, bigger than any individual classification decision inside it.

Digital databases adopted the ECO structure wholesale once computer chess tools became standard in the 1990s, embedding the codes directly into PGN file headers. That is why nearly every modern platform, from ChessBase to Lichess to Chess.com, still tags games with ECO codes today. The system was built for print and somehow turned out to be perfectly suited to database search decades later.

Where the ECO System Falls Short

The biggest limitation is one already covered: transpositions can put functionally identical positions under different codes depending on move order, and that inconsistency compounds across large game collections. A coach filtering 200 games by ECO code might miss a chunk of relevant games sitting under a neighboring code because of how a database's matching engine handled a transposition.

The second limitation is granularity mismatch. Some codes cover an enormous amount of ground. The Sicilian's B20–B99 range spans dozens of genuinely distinct strategic setups, from the Najdorf to the Dragon to the Alapin, all lumped into one 80-code band. Meanwhile, some rarely played sidelines get their own dedicated code despite almost never appearing in real games. The system was not built with even distribution in mind. It was built by category, and categories do not always map cleanly onto how often lines actually get played.

There is also a staleness problem. Opening theory keeps evolving, and new move-order tricks or engine-discovered ideas sometimes do not fit cleanly into the code structure written decades ago. A code tells you the position reached, not why a modern grandmaster reaches it that way or what the current theoretical assessment is. Treating an ECO code as a verdict on a line's soundness is a mistake. It is a filing system, not a theory review.

Finally, ECO codes say nothing about move quality. A code applies whether the position was reached through a strong plan or a blunder. Filtering by code tells you what opening was played, never whether it was played well.

Where the ECO System Falls Short — overview diagram

How ECO Codes Compare to Other Classification Systems

Chess Informant, the organization behind ECO, also publishes its own periodical opening surveys and annotation system, which layers qualitative commentary on top of the same code structure rather than replacing it. That periodical approach adds context ECO codes alone cannot: which lines are currently trending at top level, which have fallen out of favor, and why.

Some databases and engines build their own internal opening trees that do not map one-to-one onto ECO at all, instead organizing by exact move sequence or by engine evaluation clusters. These systems can be more precise for a single specific line, but they sacrifice the cross-platform portability that makes ECO useful in the first place. A custom internal tree in one piece of software means nothing when you export a PGN to a different platform.

The practical reality for most coaches is that no alternative has displaced ECO as the shared reference layer, even with its flaws. The smart approach is not choosing one system over the other. It is using ECO for broad filtering and grouping, then layering engine evaluation and, where available, periodical commentary on top for the qualitative judgment ECO codes were never designed to provide.

What ECO Codes Are Good For (and What They Are Not)

ECO codes exist to let players and coaches talk about openings in the same shorthand regardless of what platform they use or what language they speak. That is genuinely useful, and it is why the system has survived unchanged in structure for decades. Where things go wrong is when players start treating a code as settled theory instead of a filing label. A B90 tag tells you the moves played. It tells you nothing about whether that particular game followed sound modern theory or whether the player wandered off into a dubious sideline on move nine.

The right habit is to use ECO grouping to find the games worth reviewing, then let engine evaluation and current theory decide what those games actually teach you. Treat the code as the index, not the answer.

— carles

Try ECO-Coded Analysis Without the Manual Filtering

Everything above works better with a tool that groups the games for you instead of leaving that filtering to a spreadsheet. Nexa Chess pulls games straight from Lichess and Chess.com, sorts them by ECO opening line automatically, and runs Stockfish-based phase analysis so you can see whether a repeated loss traces back to the opening itself or to what happened twenty moves later.

Nexachess

The platform also flags recurring mistakes across your imported games and provides a reference point beyond your rapid pool rating. None of this requires a subscription. Nexa Chess is free forever, with no card required to start. If you want to see your own games grouped by opening family instead of doing it by hand, import your Lichess or Chess.com history and let the ECO breakdown do the sorting.

Sources

FAQ

What Does ECO Stand for in Chess?

ECO stands for Encyclopaedia of Chess Openings, the classification system published by Chess Informant that assigns every opening a code between A00 and E99, based on its move sequence, as described in the Encyclopaedia of Chess Openings' history.

How Many ECO Codes Are There?

There are 500 total codes, spread across five volumes (A through E) with 100 subcategories each (00 through 99), covering everything from flank openings to Indian defenses.

Why Do Two Games With the Same Opening Get Different ECO Codes?

This usually happens because of transpositions, where the same final position is reached through a different move order, and the database's matching logic assigns a different code based on which sequence it recognizes first, a known issue documented on the Chess Programming Wiki.

Can I Fix an Incorrect ECO Tag in My Game Database?

Yes. Most GUIs, including ChessBase, allow manual correction of ECO metadata, and the recommended approach is verifying the actual move sequence against the official code definition before changing the tag, per ChessBase's classification guide.

Does Nexa Chess Use ECO Codes in Its Analysis?

Yes. Nexa Chess groups imported Lichess and Chess.com games by their ECO opening lines and pairs that grouping with Stockfish-based phase analysis, making it easier to spot recurring opening mistakes across many games at once.