Market Notes Article

Ukraine's corn runs into the limit of its railway

Wheat has shown how much the railway carries: about 0.2 Mt a week, however much is piling up at home. The USDA's 22 Mt for corn asks for more than all of Ukraine's grain is moving today, and tomorrow's WASDE is the number to watch.

By Marius Garrigue 2 min read

Abstract lines tracing Ukrainian corn and milling wheat FOB prices since March 2026.

Ukraine is bringing in its corn at the pace of 2022 and shipping it five times slower. By early November 38% of the crop was harvested, against 40% at the same point in 2022, but only 0.32 Mt had left the country since the season began in October, against 1.70 Mt then. Since the summer, Ukrainian grain has left mostly by rail, and the railway has already shown its limit on wheat.

Line chart of Ukrainian corn harvest progress by week, State Statistics Service, in percent of area. The 2026/27 line reaches 38% in week 45, almost on top of the 2022/23 line (40%) and 29 points under the five-season average.
Ukraine had harvested 38% of its corn in week 45, against 40% in 2022 and a 67% five-season average.Source: GrainBoard — Crop Progress · Harvest progress
Explore this chart in GrainBoard →

Wheat has found the ceiling

Wheat went onto the railway in July, and since then it has shipped about 0.2 Mt a week, a rate that has barely moved in four months. It is not short of grain to sell. The USDA has lifted Ukraine's wheat ending stocks from 2.53 to 6.1 Mt since July, more than double. Wheat is piling up at home while weekly shipments stay flat: what holds it back is the route, not the supply.

Line chart of weekly Ukrainian wheat exports from July, Ukrainian Agriculture Ministry, in million tonnes. The 2026/27 line holds between 0.12 and 0.38 Mt a week from week 29 to week 44, ending at 0.19 Mt, near the bottom of the five previous seasons' range and under their average in every week sinc
Ukraine has shipped about 0.2 Mt of wheat a week since July, against a five-season average of 0.40 Mt in week 44.Source: GrainBoard — Exports
Explore this chart in GrainBoard →

The USDA has written that limit into its wheat balance, cutting exports from 14.5 to 12.5 Mt. At the 0.24 Mt a week of the past two months, the season lands close to that 12.5.

Corn has to go through the same door

The same railway now has to carry corn, and it has not grown. Over the past four weeks, wheat, barley and corn together left Ukraine at about 0.33 Mt a week.

For corn, the USDA has kept last season's number. It has cut exports only once, from 23 to 22 Mt in August, level with last season's 22.2 Mt. But 21.3 Mt of last season had already left by July, before the sea routes closed. Since then corn has moved at 0.03 to 0.18 Mt a week, and the new crop has started at around 0.08. Reaching 22 Mt from here takes close to 0.45 Mt of corn a week until the end of September, more than the railway moves today for all grains combined.

Our reading: tomorrow's WASDE is the number to watch

Corn always starts slowly, and four weeks do not make a season. But wheat has shown what the railway carries, and the corn program asks for more than that on its own. In our reading, the 22 Mt depends on a capacity the flows do not show yet. Three signals will tell:

  • The November WASDE, out tomorrow. A cut to Ukraine's corn exports sent into stocks would treat corn the way wheat was treated. An unchanged 22 Mt would mean the USDA expects the route to carry more as the harvest advances.
  • Weekly shipments in November, all grains. Total Ukrainian shipments breaking well above 0.33 Mt a week would show the railway has room. Corn gaining only what wheat loses would confirm the ceiling.
  • The harvest before the cold. With temperatures now falling toward freezing, a harvest that falls behind 2022's pace would add a field constraint to the shipping one.

GrainBoard modules used in this note

For information only. Not investment advice.

Built with GrainBoard data

The supply & demand, trade-flow and price data behind this note, in one analytical workspace.

Explore GrainBoard →