Many futures models say the future price is based on the current price plus the cost of carry. IE, assuming zero-interest-rates, then something like:
Future_price_at_maturity = current_price × (1 + cost_of_carry)^(time_to_maturity)
But what about futures on commodities where its cheaper to get new supply in the future rather than pay the carry cost today? IE, I could buy oil today and pay to store it in a tanker for 5 years and then the above equation would apply; but it would be stupid to pay that storage cost for 5 years because we could instead just wait 5 years and then buy new oil fresh-out-of-the-ground and avoid all that storage cost. In that case, the correct futures price must be less than the equation above suggests.
Isn't the above equation a ceiling on the price rather than an equality? What's the best way to generalize that equation? I'm assuming the price should be like
"= min(cur_price*carry, expected_future_spot_price)" but that seems to get recursive very quickly. What's the correct way to adjust that equation?