I disagree with the given answer.
Greeks are just sensitivities to the input parameters in Black Scholes. Since the strike is an input you can compute the derivative of the option value with respect to the strike, denoted by ∂C/∂K.
In fact, this is frequently done and called Dual Delta, which is also the probability of an option finishing in the money. It is also a key building block for Local Vol and used in the Breeden-Litzenberger (1978) formula which is used for the extraction of a risk-neutral distribution from observed option prices:
- The first derivative of the call option price wrt the strike is the risk neutral distribution function and its
- second partial derivative is the risk neutral density function.
This logic is also used in the method shown by Malz in the Fed Staff Report No. 677 on June 2014 A Simple and Reliable Way to Compute Option-Based Risk-Neutral Distributions. For anyone interested, I show a gif for a modified version that I coded that allows for strikes that do not lie on a uniform grid (they do not have constant spacing) here.
Edit
As @nanoman commented, the question may actually be about the time value, which for a call is C - max(0, S-K). If S > K (ITM), you have intrinsic value and time value combined. Insofar, it is correct that for ITM one needs to add + 1 to Dual Delta.
However, I am not sure that this was what the question really intended to ask because in general one never computes the sensitivity of an options time value. Greeks are either always the sensitivity of the option value (time value plus intrinsic value) to changes in inputs; or the sensitivity of Greeks to changes in inputs for higher order Greeks.
Also, the other answer writes that
The Greeks are used [to] evaluate an option's sensitivity to change in
[input(s)]
This value does exist and is frequently used as well.
TL;DR
It like to utilize computers to demonstrate topics. Black Scholes Merton (including Dual Delta) can be computed in Julia with the following code:
using Distributions, DataFrames
N(x) = cdf(Normal(0,1),x)
function BSM(S,K,t,rf,d,σ)
d1 = ( log(S/K) + (rf - d + 1/2*σ^2)*t ) / (σ*sqrt(t))
d2 = d1 - σ*sqrt(t)
return exp(-d*t)S*N(d1) - exp(-rf*t)*K*N(d2), -exp(-rf*t)*N(d2)
end
Computing it for OTM, ITM and ATM looks like this:
S_OTM = 90
S_ATM = 100
S_ITM = 110
K, t, rf, d, σ = 100,1,0,0,0.4
df = DataFrame("Call Moneyness" => ["OTM: S = $(S_OTM) < K = $K", "ATM: S = $(S_ATM) = K = $K", "ITM: S = $(S_ITM) > K = $K", "ITM: S = $(S_ITM) > K = $(K*1.01)"],
"Call" => [BSM(S_OTM,K, t, rf, d, σ)[1] ,
BSM(S_ATM, K, t, rf, d, σ)[1],
BSM(S_ITM, K, t, rf, d, σ)[1],
BSM(S_ITM, K*1.01, t, rf, d, σ)[1]],
"Intrinsic Value" => [max(0,S_OTM-K),
max(0,S_ATM-K),
max(0,S_ITM-K),
max(0,S_ITM-K*1.01)],
"Time Value (TV)" => [BSM(S_OTM,K, t, rf, d, σ)[1] - max(0,S_OTM-K),
BSM(S_ATM, K, t, rf, d, σ)[1] - max(0,S_ATM-K),
BSM(S_ITM, K, t, rf, d, σ)[1] - max(0,S_ITM-K),
BSM(S_ITM, K*1.01, t, rf, d, σ)[1] - max(0,S_ITM-K*1.01)],
"Dual Delta" => [BSM(S_OTM, K, t, rf, d, σ)[2] ,
BSM(S_ATM, K, t, rf, d, σ)[2],
BSM(S_ITM, K, t, rf, d, σ)[2],
BSM(S_ITM, K*1.01, t, rf, d, σ)[2]],
"Strike Bumped (K ↑)" => [BSM(S_OTM, K*1.01, t, rf, d, σ)[1] - BSM(S_OTM,K, t, rf, d, σ)[1],
BSM(S_ATM, K*1.01, t, rf, d, σ)[1] - BSM(S_ATM,K, t, rf, d, σ)[1],
BSM(S_ITM, K*1.01, t, rf, d, σ)[1] - BSM(S_ITM,K, t, rf, d, σ)[1],
"N/A"],
"K ↑ change TV" => [(BSM(S_OTM, K*1.01, t, rf, d, σ)[1] - max(0,S_OTM-K*1.01)) - (BSM(S_OTM,K, t, rf, d, σ)[1] - max(0,S_OTM-K)),
(BSM(S_ATM, K*1.01, t, rf, d, σ)[1] - max(0,S_ATM-K*1.01)) - (BSM(S_ATM,K, t, rf, d, σ)[1] - max(0,S_ATM-K)),
(BSM(S_ITM, K*1.01, t, rf, d, σ)[1] - max(0,S_ITM-K*1.01)) - (BSM(S_ITM,K, t, rf, d, σ)[1] - max(0,S_ITM-K)),
"N/A"]
)
- The Call Option Value is the Black Scholes Merton price
- Intrinsic Value = max(0, S-K)
- Time Value (TV) is just the Call option price minus intrinsic value
- Dual Delta is the closed form solution from the function
- Strike Bumped (K ↑) is the bump and reprice Dual Delta (technically with forward difference for simplicity; usually central difference would be used for most Greeks as shown here
- K ↑ change TV is the change in Time Value due to change in Strike. It is clearly visible that the value is +1 for the ITM option.
- The last line shows the actual values of bumping strike by 1% (from 100 to 101). Time value moves from 12.11 to 12.6 which corresponds to the computed change in theoretical value and ~ Dual Delta +1.
The resulting dataframe (I omitted the code for PrettyTables formatting looks like this:

ATM has the largest Time Value. Therefore, increasing strike results in an increase in time value for ITM options because we move closer to ATM. The opposite holds for OTM options where S < K. Below is a GIF showing this relationship and how TV is changing.
