In my own games I have seen fewer advance Caro-Kann games (1. e4 c6 2. d4 d5 3. e5) than the semi-open games (3. Nc3 or 3. Nd2) or the Botvinnik systems (3. exd5 cxd5 4. c4 or 2. c4).

My questions are:

  1. Has the advance Caro-Kann become less popular at club or master level?
  2. How do we know? E.g. how can we mine a database to show opening popularity over time?
  • 1
    As for 2. Plot number of games played in a specific opening per month/year (or any other suitable time interval; such that you have a sufficient number of games in that interval. Mar 31, 2017 at 23:56
  • @user1583209: True, but I'm asking more 'how to create that plot', i.e. which source would people use and how would the interrogate the data?
    – user1108
    Apr 1, 2017 at 8:12
  • Not sure I understand your problem. You could take whatever general database with dates you have. (Want to avoid any databases that specialize in one opening only.) Then you could use for instance pgn-extract to extract games by date (-Td flag) and ECO code (-TeB12) to give you games in the Caro-Kann advance variation for the specified year. (if there are no ECO code annotations in the database you could also match the position after the third white move) Apr 4, 2017 at 10:50

2 Answers 2



From the plot of games played under the Caro-Kann ECO codes (B10-19), the advance variation (in B12, but B12 does hold some other miscellaneous variations) has been consistently the most popular line since the 1990's and peaked at 1,803 games in 2008.

Number of Caro-Kann games over time


  • I extracted the games from the Fritz for Fun 13 into PGN format
  • I ran the following R code, which extracts the year (mandatory) and the ECO (optional). The games are filtered to ECO codes B10-19 (Caro-Kann) and for games from 1927. Why 1927? That is when it debuted at the top:

He [Capablanca] used it [the Caro-Kann] in his crushing strategic destruction of Aaron Nimzowitsch in the great New York tournament of 1927.

Source: The Caro-Kann: Move-by-Move by IM Lakdawala

  • The raw number of games are then plotted over time. Unfortunately my data only goes to 2009

library(ggplot2) # For making the charts look nice

dat <- readLines("C:/Users/Peter/SkyDrive/Chess/Fritz for fun 13 database.pgn") # Read in the data from a local file

eco <- dat[grep("\\[ECO ",dat)] # Extract the ECO, if there is one 
eco <- sub("\\[ECO \"","",eco) 
eco <- sub("\"\\]","",eco)

year <- dat[grep("\\[Date ",dat)]
year <- sub("\\[Date [\"]","",year)
year <- sub("\\..*","",year)
year <- as.numeric(year)

ecoindex <- grep("\\[ECO ",dat) # Find which lines have an eco
yearindex <- grep("\\[Date ",dat) 
yearindex <- yearindex + 5 # The date is always the 3rd pgn tag and is mandatory. The ECO, if present, is the 8th tag
matchindex <- yearindex %in% ecoindex  # This code finds which games have both a year and eco tag

year <- year[matchindex] # Filter out games without an ECO

countgame <- table(eco,year)
countgame <- as.data.frame(countgame) # Convert to a data frame

Carocode <- paste("B",10:19,sep="") # ECO codes for the Caro-Kann are B10-B19

Carogame <- countgame[which(countgame$eco %in% Carocode),] # Keep the data for the Caro-Kann ECO codes

Carogame$year <- as.numeric(as.character(Carogame$year))
Carogame <- Carogame[Carogame$year>=1927,]

p1 <- ggplot(Carogame,aes(x=year,y=Freq,group=eco))+geom_line(aes(colour=eco)) # Plot count of games

p1 <- p1 + ggtitle("Number of Caro-Kann games over time") + ylab("Number of games")

  • 1
    paste0("B",10:19) is a tad simpler than paste("B",10:19,sep="") ;)
    – Evargalo
    Nov 7, 2017 at 8:59

This advanced Caro-Kann is so tricky that few players have interest in this opening , This is much more complicated opening that sicilian dragon or the scotch game mieses variation also (i think).But it is playable , and it is recently also played in the game between Veselin Topalov and Hikaru Nakamura (2016)london chess classics .But Topi lost in that game. http://www.chessgames.com/perl/chessgame?gid=1848832

  1. e4 c6 2. d4 d5 3. e5 c5 4. dc5 Nc6 5. Nf3 Bg4 6. c3 e6 7. b4 a6 8. Nbd2 Ne5 9. Qa4 Nd7 10. Ne5 Ngf6 11. c4 a5 12. Nb3 ab4 13. Qb5 Be7 14. c6 bc6 15. Nc6 Qc7 16. f3 Bf5 17. Ne7 Rb8 18. Nf5 Rb5 19. Ng7 Ke7 20. cb5 Nc5 21. Bb2 Nb3 22. ab3 Qf4 23. Be2 Rc8 24. Rd1 Qg5 25. b6 Rc2 26. Bf6 Qf6 27. Nh5 Qc3 28. Kf1 Qe3 29. Re1 Qb6 30. Nf4 Qe3 31. g3 Qb3 32. Kg2 Kf8 33. Kh3 Qb2 34. Rb1 Qf6 35. Rhe1 e5 36. Nd5 Qe6 37. Kg2 Qd5 38. Rb4 Qd2 39. Rb8 Kg7 40. Kf1 Qh6 41. Kg2 e4 42. Rb3 Qe6 43. Re3 ef3 44. Kf3 Qh3 45. Rd1 Qh5 46. Kf2 Qh2 47. Kf3 Rc6 48. Rd4 Rg6 49. g4 Rf6 50. Ke4 Qh1 51. Kd3 Qb1 52. Kd2 Qb2 53. Kd3 Rc6 0-1 It is also reviewed by GM Daniel King - https://www.youtube.com/watch?v=UPQJWJcGbzg
  • 7
    As it stands, this doesn't answer the question. If the advance Caro is becoming less popular, then its complexity may be a reason why.
    – user1108
    Apr 4, 2017 at 8:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy