
Who let the cows out?
A January 2025-May 2026 Lichess study of tucked Cow setups, single-cow redeployments, and the full b/g-file knight shuffle.
Score % is from the Cow side's perspective: win = 1, draw = 0.5, loss = 0. Frequency counts are player-side occurrences divided by total games; a single game can theoretically contain a Cow setup for White, Black, or both.
Credit: The Cow Opening was created and named by Anna Cramling. See her video introducing the idea here: Anna Cramling's Cow Opening video. This article studies the online footprint of that idea at scale, while using a deliberately broad detector for Cow-like tucked-knight structures and later b/g-file redeployments.
Headline findings
- The tucked Cow setup showed up 25,194,424 times, or about 162.7 occurrences per 10,000 games.
- After reaching the tucked setup, players redeployed at least one cow 34.9% of the time, but completed the full two-knight b/g redeployment only 4.9% of the time.
- One-or-more cow redeployments scored 49.1% and won 47.2%, which was +0.5% better by win rate than tucked setups where no cow went out.
- The full two-cow redeployment scored 48.5% and won 46.7%, essentially flat versus tucked-only setups overall: +0.0% by win rate.
- Compared with a weighted all-game baseline using the same mix of rating bucket, game type, and side color, any-cow redeployments had a -0.2% win-rate gap, while full two-cow redeployments had a -1.0% gap.
- Timing does suggest practical friction: opponents averaged 2.11s per move over their first 10 moves when a cow redeployed, compared with 1.90s when the setup stayed tucked-only.
- The clean first-pass read is not “the Cow crushes.” It is closer to: the tucked setup is surprisingly common as a structure, one cow out performs modestly better than stopping there, and the full two-cow completion is rare and not clearly stronger overall.
Discussion


