Determining Forward Prices for Various Underlyings (CFA Level 1): Cost-of-Carry Basics, Adjustments for Dividends, and Storage Costs and Convenience Yields for Commodities. Key definitions, formulas, and exam tips.
When we talk about forward pricing—especially at the advanced (or, shall we say, “capstone”) level of CFA study—we’re essentially discussing the cost of entering an agreement today to buy or sell an asset at a future date. I remember the first time I encountered forwards early in my trading career—I naively thought it was just “the future price you guess,” but oh boy, was I in for a surprise. There’s an entire theory behind how forward prices are determined, grounded in the idea of no-arbitrage and the cost-of-carry model.
Here, we take a comprehensive look at forward pricing for different asset types—be it equities, physical commodities, currencies, or interest rates—while also highlighting common pitfalls that candidates often encounter. In real-world markets, we must adjust the simplistic cost-of-carry model for dividends, storage costs, or convenience yields when we deal with physical commodities, and for interest rate differentials when it comes to currencies. You’ll see how these different “tweaks” come together so that the forward price is fair, rational, and free from arbitrage opportunities.
The foundational concept behind forward pricing is the idea that holding or “carrying” an asset through time comes with various costs and benefits. If you choose to buy the asset now and store it, that’s a capital outlay. You might also incur storage or financing expenses. Meanwhile, you might receive some benefit from holding the asset—like an income stream (dividends or coupon payments) or a “convenience yield,” especially in commodities.
In mathematical terms (assuming continuous compounding for advanced finance applications), the simplest version of the cost-of-carry model states:
(1) Forward Price = Spot Price × e^(rT)
Where:
Under this baseline assumption, we consider no storage costs, no income (dividends), and no convenience yields. It’s a neat, tidy formula, but real-world assets usually require more detail.
Below is a Mermaid diagram illustrating the basic cost-of-carry relationships:
flowchart LR
A["Spot <br/>Price"] --> B["Add<br/>Financing Cost (rT)"]
B --> C["Forward <br/>Price"]
A --> D["Less<br/>Benefits (e.g.<br/>Dividends)"]
D --> C
The general idea is that you start with the spot price, add financing costs, and then subtract any benefits you might get from holding the underlying asset (or equivalently, add net expenses if any). The result is the fair forward price.
When we talk about equity forwards—say, the forward contract on a stock or even an equity index—things get interesting because stocks often pay dividends. If you hold the stock through time, you physically (or electronically) receive dividend payments, which offset some of your cost of carrying. Hence, from a no-arbitrage perspective, the forward price must be lower than the baseline cost-of-carry formula if there are dividend payments along the way.
Let’s consider a stock that pays discrete dividends. Let’s assume these dividends are known or can be estimated with reasonable accuracy (which is often the case for large, stable companies or certain indices). The forward price (under continuous compounding) can be adjusted by subtracting the present value (PV) of expected dividends, DV, as follows:
(2) Forward Price = (Spot Price − PV(Dividends)) × e^(rT)
In real markets, if dividends are paid continuously or if we assume a continuous dividend yield δ, we often write:
(3) Forward Price = Spot Price × e^((r−δ)T)
So that’s the advanced version for equities. If you know you’re going to receive a 3% dividend yield, you can reduce your cost of carrying. Maybe you can put it this way: every dividend you collect means you effectively outlay less net capital to maintain the position.
Unlike equity forwards—with predictable cash distributions—commodity forwards have two unique facets: storage costs and convenience yields (or lease rates). I’ll never forget the first time I had to literally pay for a warehouse to store bushels of corn (well, my firm did, but I learned the pinch). Storage costs increase the forward price. Meanwhile, if you hold the physical commodity, you might enjoy a convenience yield because physical possession can be valuable—think of an oil refiner wanting guaranteed supplies of crude.
Hence, the forward price for a commodity that pays no dividends, but carries storage costs \(u\) and yields convenience yield \(\gamma\), can be expressed as:
(4) Forward Price = Spot Price × e^((r + u − γ)T)
Here:
Some trickier real-world scenarios also incorporate a “lease rate” (often used for precious metals). This lease rate effectively allows the holder of the commodity to lend it out—earning interest or a fee—and that reduces the net cost-of-carry.
If the convenience yield is high, it offsets part (or all) of your storage and financing costs, resulting in a lower forward price (relative to the no-storage scenario). If you ask me, this is elegantly symmetrical with the dividend yield scenario in equities—anything you gain from holding the underlying lowers your forward price.
Currency forward contracts are typically described by covered interest rate parity. In the currency world, it’s the interest rates of the two currencies that matter. Let’s denote:
Under continuous compounding, the no-arbitrage condition for currency forwards is:
(5) \(F_0 = S_0 \times e^{(r_d - r_f),T}\)
Intuitively: if the domestic interest rate is higher than the foreign interest rate, the forward price for buying foreign currency should reflect an expected depreciation in the home currency, and vice versa. If not, we’d have an arbitrage.
At times, in real markets with discrete compounding, you see the formula:
\(F_0 = S_0 \times \frac{(1 + i_d)^T}{(1 + i_f)^T}\),
where \(i_d\) and \(i_f\) are periodic interest rates over the same horizon. Either approach ensures that if you borrowed one currency and lent the other, you won’t lock in a riskless profit. And if you do see a riskless profit, be sure that some algorithmic trading shop is waiting to pounce on it.
Interest rate forwards, typically known as Forward Rate Agreements (FRAs), let you lock in an interest rate for a future period. For instance, you can arrange an FRA that starts in three months and ends in six months, effectively locking in a borrowing or lending rate for that three-month window.
The FRA price is best thought of in terms of an implied forward interest rate. Let’s say you have:
An FRA’s “price” is typically stated as an annualized percentage, just like a standard interest rate quote. You can back it out from the observed zero-coupon yield curve or from short-term interest rate futures. Specifically:
(6) \(1 + L(t_1, t_2),(t_2 - t_1) = \frac{(1 + z_{0,t_2})^{t_2}}{(1 + z_{0,t_1})^{t_1}}\),
where \(z_{0,t_1}\) and \(z_{0,t_2}\) are zero rates (or discount factors) for maturities \(t_1\) and \(t_2\).
In practice, also recall that FRAs are typically cash-settled at the beginning of the contract period, applying discount factors accordingly. The core principle, though, remains: the forward interest rate ensures no arbitrage between borrowing/lending in the cash market or using the forward agreement.
We can represent the relationships among the adjustments for various underlyings in a single diagram. While the exact formula can vary, the structure remains consistent: Spot plus any net financing cost, minus the value of any yield or beneficial “income.”
flowchart LR
S["Spot Price (S0)"] --> C["Add Financing or Cost of Funds <br/>(+r, +storage)"]
C --> FWD["Forward Price (F)"]
S --> B["Subtract Benefits or Yields <br/>(dividend, convenience)"]
B --> FWD
FWD --> OUT["No-Arbitrage <br/> Forward"]
At the exam level (and in real portfolio management), understanding which factors to include—dividends, storages, convenience yields, or interest rate differentials—helps you quickly identify potential mispricings or check given data for reasonableness.
Let’s run a quick example with numbers. Suppose you have a stock trading at USD 100 today (spot price). The risk-free rate is 5% (continuously compounded), and the stock is expected to pay two discrete dividends: USD 1 in three months and USD 1 in six months. The forward contract matures in nine months.
Calculate the present value (PV) of the dividends:
Sum these present values. Subtract from the spot to get an “adjusted spot.”
Then apply exponential growth at the risk-free rate for 0.75 years to get your fair forward price.
It might look like this in Python (though in the exam you obviously do it by calculator, but let’s illustrate):
1import math
2
3spot = 100
4r = 0.05
5div1 = 1
6div2 = 1
7t1 = 0.25
8t2 = 0.50
9T = 0.75
10
11pv_div1 = div1 * math.exp(-r * t1)
12pv_div2 = div2 * math.exp(-r * t2)
13adjusted_spot = spot - (pv_div1 + pv_div2)
14forward_price = adjusted_spot * math.exp(r * T)
15
16print("Adjusted Spot:", round(adjusted_spot, 2))
17print("Forward Price:", round(forward_price, 2))
This approach is straightforward once you have the mental framework of cost-of-carry.
Important Notice: FinancialAnalystGuide.com provides supplemental CFA study materials, including mock exams, sample exam questions, and other practice resources to aid your exam preparation. These resources are not affiliated with or endorsed by the CFA Institute. CFA® and Chartered Financial Analyst® are registered trademarks owned exclusively by CFA Institute. Our content is independent, and we do not guarantee exam success. CFA Institute does not endorse, promote, or warrant the accuracy or quality of our products.