Ukrainian, Belarusian and Russian are the three East Slavic languages, and the grouping is real: they separated from one another around a thousand years ago and their speakers can still half understand each other. The grouping is also, genetically, not a group. A pooled Global25 average of 140 Ukrainians sits 11.6 units from a pooled average of 492 Poles and 19.0 from the Belarusians. The Belarusians in turn sit 13.5 from the Russians and 22.6 from the Lithuanians, whose language belongs to a different branch of Indo-European altogether. This article measures three things about the two populations in the middle of that arrangement. What actually separates a Ukrainian from a Pole, which turns out to be a single axis and not the one anybody expects. What separates a Belarusian from a Ukrainian, which is the same axis running the other way. And how much of the eight centuries of Pecheneg, Cuman, Mongol and Nogai presence on the Pontic steppe is detectable in the people who live there now, which is a number small enough that this article had to measure its own detection floor before it could report it.

A frontier with a thousand years of traffic

The territory of modern Ukraine is the western end of the Eurasian steppe, and for most of recorded history it was the corridor through which that steppe reached Europe. The list of populations that crossed it or held part of it is longer than for anywhere else on the continent. Cimmerians and Scythians in the Iron Age, Sarmatians after them, Greek colonies along the Black Sea coast, Goths and the multiethnic Chernyakhiv culture in the Roman period, Huns in the fourth century, the Khazar Khaganate and the Saltiv culture in the eighth to tenth, then Pechenegs, Torks and Cumans between the eleventh and thirteenth, then the Mongols of the Golden Horde, then the Crimean Khanate and the Nogai who were still pasturing herds in the North Pontic steppe in the fifteenth century.

Between and underneath all of that sat a settled agricultural population in the forest and forest steppe belt to the north, which is where almost everybody actually lived. Kyivan Rus formed there in the ninth century, fragmented into principalities, and was subordinated by the Mongols in the thirteenth. Its western lands then spent four centuries inside the Grand Duchy of Lithuania and the Polish-Lithuanian Commonwealth, which is the single most important political fact about both Ukrainian and Belarusian history and one that this article's numbers keep pointing back at.

Belarus has a different and quieter version of the same story. No steppe, no nomads, a dense belt of forest and marsh, and a Baltic-speaking population that was there before the Slavs arrived and was absorbed rather than displaced. Baltic hydronyms run deep into modern Belarus, well south and east of any territory where a Baltic language was spoken in historical times. The Grand Duchy of Lithuania, which governed the whole of it for three centuries, was a Baltic dynasty ruling a mostly Slavic population who wrote their chancery documents in a language that was the direct ancestor of Belarusian.

The two questions this raises are obvious and they have opposite shapes. For Ukraine: how much steppe is in the modern population? For Belarus: how much Baltic? Both are answerable and only one of them gives the answer people expect.

What the uniparental markers already said

The Y chromosome picture for both populations has been stable since the early 2010s and it frames everything below.

Kushniarevich and colleagues, working with 565 Belarusian Y chromosomes across six regions, found that about four fifths of the paternal pool consists of just three haplogroups, R1a, I2a and N1c, and reported that the same three dominate the Ukrainian and Russian pools as well. R1a alone runs around half. What matters here is not the totals but the two gradients they found running across them, because both are latitudinal rather than longitudinal. Haplogroup I2a-P37, the lineage whose modern centre of gravity is the northwestern Balkans, makes up around a quarter of the Y chromosomes in southern Belarus and declines going north. Haplogroup N1c, which reaches close to half of all Y chromosomes among Lithuanians, peaks around fifteen per cent in northwestern Belarus and declines going south. One marker of southern ancestry rising as you go south, one marker of Baltic ancestry rising as you go north, and the boundary between them running horizontally across a country whose political and linguistic divisions run the other way.

The second observation is the one that matters for the steppe question, and it is a negative. East Eurasian paternal lineages, principally haplogroup Q, and East Eurasian mitochondrial lineages of the M superhaplogroup including C, D and G, are all reported as very rare among Belarusians. They are not much commoner in Ukrainians. Eight hundred years of nomadic empires on the southern border left a paternal record that a survey of several hundred men struggles to find.

As in every article in this series, the awkwardness has to be flagged: a Global25 coordinate is an autosomal summary, inherited equally from both parents, and it carries no label saying which side anything came from. Everything below is silent on the sex bias that the uniparental data is pointing at.

Data and method

Everything below uses Global25 scaled coordinates, with population averages merged from Davidski's published files and the Moriopoulos 2026 collection. Ancestry proportions come from non-negative least squares with a sum-to-one constraint imposed by appending a heavily weighted row of ones, with the resulting weights normalised. Distances are scaled Euclidean distances multiplied by one thousand, the convention used throughout this site.

The pooled Ukrainian target is a weighted average of nineteen regional samples totalling 140 individuals, covering Zakarpattia, Ivano-Frankivsk, Ternopil, Lviv, Volyn, Rivne, Zhytomyr, Kyiv, Cherkasy, Chernihiv, Sumy, Poltava, Kharkiv, Kropyvnytskyi, Dnipro, Zaporizhzhia, Donetsk, the Pontic coast and one unlocalised sample. It sits 6.5 units from the unlocalised twenty-five-individual Ukrainian average taken alone, which is the ordinary sampling difference between two averages of the same population. The pooled Polish target is 492 individuals from ten regional samples and the pooled Russian target is 151 individuals from sixteen, mostly western and central. Belarus has exactly one usable average, of 27 individuals, and no regional breakdown, which is a real limitation and is flagged again where it bites.

Two panels do the work. The deep panel is the Yamnaya of Samara, the Anatolian Neolithic of Barcin, the western hunter-gatherer genome from Loschbour, the eastern hunter-gatherers of Karelia, and the Nganasan as a Siberian pole. Its condition number is 8.95 and its smallest pole separation is 164 units, comfortably above the hundred-unit threshold below which we treat two-source separation as unreliable on this site. The first three of those poles are the exact panel used in our article on the Corded Ware, so the rows here are directly comparable to the rows there.

The proximal instrument is not a panel but a procedure. Rather than build a multi-source model out of medieval populations that sit within a hundred units of each other, which is the collinearity trap our article on the Quebecois documented at length, each modern population is modelled as the Slavic-period population of Grodek plus exactly one additional source, and the candidates are ranked by how much they improve the fit. Grodek, in southeastern Poland near the Ukrainian border, is the site Gretzinger and colleagues used in 2025 as their proximal proxy for the incoming Slavic-period gene pool, so it is the right starting point rather than an arbitrary one.

One honest note on fit distances before any of them appear. Modern populations fit deep ancient panels worse than ancient populations do, because four thousand years of drift accumulate in the residual. In the deep panel below, the ancient rows fit between 9 and 99 units and the modern rows between 32 and 79, and the modern fits degrade steadily going northeast, from 32 for Romanians to 79 for Lithuanians. That degradation runs along the same axis as one of the ancestry components, which means some of what the model reports as eastern hunter-gatherer ancestry in the northeast is drift the panel cannot absorb. The ordering is trustworthy. The second decimal place is not.

Where the Ukrainians sit

The simplest measurement sets up everything else.

Global25 genetic distance from the UkrainiansScaled Euclidean distance multiplied by one thousand. Lower means genetically closer.Ukrainian regionalBelarusianPolesOther modernAncient and medievalSteppe nomadsUkrainians of Sumy (16)7.9Kievan Rus of Korolivka, AD 1100 (13)11.2Ukrainians of Rivne (12)11.4Poles, pooled (492)11.6Ukrainians of Lviv (12)11.8Kievan Rus of Pidhirtsi (5)11.8Ukrainians of Dnipro (9)11.9Russians of Voronezh (5)14.4Slavic period of Grodek, AD 800 (7)17.4Russians of Kursk (8)17.5Ukrainians of Zakarpattia (25)18.7Belarusians (27)19.0Russians, pooled (151)22.9Slovaks24.0Czechs (175)26.3Cossacks of Vypozniv, AD 1650 (2)26.9Russians of Pskov (33)32.0Hungarians35.2Germans of the east36.1Lithuanians of Aukstaitija (78)40.3Estonians (11)42.7Latvians (24)46.4Mordvins (29)51.1Goths of Wielbark, AD 200 (22)53.5Finns (53)60.4Romanians69.4Bulgarians (16)78.9Latvia Bronze Age (10)84.7Yamnaya of Rostov (20)132.7Trypillia of Verteba (21)161.6Cumans of Kumy, AD 1150 (1)331.0Nogai of Mamay-Gora, AD 1500 (4)394.3The pooled target is 140 individuals from nineteen regional samples across Ukraine.

Every population within reach of the pooled Ukrainian average, ranked by Global25 distance. A twelfth-century Kyivan Rus cemetery sits closer than the Belarusians do.

The first thing on that chart is a group of thirteen people buried at Korolivka in western Ukraine during the Kyivan Rus and early Golden Horde period. They sit 11.2 units from the modern Ukrainian average, ahead of the pooled Poles at 11.6 and well ahead of the Belarusians at 19.0. A second Kyivan Rus group, five individuals from Pidhirtsi, sits at 11.8. Eight centuries, the Mongol conquest, four hundred years of Polish-Lithuanian rule, the Cossack Hetmanate, the partitions, the Russian Empire and the twentieth century, and the population has moved about eleven units from a medieval cemetery.

The second is the position of the Poles. Of every living population on earth that is not itself Ukrainian, the closest to the Ukrainians is the Polish one. Belarusians, who speak a language in the same branch as Ukrainian and share a border of a thousand kilometres, sit at 19.0, nearly twice as far. Russians sit at 22.9. Slovaks at 24.0. The East Slavic language group has no corresponding shape in the coordinates at all, which is the same finding our article on the Slavic populations reported for the family as a whole, arrived at here from inside one of its branches.

The third is the bottom of the chart, and it is the answer to the steppe question in its crudest form. The Cumans of Kumy sit 331 units away. The Nogai of Mamay-Gora, who were pasturing herds in the North Pontic steppe within living memory of the founding of the Zaporizhian Sich, sit 394 units away, further from modern Ukrainians than the Anatolian Neolithic farmers of Barcin are at 229. Whatever the Ukrainians are made of, it is not that.

A fourth entry is worth flagging because it will matter later. The Ukrainians of Zakarpattia, the Transcarpathian region on the far side of the mountains, sit 18.7 units from the pooled Ukrainian average. That is further out than any other well sampled Ukrainian regional group and further than the Poles are. It is not a mistake, and it has a straightforward explanation given below.

What eleven units means

