Final standings
Koivisto and Minic advance to league 1. Koivisto led the league from the start and its promotion was never in doubt. It won all its game pairs except one (two white wins against Vajolet in the first DRR). Seer was always close to Minic, Seer beat Minic in one game pair but Minic had a better score against the lower ranking engines. Seer did not recover from its loss to ClassicAra, and it finished 3rd.
Winter and Vajolet are relegated to league 3. ClassicAra and Halogen also struggled against relegation. ClassicAra was last after RR2, it lost game pairs to Winter and Vajolet. However it improved in the second DRR with game pair wins against Seer, Winter and Vajolet. Halogen survived after winning two game pairs against Winter.
Koiovisto and Seer promoted from league 3, while Berserk did not after finishing a close 3rd. Considering the results of league 2 I think it is reasonable that Berserk would have been in the top half of league 2 if it had played there. It is difficult to predict if it would have promoted to league 1. Koivisto was better when they played together in league 3, but I think there would have been a race between Minic, Seer and Berserk for the second promotion spot. Anything can happen with such a small sample size.
Koivisto and Minic will join the following engines in league 1:
played in season 21 premier division: Ethereal
played in season 21 league 1: SlowChess, Revenge (previously known as Pedone), rofChade, Nemorino.
Interesting games
game 3, Halogen - Winter: Halogen had a small eval advantage from the start, with almost no exchanges. On move 17 Winter started a series of moves which didn't seem right. It traded an active knight for a passive bishop, then lost a pawn and gave a rook for a bishop. Finally it gave two more pawns and the other rook for a knight. On move 27 Halogen had a large material advantage, Winter had a very questionable attack on the white king. Halogen exchanged pieces and won easily.
game 4, Koivisto - Vajolet: Koivisto was a pawn up with a passer on the queen side, the center was blocked and Koivisto had more space and an eval advantage. Somehow Koivisto moved a rook into a trap on the king side, the engines started to shuffle and evals drifted slowly down. On move 92 Koivisto gave its trapped rook for a knight and pawn, the shuffle continued with a few pawn moves. Vajolet blundered in time trouble, on move 166 Koivisto exchanged queens and then managed to get enough passers forward to win material. The game reached a RN vs R ending and there were enough pawns for a white win, mate on move 221.
game 10, Halogen - ClassicAra: ClassicAra was a pawn up from the start. Both kings did not castle, there were many exchanges and the game reached a rook ending with ClassicAra still ahead by a pawn. The black rook was more active, ClassicAra managed to extend its leads to 3 pawns, enough to win.
game 18, Koivisto - Minic: Minic tried to block the board with a long pawn line. Koivisto used exchanges to open holes in the line and create connected passers behind the black pawns. Minic tried to attack the white king but was not strong enough. Koivisto forced its way on the queen side, gained material and won.
game 25, Koivisto - Fritz: Fritz grabbed a pawn, a few moves later Koivisto opened the king side and attacked the black king. Fritz lost material to find safety for its king and the game reached a RRB vs Q position. Koivisto was careful to keep its pieces protected, the material advantage was enough for a win 30 moves later.
game 27, Winter - Minic: Winter had an eval advantage from the start, it had a queen side passer that Minic blocked. Evals came down and the engines mostly shuffled, evals became negative as Minic gained space but still the engines blitzed and shuffled. On move 136 Winter exchanged a pair of rooks creating a passer for Minic. Minic then reduced to a queen ending two pawns up, Winter delayed with check as much as it could but was mated in the end on move 180.
game 30, Seer - Minic: Minic concentrated forces on the king side with doubled rooks in an open file. The white king moved to the safer queen side, then Seer opened a file on the queen side and attacked. In a QRB vs QRB position the white king moved forward but Minic could not threaten it, Seer captured two pawns and reduced to a winning king and pawns ending.
game 32, Vajolet - Koivisto: Both engines had advanced passers, Vajolet with a knight and two pawns for a rook. Koivisto overlooked the possibility of a pawn promoting to a knight with check on its king, its eval jumped immediately. Vajolet had time to protect its king and capture a pawn, the engines reduced to a BNN vs RBN position. Vajolet pushed one passer and forced exchanges that left only BN vs BN, then captured all black pawns. The ending with two isolated white pawns was long and tricky, it took more than 50 moves to queen a passer and win. There were two white wins in this opening, but the result is more related to the engines than directly to the opening.
game 38, ClassicAra - Halogen: Halogen was a pawn up with an eval advantage from the start. The black queen moved forward on the queen side, this let ClassicAra develop a strong attack on the king side. Evals became positive and high, eventually the engines reduced to a RB vs RN position with white two pawns up. However, despite having two passers ClassicAra failed to convert though it kept playing, the game was finally adjudicated on move 268.
game 39, Seer - Koivisto: Koivisto was a pawn up with an eval advantage from the start. The engines exchanged several minor pieces and queens, there were no exchanges after move 23, only shuffles and pawn pushes. On move 73 Koivisto exchanged a few pawns and opened the king side, with (negative) evals increasing. On move 94 Koivisto captured another pawn and only RRN vs RRN remained. Koivisto pushed pawns very slowly, it took more than 40 moves to mate.
game 41, Winter - Fritz: Fritz captured two pawns on the queen side, and then castled long with its king open to attacks on semi open files. Evals jumped as the engines reduced to a BB vs B position. It took Winter a while to break up the black pawn structure, but then its bishops captured the pawns gradually. The game ended in a tablebase win for white.
game 47, ClassicAra - Vajolet: ClassicAra was a pawn up in a N vs B ending. Progress was very slow but eventually ClassicAra managed to capture two more pawns and finally queen a pawn on move 127. However, 3 moves later in a 7-man winning position it failed to move on time (though it had over a minute left on the clock).
game 49, Seer - Fritz: Seer was a pawn up with an advanced passer, but from move 41 it started to shuffle without a plan. I don't know if it could have won, but in any case since Seer has no awareness of the 50-move rule the game ended in a draw before we could find out.
game 51, Vajolet - Minic: Vajolet gave up a perpetual check draw and had to deal with a passer on the 2nd rank instead. Vajolet gave checks for as long as it could, but eventually Minic queened and mated.
Standings after RR2: Koivisto +6, Minic +4, Seer +2, Fritz 0, Halogen Vajolet -2, Winter -3, ClassicAra -5. Koivisto has a comfortable lead after winning game pairs against all the other engines except Vajolet. Minic lost game pairs to Koivisto and Seer, but was better against the lower ranked engines including two double wins. Seer is a point behind Minic, it only has 2 game pair wins against lower ranked engines to add to its win against Minic. At the bottom ClassicAra was even after the first RR but had 5 losses in the reverse games, including a time loss/crash in a winning position. Halogen, Vajolet and Winter are struggling against relegation.
game 59, Halogen - Winter: Halogen gave a pawn but its pieces were better, it had a protected knight on the 6th rank and one of the black bishops was very passive without an open diagonal. Halogen doubled rooks on the a file and equalized material, then with a rook on the back rank it forced a series of exchanges and won a piece. The game ended in a tablebase win for white.
game 63, Seer - Halogen: The position was closed with all pawns on the board until move 45. When the position opened the engines reduced to a QRR vs QRB position with black two pawns up. Seer threatened the black king, Halogen gave its queen for two rooks to stop the attack. In a Q vs RB ending Seer's queen captured all the black pawns and secured the win with passers.
game 65, Minic - Fritz: All pieces were on the board until Fritz gave a rook for a bishop on move 33. Mintz reduced to a RRN vs RBB position, then gave back the exchange and went a pawn up in a N vs B ending. Fritz lost its bishop for a passer, Minic queened and mated.
game72, Minic - Halogen: The engines shuffled for a long time with almost all pieces and pawns on the board. Both engines were in blitz mode when evals started to jump after move 95. Minic opened the g file and attacked the black king. The engines reduced to a rook ending, Minic used mating threats and passers to win.
game 74, Koivisto - Minic: Koivisto had an eval advantage which gradually increased. The engines opened the queen side and Koivisto moved its major pieces there. Minic had a passer on the queen side, Koivisto blocked it and for a long time nothing happened. On move 78 Minic gave a pawn, not sure if that was necessary, evals jumped immediately. Koivisto captured the black passer, and then trapped a black rook that moved forward. Minic gave the rook for a bishop, Koivisto gradually gained more material until the game ended in a tablebase win.
game 81, Koivisto - Fritz: Koivisto had an eval advantage, but for a long while the engines either shuffled or moved a pawn with evals not changing. On move 47 there was a minor piece exchange and shuffling resumed. On move 65 evals started to increase, Koivisto created passers on the queen side and captured all the black pawns. Fritz lost more material and was soon mated.
game 84, Seer - ClassicAra: Seer had an eval advantage from the start, the center was blocked, Seer pushed pawns on the queen side and ClassicAra on the king side. ClassicAra gave a pawn and opened the king side, then concentrated forces facing the white king. Somehow Seer was not careful enough about the safety of its king, evals became negative. In a series of exchanges the game reached a RB vs RB position with black a pawn up, it took ClassicAra another 60 moves to reduce to a tablebase win.
Standings after RR3: Koivisto +9, Minic +7, Seer +3, Fritz -1, Halogen -3, ClassicAra -4, Vajolet -5, Winter -6. Koivisto and Minic extended their lead with a +3 score in RR3. Seer is losing touch with the leaders after its unexpected loss to ClassicAra. ClassicAra had a positive score in RR3, it climbs to 6th place and may avoid relegation.Vajolet and Winter drop down with a -3 score each.
game 94, ClassicAra - Halogen: The game reached a RB vs RB position on move 87, material was equal but ClassicAra had an eval advantage. It is possible ClassicAra could have won, but it only managed to capture a pawn and then to shuffle. Evals came slowly down and the game was adjudicated on move 196.
game 95, Seer - Koivisto: Seer had an eval advantage from the start, the engines exchanged pieces and pawns and evals came down, even though Seer was two pawns up with a queen side passer. Seer neglected its king and when Koivisto moved its queen forward to the king side evals became negative and started to jump. Koivisto captured the passer and two more pawns, the white king was vulnerable and Seer gave a bishop in desperation. The game reached a winning QN vs Q ending.
game 99, Koivisto - ClassicAra: The engines exchanged a pair of pawns and a pair of knights, and there were no more exchanges until move 48. Koivisto had an eval advantage but evals drifted slowly down. On move 73 evals started to increase, with both engines in blitz mode. Koivisto gave a pawn, opened the king side and moved a passer to the 7th rank. ClassicAra could not prevent loss of material and mate followed.
Standings with 3 rounds to go: Koivisto +12, Minic +7, Seer +3, Fritz 0, Halogen -3, ClassicAra -5, Vajolet Winter -7. Koivisto adds 3 wins and will finish first. Minic drew four games, but it will probably be second as it is 2 points ahead of Seer. Seer lost to Koivisto and drew against Minic, its chances of promotion are slim. Vajolet and Winter are last but both still have to face ClassicAra, so the relegation race is still active.
game 103, ClassicAra - Vajolet: There were many early exchanges and the game reached a doube rook ending. Vajolet had a passer but it couldn't push it beyond the 3rd rank. ClassicAra went a pawn up after exchanging a pair of rooks. Vajolet moved its king forward to support the passer, allowing ClassicAra to capture the remaining black pawns. ClassicAra gave its rook for the passer, its 4 remaining pawns were stronger than the black rook with no king support. The game ended in a tablebase win for white.
In round 26 ClassicAra beat Vajolet while Winter managed a draw against Seer. Scores at the bottom with two rounds to go: ClassicAra -4, Winter -7, Vajolet -8.
In round 27 Winter and ClassicAra drew their game, Vajolet survived against Minic. Winter and Vajolet are relegated with one round left to play.