A market maker is a firm that is always willing to buy a little lower and sell a little higher than the middle price, and gets paid for being there. SEBI's circular of 1 Sep 2025 on intraday position limits in index options says in its paragraph 4.8 that the framework would facilitate market making activity on all trading days while putting a check on outsized intraday positions on expiry day. That sentence takes for granted that someone quotes both sides all day. This lesson builds the quoting rule from two ideas, inventory and adverse selection, runs it on Nifty's volatility from the school's files and then puts the costs of an individual account beside the spread. The numbers are a model with made up parameters. They are not an NSE quote and not a way to earn.

3By the end you can

  1. Build a reservation price and a spread from inventory, volatility and time left.
  2. Say why adverse selection and stale quotes cost a market maker more than the spread earns.
  3. Set the model's half spread beside the charges an individual account pays on a futures sale.
The RupeeCase terminal on sample data: Model history or your portfolio: which numbers am I looking at?
Watch in the terminal: which numbers am I looking at? A short tutorial on sample data.

The idea, plainly

What does a market maker earn, and what does it risk?

It posts a bid and an ask. When both are hit, it keeps the gap between them, the spread. Two risks eat at that gap. The first is inventory: after buying more than it sold, the firm holds a position that moves with the market, and the longer it holds, the more variance it carries. The second is adverse selection: some of the people who hit a quote know something the quote does not yet reflect. The market maker loses a little to each of them and has to earn it back from everyone else. Quote wide and you are safe and rarely filled. Quote tight and you are filled often, at the wrong moments.

How does inventory move the quote?

The Avellaneda and Stoikov quoting model puts the two risks into three symbols. The first is the mid price s. The second is an inventory q, counted in lots, positive when long. The third is a risk aversion γ, how much variance the firm will carry for one more lot. The firm does not centre its quotes on the mid price but on a reservation price, the price at which it is indifferent about adding to its inventory:

r = s − q × γ × σ² × τ

Read one more paragraph, 95 words

Here σ is the volatility of the price in points over the session and τ is the fraction of the session left. A long inventory (q above zero) pulls the reservation price below the mid price, so the firm's ask comes down and its bid goes down too. It becomes easier to sell and harder to buy, which is exactly what a firm that wants to shed lots should do. A short inventory does the reverse. Nothing in the rule says where the market is going. It is a rule about the firm's own position.

The term this section turns on: Reservation price

The term this section turns on: Reservation priceThe term this section turns on: Reservation price. Reservation price: The price at which a market maker is indifferent about adding to its inventory. It sits below the mid price when the firm is long and above it when short.Reservation priceThe price at which a market maker isindifferent about adding to its inventory. Itsits below the mid price when the firm is...
From the module glossary; every term is in the Learn glossary too. Source: Module 19.10, Market making: inventory and quoting.

How wide is the spread?

Fills arrive less often as a quote moves away from the mid price. The model takes the arrival rate to fall by a fixed share for each point of distance, with a decay k. The optimal total spread, bid to ask, then has two parts:

spread = γ × σ² × τ
+ (2 ÷ γ) × ln(1 + γ ÷ k)

Maths: where the two parts come from

The firm maximises the expected utility of its end of session wealth when its terminal wealth has a variance cost. The first part, γσ²τ, is the price of the variance the inventory adds over the time left. It grows with volatility and shrinks as the session ends. The second part is the profit side: a wider quote earns more per fill but fills less often, and the balance of the two gives the log term. For a small γ ÷ k the log term is close to 2 ÷ k, which is what the example below uses, so the spread becomes the inventory term plus 2 ÷ k. The model assumes a Brownian mid price, a constant volatility and fills that arrive at random. Real order books break each assumption in small ways, and the model is a way to see the trade off, not a way to forecast.

Read the first part as the volatility charge. When volatility rises the charge rises with its square. The firm quotes wider in fast markets because holding a lot is riskier, not because it is nervous.

What is adverse selection, and why does it matter more than the spread?

A fill is information. If your bid is hit just before the price drops, you bought from someone who was right. The sequential trade model of Glosten and Milgrom shows why this widens the spread even for a firm that is neutral about risk: the quote must be wide enough that what is earned from uninformed trades pays for what is lost to informed ones. In practice it shows up as a speed problem. A quote that is stale by a few milliseconds is a free option for whoever reacts first. That is the link between this lesson and the economics of the latency race.

What does India add?