Before anything is built on a gap of eleven units, that number needs a scale.

What eleven units meansThe East Slavic pairs set against each other and against ordinary within-population scatter.Ukrainian pairsBelarusian pairsPolish pairsScatterUkrainians and Poles11.6Belarusians and Russians13.5Ukrainians and Belarusians19.0Belarusians and Poles16.3Ukrainians and Russians22.9Belarusians and Lithuanians22.6Poles and Russians23.1Ukrainians and Slovaks24.0A typical individual to their own regional mean22.8A Ukrainian individual to the Ukrainian mean26.6Scatter figures are medians over 78 Ukrainian, 15 Belarusian, 41 Polish and 54 Russian genotyped individuals.

The four East Slavic and Polish pairwise distances set against the scatter of individuals inside a single regional population.

Of the 78 individually genotyped Ukrainians in this dataset, the median individual sits 26.6 units from the pooled Ukrainian mean. Within the better sampled single regions the median is lower, between 19 and 25 units, and averaging across all the Ukrainian, Belarusian, Polish and Russian regional samples with at least eight genotyped individuals gives a mean within-group scatter of 22.8 units.

So the entire gap between the Ukrainian population and the Polish population, 11.6 units, is less than half the distance separating a typical Ukrainian from the average of his own countrymen. The gap between Ukrainians and Belarusians, 19.0, is still smaller than the ordinary scatter inside either one. These are not populations in the sense that a Finn and a Sardinian are populations. They are neighbouring segments of one continuous surface, and the rest of this article is about which direction that surface tilts.

The deep decomposition

Breaking the same populations into ancient components gives the shape of each gene pool.

Deep ancestry decompositionFive-source NNLS on ancient reference populations, percentages. Identical panel for every row.Romanians43515Bulgarians (16)4453Ukrainians of Zakarpattia (25)454096Hungarians43439Slavic period of Grodek (7)4239117Czechs (175)473912Ukrainians, pooled (140)4436118Poles, pooled (492)4535137Kievan Rus of Korolivka (13)41361012Belarusians (27)43331311Russians, pooled (151)40331116Lithuanians of Aukstaitija (78)44291512Estonians (11)41281417Finns (53)38271317Mordvins (29)4030917Latvia Bronze Age (10)43202116Trypillia of Verteba (21)88012Yamnaya of Rostov (20)8566Steppe (Yamnaya)Anatolian NeolithicWestern hunter-gathererEastern hunter-gathererSiberianCondition number 8.95. Smallest pole separation 164 units. Fit distances 32 to 79 for the modern rows and 9 to 99 for the ancient ones.

The same five-source panel applied to the East Slavs, their neighbours, their medieval predecessors and the ancient poles themselves.

The Ukrainians come out at 44.2 per cent steppe, 36.5 per cent Anatolian Neolithic, 11.0 per cent western hunter-gatherer, 8.4 per cent eastern hunter-gatherer and 0.0 per cent Siberian. The Poles return 45.0, 35.0, 12.8, 7.2 and 0.0. Those two profiles are the same profile. The Belarusians return 42.8, 33.2, 12.5, 11.5 and 0.0, and the Russians 40.4, 32.7, 11.3, 15.7 and 0.0.

Read the rows in order and only two of the five columns move at all. The Anatolian Neolithic farmer component falls steadily going northeast, from 53 per cent in Bulgarians through 40 in Zakarpattia, 36 in Ukrainians, 35 in Poles, 33 in Belarusians and 33 in Russians down to 28 in Estonians. The eastern hunter-gatherer component rises along exactly the same line, from zero in Romanians and Bulgarians through 6 in Zakarpattia, 7 in Poles, 8 in Ukrainians, 12 in Belarusians, 16 in Russians and 17 in Estonians and Finns. The steppe column barely moves across the whole of Europe east of the Elbe, sitting between 40 and 47 in every modern row, and the western hunter-gatherer column moves only a little.

That is a single axis. It runs from the Balkans to the Gulf of Finland and every population in this study is a point on it. Ukrainians sit next to Poles on that axis; Belarusians sit between the Poles and the Russians; the Russians sit next to the Estonians. Which is a description of a map, not of a language family.

The Siberian column deserves its own sentence because it is the first appearance of the negative result. It returns exactly zero for Ukrainians, Belarusians, Poles and Russians alike, while returning 4.1 for Finns and 4.8 for Mordvins in the same run. The model is looking, and in the East Slavic rows it finds nothing.

The Baltic residual

The deep panel says the East Slavs differ along one axis. The proximal procedure says what that axis is made of.

Take the Slavic-period population of Grodek as the starting point, since that is the population Gretzinger and colleagues identified as the closest available proxy for the gene pool that spread across eastern Europe in the sixth to eighth centuries. Modern Ukrainians sit 17.4 units from it, Poles 21.3, Belarusians 33.5 and Russians 36.6. Now offer the model one extra source and see which one closes the gap.

For the Ukrainians, fourteen candidates were tried: three Baltic Iron Age and Bronze Age populations, the Trypillian farmers of Verteba, the Globular Amphora farmers of Poland, the Goths of Wielbark, the Sarmatians of Hungary, the Alans of Saltovo-Mayaki, the Cumans of Kumy, the Nogai of Mamay-Gora, the Yamnaya of Rostov, the Anatolian Neolithic, the eastern hunter-gatherers of Karelia and Loschbour. Exactly one category of source improves the fit by more than a rounding error. The Iron Age Balts of Marvele in Lithuania improve it by 36 per cent, taking 16.0 per cent weight. Latvia Bronze Age improves it by 33 per cent and Estonia Iron Age by 20. Everything else, including every steppe and nomadic source and every farming source, improves it by under one per cent or by nothing at all.

