Lesson 08

    Theoretical Deviations: Real-World Prices

    Compare a NIFTY model estimate with bid, ask and actual fills — then understand what the difference really means.

    Maya studies a blank estimate card on a stand with a magnifier between a buyer and a seller who hold blank tags apart, with Mr. Chartist gesturing at the gap: a model value is not the quoted price
    Price ladder for a hypothetical NIFTY call. The last trade of ₹548 is 15 minutes old, the bid is ₹560, the Black-Scholes model reference is ₹565.99 and the ask is ₹570, so the midpoint is ₹565. Buying 195 units across asks of ₹570, ₹572 and ₹575 costs ₹1,11,605, or ₹572.33 per unit.

    Model. Quote. Last trade. Three prices.

    LAST TRADE₹548
    BID₹560
    MODEL₹565.99
    ASK₹570

    Option premium · ₹ per unit

    Hypothetical NIFTY Call · 10:20 quote and BSM reference · assumed order book · before costs

    Let’s compare like with like

    Mr. Chartist will follow one hypothetical NIFTY quote from a model estimate to an assumed fill. At each stage, we will identify what the number measures before deciding what a difference means.

    By the end you will be able to answer

    1. Which price are you comparing?
    2. Are the times and inputs aligned?
    3. What does the spread cost?

    An online estimate for a used car helps you judge an offer, but it cannot buy the car. The estimate rests on assumptions about the car. The offer comes from a person, for a quantity, at a moment in time. Options have the same split. A theoretical premium is a calculated reference. A market quote is buying or selling interest that may still be there when your order arrives.

    The last two lessons valued an option under stated assumptions. Now we set those values beside the order book, the list of waiting buy and sell orders. The numbers can match. They can also differ because they were taken at different times or with different inputs, because trading costs money, or because the model leaves out risks the market is pricing.

    The NIFTY 50 example continues: spot and strike 25,000 points, 30 calendar days left, 6% interest, 1% dividend yield and 18% volatility. The European BSM reference is ₹565.99 per unit for the Call and ₹463.55 for the Put. Every quote, time, quantity and charge here is a teaching assumption, not live NSE data. The 10:05 and 10:20 observations belong to one hypothetical session in Indian Standard Time (IST), not to a dated trade.

    Updated

    Chapter 1The quote2 min read

    Which price are you comparing?

    Model value, bid, ask and last trade

    Maya

    The model says the 25,000 call is worth ₹565.99, but my screen shows ₹548. Which one is the price?

    Mr. Chartist

    Four prices can sit on one screen, and each means something different. The model value is a calculated reference. A quote is interest to trade.

    Maya

    And ₹548?

    Mr. Chartist

    That is the last traded price, from an earlier trade at 10:05. It is not an offer to sell now. Refreshing the screen does not make an old trade current.

    Maya

    So what do I look at if I want to trade right now?

    Mr. Chartist

    A buyer who wants a fill now looks at the ask. A seller looks at the bid. Both look at the quantity shown.

    Even then, a quote is what you can see, not what you are guaranteed. Another order may trade first. Use a confirmed fill to know what you really paid.

    Four prices can sit on one screen, and each means something different. The premium is the option’s price. The bid is the highest price a buyer is offering. The ask, or offer, is the lowest price a seller is asking. Our 25,000 Call (C or CE) shows a hypothetical ₹560 bid and ₹570 ask at 10:20. A buyer who wants a fill now looks at the ask. A seller looks at the bid. Both look at the quantity shown.

    The midpoint is the average: (₹560 + ₹570) ÷ 2 = ₹565. It is a handy reference, but nobody has promised to trade there. The last traded price, the LTP, is ₹548 from 10:05. It records an earlier trade, not an offer to sell now. Refreshing the screen does not make an old trade current.

    Model, quote and last trade

    The 10:20 quote surrounds a ₹565 midpoint. The ₹548 last trade belongs to 10:05; the BSM reference uses the stated 10:20 inputs.

    Call · C / CE · NIFTY 50 · 25,000 CE

    One price scale: bid ₹560.00, ask ₹570.00, model ₹565.99, last trade ₹548.00.
    ₹545.00₹ per unit · one scale₹575.00
    Last trade · 10:05₹548.00

    Past execution (LTP)

    Bid · 10:20₹560.00

    Buyer’s quoted price

    Model · 10:20₹565.99

    Calculated with the stated inputs

    Ask · 10:20₹570.00

    Seller’s quoted price

    Midpoint₹565.00
    Bid–ask spread₹10.00
    Model − midpoint+₹0.99

    Hypothetical same-session snapshot · times in IST · ₹ per unit · displayed quotes can change

    With the 10:20 inputs, the model Call is ₹565.99: ₹0.99 above the midpoint and ₹4.01 below the ask. Setting the model against the old ₹548 LTP shows a bigger gap, but that mixes two moments. A model value can sit inside the bid–ask range or outside it. Its position alone does not make an option cheap or expensive.

    A quote and its size are what you can see, not what you are guaranteed. Other orders may trade first, an order may be cancelled, or the index may move before yours reaches the exchange. NSE matches orders by price and then time, at the price of the order already waiting, and allows partial fills. Use the quote to see the interest available, and use a confirmed fill to work out what you actually paid or received.

    Chapter 2Same moment2 min read

    Are the times and inputs aligned?

    Compare like with like or not at all

    Before you call a gap mispricing, check that both numbers describe the same thing. Match the underlying, Call or Put, strike, exact expiry and exercise style. Then match the time. A 10:20 option quote set against a spot level copied at 10:05 shows a gap even when the arithmetic is right.

    Say a worksheet still holds the 10:05 NIFTY spot of 24,900, while the 10:20 spot is 25,000. Change only that input and the Call value moves from ₹513.38 to ₹565.99, a rise of ₹52.61. The gap came from a stale input. It did not mean anyone would sell a ₹565.99 option for ₹513.38.

    One stale input changes the comparison

    Changing only spot from 24,900 to 25,000 moves the Call reference from ₹513.38 to ₹565.99. Remaining time is fixed here to isolate the effect.

    Call · C / CE · NIFTY 50 · 25,000 CE

    Old spot · 10:05

    Spot level · index points24,900 points
    Model value · ₹ per unit₹513.38

    Aligned spot · 10:20

    Spot level · index points25,000 points
    Model value · ₹ per unit₹565.99
    Model change from this input alone+₹52.61

    Quote snapshot: 10:20

    Hypothetical sensitivity · update every timestamp in a real valuation

    This controlled comparison deliberately leaves remaining time unchanged so that the effect of spot is visible. A real update must also measure time from the valuation timestamp to the actual expiry timestamp, including fractions of a day. Our T = 30/365 is a calendar-day convention, not 30 trading sessions. Different conventions can yield different results; the goal is to know and align them.

    Enter percentages as annual decimals: 6% as 0.06, 1% as 0.01 and 18% as 0.18. Rate and dividend yield here use continuous annual compounding. Volatility, rate and time must use consistent units. Also record whether volatility is a historical estimate, an independent scenario or an IV inferred from a particular quote. A calculator’s defaults are assumptions, even when they are hidden behind a convenient screen.

    Chapter 3Execution2 min read

    What does the spread cost?

    The price of trading right now

    The spread is the ask minus the bid: ₹570 − ₹560 = ₹10 per unit. If the quote does not move and you buy at ₹570 then sell at ₹560, you lose ₹10 per unit before charges. Against the ₹565 midpoint, you paid ₹5 more going in and received ₹5 less coming out. That adds up to one full spread, not two.

    In practice the entry and exit quotes differ. For a closed long position, gross profit or loss is (selling fill − buying fill) × quantity. Net adds the actual charges. Real fills already contain the spread, so subtracting another spread would count it twice. Brokerage, taxes and other charges are separate lines: take them from the contract note and the current schedules, not from a fixed percentage in an example.

    Take a teaching quantity of 65 units. Buy at ₹570 and later sell at ₹588: (₹588 − ₹570) × 65 = ₹1,170 gross, or ₹1,090 after an assumed ₹80 of charges. Now the unchanged-quote round trip, ₹570 in and ₹560 out: −₹650 gross and −₹730 after the same charges. Neither is a prediction, and 65 is not a promise about the current lot size.

    Slippage is the gap between the price you intended or a reference price, and the price you got. Say which reference you mean. A market order takes the prices available and may fill in pieces. A limit order sets the lowest price you will sell at or the highest you will pay, but it may fill only partly or not at all. Paying the ask, walking through depth and paying charges are three separate costs. None of them is the model-price gap.

    Chapter 4Depth2 min read

    Will the quote cover your quantity?

    Why the size on screen matters

    A price means little without its quantity. Market depth is the buying and selling interest waiting at each price. Our hypothetical Call book offers 65 units at ₹570, 65 at ₹572 and 65 at ₹575. A marketable buy of 195 units would use all three levels, if they were still there when it arrived.

    The cost is 65 × (₹570 + ₹572 + ₹575) = ₹1,11,605, an average of ₹572.33 per unit. Buying all 195 at the best ask of ₹570 would have cost ₹1,11,150, so the deeper levels add ₹455. The best ask was never an offer to sell all 195 units at one price.

    One order reaches three ask levels

    The static book supplies 65 units at each level. Filling 195 units costs ₹1,11,605, or ₹572.33 per unit, ₹455 above an all-at-best-ask reference.

    Call · C / CE · Hypothetical Call ask book

    1. 3Level 3Ask 57565 units₹37,375.00Running total ₹1,11,605.00
    2. 2Level 2Ask 57265 units₹37,180.00Running total ₹74,230.00
    3. 1Best askAsk 57065 units₹37,050.00Running total ₹37,050.00

    Average fill₹572.33per unit, against a best ask of ₹570.00

    Buy against the displayed asks, from lowest price upward
    AskAvailableFilledCash paid
    5706565₹37,050
    5726565₹37,180
    5756565₹37,375
    Total cash paid₹1,11,605.00

    195 of 195 units filled

    Average fill · ₹ per unit₹572.33
    At the top ask only₹1,11,150.00

    Estimate for the filled quantity

    Extra cash from deeper asks₹455.00

    Already included in the fill cost

    Illustrative quantities · availability can change · no fill guarantee

    This is a frozen teaching book, not a promise. Quantities change, new orders appear and price priority can give partial fills. A buy limit of ₹570 would stop any fill above ₹570, but the book would not supply all 195 units at that limit. Controlling the price and completing the quantity are different goals.

    Volume counts completed trades and open interest counts contracts still open. Both are useful context, but neither shows the depth available now. A busy contract can briefly have little size on offer, and an old LTP can sit beside a new quote. Spread and depth also change with strike, expiry, time of day and market mood. A near-the-money strike is not guaranteed a tight spread or enough size for your order.

    Chapter 5IV and skew3 min read

    What does implied volatility explain?

    What the gap tells you about the market

    Implied volatility, IV, is a model run backwards: take an observed premium and solve for the volatility input that reproduces it, with the other inputs fixed. It states a price in the model’s volatility language. It is not a measured future volatility and not a guide to the size of the next move.

    For our NIFTY inputs, the ₹560 bid implies about 17.789% volatility and the ₹570 ask about 18.141%. The ₹565 midpoint implies about 17.965%. So the quote gives a range of IVs, not one executable IV. Any IV you see also depends on the price used, the timestamp, the rate, the dividend assumption and the model.

    A quote becomes an IV range

    With the other inputs fixed, the ₹560 bid and ₹570 ask imply different volatilities. Fitting IV and repricing the same quote is a calibration check.

    Call · C / CE · NIFTY 50 · 25,000 CE

    Selected midpoint₹565.00

    Chosen price input

    Annual implied volatility17.965%

    Solve for volatility

    Model at fitted IV₹565.00

    Reproduces the chosen price

    Each quote choice gives its own implied volatility
    Price choice₹ per unitAnnual IV
    Bid₹560.0017.789%
    Midpoint₹565.0017.965%
    Ask₹570.0018.141%

    Hypothetical · model and price convention must match · not a volatility forecast

    Put the midpoint’s 17.965% back into the same model with the same inputs and you recover ₹565, to rounding. That agreement comes from how IV was solved. It does not show that ₹565 is fair, cheap or dear. To judge value you need an independent volatility view, and you must still weigh execution costs and the risks that view leaves out.

    Line up the IVs of different strikes with the same expiry and you get a volatility smile or skew. A smile is a curve. A skew is a slope. Cboe’s research on US equity indices shows protection against falls often carrying a higher IV than protection against rises. That is context for reading markets. It does not say every NIFTY expiry has that shape, or that every Put costs more than every Call.

    Demand for protection, event risk, hedging costs and fear of sudden moves can all shape the surface, the pattern of IV across strikes and expiries. To compare contracts, use the same time to expiry and the same moneyness, meaning the strike relative to spot or forward. Raw rupee premiums at different strikes do not isolate skew. A Call and a Put at the same strike and expiry are also linked by carry, covered in the chapters below, before you call either one overpriced.

    Chapter 6Carry3 min read

    Does the model use spot or forward?

    Keep the reference price consistent

    Carry is the effect of financing cost and income over the option’s life. In spot BSM, r is the financing rate and q is a continuous dividend yield. The matching forward level is F = S × exp((r − q)T). With our inputs, 25,000 spot gives a same-expiry forward of 25,102.95 points.

    Black’s 1976 formula prices a European option from a forward or futures level and discounts the result. With matching carry, maturity and volatility, the 25,102.95 forward gives the same Call, ₹565.99, and Put, ₹463.55. Only the input convention changed. It is not a second source of profit. A futures quote used this way needs a matching maturity and a sound link to the option.

    Do not type the forward into the spot box and leave r and q unchanged. That counts carry twice, and the Call becomes ₹623.37 and the Put ₹418.06. The gap to ₹565.99 and ₹463.55 comes from mismatched inputs. Using a forward formula also does not turn an index option into one that delivers a futures position. The contract’s own terms decide settlement.

    Dividends matter for stocks and indices. Replace our 1% yield with zero and the Call rises from ₹565.99 to ₹577.19 while the Put falls from ₹463.55 to ₹454.21. An index yield estimates income from the constituents. A single share pays a set amount on a set ex-date, and a continuous yield can be a poor fit for a large payment. The share price can also move on that day for other reasons.

    Rates do not become negligible just because expiry is close. Change only r from 6% to 6.5% and the 30-day Call rises to ₹571.34 while the Put falls to ₹458.67. How much it matters depends on expiry, moneyness and how precise you need to be. Match the term, compounding and dividend treatment before you blame demand or the model.

    Chapter 7Parity3 min read

    What can parity check without an IV?

    A test that needs no volatility input

    Put–Call parity ties together European options with the same underlying, strike and expiry. With frictionless continuous-yield assumptions, C − P = S × exp(−qT) − K × exp(−rT), which also equals exp(−rT) × (F − K). It comes from matching expiry payoffs, with no volatility forecast. Our model Call minus Put is ₹102.44 per unit, so different premiums do not mean one is unfair.

    Add a hypothetical Put quote of ₹460 bid and ₹470 ask beside the Call’s ₹560 and ₹570. Buying “long Call, short Put” at the displayed sides costs ₹570 − ₹460 = ₹110 per unit. Selling it receives ₹560 − ₹470 = ₹90. The ideal ₹102.44 sits between the two. A midpoint check can differ from exact parity without any executable opportunity.

    Parity meets the quote sides

    The ideal carry value is ₹102.44 per unit. Selling the option combination receives ₹90; buying it costs ₹110 at the assumed sides.

    Same strike · same expiry · European options

    Lower end

    Sell Call + buy Put

    Call bid ₹560.00

    − Put ask ₹470.00

    Quoted credit · ₹ per unit₹90.00

    Carry reference₹102.44

    S × e−qT − K × e−rT

    Reference is inside the option-leg quote interval.

    Upper end

    Buy Call + sell Put

    Call ask ₹570.00

    − Put bid ₹460.00

    Quoted debit · ₹ per unit₹110.00

    Option-leg interval only · funding, other legs and costs still need checking

    The ₹90 to ₹110 interval covers only the option sides. It is not a full no-arbitrage band or a trade instruction. A real test also needs executable prices and quantities for the underlying or forward, borrowing and lending rates, stock-borrow where relevant, expected income, taxes, fees, margin and settlement timing, all feasible at the same moment. A visible gap can vanish after these frictions or simply be untradeable.

    Price bounds are a second check under the same idealised assumptions. The Call lies between max(S exp(−qT) − K exp(−rT), 0) and S exp(−qT). The Put lies between max(K exp(−rT) − S exp(−qT), 0) and K exp(−rT). Here the Call’s floor is ₹102.44 and the Put’s is zero. These are discounted carry bounds. They are not a rule that a European option must be worth at least today’s raw intrinsic value.

    Keep the contract and the rules in view. NIFTY index options are European and cash settled. NSE individual-stock options are European with physical settlement obligations for applicable expiry positions. American options allow early exercise and need a different parity treatment. Check the latest clearing rules rather than assuming every option has the same funding and delivery needs.

    Chapter 8Verify2 min read

    How do you investigate a price gap?

    A step by step way to find the cause

    Start by naming the comparison, not by picking a trade. A stale LTP, an ask and a model midpoint are three different observations. Confirm the contract and timestamp, write down the inputs, then choose the price side and quantity that fit your question. “The option is ₹20 above my model” says little until you know those details.

    Next, look at the live spread and depth, and find out how any quoted IV was calculated. Compare strikes on the same basis, and use parity as a check on related European contracts. If the gap survives, ask what could explain it: dividends, event risk, jumps, a changing volatility surface, the choice of model or a numerical approximation. A model difference is not yet a profit you can capture.

    Check the comparison before its conclusion

    Follow the evidence from contract identity to executable prices and costs. A model discrepancy alone does not establish an opportunity.

    1. Match the contract

      Underlying, right, strike, exact expiry, exercise and settlement terms.

    2. Align the observations

      Quote and underlying timestamps; consistent time, rate, yield and volatility inputs.

    3. Read the executable sides

      Bid or ask for the question, intended quantity, depth and limit constraints.

    4. Check IV and related prices

      Price source of IV; consistent moneyness; conditional European parity.

    5. Include costs and uncertainty

      Charges, both funding sides, feasible legs, margin, settlement and model risk.

    An explained difference is a diagnosis, not a profit promise

    Verification sequence

    Last, add your entry and exit, the real charges, and the funding or settlement needs of any position. Depth you see now does not guarantee an exit later. A missing bid is a limit, not a reason to assume holding to expiry is harmless, because stock delivery can be large. A limit order can keep you out of a bad price, and it can also leave the order unfilled.

    After a completed buy and sell, compare your planned reference price with the average fills and tie the net result to the contract note. Keep model error, spread, depth effects and charges in separate lines so no cost is counted twice. “The wrong price” then becomes a specific, testable explanation.

    Chapter 9Perspective2 min read

    What is the model still useful for?

    Why the model is worth keeping

    A model turns assumptions into a calculation you can repeat. It lets you compare scenarios on equal terms and estimate sensitivities, the Greeks, such as the effect of a small change in spot, time or volatility. Those sensitivities depend on the model and its inputs too, so they do not guarantee the market’s response. The Greek lessons develop them.

    Keep three kinds of uncertainty apart. Input uncertainty: we do not know the future volatility or dividend exactly. Numerical approximation: a finite tree or method may differ from its limit. Model uncertainty: the assumed price process, with continuous moves and constant volatility, may describe the market only roughly. A very precise answer can still rest on a shaky assumption.

    For example, holding our other NIFTY inputs fixed, 16% volatility gives a Call value of ₹509.19 and 20% gives ₹622.83, around the 18% reference of ₹565.99. This is a sensitivity range selected by us. It is not a statistical confidence interval, a guaranteed future quote range or a valuation band that the exchange must honour. Research on uncertain-volatility models treats uncertainty explicitly; our simple scenario calculation does not implement those more elaborate methods.

    The useful conclusion is a conditional one: “Under these inputs, this model gives this value, while these quote sides and quantities imply these assumed execution amounts.” That sentence leaves room to investigate a discrepancy without treating a calculated premium as money owed to a buyer or seller. Options can lose value rapidly, and identifying a model gap does not remove their risk.

    Before you go

    Check yourself

    5 questions from this lesson. Pick an answer to see why, then slide on to the next.

    Question 1 of 5

    At 10:20 a Call quotes ₹560 bid/₹570 ask; LTP ₹548 is from 10:05. Which comparison is most useful for an immediate purchase?

    Questions readers ask

    Common questions

    What is the difference between theoretical option price and market price?

    A theoretical premium is calculated from a model and inputs. A market bid or ask is buying or selling interest for a quantity at a time; a traded price records a completed execution. They can coincide. A difference needs aligned inputs, timestamps and quote sides before it can be interpreted, and does not alone prove mispricing.

    Should I compare a NIFTY model value with LTP or bid and ask?

    Record both current quote sides and their time, then select the side relevant to the question: asks for a marketable purchase and bids for a marketable sale, subject to available depth. LTP may belong to an earlier trade. The midpoint is a useful reference but has no guaranteed fill.

    Do I pay the whole bid–ask spread twice on a round trip?

    With an unchanged quote, buying at ask ₹570 and selling at bid ₹560 loses one ₹10 spread per unit before charges. Against midpoint ₹565, entry loses ₹5 and exit loses ₹5. Actual fill-to-fill profit or loss already includes those execution prices, so deducting another spread would double-count the effect.

    Does high option volume or open interest guarantee liquidity?

    No. Volume records completed activity and open interest counts outstanding contracts. Current depth shows outstanding price and quantity, which can change before execution. Neither historical activity nor today’s displayed depth guarantees enough size at your price or a future exit.

    Why does my calculator reproduce the market price when I enter IV?

    If that IV was solved from the same premium in the same model with the same other inputs, reproducing the premium is the fitting procedure working. It is not an independent fair-value test. Bid, ask and midpoint premiums can each produce a different IV; the model and input conventions must be stated.

    Can I use NIFTY futures price in a Black–Scholes calculator?

    Only with a consistent forward or futures pricing convention, matching maturity and appropriate carry assumptions. In the usual spot BSM convention, replacing spot with a carry-adjusted forward while retaining the original rate and yield counts carry again. Under deterministic carry, Black76 with the matching forward reproduces the spot BSM value; it does not change the index option’s contract terms.

    Does a Put–Call parity difference mean risk-free arbitrage?

    A theoretical European parity difference is a diagnostic. Use matching underlying, strike, expiry and carry, then executable bid–ask prices and sizes for every leg. Borrowing and lending rates, income, stock borrow where needed, charges, margin, synchronized execution and settlement can reduce or eliminate an apparent opportunity. Midpoint arithmetic is insufficient.

    Are volatility skew and dividends evidence that the model is wrong?

    They may reveal a simplified or mismatched assumption. Skew expresses different model-implied volatilities across strikes; a constant-volatility reference does not reproduce every surface. Expected dividends and rates affect carry and need consistent treatment, including discrete cash dividends when relevant. Diagnosing those differences does not prove a profitable trade or make IV a forecast.

    Sources for further reading

    12 sources

    Privacy settings

    Essential sign-in storage and your saved preferences stay enabled. Analytics is optional, and you can change your choice anytime.

    Turning analytics off clears our analytics cookies and local assistant metrics. The page reloads to stop a previously loaded analytics service. Your account and learning progress stay saved.

    Read the Privacy Policy