Three things shape a quoting program here. Algo orders on NSE cannot be market orders, so every quote and every hedge is a limit order. A retail API algo is held to ten orders a second per exchange before it must be registered, which is slow for a program that refreshes two quotes on every tick; the lesson on a compliant retail algo sets out the framework. And SEBI's order to trade ratio slabs of 24 Jun 2020 charge firms that cancel far more than they trade. Quoting is therefore a business for trading members with exchange level connectivity, and the retail version of the model is for understanding the book, not for running it.

The RupeeCase terminal on sample data: Ledger and Orders: where is every rupee in and out?
Watch in the terminal: where is every rupee in and out? A short tutorial on sample data.

How is inventory kept in check besides the quote?

The quote shift is the gentle tool. Firms add two harder ones. The first is a limit: past a set number of lots long or short, the firm quotes only the side that reduces the position. The second is a hedge. A long future can be offset with a short in the same index or a related contract, which turns an outright position into a small basis risk, at the cost of paying the spread and charges on the hedge. Both tools cost something, so the model's shift is the cheapest way to trade out and the first to be tried.

What changes for options?

An option market maker carries more than one inventory. It holds delta, which can be hedged with futures, and gamma and vega, which cannot be hedged away by the same trade. Its reservation price shifts with all of them, and its quotes are in volatility as much as in rupees. The mechanics of the delta hedge are in the lesson on delta hedging and the cost of being short gamma in gamma scalping. The shape of the argument is the same: a quote is a price for risk, and it is rebuilt when the risk changes.

Worked example: a model quote on the Nifty future

Take the Nifty close of 23,118.60 on 15 Sep 2026 as the mid price. The 20 day realised volatility in the files ran from 5.2% to 29.5% with a mean of 11.5%. At the mean, one standard deviation of a session is 167.9 points. Choose a risk aversion γ of 0.00002 per lot per point, a decay k of 4 per point, and a quote placed with 0.5 of the session left. All three are choices for the example.

A quote is rebuilt every time the mid price or the inventory changes

A market making quote is built in five steps: read the mid price and volatility, read the inventory, shift the centre to the reservation price, set the width, then post a bid and an askDiagram with 5 boxes. Read the mid price to Read the inventory; Read the inventory to Shift the centre; Shift the centre to Set the width; Set the width to Post both sides.Read the mid priceand the volatility of thesessionRead the inventorylots long or shortShift the centreto the reservation priceSet the widthvolatility charge plus thefill termPost both sideslimit orders, refreshed asthings change
The loop of a quoting program in the inventory model. A method diagram with no market figures. Each pass ends in limit orders, since algo orders on NSE cannot be market orders. Source: RupeeCase illustration of the Avellaneda and Stoikov quoting model. As of 17 Oct 2026.

Each lot of inventory lowers the centre of the quote by the same step

Model fall in the reservation price by lots held long: 0.28 points for one lot, 0.56 for two, 0.85 for three and 1.41 for five1 lot long 0.28; 2 lots long 0.56; 3 lots long 0.85; 5 lots long 1.41.Fall in the reservation price, index points1 lot long0.282 lots long0.563 lots long0.855 lots long1.41
Model, not market data. The step is γσ²τ = 0.28 points, from the 23,118.60 close, the mean 20 day volatility of 11.5%, γ = 0.00002 and 0.5 of the session left. A model of the shape of the rule. Source: RupeeCase arithmetic on NSE end of day data, no market quote. As of 15 Sep 2026.

The model quotes 2.34 points wide in the wildest stretch and 0.56 in the calmest

Model total spread in index points at three volatilities: 0.56 at 5.2%, 0.78 at 11.5% and 2.34 at 29.5%Vol 5.2% 0.56; Vol 11.5% 0.78; Vol 29.5% 2.34.Model total spread, index pointsVol 5.2%0.56Vol 11.5%0.78Vol 29.5%2.34
Model, not market data. The 20 day realised volatility of Nifty from 1 Jul 2025 to 15 Sep 2026 sets σ; γ = 0.00002, k = 4 and 0.5 of the session left are fixed. Only the inventory term moves; the fill term stays at 0.50. Source: RupeeCase model on NSE end of day data, no market quote. As of 15 Sep 2026.

The volatility a quote must price moved from 5.2% to 29.5% in the files

