What's new

Storage Costs Hull Vs McDonalds


Thread starter #1
Hi David,

Can you please explain how do we calculate forward price with storage costs when given as $ values and as % ? Between the two books I am really confused..perhaps extend this with other Cost of carry factors.

Thanks in advance..


Well-Known Member
when storage cost in%(continuously compounded) let it be c=4% and risk free rate=5%,spot price=100,T=1
Then forward price= 100*exp((r+c)*T)=100*exp(.05+.04)*1=100*exp(.09)=109.42
when storage cost in $
forward price=(100+PV of storage costs)*exp(rT) ,let PV of storage costs=4$
then forward price=(100+4)*exp(.05)=104*exp(.05)=109.33

David Harper CFA FRM

David Harper CFA FRM
Staff member
@Rohit As @ShaktiRathore illustrates, there is a relationship between storage costs as % (given by "u" in Hull) and the present value ($) of storage costs (given by "U" in Hull). You can see from my derivation below that (u) can be translated into the (lump sum) present value of storage costs: U = S(0)*[exp(uT) - 1]. So it is interesting that therefore, we can take the lump-sum PV of storage costs, U, and solve for u:
  • U = S(0)*[exp(uT) - 1]
  • U/S(0)+1 = exp(uT),
  • ln[U/S(0)+1] = uT, and
  • u = 1/T*ln[U/S(0)+1]
The point is not to obfuscate with arithmetic, but just to show there is an elegant link between storage costs as constant ratio (of the spot) and the general form: F(0) = (S + U - Q)*exp(rT), where U is the PV of any cost of ownership and Q is the PV of any benefit of ownership. I hope that helps.

For my calculation, see https://www.bionicturtle.com/forum/...tween-forward-and-spot-price.7949/#post-31014 ie.,
Thanks @Alex_1 and @Roshan Ramdas that's exactly correct. (U) and (u) are compatible due to the definitions. As Rohsan says (U) is a present value in dollar terms, while (u) is a constant percentage of the spot price. Similarly for (I) and its analog (q). The reason continuous (y) doesn't have a lump-sum PV equivalent is that convenience yield is intangible. (U) is the realistic quantity; i.e., it's more realistic to figure lumpy actual costs in PV terms. (u) is employed simply as a model convenience: if it's continuous, then it's similar to (r) and by this virtue can be used elegantly in the COC model.

But they equate by their definition. For example, say spot, S(0) = $100, Rf =4% per annum, T = 1.0 year for convenience, and storage cost (u) = 6.0% per annum with continuous compounding. Then, the future total carry cost = S*[exp(r+u)T] = S*exp(rT)*exp(uT), such that the future total storage cost = S*exp(rT)*exp(uT) - S*exp(rT) = S*exp(rT)*[exp(uT) - 1].
Then the present value of this future total storage cost is given by S*exp(rT)*[exp(uT) - 1]*exp(-rT) = S*[exp(uT) - 1] = U.
So this equates, by definition continuous (u) and U: lump sum present value U = S(0)*[exp(uT) - 1]
With my example numbers, U = S*[exp(uT) - 1] = 100*[exp(6%*1) - 1] = $6.18365, which corresponds to future FV storage cost of $6.18365*exp(4%*1) = $6.436014. I hope that helps,


Thread starter #4
@David Harper CFA FRM

In this case -

Calculate 3 month fwd price for a bushel of soybean if current spot is $3/bushel, the effective monthly int rate =1% and the monthly storage costs are $0.04/bushel ?
Ans = forward price = $3.2121

how would I solve this ? Thanks in advance :)

David Harper CFA FRM

David Harper CFA FRM
Staff member
Hi @Rohit My above uses continuous, your question assumes monthly. The easiest thing to do is forward the storage costs:
  • $0.04*1.01^2 + $0.04*1.01^1 + $0.04 = 0.121204; i.e., this is the future value of the storage cost at the end of three months
  • Add that to $3.0*1.01^3 = $3.090903, which is the spot rate carried (forward) at the risk free rate
  • So at the end of three months, the fully loaded cost of carrr = $3.090903 + 0.121204 = $3.212107
Note that's the same as discounting the storage to the present with $0.04/1.01 + $0.04/1.01^2 + $0.04/1.01^3 = $0.117639, then adding to the spot price such that S+U = $3.00 + $0.117639 = $3.117639, and (S+U)*(1 +Rf)^3 = 3.117639*1.01^3 = $3.212107. Notice we've assumes storage costs are paid at the end of each month. If we switch to assuming storage cost at beginning of each month, both methods will instead return a forward price of $3.213319, so the question must be assuming end of month. I hope that helps!

David Harper CFA FRM

David Harper CFA FRM
Staff member
Hi @Rohit It's a simpler form of that general formula, yes. We have a stream of $0.040 payments at the end of the next three months
  • The payment in +one month has a PV = $0.040/(1 + 1%)^1; if you want to use per annum, then note the given interest rate is 12% per annum with monthly compounding such that, in your general forum, PV(1st storage payment) = $0.040/(1 + 12%/12)^[12*(1/12)] = $0.040/1.01^1 = 0.039604, because m = 12 periods per year, and n = 1/12 of a year for the payment in one month
  • The payment in second month has a PV = $0.040/(1+r/m)^(m*n) = $0.040/(1+12%/12)^[12*(2/12)] = $0.040/(1+1%)^2 = 0.039212. I am not recommending (1+12%/12)^[12*(2/12)] which is unnecessary as this is just per period discounting, I am just showing you it's the same. You don't need the formula because we are just discounting $0.040 to be received in two periods where the discount rate is 1.0% per period.
  • The payment at the end of third month has PV = $0.040/(1+1%)^3 = 0.038824
  • The sum of the three = 0.039604 + 0.039212 + 0.038824 = $0.117639, which is the PV of storage, U, in the general F(0) = (S+U)*(1+r/m)^(m*n) = ($3.00 + $0.117639)*(1+1%)^3 = 3.21210700 according to my calcs, which is just the annual discrete version of continuous COC F(0) = (S+U)*exp(r*n).
Last edited:
I have a question and hope that anyone could help me please.
What I find really confusing are two different formulas of calc. storage costs.

What I am used to is: F = (S+U)*exp(rT), where U is (as above already mentioned, the present value of the storage costs.
Then what Ive got is F= S*exp(rT)+V, let V be the future Value of the storage cost

The question from GARP 2009 practice exam nr.23
r= 5% annually (continuously)
storage cost = 0.05

Forward Price March is 5.35 <- let S
Forward Price June is 5.9 <- let F

calculation for return

Normally I would calc it as: U = 0.05 x exp(-0.05* 3/12) = ~0.0494
5.9 = (5.35 + 0.0494) x exp(r x 3/12)
r = 35.47%

which is not 100% correct, but close to the answer

With this formula
5.9 = 5.35 x exp(r*0,25) + 0.05 <-- future value, because first quarter its 0.05 (if it would be second it would be 0.05 + 0.05 * (1+r)^1 and third would be 0.05 + 0.05 * (1+r)^1 + 0.05 * (1+r)^2)
r = 35.74

can anyone help me to understand, when to use which formula?

With kind regards
Last edited: