A
AcadiFi
EX
ExcelGreeksUser2026-05-23
cfaLevel IIDerivativesGreeksExcel Modelling

How do I approximate delta in an Excel spreadsheet without using the closed-form formula?

The instructor mentioned you can compute delta in Excel with "a very simple mechanism." What exactly is that mechanism, and how accurate is it compared to the closed form?

156 upvotes
AcadiFi TeamVerified Expert
AcadiFi Certified Professional

The simplest Excel approach is a finite-difference approximation of the partial derivative. It works without any closed-form formula and is what option-pricing libraries used before everyone had the BSM derivation memorised.

Setup in a spreadsheet:

Cell A1: S0=100S_0 = 100

Cell A2: K=100K = 100

Cell A3: r=0.05r = 0.05

Cell A4: σ=0.20\sigma = 0.20

Cell A5: T=1T = 1

Cell A6: q=0q = 0

Cell A7: ε=0.01\varepsilon = 0.01 (small bump)

Compute cc at SS and at S+εS+\varepsilon using a BSM call function:

Cell B1: =bsm_call(A1, A2, A3, A4, A5, A6)

Cell B2: =bsm_call(A1 + A7, A2, A3, A4, A5, A6)

Where bsm_call is your BSM function (either coded in VBA, or expressed as a formula using NORM.S.DIST).

Compute delta:

Cell C1: =(B2 - B1) / A7

That is the forward-difference approximation Δ(V(S+ε)V(S))/ε\Delta \approx (V(S+\varepsilon) - V(S)) / \varepsilon.

More accurate: central difference:

Cell B3: =bsm_call(A1 - A7, ...)

Cell C2: =(B2 - B3) / (2*A7)

The central-difference Δ(V(S+ε)V(Sε))/(2ε)\Delta \approx (V(S+\varepsilon) - V(S-\varepsilon)) / (2\varepsilon) is more accurate because it cancels the second-order error term.

Loading diagram...

Accuracy benchmark:

For S=100S=100, K=100K=100, r=0.05r=0.05, σ=0.20\sigma=0.20, T=1T=1, q=0q=0, the closed-form Δ=N(0.35)0.6368\Delta = N(0.35) \approx 0.6368.

With ε=0.01\varepsilon = 0.01:

  • Forward difference: 0.6368+0.0017\approx 0.6368 + 0.0017 (Γε/2\Gamma \cdot \varepsilon / 2 error)
  • Central difference: 0.6368\approx 0.6368 to 5 decimal places

With ε=1.0\varepsilon = 1.0 (too large): Forward difference becomes 0.65 — about 2%2\% off.

The right ε\varepsilon:

  • Too small (ε<106\varepsilon < 10^{-6}): floating-point round-off dominates. Result is noisy.
  • Too large (ε>1\varepsilon > 1): finite-difference approximation breaks down.
  • Sweet spot: ε0.001×S\varepsilon \approx 0.001 \times S to 0.01×S0.01 \times S.

Why this matters for the exam:

Some exam questions give you a BSM-priced option and ask, "if SS moves from 100 to 101, what is the new option price?" The right approach is VnewVold+Δ×1V_{\text{new}} \approx V_{\text{old}} + \Delta \times 1. That is literally the finite-difference formula run backwards.

Why this matters in practice:

Many production option-pricing libraries compute Greeks by finite differencing because (a) they support arbitrary payoffs where closed forms do not exist, and (b) the same code that computes the price also computes the Greek. The closed-form derivation is elegant; finite differencing is universal.

📊

Master Level II with our CFA Course

107 lessons · 200+ hours· Expert instruction

#delta#finite-difference#excel#numerical-methods#cfa-level-2