The same procedure run on the other three populations gives the same answer with different amounts. Poles: Baltic, 22.8 per cent weight, 55 per cent improvement. Belarusians: Baltic, 37.9 per cent weight, 68 per cent improvement. Russians: Baltic, 37.5 per cent, or 45.6 per cent if the Estonian Iron Age is used as the pole instead. In no case does anything else compete.

The Baltic residualWeight taken by an Iron Age Baltic source when it is added to the Slavic-period population of Grodek.UkrainianBelarusianPolishOther modernMedievalBelarusians (27)37.9%Russians, pooled (151)37.5%Ukrainians of Chernihiv (9)27.9%Ukrainians of Dnipro (9)26.1%Ukrainians of Rivne (12)25.5%Ukrainians of Sumy (16)24.2%Poles, pooled (492)22.8%Kievan Rus of Korolivka (13)20.2%Ukrainians, pooled (140)16.0%Ukrainians of Cherkasy (4)8.3%Ukrainians of Lviv (12)4.5%Czechs (175)0.0%Ukrainians of Zakarpattia (25)0.0%Hungarians0.0%Two-source NNLS. Pole separation 84 units, below our usual threshold, so read the ordering rather than the value.

Weight taken by an Iron Age Baltic source added to the Slavic-period population of Grodek. Nothing else in the candidate list competes with it for any of these populations.

The pole separation between Grodek and Marvele is 84 units, below our working threshold of a hundred, and a two-source model at that separation should be read for its ordering rather than its arithmetic. So the ordering was tested. Swapping the Baltic pole through Latvia Bronze Age, Estonia Iron Age, Lithuania Bronze Age and the Viking Age Latvians moves the Ukrainian figure between 13.3 and 17.8, the Polish between 18.7 and 24.9, the Belarusian between 32.2 and 39.9 and the Russian between 32.3 and 45.6. The bands do not overlap and the ranking never changes. Whatever the true numbers are, Belarusians and Russians need roughly twice as much of this component as Ukrainians do, and Poles need about half as much again as Ukrainians.

Two things follow that are worth stating separately. The first is that the Baltic substrate of Belarus, which the hydronyms and the Y chromosome gradient both point at, is the largest single feature of the Belarusian gene pool after the Slavic component itself, and it is what puts Belarusians closer to Russians than to Ukrainians. The second is that Poles need more of it than Ukrainians do. The population that separates a Ukrainian from a Pole is not a steppe population arriving from the southeast. It is a forest population that the Poles absorbed more of than the Ukrainians did, arriving from the north.

The steppe that is not there

Now the question the geography of Ukraine makes unavoidable.

Turkic and Mongol steppe nomad ancestryWeight taken by a late medieval Nogai pole added to the identical four-source deep panel.UkrainianBelarusianPolishOther modernPositive controlsChuvash (14)30.08%Mordvins (29)7.86%Gagauz (9)1.35%Bulgarians (16)0.94%Hungarians0.00%Russians, pooled (151)0.00%Ukrainians, pooled (140)0.00%Ukrainians, Pontic (3)0.00%Ukrainians of Dnipro (9)0.00%Ukrainians of Zaporizhzhia (1)0.00%Ukrainians of Donetsk (3)0.00%Ukrainians of Kharkiv (1)0.00%Ukrainians of Lviv (12)0.00%Belarusians (27)0.00%Poles, pooled (492)0.00%The Chuvash, Mordvin and Gagauz rows show the model is not blind. Every Ukrainian row returns exactly zero.

Weight taken by a late medieval Nogai pole added to the deep panel. Every Ukrainian row, including the four southeastern ones, returns exactly zero.

Adding a late medieval Nogai population from Mamay-Gora as a fifth pole to the deep panel returns 0.00 per cent for the pooled Ukrainians, and also 0.00 for the Ukrainians of Dnipro, the Pontic coast, Zaporizhzhia, Donetsk and Kharkiv, which is to say for every sample from the part of Ukraine that actually was steppe. It returns 0.00 for Belarusians, Poles and the pooled Russians. Substituting the Cumans of Kumy for the Nogai changes nothing. Substituting the Nganasan changes nothing.

The model is not blind. On the identical panel the Chuvash return 31.4 per cent, the Mordvins 7.9, the Gagauz 1.4 and the Bulgarians 0.9. The pole separations are enormous, the Nogai sitting 394 units from the Ukrainians themselves. If there were a substantial nomadic component here, this model would report it.

The question is how small a contribution it could see, and that has to be measured rather than assumed.

Detection floor: spike-in testSynthetic Ukrainian genomes with a known amount of Nogai ancestry added, then re-modelled.Below the floorPartial recoveryFull recovery0 per cent injected0.00%0.5 per cent injected0.00%1 per cent injected0.00%2 per cent injected0.54%3 per cent injected1.55%5 per cent injected3.58%10 per cent injected8.66%20 per cent injected18.81%Recovery is close to one to one above about three per cent and collapses below two.

