What Expired Contract Data Actually Shows About Option Premium Decay

Every options course draws the same picture: a smooth curve, gently sloping, then falling off a cliff in the final days. Theta decay, the textbook version.

The curve is not wrong. It is just an average of a process that, contract by contract, looks considerably lumpier — and the difference matters if you are trading the decay rather than reading about it.

What follows is what recorded expired-contract data shows, and how to check any of it yourself.

The two components

An option’s premium is intrinsic value plus time value.

Intrinsic value is mechanical: how far in-the-money the option is, or zero. It does not decay. A 25,000 call with the index at 25,150 has ₹150 of intrinsic value and will still have ₹150 of intrinsic value at expiry if the index has not moved.

Time value is everything else — the market’s price for what might still happen. It is the part that decays, and it goes to exactly zero at expiry. Always, for every contract, without exception.

That last point is the only thing about decay that is genuinely certain. Everything else is about path.

Decay is not linear, and the acceleration is steeper than most expect

Time value falls roughly with the square root of time remaining. Halving the time to expiry does not halve the time value — it removes about 30% of it. The rate of loss accelerates as expiry approaches.

For a NIFTY weekly contract, this concentrates decay heavily into the last two sessions. The first half of a weekly’s life sheds a modest fraction of time value; the final day sheds most of what remains.

The practical consequence: buying a weekly option early in its life and holding it costs you comparatively little per day at first. The same position in its final two sessions bleeds fast enough that a correct directional view can still lose money if it takes too long to be right.

Decay is concentrated within the day, not spread across it

The textbook curve implies smooth, continuous decay. Intraday data does not support that.

Time value tends to hold up better than the model implies through the middle of the session — the quiet hours where little new information arrives — and then drop more sharply near the close, particularly on the final session before expiry. Market makers are pricing forward: on a Friday afternoon, the premium already reflects the weekend that has not happened yet.

This is why “theta per day” is a misleading unit for anyone holding intraday. The decay you experience depends heavily on which hours you hold through.

Volatility usually dominates decay, until it cannot

Here is the finding that most contradicts how decay is taught: for most of a contract’s life, changes in implied volatility move the premium more than time decay does.

An out-of-the-money weekly option can gain value over a session despite a day of time passing, because implied volatility rose. It can lose a third of its value in an hour with the index barely moving, because volatility fell. Traders describe this as “theta ate my position” when the actual cause was a volatility move several times larger.

The classic case is an event. Ahead of a scheduled event, implied volatility rises and premiums inflate. The event resolves and volatility collapses — often within minutes. Holders who were directionally right frequently still lose, because the volatility crush exceeded the directional gain. This surprises people every single time, and it is visible in the data for every event you care to look at.

The relationship inverts at the very end. In the final session, with volatility’s remaining influence compressed into hours, decay becomes the dominant term. That is the one window where the textbook picture genuinely describes the behaviour.

Moneyness changes the shape entirely

“How fast do options decay” has no single answer, because the shape depends on where the strike sits.

At-the-money contracts carry the most time value and therefore have the most to lose. Their decay curve is the steep one from the textbook, and it is steepest in the final session.

Deep in-the-money contracts are mostly intrinsic value. There is little time value to decay, so the premium tracks the index nearly one-for-one and the decay term is close to irrelevant.

Far out-of-the-money contracts are entirely time value, but not much of it. They decay to zero in relative terms while losing little in absolute terms — and their premium is dominated by implied volatility right up until it becomes obvious they will expire worthless, at which point the remaining value evaporates quickly.

The strike that “decays fastest” therefore depends on whether you mean in rupees or in percentage terms, and those two give opposite answers.

How to check all of this

None of the above should be taken on trust, including from us. It is all verifiable against recorded data, and verifying it is more instructive than reading it.

The obstacle is that this specific study requires data that is usually thrown away. You need the complete price history of contracts that have already expired — the whole arc, from listing to settlement. Live option chains drop contracts at expiry, which removes precisely the observations the study depends on.

MoneyTicks keeps that history. Every expired NIFTY and BANK NIFTY contract back to August 2021, and SENSEX back to March 2024, at 1-minute OHLC with open interest recorded alongside. You can browse any contract’s daily history free — pick an expiry from the NIFTY options pages and click any strike to see its full life, including its final close.

For the analysis, pull a contract’s full series and separate the components:

import pandas as pd
import requests

BASE = "https://api.moneyticks.com/api/v1/options"
HEADERS = {"Authorization": "Bearer mt_live_your_api_key"}

r = requests.get(
    f"{BASE}/NIFTY/candles",
    params={
        "expiry": "2026-07-28",
        "strike": 25000,
        "optionType": "CE",
        "interval": "15m",
    },
    headers=HEADERS,
)
r.raise_for_status()

df = pd.DataFrame(r.json()["candles"])
df["ts"] = pd.to_datetime(df["ts"])
df = df.set_index("ts").sort_index()

# Time value remaining, as a fraction of the contract's peak premium.
df["pct_of_peak"] = df["close"] / df["close"].cummax()

# Decay per session, to see where the losses actually land.
daily = df["close"].resample("1D").last().dropna()
print((daily.pct_change() * 100).round(1))

Three exercises worth running:

  1. Plot several at-the-money weeklies on a common axis — x as fraction of life elapsed, y as fraction of peak premium. The average will approximate the textbook curve. The spread around it is the point.
  2. Isolate an event day. Find a contract spanning a scheduled event, and compare the premium change through the event against what pure time decay would predict. The gap is the volatility term.
  3. Compare final-session decay across moneyness. Take one expiry, and measure the last session’s premium change for strikes from deep in-the-money to far out-of-the-money. The rupee-terms and percentage-terms answers will disagree, which is the lesson.

The summary

Time value goes to zero at expiry — that much is certain. The path there is not the smooth curve it is usually drawn as: decay accelerates toward expiry, concentrates in particular hours rather than spreading evenly, and is usually a smaller force than implied volatility until the final session, when it finally dominates. The shape depends heavily on moneyness, and “fastest decay” has different answers in rupees and in percent.

If you are trading options on either side of decay, these are worth confirming on the contracts you actually trade rather than on a generic curve. The expired-contract archive exists for exactly that kind of checking, and backtesting options strategies in Python covers the harness for doing it at scale.

Frequently asked questions

Is option time decay linear?

No. Time value decays roughly with the square root of time remaining, so the rate accelerates as expiry approaches. For a weekly NIFTY option, far more time value is lost in the final two sessions than in the first two.

When is theta decay fastest for weekly options?

In the final session, and within it, disproportionately in the last couple of hours. The effect is strongest for at-the-money strikes, which carry the most time value to lose.

Do options lose value over the weekend?

Calendar time passes over the weekend, so a model prices in the decay. In practice much of it is absorbed by the Friday close rather than appearing as a gap on Monday, because market makers price the coming non-trading days in advance.

Why did my option lose value even though the index moved my way?

Most often a fall in implied volatility offset the directional gain. This is common after an event resolves — the uncertainty premium collapses at the same moment the direction becomes clear, and for an out-of-the-money option the volatility effect can easily exceed the directional one.

How can I study premium decay myself?

You need the full price history of contracts that have already expired, at an interval fine enough to see intraday behaviour. Live option chains drop contracts once they expire, so this requires a source that retains expired-contract history — MoneyTicks keeps 1-minute OHLC and open interest for NIFTY and BANK NIFTY back to August 2021.

MoneyTicks is a historical options data provider. Nothing here is investment advice, a recommendation, or a solicitation to trade.

Keep reading