Here is the argument in its purest form, and everything else in Forwards, Futures & Swaps is a variation on it. Suppose you can (a) buy the underlying today at its spot price S0, financing the purchase by borrowing at the risk-free rate r, and hold it until the forward's maturity T; or (b) simply enter a forward contract today, at some forward price F, to buy the same underlying at T, putting no cash down now. Both strategies deliver you exactly one unit of the underlying at time T. Since they deliver an identical payoff with certainty, the law of one price says they must cost the same in present-value terms, and because strategy (a)'s all-in cost of carrying the asset to T is computable today, F is not a forecast, a guess, or a market opinion. It is arithmetic:
F0 = S0 × (financing cost) − (carry benefits received) + (carry costs paid),
where the "financing cost" term compounds S0 forward over T at the relevant rate, "carry benefits" are things you receive for holding the asset (dividends, a foreign interest rate, a convenience yield), and "carry costs" are things you pay (storage, insurance). If the market's quoted forward or futures price ever drifts away from this fair value, an arbitrageur executes whichever of (a) or the mirror-image short strategy is cheaper and captures the difference risklessly, which is exactly why, in a liquid, frictionless market, the drift cannot persist. You will compute that arbitrage profit directly in Worked Example 1.
Advertisement
Which compounding convention should you use?
The formula above hides one thing you must get right every single time: which compounding convention encodes "financing cost." This module uses three, deliberately, because the real markets you will actually check your numbers against use three:
- Continuous compounding,
× e^{rT}, for equities, equity indices, and commodities, the convention used almost universally in the derivatives-pricing literature (Hull) because it composes cleanly with dividend yields and storage costs expressed the same way. - Simple interest with an explicit day-count fraction,
× (1 + r·τ), for FX forwards (CIP) and FRAs, the convention actual money markets quote in, because these are short-dated instruments priced directly off deposit rates, which the market itself quotes simply. - Discrete, periodic compounding matching the payment frequency,
× (1+z)^n, for swap fixed and floating legs, because a swap literally is a sequence of periodic cash flows, and its discount factors must match that periodicity.
None of these is "more correct" than the others; each matches the convention its home market actually uses. The error worth naming now, because you will be tempted to make it in the first practice problem, is plugging a continuously-compounded rate into a simple-interest formula (or vice versa) without converting, a small-looking slip that silently mis-prices every downstream number. We flag this again in "Common mistakes," because it is the single most common bug in this entire branch.
{
"skill": "Deriving or explaining a cost-of-carry variant you have not seen before (e.g., a forward on a foreign-currency-denominated commodity, or a forward with a mid-life cash flow)",
"use": "Have a chat assistant walk you through the no-arbitrage replication argument for an unfamiliar carry variant, in plain language, before you touch the algebra yourself — using it to build intuition for the argument's *shape*, never as the source of the final number.",
"tools": ["Chat assistants — Claude, ChatGPT, Gemini", "A notebook/code tool to rebuild and check the derivation symbolically or numerically"],
"prompt": "Derive the no-arbitrage forward price for <SCENARIO> from first principles: state the replicating portfolio, show why its cost must equal the forward price, and give the final formula. Then apply it to this numeric example: <YOUR NUMBERS>. Show every step.",
"verify": "Rebuild the replicating-portfolio argument yourself from the general model above and check the model's formula reduces to it under the standard cases (zero carry costs/benefits should collapse to F=S0*e^{rT}). Recompute the numeric example independently in Python; a match is expected, not proof the derivation itself is right — the derivation is right only if you can restate why the replicating portfolio is riskless (Guardrail #1 Trace and #3 Recompute, AI0.01).",
"diy": "You must be able to state the replication argument — why a costless forward and a financed spot purchase must have the same value — in your own words first. That argument, not the formula, is what this section teaches.",
"market": "US"
}