Synthetic Ukrainian genomes built by adding a known amount of Nogai ancestry to the real pooled average, then pushed back through the same model.

Synthetic genomes were built by mixing the real Ukrainian average with a known fraction of the Nogai average and pushing each one back through the same five-source model. Inject half a per cent and the model reports zero. Inject one per cent and it still reports zero. Inject two and it reports 0.54, three and it reports 1.55, five and it reports 3.58, ten and it reports 8.66, twenty and it reports 18.81. Recovery becomes close to one to one above about three per cent and collapses below two.

So the honest statement is bounded rather than absolute. Turkic and Mongol steppe nomad ancestry in the modern Ukrainian population, including in the southeastern regions, is below roughly two per cent. It is not necessarily zero, and the genealogical claim that many Ukrainian families have a Cuman or Tatar ancestor somewhere in the record may well be true in exactly the way the equivalent claim is true for Indigenous ancestry among the Quebecois, which our article on that population measured at the same kind of floor. What can be ruled out is anything larger. Anybody reporting a Global25 result showing eight or fifteen per cent Turkic ancestry in an ordinary Ukrainian profile is reporting an artifact, because this method recovers a real ten per cent as 8.7 and a real twenty as 18.8, and it does not.

Saag and colleagues reached the same conclusion in 2025 from direct ancient DNA, with 91 genomes from 33 sites across Ukraine spanning 7000 BC to AD 1800. They found that nomadic populations with high East Asian ancestry were recorded in the steppe zone specifically, while individuals from the rest of the region carried mostly European ancestry associated with local predecessors, and concluded that despite clear signatures of high migration activity including from East Asia, a major autochthonous component to Ukrainian ancestry is traceable at least since the Bronze Age. The nomads were there, in numbers, for centuries. They were a military and political presence on a grassland where very few farmers lived, and when their empires collapsed their descendants largely left with them or were absorbed elsewhere.

Zakarpattia, and why west does not mean Polish

The internal structure of Ukraine is where the popular version of this subject goes most obviously wrong, so it is worth a table. Restricted to the eight regional samples with at least four genotyped individuals, 98 people in total, and with the single-individual samples left out because a single genome sits a median 23 units from its own population mean and will say anything you like.

Region To the Poles To the Russians Farmer Baltic residual
Sumy, northeast (16)9.518.135.324.2
Rivne, northwest (12)10.218.135.525.5
Zhytomyr, north (11)11.318.934.724.5
Chernihiv, north (9)13.617.034.327.9
Dnipro, southeast (9)15.114.134.126.1
Lviv, far west (12)18.033.538.24.5
Cherkasy, centre (4)20.928.137.28.3
Zakarpattia, far southwest (25)26.139.840.00.0

The column that matters is the first one. The Ukrainians closest to the Poles are the ones from Sumy, on the Russian border, six hundred kilometres from Poland. The Ukrainians furthest from the Poles are the ones from Zakarpattia and Lviv, in the west, one of which actually borders Poland. The popular model in which western Ukrainians are the Polish-shifted ones and eastern Ukrainians the Russian-shifted ones is not merely imprecise, it is inverted.

The reason is that this is the same north-south axis again, and Poland lies to the northwest rather than simply to the west. Sumy, Rivne, Zhytomyr and Chernihiv are all on the East European plain, and they carry between 24 and 28 per cent of the Baltic residual and around 34 to 35 per cent farmer ancestry, which is what Poles carry. Lviv and Zakarpattia are Carpathian, and they carry 4.5 and 0.0 per cent of the Baltic residual and 38 to 40 per cent farmer ancestry, which is what Slovaks and Hungarians carry. Zakarpattia sits 21.5 units from Slovaks and 19.9 from Hungarians, closer to both than to the average of its own country at 18.7, which is a tie within the noise. The mountains are a genetic boundary and the political border is not.

The one thing the popular model does get right is small and real. Dnipro is the only regional sample in the table that is closer to the Russians than to the Poles, by a single unit. That is a genuine southeastern shift, it is the largest such shift in the country, and it amounts to about one unit on a scale where an individual sits twenty-three units from his own neighbours.

What this does not mean

Three things are worth ruling out explicitly, because the argument above is easy to over-read in either direction.

It does not mean the nomads left no mark. They left a decisive one on the settlement history, the political history and the language of the region, and the Saltovo-Mayaki Alans and Bulgars, the Cumans and the Golden Horde are all directly sampled in the ancient DNA record of Ukraine, sitting exactly where their written history says they should. What the modern coordinates show is that the descendants of those populations are not the modern inhabitants of the same ground, which is a statement about demographic continuity rather than about whether anything happened.

It does not mean the East Slavic category is fictitious. Ukrainian, Belarusian and Russian really are one branch of one language family and their speakers really do descend in large part from a common source that expanded across eastern Europe in the sixth to eighth centuries. Grodek is 17 to 37 units from all three of them, and the medieval Kyivan Rus profile is closer to modern Ukrainians than any living non-Ukrainian population is. What the coordinates show is that the shared component is not large enough, relative to the different local substrates each population absorbed afterwards, to make the three of them cluster together against their neighbours. Both of those statements are true at once, and the distinction between shared descent and clustering is one we set out in detail in our article on the Slavic populations.