Nifty 20 day realised volatility from 1 Jul 2025 to 15 Sep 2026, ranging from 5.2% to 29.5%Nifty 20 day realised vol: from 10.1% at 1 Jul 2025 to 7.3% at 15 Sep 2026, high 29.5% at 8 Apr 2026, low 5.2% at 1 Sep 2026.5%10%15%20%25%30%Jul 2025OctJan 2026AprJul7.3%
Close to close, annualised. A quote built on a stale volatility is too tight when this line rises, which is when adverse selection is worst. Source: NSE end of day data, computed by RupeeCase. As of 15 Sep 2026.
Read 4 more paragraphs, 153 words

The inventory term is γσ²τ = 0.28 points per lot. The total spread is that plus 2 ÷ k = 0.50, so 0.78 points, with a half spread of 0.39. With no inventory the quotes are a bid of 23,118.21 and an ask of 23,118.99.

Now load the book with 3 lots long. The reservation price drops by 3 × 0.28 = 0.85 points to 23,117.75. The quotes follow: a bid of 23,117.36 and an ask of 23,118.15. Its bid is now less attractive to sellers and its ask more attractive to buyers, which is the intent.

Volatility is the second lever. Hold the other inputs and run the same quote at the lowest, mean and highest 20 day volatility in the files.

The volatility the quote reads is not constant. The line chart of 20 day realised volatility is the series the model drew its range from.

What does an individual account pay to run it?

The half spread above is 0.39 points. Securities transaction tax on a futures sale has been 0.05% of the price since 1 Apr 2026 (NSE circular NSE/FATAX/73524). On the Nifty future at 23,118.60 that is 11.56 points on one sale, about 30 times the half spread. An account that pays it on every round trip cannot live on a spread of this size. A trading member's cost stack differs and I have not modelled it. The figure is here to teach the order of magnitude: the spread a model finds is a gross number, and the number that counts is net of every charge in the cost of an F&O trade.

Maths: the order of the numbers

STT = price × 0.0005

23,118.60 × 0.0005 = 11.56 points. Divided by the half spread of 0.39 gives 30. Brokerage, exchange charges, GST and stamp duty come on top.

Try it yourself

Pick any three values of γ, such as half and double the one used here, and rebuild the quote at three inventories. Write down how the bid and ask move, and which of the two parts of the spread changed. Then ask what happens to the quote when the session is nearly over (τ close to zero), and why a firm that still holds lots near the close might hedge them rather than rely on the quote.

The common mistake

The belief: A market maker just collects the spread, so it is a safe, steady business. The spread is the revenue and not the profit. Inventory moves with the market, so a stretch of one way flow leaves the firm long or short into a move, and the model's whole job is to price that. Adverse selection takes a share of every fill. A quote that is a few milliseconds stale is a gift to whoever sees the new price first. Charges can exceed the spread, as the example shows for an individual account. And a quote that was fine at one volatility is too tight at another. The honest summary is that a market maker is paid to carry risk it can price, and it stops being paid when its prices are wrong.

Two terms to hold on to from 19.10

Two terms to hold on to from 19.10Two terms to hold on to from 19.10. Inventory risk: The variance a market maker carries because its position moves with the market while it waits to trade out. Adverse selection: The loss from trading with someone who knows more than the quote shows. A filled bid just before a fall is an example.Inventory riskThe variance a market maker carries becauseits position moves with the market while itwaits to trade out.Adverse selectionThe loss from trading with someone who knowsmore than the quote shows. A filled bid justbefore a fall is an example.
From the module glossary. Source: Module 19.10, Market making: inventory and quoting.

Key takeaways

  • A quote's centre follows inventory; its width follows volatility.
  • Each lot held long lowers the reservation price by one step.
  • Doubling volatility quadruples the inventory part of the spread.
  • A fill carries information, and informed fills cost the quoter.
  • Algo orders cannot be market orders, and retail APIs are rate limited.
  • The spread is gross; charges can exceed it.

Where this section sits in module 19.10

Where this section sits in module 19.10Where this section sits in module 19.10. 1. The idea, plainly 2. Worked example: a model quote on the Nifty future 3. The common mistake 4. Key takeaways01The idea, plainly02Worked example: a model quote onthe Nifty future03The common mistake04Key takeaways
Sections 1 to 4 of 4; the highlighted one is next. Source: Module 19.10, Market making: inventory and quoting.

Before you trade. Derivatives trading carries a high risk of loss. SEBI's study "Profitability of Individual Traders in the Equity Derivatives Segment (FY25 to FY26)" (August 2026) found that 87.7% of individual traders in equity F&O made net losses in FY26, with aggregate net losses of Rs 91,685 crore. Read the SEBI study