{
  "fetched_at": "2026-10-19T17:12:05Z",
  "source_url": "https://www.kaggle.com/competitions/finding-elo/data",
  "pages": [
    {
      "name": "data-description",
      "content": "<p>A total of 50,000 games are provided in <a href=\"http://en.wikipedia.org/wiki/Portable_Game_Notation\">portable game notation</a> (pgn) format. Each game in the training set (the first 25,000 games) has both the white and black <a href=\"http://en.wikipedia.org/wiki/Elo_rating_system\">Elo rating</a>. Each game in the test set (the latter 25,000 games) omits the Elo ratings, which you must predict. Player ids were scrubbed from the data. The goal is to predict the Elo rating based on only a single game.</p>\r\n<p>Each game has the following format, with the move text in <a href=\"http://en.wikipedia.org/wiki/Algebraic_notation_(chess)\">Standard Algebraic Notation (SAN)</a>:</p>\r\n<pre>[Event \"1\"]<br />[Site \"kaggle.com\"]<br />[Date \"??\"]<br />[Round \"??\"]<br />[White \"??\"]<br />[Black \"??\"]<br />[Result \"1/2-1/2\"]<br />[WhiteElo \"2354\"]<br />[BlackElo \"2411\"]<br />\r\n1. Nf3 Nf6 2. c4 c5 3. b3 g6 4. Bb2 Bg7 5. e3 O-O 6. Be2 b6 7. O-O Bb7 8. Nc3 Nc6 9. Qc2 Rc8 10. Rac1 d5 11. Nxd5 Nxd5 12. Bxg7 Nf4 13. exf4 Kxg7 14.Qc3+ Kg8 15. Rcd1 Qd6 16. d4 cxd4 17. Nxd4 Qxf4 18. Bf3 Qf6 19. Nb5 Qxc3<br />1/2-1/2</pre>\r\n<p>The fields with question marks are necessary to comply with the pgn standard. Many chess engines use the <a href=\"http://en.wikipedia.org/wiki/Universal_Chess_Interface\">Universal Chess Interface (UCI) format</a>, which uses a different representation of the move text. In UCI, the above moves would be written as:</p>\r\n<pre>g1f3 g8f6 c2c4 c7c5 b2b3 g7g6 c1b2 f8g7 e2e3 e8g8 f1e2 b7b6 e1g1 c8b7 b1c3 b8c6 d1c2 a8c8 a1c1 d7d5 c3d5 f6d5 b2g7 d5f4 e3f4 g8g7 c2c3 g7g8 c1d1 d8d6 d2d4 c5d4 f3d4 d6f4 e2f3 f4f6 d4b5 f6c3 1/2-1/2</pre>\r\n<p>For convenience, you are provided the games in both formats. You may find <a href=\"http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/\">pgn-extract</a> useful if you wish to do conversions or analysis on your own. Note that some of the games may be incomplete/fragments.</p>\r\n<h2>Chess Engines</h2>\r\n<p>In addition to suggesting the best moves to make, a chess engine is capable of assessing the strength of a given board. Participants in this competition will likely want to use a chess engine to help decide whether a move is strong or weak. If you're more data scientist than chess expert, you can think of a chess engine as a kind of feature extractor for chess.</p>\r\n<p>To help you get started, we have run the games through the <a href=\"http://stockfishchess.org/\">Stockfish chess engine</a> (the world's strongest!) and provided the resulting scores in <strong>stockfish.csv</strong>. Computer programs typically represent the values of pieces and positions in centipawns (cp), where 100 cp = 1 pawn. The scores in stockfish.csv represent the current advantage, in cp, of white at each move in the game. For example, the sequence</p>\r\n<pre>18 17 12 8 -5 12 3 -2 22 21 20 13 8 21 11 3 -6 5 1 -10 -21 -1 -26 18 48 48 53 73 46 68 51 60 54 46 70 62 35 54</pre>\r\n<p>means white started with an 18 centipawn advantage and ended with 54 (this is small, and note that the associated game indeed ended in a draw). Negative values indicate black has the advantage. Here is an example of the scores in a game that black won:</p>\r\n<pre>26 51 68 57 65 77 48 93 61 63 63 58 53 46 69 29 30 27 -2 12 -11 0 -17 24 5 15 16 31 44 25 18 20 27 26 18 14 18 20 10 2 7 22 -28 -26 -30 -34 -29 -28 -49 -55 -51 -50 -82 -74 -83 -77 -92 -72 -105 -99 -106 -93 -129 -79 -87 -63 -66 -23 -34 -47 -37 -49 -76 -110 -90 -116 -193 -103 -144 -106 -108 -69 -80 -93 -96 -86 -105 -111 -138 25 -342 -335 -507 -534 -523 -494 -2427 -3977 -5009 -5103 -6282 -1273 -10851 -10958 -10866 -11544</pre>\r\n<p>Each move was analyzed for one second on one core in Stockfish. If the engine was not able to assess the move in one second or there are no sensible moves left in the game, the file contains \"NA\". Letting the computer evaluate the moves for a longer time will, in theory, provide a better estimate of position strength.</p>\r\n<p>Chess engines have standardized on a <a href=\"http://en.wikipedia.org/wiki/Universal_Chess_Interface\">communication protocol</a>, which will enable you to programmatically interface with the engine. Here is <a href=\"http://support.stockfishchess.org/kb/advanced-topics/uci-protocol\">a simple example</a> using the Stockfish engine.</p>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "<p>Elite chess players are rated, ranked, analyzed, and compared in many ways. Classical methods of ranking chess players have focused on game histories, paying particular attention to the relative strength of the players involved. This includes the popular <a href=\"http://en.wikipedia.org/wiki/Elo_rating_system\">FIDE Elo</a> score, which was the focus of one of Kaggle's first ever competitions - <a href=\"http://www.kaggle.com/c/chess\">Elo vs. the Rest of the World</a>.</p>\r\n<p>Recent work on chess analysis has focused on intrinsic performance ratings, where one assesses skill based on the quality of decisions rather than the outcomes of games. For an example of this kind of approach, see <a href=\"http://www.cse.buffalo.edu/~regan/papers/pdf/Reg12IPRs.pdf\">this draft</a> by <a href=\"http://www.cse.buffalo.edu/~regan/\">Kenneth Regan</a>. Two advantages of an intrinsic approach are an increased sample size (there are many more moves than games) and the ability to approach new challenges, such as determining whether a player is cheating by performing moves above their skill level.</p>\r\n<p>This competition challenges Kagglers to determine players' FIDE Elo ratings at the time a game is played, based solely on the moves in one game. Do a player's moves reflect their absolute skill? Does the opponent matter? How closely does one game reflect intrinsic ability? How well can an algorithm do? Does computational horsepower increase accuracy? Let's find out!</p>\r\n<p>You do not need to be a chess expert -- or even know how to play chess -- to attempt this competition. You do need patience and a computer that doesn't mind some heat. The dataset includes 50,000 games between elite, ranked players. As a getting-started computational bonus, Kaggle has run these games through a <a href=\"http://en.wikipedia.org/wiki/Chess_engine\">chess engine</a> to score each move.</p>\r\n<p>Good luck finding Elo!</p>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "<p>Submissions are evaluated using the <a href=\"https://www.kaggle.com/wiki/MeanAbsoluteError\">mean absolute error</a>.</p>\r\n<h3>Submission File</h3>\r\n<p>For each game in the test set, you should predict the Elo rating of both the black and white player. The file should contain a header and have the following format:</p>\r\n<pre>Event,WhiteElo,BlackElo<br />25001,1000,2000<br />25002,2000,1500<br />25003,1746,2200<br />etc...</pre>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "\r\n\t<!-- Begin Base Rules -->\r\n    <h3>One account per participant</h3>\r\n    <p>You cannot sign up to Kaggle from multiple accounts and therefore you cannot submit from multiple accounts.</p>\r\n    <h3>No private sharing outside teams</h3>\r\n    <p>\r\n        Privately sharing code or data outside of teams is not permitted.\r\n        It's okay to share code if made available to all participants on the forums.\r\n    </p>\r\n    <h3>Team Mergers</h3>\r\n    <p>\r\n        Team mergers are allowed and can be performed by the team leader. In order to merge, the combined team must have a total submission count less than or equal to the maximum allowed as of the merge date. The maximum allowed is the number of submissions per day multiplied by the number of days the competition has been running.<br/>\r\n    </p>\r\n\r\n    <h3>Team Limits</h3>\r\n    <p>There is no maximum team size.</p>\r\n    <h3>Submission Limits</h3>\r\n    <p>You may submit a maximum of 5 entries per day.</p>\r\n    <p>You may select up to 2 final submissions for judging.</p>\r\n    <h3>Competition Timeline</h3>\r\n    <p>Start Date: <strong>10/20/2014 4:53 PM UTC</strong></p>\r\n    <p>Merger Deadline: <strong>None</strong></p>\r\n    <p>Entry Deadline: <strong>None</strong></p>\r\n    <p>End Date: <strong>3/23/2015 11:59 PM UTC</strong></p>\r\n\t<!-- End Base Rules -->\r\n<ul>\r\n<li><span style=\"font-size: 1em; line-height: 1.5em;\">Due to the public nature of the data, this competition does not count towards Kaggle ranking points.</span></li>\r\n<li><span style=\"font-size: 1em; line-height: 1.5em;\">We ask that you respect the spirit of the competition and do not cheat. You should not submit entries based on test-set answers or train your model on the test set. Hand labeling is also forbidden. Kaggle may take punitive action on accounts that violate these rules.</span></li>\r\n</ul>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}