CFA Level II · CFA Level II Exam
Pricing and Valuation of Forward Commitments: formula sheet
Key formulas
- Law of one price
- Same payoff in every state ⇒ same price today
- If violated, buy the cheaper and sell the dearer to earn an arbitrage profit.
- Arbitrage-free forward price (no carry)
- F₀(T) = S₀ × (1 + r)^T
- Uses discrete compounding. With continuous compounding, F₀(T) = S₀ × e^(rT).
- Forward price with carry
- F₀(T) = (S₀ − PV of benefits + PV of costs) × (1 + r)^T
- Benefits include dividends or coupons. Costs include storage and insurance.
- Risk-neutral price of a derivative
- V₀ = [π × V_up + (1 − π) × V_down] ÷ (1 + r)
- π is the risk-neutral probability, not the real-world one. Discount at the risk-free rate.
- Value of a long forward at initiation
- V₀(T) = 0
- The forward price is set so no one pays at the start.
- Value of a long forward during its life
- Vₜ(T) = Sₜ − F₀(T) ÷ (1 + r)^(T − t)
- With carry, replace Sₜ with Sₜ less PV of remaining benefits plus PV of remaining costs.
- Value of a long forward at expiry
- V_T(T) = S_T − F₀(T)
- The payoff of a long forward settled at expiry.
- Forward price, no carry (discrete compounding)
- F0(T) = S0 × (1 + r)^T
- Use for assets with no benefits or costs. T is in years. r is the annual risk-free rate.
- Forward price with benefits and costs
- F0(T) = (S0 − γ0 + θ0) × (1 + r)^T
- γ0 is the PV of benefits (dividends, coupons, convenience yield). θ0 is the PV of costs (storage). Discount each cash flow from its payment date back to time 0.
- Forward price, continuous compounding
- F0(T) = S0 × e^((r + θ − γ) × T)
- Here r, θ and γ are annual continuous rates. For a stock index with dividend yield δ, use e^((r − δ) × T).
- Value of a long forward at time t
- Vt(T) = [Ft(T) − F0(T)] ÷ (1 + r)^(T − t)
- Ft(T) is the current no-arbitrage forward price for the same expiry. The short's value is −Vt(T).
- Value of a long forward, spot form
- Vt(T) = (St − γt + θt) − F0(T) ÷ (1 + r)^(T − t)
- γt and θt are PVs at time t of benefits and costs still to come. Benefits already paid are excluded.
- Arbitrage rule
- Market F > no-arbitrage F: sell forward, buy asset, borrow. Market F < no-arbitrage F: buy forward, short asset, lend.
- The profit at expiry equals the difference between the two forward prices, ignoring transaction costs.
- Futures price, discrete compounding
- F0(T) = S0 × (1 + r)^T − FV(benefits) + FV(costs)
- Equivalent form: F0(T) = (S0 − PV(benefits) + PV(costs)) × (1 + r)^T. These give the same result. Discount each cash flow only to today, or grow each to expiry, but do not do both. Use the same form consistently.
- Futures price, continuous compounding with yield
- F0(T) = S0 × e^((r − q) × T)
- r is the continuously compounded risk-free rate and q is the continuous yield on the asset, for example a dividend yield. Add a continuous storage cost rate to r if given.
- Value of a futures contract after marking to market
- Value after settlement = 0. Gain or loss for the day = (Ft − Ft−1) × multiplier × number of contracts for the long
- The short gets the opposite sign. Ft is the settlement price.
- Value of a forward contract at time t
- Vt(T) = PV of (Ft(T) − F0(T)) = Ft(T) ÷ (1 + r)^(T − t) − F0(T) ÷ (1 + r)^(T − t)
- Long position. Not the same as futures value, which resets to zero daily.
- Futures versus forward price
- Correlation = 0: futures price = forward price. Positive correlation of futures prices with rates: futures price > forward price. Negative correlation: futures price < forward price
- Applies to contracts with the same terms and expiry. Taxes, liquidity and credit risk are other reasons for differences.
- Implied forward rate (FRA rate)
- (1 + L(h) × days_h ÷ 360) = (1 + L(g) × days_g ÷ 360) × (1 + F × (days_h − days_g) ÷ 360), so F = [ (1 + L(h) × days_h ÷ 360) ÷ (1 + L(g) × days_g ÷ 360) − 1 ] × 360 ÷ (days_h − days_g)
- L(g) and L(h) are spot Libor rates for g and h days. Use the day-count in the vignette (usually 360). Solve for F. Do not average the rates.
- FRA settlement at expiry (long)
- Payoff = Notional × (Floating − FRA rate) × (days ÷ 360) ÷ (1 + Floating × days ÷ 360)
- Floating is the underlying rate observed at expiry; days is the length of the underlying period. A negative payoff means the long pays. The short's payoff is the opposite sign.
- FRA value before expiry (long)
- Value = Notional × (New FRA rate − Old FRA rate) × (days ÷ 360) ÷ (1 + L_t(h − t) × (h − t) ÷ 360)
- New FRA rate is the forward rate now for the same remaining period. Discount with the spot rate from today to the end of the underlying period (time h). The short's value is the negative.
- Notation
- g x h FRA: expires at g months; underlying rate covers (h − g) months starting at g
- For example, 3x6 means a 3-month rate starting in 3 months. 2x8 means a 6-month rate starting in 2 months.
- Discount factor from a spot rate
- Z_t = 1 ÷ (1 + S_t)^t
- Use the spot rate for the same maturity. For a period of less than a year, use the periodic rate.
- Par swap fixed rate (periodic)
- Fixed rate per period = (1 − Z_N) ÷ Σ Z_i
- Sum runs over all payment dates 1 to N. For an annualized rate, multiply by the number of periods per year (e.g. ×4 for quarterly).
- Par swap rate with day count
- S = (1 − Z_N) ÷ Σ (days_i ÷ 360 × Z_i)
- Use when the question gives actual day counts. Annual payments with equal periods reduce to the simple form.
- Implied forward rate
- f_t = Z_(t−1) ÷ Z_t − 1
- This is the one-period forward rate for period t that sets each floating payment in the FRA view.
- Value to fixed receiver after initiation
- V = [ (S_old − S_new) × Σ Z_i(new) ] × Notional
- S_new is the current par swap rate for the remaining term. Sum is over the remaining payment dates.
- Bond approach to value
- V(receiver) = PV(fixed bond at S_old) − PV(floating bond)
- Right after a reset, the floating bond is worth 1 per unit of notional. Between resets, it equals (1 + next floating rate × period) × Z to the next payment date.
- Payer value
- V(payer) = − V(receiver)
- Swap value is zero sum between the two parties.
- Fixed swap rate per period (each currency)
- Fixed rate per period = (1 − Z_N) ÷ (Z_1 + Z_2 + … + Z_N)
- Z are discount factors in that currency only. Multiply by periods per year to annualise. Do this separately for each currency.
- Notional in the second currency
- Foreign notional = Domestic notional ÷ S0 (S0 quoted as domestic per 1 foreign)
- Check the quote convention. If S0 is foreign per domestic, multiply instead. The notionals have equal value at S0, so the swap starts at zero.
- Value of a fixed leg (in its own currency)
- PV = C × (Z_1 + … + Z_N) + Notional × Z_N
- C is the fixed coupon in currency units. Use current discount factors for the time remaining.
- Value of a floating leg just after a reset
- PV = Notional (par), for a leg with floating rate set at the reset date
- Between resets, PV = (Notional + next coupon) × Z for the next payment date.
- Swap value to a party
- V = (PV of leg received, converted at current spot) − (PV of leg paid, converted at current spot)
- Express both in one currency. Use the current spot rate, not the initial one. The counterparty's value is the negative.
Quick revision
- Arbitrage-free pricing: two assets or portfolios with identical payoffs must have the same price.
- Forward price at initiation is set so the contract value is zero for both sides.
- Forward price on an asset with no income or cost of carry: F₀ = S₀ × (1 + r)ᵀ.
- Income such as dividends lowers the forward price, and storage costs raise it.
- Forward value before expiry, for the long position: V_t(long) = S_t − PV(benefits) + PV(costs) − F₀ ÷ (1 + r)^(T − t). The short's value is the negative of this.
- Futures are marked to market daily, so value resets to zero after each settlement.
- An FRA fixes a rate for a future borrowing period, and its payoff is discounted from the end of the period back to the settlement date.
- Swap fixed rate at initiation makes the present value of fixed payments equal the present value of floating payments.
- A plain vanilla swap's fixed rate can be found from discount factors as (1 − final discount factor) ÷ sum of discount factors.
- After initiation, from the fixed receiver's view, swap value = PV of the old fixed payments (at the contract rate) minus PV of the new fixed payments (at the current market swap rate). For the fixed payer, reverse the sign.
- A currency swap involves the exchange of notional at start and end, and each leg is valued in its own currency's rates before converting at spot.
- An equity swap pays the equity return on one leg against a fixed or floating rate on the other, and the equity leg resets to notional on each reset date.
Common mistakes
- Using real-world probabilities or expected return to price a derivative. Fix: Use the risk-free rate and risk-neutral probabilities. Expected return does not affect the no-arbitrage price.
- Treating the value of a forward at initiation as the forward price. Fix: The forward price is a contract rate. The initial value is zero. Value only becomes non-zero as time passes.
- Adding dividends to the forward price instead of subtracting them. Fix: The forward buyer does not receive the dividends, so the forward price is lower. Benefits are subtracted; costs are added.
- Subtracting the full dividend without discounting it, or discounting it for the wrong period. Fix: Discount each dividend from its payment date to time 0 (or to t when valuing later). Or use the FV method: grow each dividend from its payment date to expiry.
- Treating the value of a futures contract as the difference from the original futures price. Fix: Futures are reset to zero value after each daily settlement. Only the current day's change in settlement price is the gain or loss.
- Adding dividends to spot instead of subtracting them. Fix: Holding the asset earns the benefit, so the futures price is lower. Subtract the benefits and add the costs.
- Reading 3x6 as a 6-month rate or a contract that expires in 6 months. Fix: The first number is the expiry. The rate term is the second minus the first. A 3x6 is a 3-month rate starting in 3 months.
- Computing the forward rate by subtracting or averaging the spot rates. Fix: Compound each spot rate over its own number of days, divide the long growth factor by the short one, subtract 1, then annualise.
- Using only the final discount factor in the denominator Fix: The denominator is the sum of all discount factors on payment dates. Only the numerator uses the last one.
- Forgetting to annualize a quarterly or semiannual rate Fix: Multiply the per-period result by the number of periods per year. Check that the answer is close to spot rates in size.
Exam tips
- Underline whether the question says price or value. Price means the forward rate at initiation. Value means the contract's worth now.
- Check the vignette for dividends, coupons or storage costs before using any formula.
- For tree questions, solve π from the up and down returns and the risk-free rate, then discount at the risk-free rate.
- Check time units: remaining time for valuation is T − t, not T.
- If an option says expected return or risk aversion affects the price, it is almost certainly wrong.
- Read the vignette for the compounding convention and the exact timing of each dividend or storage payment. Most lost marks come from timing, not from the formula.
- For valuation questions, check whether a dividend falls before or after time t. Drop any carry item already paid.
- Use sign logic to eliminate options. If spot has risen since initiation and there are no other changes, the long must show a gain.