# Modelling carrying charges for grains

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).