And it does not mean this method has resolved the Belarusian case properly. One average of 27 individuals with no regional breakdown, for a country where the uniparental data shows a fifteen-point Baltic gradient from northwest to southeast, is not enough. The Belarusian figures above are the average of a population that is almost certainly a cline, and the northwest of it probably looks considerably more Baltic than 38 per cent while the Polesian south probably looks considerably less. That is a gap in the data rather than a result, and it will stay a gap until somebody genotypes Belarus the way Ukraine has been genotyped.

Reproduce it yourself

The coordinates below include the three pooled targets built for this article, the regional Ukrainian samples, the medieval and ancient references and every pole used in the models. They can be pasted directly into Vahaduo (the Global25 tool) to check any distance or model quoted above.

Global25 coordinates, targets and references
Ukrainian_pooled_(n=140),0.130684,0.124040,0.065665,0.054716,0.037039,0.020784,0.009040,0.011486,-0.001901,-0.019293,-0.002347,-0.007624,0.014020,0.021547,-0.011273,-0.001973,0.002926,-0.000567,0.002597,0.000373,-0.004488,-0.004195,0.005526,-0.003353,0.000226
Polish_pooled_(n=492),0.132491,0.129284,0.070620,0.060198,0.040853,0.023464,0.008922,0.011347,-0.000335,-0.019079,-0.002925,-0.006649,0.012919,0.019693,-0.008099,-0.000290,0.001914,-0.000091,0.002888,0.001084,-0.003660,-0.003098,0.005999,-0.002431,-0.000326
Russian_pooled_(n=151),0.130748,0.112730,0.076638,0.067914,0.035383,0.023917,0.010428,0.013139,-0.002080,-0.026267,-0.000741,-0.009274,0.018135,0.022467,-0.010715,-0.001962,0.002110,-0.001697,0.001450,0.001611,-0.002391,-0.004103,0.005168,-0.004968,0.000283
Belarusian_(n=27),0.132119,0.122954,0.073748,0.067507,0.039437,0.026133,0.010941,0.012871,-0.000962,-0.024656,-0.002724,-0.009758,0.018693,0.025399,-0.011903,-0.001792,0.001526,0.000741,0.003571,-0.000672,-0.004894,-0.004735,0.006806,-0.006056,-0.000763
Ukrainian_Sumy_(n=16),0.130541,0.123768,0.068942,0.059594,0.039084,0.022956,0.008372,0.012706,-0.001138,-0.020479,-0.002405,-0.009563,0.014773,0.022002,-0.011027,-0.002088,0.002347,-0.000151,0.003072,0.000539,-0.003205,-0.004266,0.005592,-0.005897,-0.000778
Ukrainian_Lviv_(n=12),0.132310,0.127117,0.061814,0.047483,0.036055,0.018675,0.008599,0.010686,-0.000300,-0.015052,-0.003887,-0.005709,0.010927,0.020843,-0.009287,-0.001419,0.001089,-0.000943,0.004394,0.000286,-0.004362,-0.003681,0.005614,-0.001584,-0.001140
Ukrainian_Dnipro_(n=9),0.130897,0.118817,0.070061,0.060473,0.036930,0.021413,0.010941,0.012640,-0.003113,-0.023954,-0.002941,-0.009708,0.016369,0.023105,-0.010134,0.000737,0.003405,0.002041,0.002737,0.000611,-0.004811,-0.005647,0.003971,-0.003146,0.000492
Ukrainian_Zakarpattia_(n=25),0.128984,0.126291,0.057820,0.042378,0.034209,0.016957,0.008404,0.009009,-0.001342,-0.012851,-0.001481,-0.005623,0.010038,0.017170,-0.010934,-0.002068,0.004464,-0.001520,0.001659,0.000300,-0.003748,-0.003606,0.004171,-0.000270,-0.000455
Ukrainian_Rivne_(n=12),0.131181,0.125249,0.071402,0.062231,0.039007,0.021126,0.009870,0.010057,-0.000886,-0.021884,-0.003816,-0.008005,0.014358,0.021160,-0.013459,-0.000541,0.006215,-0.001689,0.002210,0.000667,-0.004170,-0.003483,0.006214,-0.003966,0.000918
Ukrainian_Chernihiv_(n=9),0.132288,0.122992,0.068217,0.061334,0.040110,0.023241,0.009844,0.013589,-0.002909,-0.023023,-0.002779,-0.008493,0.018434,0.024711,-0.013301,-0.000132,0.003752,-0.000802,0.002319,-0.000014,-0.002634,-0.006375,0.006327,-0.004378,0.000758
Lithuanian_East_Aukstaitija_(n=78),0.135318,0.125340,0.083300,0.081566,0.044347,0.031311,0.011928,0.014517,-0.002719,-0.032003,-0.003635,-0.012124,0.023109,0.029829,-0.012349,0.000020,0.004864,-0.000247,0.003081,0.004079,-0.004044,-0.005425,0.008577,-0.007985,0.000310
Latvian_(n=24),0.133078,0.123725,0.086911,0.085312,0.042918,0.032735,0.010908,0.014865,-0.001934,-0.035604,-0.002998,-0.013326,0.025031,0.030862,-0.012198,-0.001403,0.001782,0.000095,0.000974,0.002241,-0.002652,-0.005482,0.009105,-0.009128,0.000923
Estonian_(n=11),0.132759,0.114109,0.087938,0.083099,0.042022,0.030424,0.011836,0.013510,0.000056,-0.029274,0.000236,-0.011976,0.019894,0.021632,-0.006009,0.000301,-0.001731,-0.001797,0.001806,0.002172,0.001690,-0.002125,0.005020,0.000438,0.003026
Czech_(n=175),0.131638,0.132820,0.060992,0.046278,0.038108,0.017369,0.006987,0.008401,0.001689,-0.008304,-0.002787,-0.002394,0.004533,0.011083,-0.002548,0.000909,0.001220,0.000190,0.003336,0.001359,-0.001597,-0.001271,0.004459,0.001577,-0.000140
Slovakian,0.130441,0.128769,0.062677,0.051486,0.041238,0.020024,0.006768,0.007800,-0.001841,-0.011554,-0.001916,-0.003747,0.009871,0.010432,-0.009148,0.009281,0.012934,0.000253,0.005430,0.002351,-0.003718,-0.002077,0.004338,0.001928,-0.001892
Ukraine_High_Medieval_Kievan_Rus-Golden_Horde_Korolivka_(Balto-Slavic_Profile)_(n=13),0.130371,0.121317,0.066402,0.059084,0.033758,0.021625,0.005803,0.009124,-0.001243,-0.020284,0.001562,-0.003551,0.015209,0.023639,-0.011453,-0.001999,0.001825,-0.003450,0.000986,0.002097,-0.003964,-0.003529,0.008324,-0.006247,-0.000009
Ukraine_High_Medieval_Kievan_Rus-Golden_Horde_Pidhirtsi_(Balto-Slavic_Profile)_(n=5),0.132490,0.122270,0.069767,0.061628,0.035514,0.020805,0.006063,0.015784,-0.003927,-0.016802,-0.003475,-0.007283,0.013023,0.023754,-0.012812,0.000133,0.002503,-0.000760,0.003394,0.001476,-0.006264,-0.005490,0.007198,-0.004121,-0.001940
Poland_Early_Medieval_Grodek_(n=7),0.131872,0.126796,0.062117,0.047804,0.039656,0.015100,0.009165,0.008472,0.000614,-0.014449,-0.001856,-0.004560,0.008474,0.016338,-0.009985,0.003201,0.009015,0.000380,0.004615,0.000750,-0.002888,-0.001289,0.007254,-0.003925,0.001899
Lithuania_IA-Early_Medieval_Marvele_(n=4),0.134596,0.125672,0.097486,0.098031,0.051702,0.041067,0.014806,0.017076,0.000920,-0.042780,-0.006901,-0.016785,0.030736,0.037261,-0.010145,-0.002387,-0.000293,-0.001520,0.002043,0.006378,-0.004118,-0.003772,0.008689,-0.017653,-0.001257
Latvia_BA_(n=10),0.131693,0.126332,0.099409,0.111468,0.048747,0.039965,0.014477,0.019453,-0.001022,-0.048894,-0.000114,-0.017804,0.031888,0.041493,-0.015513,0.001657,0.003938,-0.002040,0.000478,0.007516,-0.002633,-0.006479,0.007912,-0.023100,0.003197
Estonia_IA_(n=6),0.128810,0.106461,0.093903,0.093078,0.043495,0.032258,0.009714,0.013153,0.001977,-0.036356,0.005413,-0.012114,0.022200,0.014886,-0.005768,0.008198,0.010474,-0.000655,0.003289,0.011193,0.006073,-0.002370,0.002855,-0.011809,-0.002155
Poland_LIA_Wielbark_Kowalewko_(n=22),0.128465,0.128788,0.069939,0.062824,0.043183,0.022375,0.005234,0.009493,0.000642,-0.008366,-0.004591,-0.000661,-0.005440,-0.004560,0.016595,0.007546,-0.003147,0.002764,0.005074,0.006526,0.005853,0.001860,-0.000712,0.014274,-0.000925
Ukraine_Eneolithic_Trypillian_Verteba_(n=21),0.124989,0.168578,0.033079,-0.045097,0.063353,-0.024675,-0.000369,0.002363,0.038012,0.059157,0.002397,0.006252,-0.013259,-0.000931,-0.024927,0.000196,0.016348,0.002968,0.008392,-0.003525,0.000802,0.006259,-0.008598,-0.015963,0.000108
Russia_Samara_EBA_Yamnaya_(n=29),0.122654,0.088981,0.044110,0.114466,-0.027262,0.045546,0.004027,-0.002379,-0.054728,-0.074654,0.000974,-0.000548,-0.000974,-0.021706,0.036808,0.012134,-0.006488,-0.001747,-0.002514,0.010928,-0.003808,0.001262,0.009800,0.019886,-0.004480
Russia_Rostov_EBA_Yamnaya_(n=20),0.122303,0.089824,0.059170,0.119786,-0.011571,0.043772,0.004301,0.001131,-0.042193,-0.068603,0.000942,-0.003507,0.004378,-0.022784,0.034290,0.018304,-0.000124,0.000386,-0.003463,0.013200,0.002558,0.005360,0.003938,0.005260,-0.003940
Turkey_Anatolia_N_Ceramic_Barcin_(n=22),0.118842,0.181041,0.003548,-0.100835,0.051744,-0.046397,-0.005191,-0.007321,0.036861,0.080971,0.009190,0.012064,-0.023279,0.000982,-0.041820,-0.009106,0.021590,0.000697,0.011753,-0.009470,-0.013102,0.006750,-0.004667,-0.003451,-0.005465
Luxembourg_Mesolithic_Loschbour_(n=1),0.130897,0.109677,0.203645,0.198000,0.162492,0.059125,0.015041,0.038075,0.100217,0.016219,-0.015427,-0.017235,0.019921,-0.001239,0.061346,0.070670,0.002608,0.007348,-0.008925,0.065406,0.117543,0.010387,-0.049422,-0.173639,0.019519
Russia_Karelia_Mesolithic_(EHG)_(n=15),0.120045,0.032361,0.129679,0.206032,-0.009704,0.057340,-0.021746,-0.022984,-0.008699,-0.082188,0.021803,-0.016036,0.030515,-0.043902,0.025054,0.026368,-0.004529,-0.003159,-0.004274,0.014840,-0.003203,0.016446,0.008997,-0.019521,-0.008087
Nganasan_(n=62),0.045401,-0.408603,0.154699,0.001443,-0.158784,-0.088485,0.027955,0.041820,0.028963,0.013136,0.100398,0.009473,-0.004551,-0.027263,-0.020435,-0.009517,0.002900,0.013977,0.025006,-0.000597,0.042174,-0.012738,0.032434,-0.000536,0.013491
Ukraine_Late_Medieval_Crimean_Khanate_(Nogai)_Mamay-Gora_(Central_Asian_Turkic_Profile)_(n=4),0.054635,-0.244235,0.056851,-0.005572,-0.041084,-0.016176,0.007755,0.011307,-0.004091,-0.001321,-0.025738,0.001012,-0.000669,-0.005024,0.003223,0.006530,0.001630,-0.006651,0.003583,0.009098,-0.018561,-0.004977,-0.014112,0.000482,-0.003742
Ukraine_High_Medieval_Cuman_Kumy_(Central_Asian_Turkic_Profile)_(n=1),0.067156,-0.178733,0.049780,0.010982,-0.048624,-0.009761,0.003995,0.009230,-0.010226,-0.002369,-0.009419,-0.008542,-0.002676,-0.016790,0.011943,0.000398,-0.013560,-0.005448,-0.001257,0.012256,-0.015348,0.005564,0.002342,-0.002048,0.001676
Ukraine_Early_Modern_Cossack_Vypozniv_(Balto-Slavic_Profile)_(n=2),0.126913,0.108661,0.062037,0.062501,0.034776,0.023009,0.006816,0.023422,-0.000511,-0.026060,-0.007795,-0.006969,0.015089,0.024841,-0.012689,-0.002188,0.005085,-0.003420,0.000126,-0.001938,-0.004617,-0.002968,0.006101,-0.014219,0.002754