The Cow Opening was created and named by Anna Cramling, whose video on the opening made the unique system recognizable to online chess players. In its familiar form, a side pushes the d- and e-pawns one square, tucks both knights onto the d/e files, and may later redeploy one or both knights outward to the b/g files.
This scan treats the Cow less as a fixed six-move opening line and more as a motif: did the side reach the tucked setup, and did one or both tucked knights later move outward? That is better aligned with how people actually try these viral openings online, where move order and timing can vary.
The latest data makes the story less cartoonish and more interesting. The full double-cow setup is rare and not obviously superior. The single-cow or any-cow version does somewhat better than reaching the tucked setup and doing nothing with it, especially in some faster-game and mid-rating buckets, but the overall edge is modest.
Data and method
I streamed the available January 2025-May 2026 Lichess rated standard PGN archives. Bot-tagged games, unrated games, non-standard games, and games without ratings were excluded.
The loose detector first looks for a tucked Cow setup from each side's perspective. For White this means pawns on d3/e3 and knights on d2/e2; for Black it means pawns on d6/e6 and knights on d7/e7. The detector then checks whether either tucked knight later redeploys to the b/g files. The scan inspected up to 320 SAN tokens and 20,000 movetext characters per game.
Cohorts are mutually interpretable but not all mutually exclusive: tucked-only means setup reached and no cow redeployed; one cow out means exactly one tucked knight redeployed; any cow out means one or both redeployed; both cows out means the full b/g-file redeployment occurred.
For global comparisons, I used the same mix of game type, average-rating bucket, and Cow color. White Cow rows are compared with the global White result in the same bucket; Black Cow rows are compared with the global Black result.
Charts
Weighted global baseline
Table 1. Cohorts compared with a weighted all-game baseline using the same distribution of rating bucket, game type, and Cow-side color.
| Cohort | Occurrences | Win % | Weighted global win % | Win gap | Score % | Weighted global score % | Score gap |
|---|---|---|---|---|---|---|---|
| Tucked setup only | 16,389,897 | 46.7% | 47.7% | -1.0% | 48.5% | 49.4% | -0.9% |
| One cow out | 7,576,791 | 47.3% | 47.4% | -0.1% | 49.2% | 49.3% | -0.0% |
| Any cow out | 8,804,527 | 47.2% | 47.5% | -0.2% | 49.1% | 49.3% | -0.2% |
| Both cows out | 1,227,736 | 46.7% | 47.8% | -1.0% | 48.5% | 49.5% | -0.9% |
Any-cow baseline by game type
Table 2. One-or-more cow redeployment compared with the weighted all-game baseline within each game type.
| Game type | Any cow out | Win % | Weighted global win % | Win gap | Score % | Weighted global score % | Score gap |
|---|---|---|---|---|---|---|---|
| Bullet | 4,058,771 | 48.4% | 48.1% | +0.4% | 49.8% | 49.5% | +0.2% |
| Blitz | 3,885,610 | 46.5% | 47.0% | -0.5% | 48.8% | 49.1% | -0.4% |
| 10+0 rapid | 654,559 | 45.6% | 46.8% | -1.1% | 48.4% | 49.1% | -0.7% |
| >10 min rapid | 179,228 | 44.2% | 46.4% | -2.2% | 47.3% | 49.0% | -1.7% |
| Classical | 24,972 | 43.0% | 46.2% | -3.2% | 46.4% | 49.0% | -2.6% |
| Correspondence | 1,387 | 39.3% | 46.9% | -7.6% | 42.5% | 49.2% | -6.7% |
Full two-cow baseline by game type
Table 3. Full two-cow redeployment compared with the weighted all-game baseline within each game type.
| Game type | Both cows out | Win % | Weighted global win % | Win gap | Score % | Weighted global score % | Score gap |
|---|---|---|---|---|---|---|---|
| Bullet | 580,137 | 48.2% | 48.4% | -0.1% | 49.4% | 49.7% | -0.2% |
| Blitz | 522,029 | 45.5% | 47.3% | -1.7% | 47.8% | 49.3% | -1.5% |
| 10+0 rapid | 96,453 | 44.9% | 47.0% | -2.1% | 47.7% | 49.3% | -1.6% |
| >10 min rapid | 25,448 | 43.7% | 46.8% | -3.1% | 46.6% | 49.2% | -2.6% |
| Classical | 3,401 | 41.7% | 46.6% | -4.9% | 45.2% | 49.2% | -4.0% |
| Correspondence | 268 | 36.6% | 47.6% | -11.1% | 39.4% | 49.7% | -10.3% |
Frequency and success by color
Table 4. Cow-side results by White/Black.
| Cow side | Tucked setups | Any cow out | Both cows out | Any out / setup | Both out / setup | Any out score % | Any out win % | Both out score % | Both out win % | Any win gap vs tucked | Both win gap vs tucked |
|---|---|---|---|---|---|---|---|---|---|---|---|
| White | 7,663,468 | 2,513,940 | 416,945 | 32.8% | 5.4% | 50.3% | 48.4% | 49.7% | 47.9% | -0.1% | -0.7% |
| Black | 17,530,956 | 6,290,587 | 810,791 | 35.9% | 4.6% | 48.7% | 46.8% | 47.9% | 46.1% | +0.9% | +0.3% |
Breakdown by game type
Table 5. Main count, result, and timing metrics by game type.
| Game type | Games | Tucked setups | Tucked only | One cow out | Any cow out | Both cows out | Any out / setup | Both out / setup | Any out win % | Tucked win | Any out win gap | Both out win % | Both out win gap | Any side sec/move | Tucked side sec/move | Any opp sec/move | Tucked opp sec/move |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bullet | 580,515,561 | 12,727,961 | 8,669,190 | 3,478,634 | 4,058,771 | 580,137 | 31.9% | 4.6% | 48.4% | 47.9% | +0.5% | 48.2% | +0.3% | 0.65s | 0.61s | 0.91s | 0.88s |
| Blitz | 721,203,155 | 10,301,948 | 6,416,338 | 3,363,581 | 3,885,610 | 522,029 | 37.7% | 5.1% | 46.5% | 45.5% | +0.9% | 45.5% | -0.0% | 1.89s | 1.87s | 2.52s | 2.46s |
| 10+0 rapid | 169,787,654 | 1,622,626 | 968,067 | 558,106 | 654,559 | 96,453 | 40.3% | 5.9% | 45.6% | 44.5% | +1.2% | 44.9% | +0.5% | 3.68s | 3.87s | 4.81s | 4.91s |
| >10 min rapid | 66,549,513 | 470,306 | 291,078 | 153,780 | 179,228 | 25,448 | 38.1% | 5.4% | 44.2% | 43.4% | +0.9% | 43.7% | +0.3% | 6.62s | 6.79s | 8.72s | 8.50s |
| Classical | 9,016,259 | 67,394 | 42,422 | 21,571 | 24,972 | 3,401 | 37.1% | 5.0% | 43.0% | 42.4% | +0.6% | 41.7% | -0.7% | 12.07s | 11.94s | 14.30s | 13.82s |
| Correspondence | 1,004,448 | 4,189 | 2,802 | 1,119 | 1,387 | 268 | 33.1% | 6.4% | 39.3% | 39.2% | +0.1% | 36.6% | -2.6% | 0.00s | 0.00s | 0.00s | 0.00s |
Appendix: detailed bucket table
Table A1. Detailed rows by average Lichess rating bucket and game type. Small rows are included for transparency and should not be overinterpreted.
| Avg rating | Game type | Tucked setups | Tucked only | Any cow out | Both cows out | Any out / setup | Both out / setup | Any out win % | Tucked win | Any out win gap | Both out win % | Both out win gap |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 250-499 | Bullet | 138 | 105 | 33 | 11 | 23.9% | 8.0% | 57.6% | 47.6% | +10.0% | 54.5% | +6.9% |
| 250-499 | Blitz | 738 | 553 | 185 | 37 | 25.1% | 5.0% | 38.9% | 33.1% | +5.8% | 67.6% | +34.5% |
| 250-499 | 10+0 rapid | 395 | 301 | 94 | 15 | 23.8% | 3.8% | 35.1% | 27.2% | +7.9% | 60.0% | +32.8% |
| 250-499 | >10 min rapid | 299 | 239 | 60 | 7 | 20.1% | 2.3% | 33.3% | 25.1% | +8.2% | 42.9% | +17.8% |
| 500-749 | Bullet | 11,220 | 8,441 | 2,779 | 704 | 24.8% | 6.3% | 49.1% | 50.6% | -1.5% | 54.4% | +3.8% |
| 500-749 | Blitz | 26,267 | 16,423 | 9,844 | 4,164 | 37.5% | 15.9% | 45.4% | 43.2% | +2.2% | 48.5% | +5.2% |
| 500-749 | 10+0 rapid | 8,448 | 5,882 | 2,566 | 866 | 30.4% | 10.3% | 43.4% | 40.2% | +3.2% | 49.8% | +9.5% |
| 500-749 | >10 min rapid | 3,811 | 2,760 | 1,051 | 237 | 27.6% | 6.2% | 32.0% | 35.2% | -3.2% | 43.0% | +7.8% |
| 750-999 | Bullet | 171,804 | 122,761 | 49,043 | 13,321 | 28.5% | 7.8% | 51.2% | 51.6% | -0.4% | 53.1% | +1.5% |
| 750-999 | Blitz | 210,754 | 141,449 | 69,305 | 21,113 | 32.9% | 10.0% | 46.8% | 46.3% | +0.5% | 48.5% | +2.2% |
| 750-999 | 10+0 rapid | 48,963 | 32,554 | 16,409 | 6,127 | 33.5% | 12.5% | 45.8% | 44.2% | +1.6% | 48.6% | +4.3% |
| 750-999 | >10 min rapid | 21,274 | 14,668 | 6,606 | 1,993 | 31.1% | 9.4% | 44.8% | 42.3% | +2.5% | 49.3% | +7.0% |
| 750-999 | Classical | 890 | 674 | 216 | 35 | 24.3% | 3.9% | 40.3% | 38.1% | +2.1% | 54.3% | +16.2% |
| 1000-1249 | Bullet | 721,179 | 513,429 | 207,750 | 49,121 | 28.8% | 6.8% | 50.8% | 51.0% | -0.2% | 51.2% | +0.3% |
| 1000-1249 | Blitz | 775,914 | 528,786 | 247,128 | 58,726 | 31.8% | 7.6% | 47.1% | 47.1% | -0.0% | 48.3% | +1.1% |
| 1000-1249 | 10+0 rapid | 144,120 | 94,327 | 49,793 | 14,893 | 34.5% | 10.3% | 45.9% | 44.8% | +1.1% | 46.6% | +1.8% |
| 1000-1249 | >10 min rapid | 56,529 | 36,044 | 20,485 | 5,035 | 36.2% | 8.9% | 44.7% | 44.3% | +0.4% | 46.2% | +1.8% |
| 1000-1249 | Classical | 4,063 | 2,739 | 1,324 | 356 | 32.6% | 8.8% | 42.2% | 41.3% | +1.0% | 43.3% | +2.0% |
| 1250-1499 | Bullet | 1,817,867 | 1,270,609 | 547,258 | 112,558 | 30.1% | 6.2% | 50.3% | 50.2% | +0.1% | 50.5% | +0.3% |
| 1250-1499 | Blitz | 1,921,076 | 1,251,487 | 669,589 | 118,219 | 34.9% | 6.2% | 47.4% | 47.0% | +0.4% | 47.0% | -0.0% |
| 1250-1499 | 10+0 rapid | 306,493 | 200,681 | 105,812 | 18,166 | 34.5% | 5.9% | 46.2% | 45.7% | +0.4% | 45.9% | +0.1% |
| 1250-1499 | >10 min rapid | 98,022 | 62,564 | 35,458 | 5,602 | 36.2% | 5.7% | 44.7% | 44.8% | -0.2% | 43.5% | -1.4% |
| 1250-1499 | Classical | 14,041 | 9,446 | 4,595 | 765 | 32.7% | 5.4% | 44.2% | 43.5% | +0.7% | 43.3% | -0.2% |
| 1250-1499 | Correspondence | 410 | 197 | 213 | 142 | 52.0% | 34.6% | 39.9% | 39.1% | +0.8% | 39.4% | +0.4% |
| 1500-1749 | Bullet | 3,127,514 | 2,182,003 | 945,511 | 155,478 | 30.2% | 5.0% | 49.7% | 49.0% | +0.6% | 49.1% | +0.0% |
| 1500-1749 | Blitz | 3,241,855 | 2,037,156 | 1,204,699 | 154,141 | 37.2% | 4.8% | 47.0% | 46.2% | +0.8% | 45.4% | -0.8% |
| 1500-1749 | 10+0 rapid | 518,064 | 308,326 | 209,738 | 27,652 | 40.5% | 5.3% | 46.3% | 45.2% | +1.0% | 44.6% | -0.6% |
| 1500-1749 | >10 min rapid | 141,493 | 85,833 | 55,660 | 7,118 | 39.3% | 5.0% | 45.1% | 43.9% | +1.2% | 43.1% | -0.8% |
| 1500-1749 | Classical | 26,752 | 16,802 | 9,950 | 1,266 | 37.2% | 4.7% | 44.7% | 43.2% | +1.5% | 43.5% | +0.3% |
| 1500-1749 | Correspondence | 796 | 579 | 217 | 29 | 27.3% | 3.6% | 39.2% | 41.8% | -2.6% | 17.2% | -24.6% |
| 1750-1999 | Bullet | 3,475,972 | 2,364,391 | 1,111,581 | 140,207 | 32.0% | 4.0% | 48.2% | 47.2% | +0.9% | 47.1% | -0.1% |
| 1750-1999 | Blitz | 2,918,121 | 1,737,254 | 1,180,867 | 120,472 | 40.5% | 4.1% | 46.1% | 44.5% | +1.6% | 43.9% | -0.6% |
| 1750-1999 | 10+0 rapid | 476,551 | 262,362 | 214,189 | 22,418 | 44.9% | 4.7% | 45.6% | 43.6% | +1.9% | 43.8% | +0.2% |
| 1750-1999 | >10 min rapid | 122,584 | 72,941 | 49,643 | 4,606 | 40.5% | 3.8% | 44.1% | 42.6% | +1.5% | 41.3% | -1.3% |
| 1750-1999 | Classical | 18,512 | 10,797 | 7,715 | 875 | 41.7% | 4.7% | 41.4% | 40.9% | +0.5% | 38.5% | -2.4% |
| 1750-1999 | Correspondence | 1,850 | 1,288 | 562 | 57 | 30.4% | 3.1% | 38.8% | 38.7% | +0.0% | 38.6% | -0.1% |
| 2000-2249 | Bullet | 2,245,901 | 1,464,389 | 781,512 | 74,029 | 34.8% | 3.3% | 46.7% | 45.6% | +1.0% | 44.7% | -1.0% |
| 2000-2249 | Blitz | 1,015,533 | 587,031 | 428,502 | 38,904 | 42.2% | 3.8% | 44.3% | 42.4% | +1.8% | 41.4% | -1.1% |
| 2000-2249 | 10+0 rapid | 111,473 | 58,643 | 52,830 | 6,049 | 47.4% | 5.4% | 42.5% | 40.8% | +1.8% | 39.7% | -1.0% |
| 2000-2249 | >10 min rapid | 23,997 | 14,520 | 9,477 | 794 | 39.5% | 3.3% | 39.1% | 39.0% | +0.1% | 34.6% | -4.4% |
| 2000-2249 | Classical | 2,937 | 1,827 | 1,110 | 101 | 37.8% | 3.4% | 35.4% | 41.7% | -6.3% | 25.7% | -16.0% |
| 2000-2249 | Correspondence | 892 | 571 | 321 | 33 | 36.0% | 3.7% | 40.5% | 36.8% | +3.7% | 39.4% | +2.6% |
| 2250-2499 | Bullet | 850,833 | 543,335 | 307,498 | 26,727 | 36.1% | 3.1% | 45.9% | 44.9% | +1.0% | 43.8% | -1.1% |
| 2250-2499 | Blitz | 166,703 | 100,806 | 65,897 | 5,470 | 39.5% | 3.3% | 43.7% | 42.6% | +1.1% | 40.4% | -2.2% |
| 2250-2499 | 10+0 rapid | 7,727 | 4,756 | 2,971 | 249 | 38.4% | 3.2% | 40.8% | 39.5% | +1.3% | 38.6% | -0.9% |
| 2250-2499 | >10 min rapid | 2,234 | 1,472 | 762 | 56 | 34.1% | 2.5% | 37.5% | 38.5% | -1.0% | 39.3% | +0.8% |
| 2250-2499 | Classical | 175 | 117 | 58 | 3 | 33.1% | 1.7% | 44.8% | 39.3% | +5.5% | 0.0% | -39.3% |
| 2250-2499 | Correspondence | 205 | 138 | 67 | 5 | 32.7% | 2.4% | 37.3% | 42.8% | -5.4% | 20.0% | -22.8% |
| 2500-2749 | Bullet | 254,786 | 166,841 | 87,945 | 6,696 | 34.5% | 2.6% | 44.8% | 45.3% | -0.5% | 41.0% | -4.2% |
| 2500-2749 | Blitz | 24,075 | 14,808 | 9,267 | 751 | 38.5% | 3.1% | 41.6% | 41.1% | +0.5% | 39.1% | -1.9% |
| 2500-2749 | 10+0 rapid | 387 | 234 | 153 | 16 | 39.5% | 4.1% | 44.4% | 40.2% | +4.3% | 31.2% | -8.9% |
| 2500-2749 | >10 min rapid | 60 | 35 | 25 | 0 | 41.7% | 0.0% | 24.0% | 31.4% | -7.4% | 0.0% | -31.4% |
| 2750-2999 | Bullet | 45,979 | 29,936 | 16,043 | 1,135 | 34.9% | 2.5% | 44.6% | 41.5% | +3.1% | 41.4% | -0.1% |
| 2750-2999 | Blitz | 908 | 581 | 327 | 32 | 36.0% | 3.5% | 40.1% | 37.7% | +2.4% | 31.2% | -6.4% |
| 3000-3249 | Bullet | 4,660 | 2,887 | 1,773 | 147 | 38.0% | 3.2% | 42.2% | 43.6% | -1.5% | 36.1% | -7.6% |
| 3250-3499 | Bullet | 108 | 63 | 45 | 3 | 41.7% | 2.8% | 44.4% | 41.3% | +3.2% | 100.0% | +58.7% |
Caveats
- This is a motif detector, not engine analysis. It says how the setup scored in online games, not whether it is theoretically sound.
- The loose detector is intentionally broader than the earlier strict move-order test. It may include positions where the Cow-like structure arose after other opening choices.
- Self-selection matters. Players who choose unusual setups may differ from players who do not, and opponents may react differently by rating level.
- The scan excludes PGN bot-title games but does not attempt to identify untagged engine use.
- Very long games with move text beyond the scan limit could theoretically be missed, though the limit is deep enough for the practical opening/middlegame motif this study targets.