Pavel Hála

Modelling carrying charges for grains

Published April 24, 2017

I’m excited to announce some interesting new features in our app regarding grains and carrying charges. These functions are actually nothing new for me. I coded them for ZC, ZS, ZM and ZL sometime in 2010 into my personal Javascript app that later became an alpha version of the SpreadCharts.com app. What’s brand new today and what our team is really proud of, is the implementation of VSR (variable storage rate) for CBOT wheat (ZW). Calculating VSR is much more complicated than simple functions for other grains. I’ve never seen it in any other app or software.

The cost of carry in physical commodities is the main reason why their term structure curves aren’t flat. Determining carrying charges in grains is most important for farmers. They often don’t sell their crop after harvest, opting instead to sell the carry and hold the grain using on-farm storage. They profit from the spread between the far future and the price at the time of harvest. However, they also have expenditures with the storage, most notably a need to finance the new crop without proceeds from the old crop. If the profit from the spread is larger than the expenditures, it’s a good deal for the farmers. This is usually the case after good harvests when futures are in steep contango. What remains is the basis risk. However, even the basis tends to improve into the winter and spring/summer. Storing the grain, therefore, allows farmers to capture the narrowing basis, resulting in an even better price for their crop.

Ordinary market participants don’t have storage capacities. However, even they theoretically have the ability to sell the carry. There is a maximum storage rate elevators can charge people holding warehouse receipts. This rate is set by the exchange. It’s constant for most grains with the only exception being wheat (both KE and ZW). If you include other components of the carrying charges, you get a maximum allowable cost of carry which is called full carry. Full carry is an arbitrage level, the price of the spread cannot exceed it. Should this happen, everybody could trade this arbitrage, resulting in its instant disappearance. This level determines your maximum risk when you open a bull spread and maximum profit in a bear spread trade. You can display the full carry in the app for interdelivery spreads in grains under the “Price” tab by clicking on the “Full carry” button (the gray/green square in the chart’s legend).

These rules are valid for all grains and oilseeds except for CBOT wheat (ZW). Because of the VSR concept, the full carry in ZW is no longer an unbreakable barrier. It can rise or decline substantially in a short period of time. It can be at a wildly different level several months from now, especially the further out spreads in ZW. They can reach or even exceed the full carry. That’s because variable storage rate brings uncertainty into the equation. The market doesn’t know how high the storage rate will be at expiration and may be pricing a different degree of full carry from today’s level.

This complexity brings us new opportunities. Spreads can depart too far from the current full carry, indicating a huge discrepancy between the expected outlook and reality. Or the full carry can start to move, but spreads can take their time for reaction, etc. Additionally, we can measure a probability that the maximum storage rate will move in advance. This is what the so-called “Running average” study is intended for.

Posted in Announcements and tagged , , , , , , , ,
Pavel Hála

Pavel is the founder and CEO of SpreadCharts.

Check out also these great articles

Pavel Hála

The Lumber is dead, long live the Lumber

If you trade Lumber futures, you might have noticed that no new contracts have been...

Pavel Hála

SPECIAL REPORT: Silver mining costs

More than a week ago, I posted this cryptic tweet. Although it was about gold,...

Pavel Hála

Is the bear market over?

We saved many of you from the bear market last year. Of course, everybody now...