Sources and methodology

Modern population coordinates are from the Davidski Global25 scaled dataset and from the Moriopoulos 2026 collection, which aggregates published ancient DNA results into named population averages. The Global25 coordinate system was developed by David Wesolowski, author of the Eurogenes Blog. Distance calculations, the non-negative least squares models and the figures were produced in Python using NumPy and SciPy. Models can be reproduced in Vahaduo (the Global25 tool) using the coordinate block above.

  1. Ukraine aDNA Saag L, Utevska O, Zaporozhchenko V, et al. North Pontic crossroads: mobility in Ukraine from the Bronze Age to the early modern period. Science Advances. 2025;11(2). doi:10.1126/sciadv.adr0695
  2. Slavic expansion Gretzinger J, Biermann F, Mager H, et al. Ancient DNA connects large-scale migration with the spread of Slavs. Nature. 2025;646(8084):384-393. doi:10.1038/s41586-025-09437-6
  3. Balto-Slavic synthesis Kushniarevich A, Utevska O, Chuhryaeva M, et al. Genetic heritage of the Balto-Slavic speaking populations: a synthesis of autosomal, mitochondrial and Y-chromosomal data. PLoS ONE. 2015;10(9):e0135820. doi:10.1371/journal.pone.0135820
  4. Belarusian uniparental Kushniarevich A, Sivitskaya L, Danilenko N, et al. Uniparental genetic heritage of Belarusians: encounter of rare Middle Eastern matrilineages with a Central European mitochondrial DNA pool. PLoS ONE. 2013;8(6):e66499. doi:10.1371/journal.pone.0066499
  5. Volga-Oka Peltola S, Majander K, Makarov N, et al. Genetic admixture and language shift in the medieval Volga-Oka interfluve. Current Biology. 2023;33(1):174-182. doi:10.1016/j.cub.2022.11.036
  6. Steppe migrations Haak W, Lazaridis I, Patterson N, et al. Massive migration from the steppe was a source for Indo-European languages in Europe. Nature. 2015;522(7555):207-211. doi:10.1038/nature14317
  7. Baltic prehistory Mittnik A, Wang CC, Pfrengle S, et al. The genetic prehistory of the Baltic Sea region. Nature Communications. 2018;9:442. doi:10.1038/s41467-018-02825-9
  8. IBD method Ringbauer H, Huang Y, Akbari A, et al. Accurate detection of identity-by-descent segments in human ancient DNA. Nature Genetics. 2024;56:143-151.
  9. G25 method Wesolowski D. Global25 coordinate system. Eurogenes Blog. Coordinates and population averages available via the Eurogenes public datasets.
  10. Data collection Moriopoulos 2026 collection. Aggregated Global25 population averages from published ancient DNA studies.