---
title: "Market Making: Inventory, Quoting and the Spread"
description: "How a market maker sets bid and ask from inventory and volatility, run on Nifty data as a model quote, with adverse selection and an account's charges."
source_url: "https://www.rupeecase.com/learn/path-19/module-19-10-market-making"
---

[Path 19 10 of 16](/learn/path-19/)Market making: inventory and quoting[Next 19.11](/learn/path-19/module-19-11-optimal-execution)

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.

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

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](/learn/path-19/module-19-12-hft-economics).

### 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](/learn/path-19/module-19-5-building-a-compliant-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.

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](/learn/path-14/module-14-15-delta-hedging) and the cost of being short gamma in [gamma scalping](/learn/path-14/module-14-16-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

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, 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, 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

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](/learn/path-12/module-12-6-cost-of-an-fo-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

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

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](https://www.sebi.gov.in/reports-and-statistics/research/aug-2026/study-profitability-of-individual-traders-in-the-equity-derivatives-segment-fy25-fy26-_103835.html)

What does Market making: inventory and quoting cover?A quote is a price for risk. The model sets its centre by inventory and its width by volatility, and the charges decide whether it pays. It works through The idea, plainly, Worked example: a model quote on the Nifty future, The common mistake, Key takeaways. It is module 19.10 of Path 19, Algo, HFT and Backtesting, about 11 minutes of reading, free.

  AF&O on RupeeCase

## Hedging only, in development
F&O at RupeeCase will do one job: protect a portfolio you already own, by a rule published before it runs. No speculation, no naked option selling, no leveraged bets. It is not available yet.

  [How hedging will work](/hedging)[Sign up for RupeeCase](https://invest.rupeecase.com/signup)

  [No hedgeFalls with the marketWith a putA floor, for a premiumIllustration with made up numbers, not a product and not a recommendation.](/hedging)

QQuick check

## 10 questions, 7 to pass.
Each attempt draws 10 of the 15 questions in this module's bank, and a retake draws a fresh set. A pass gives this module's Certificate of Completion. Your result stays on this device and counts towards the Path 19 certificate.

7 of 10 correct passes module 19.10

Every answer is explained when you check; a retake is always free. Source: RupeeCase Learn quiz rules (70% to pass).

  Passed

###

  Certificate ID

Download PNGPrint or save as PDF[Check the ID](/learn/certificates/verify)
Self paced and unproctored. A record of completing free education by RupeeCase; not a NISM certificate and not endorsed by NISM, NSE, BSE or SEBI. It qualifies no one to deal, advise or publish research.

CCheck yourself

## Path 19 so far.
Your quick check results on this device, stop by stop.

Stop 10 of 16 on Path 19

Algo, HFT and Backtesting: every live stop, this module ringed. Source: RupeeCase Learn, Path 19.

1. [19.1What a backtest is, and five biases that ruin itNot yet](/learn/path-19/module-19-1-backtest-biases)
2. [19.2Strategy metrics: CAGR, Sharpe, Sortino, drawdown and expectancyNot yet](/learn/path-19/module-19-2-strategy-metrics)
3. [19.3HFT, MFT and LFT comparedNot yet](/learn/path-19/module-19-3-hft-mft-lft)
4. [19.4Colocation, latency and fairness: NSE's historyNot yet](/learn/path-19/module-19-4-colocation-and-latency)
5. [19.5Building a compliant retail algoNot yet](/learn/path-19/module-19-5-building-a-compliant-algo)
6. [19.6Backtesting options on Indian dataNot yet](/learn/path-19/module-19-6-backtesting-options)
7. [19.7Walk forward and out of sample testingNot yet](/learn/path-19/module-19-7-walk-forward-testing)
8. [19.8Monte Carlo and bootstrap of trade resultsNot yet](/learn/path-19/module-19-8-monte-carlo-and-bootstrap)
9. [19.9Microstructure models: spreads, informed trading and price impactNot yet](/learn/path-19/module-19-9-microstructure-models)
10. [19.10Market making: inventory and quotingNot yet](/learn/path-19/module-19-10-market-making#quiz)
11. [19.11Optimal execution and market impactNot yet](/learn/path-19/module-19-11-optimal-execution)
12. [19.12HFT economics and the latency raceNot yet](/learn/path-19/module-19-12-hft-economics)
13. [19.13Backtest overfitting: deflated Sharpe, PBO and multiple testingNot yet](/learn/path-19/module-19-13-backtest-overfitting)
14. [19.14Financial machine learning done carefullyNot yet](/learn/path-19/module-19-14-financial-machine-learning)
15. [19.15Expiry day market integrity: a SEBI interim order, FutEq limits and surveillanceNot yet](/learn/path-19/module-19-15-expiry-day-market-integrity)
16. [19.16Capstone: a research note on an Indian derivatives questionNot yet](/learn/path-19/module-19-16-capstone-research-note)
17. [TPath test, 30 questionsNot yet](/learn/path-19/module-19-16-capstone-research-note#pathTestSection)

Path 19 in reading time: 172 minutes over 16 modules

Minutes of reading per module, this one in amber. Source: RupeeCase Learn, Path 19.

    Explore next

## Put the module to work.

* [ToolOption payoff builderLegs on a dated Nifty chain, breakevens and charges](/learn/tools/payoff-builder)
* [Free module 19.3HFT, MFT and LFT compared10 min read](/learn/path-19/module-19-3-hft-mft-lft)
* [Free module 19.4Colocation, latency and fairness: NSE's history11 min read](/learn/path-19/module-19-4-colocation-and-latency)
* [Free module 19.5Building a compliant retail algo10 min read](/learn/path-19/module-19-5-building-a-compliant-algo)
* [Free module 19.9Microstructure models: spreads, informed trading and price impact11 min read](/learn/path-19/module-19-9-microstructure-models)
* [Free module 19.12HFT economics and the latency race11 min read](/learn/path-19/module-19-12-hft-economics)

      Community

## Join my WhatsApp group.

      Scan the code, fillFill one short form, and join my WhatsApp group. Slides, sources, factsheets and the rebalance logs live there, and members join a daily Google Meet with me.

      New to RupeeCase? [Getting started](/getting-started) [See the terminal](/terminal)

        [Sign up for RupeeCase](https://invest.rupeecase.com/signup)
        [Join the WhatsApp group](https://forms.gle/C6HMtM1Z2GfeocQV7)

      [One form, one group](https://forms.gle/C6HMtM1Z2GfeocQV7)Scan with your phone camera

SSources

## Go to the source.
8 sources, NSE the most cited

The publisher of each source listed below. Source: Module 19.10 source list.
1. [SEBI, circular of 1 September 2025, framework for intraday position limits monitoring for equity index derivatives](https://www.sebi.gov.in/legal/circulars/sep-2025/framework-for-intraday-position-limits-monitoring-for-equity-index-derivatives_96376.html) SEBI
2. [SEBI, circular of 4 February 2025, safer participation of retail investors in algorithmic trading](https://www.sebi.gov.in/legal/circulars/feb-2025/safer-participation-of-retail-investors-in-algorithmic-trading_91614.html) SEBI
3. [SEBI, circular of 24 June 2020, guidelines for order to trade ratio for algorithmic trading](https://www.sebi.gov.in/legal/circulars/jun-2020/guidelines-for-order-to-trade-ratio-otr-for-algorithmic-trading_46925.html) SEBI
4. [NSE, algorithmic trading page](https://www.nseindia.com/static/trade/platform-services-non-neat-decision-support-tools-algorithm-trading) NSE
5. [NSE, securities transaction tax on equity derivatives](https://www.nseindia.com/static/products-services/equity-derivatives-securities-transaction-tax) NSE
6. [NSE, derivatives reports and daily end of day files](https://www.nseindia.com/all-reports-derivatives) NSE
7. Avellaneda, M. and Stoikov, S., High-frequency trading in a limit order book, Quantitative Finance 8(3), 2008 Paper
8. Glosten, L. and Milgrom, P., Bid, ask and transaction prices in a specialist market with heterogeneously informed traders, Journal of Financial Economics 14(1), 1985 Paper

GTerms

## 4 terms from this module.
Reservation priceThe 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.
Inventory riskThe variance a market maker carries because its position moves with the market while it waits to trade out.
Adverse selectionThe loss from trading with someone who knows more than the quote shows. A filled bid just before a fall is an example.
Half spreadHalf the gap between the bid and the ask, the amount a quote sits away from its centre.
[All 230 terms in the glossary](/learn/glossary)

[Question people askWhat is market making?A short answer with a dated chart](/learn/questions/what-is-market-making)[Related module19.3 HFT, MFT and LFT compared10 min, Advanced](/learn/path-19/module-19-3-hft-mft-lft)[Related module19.4 Colocation, latency and fairness: NSE's history11 min, Advanced](/learn/path-19/module-19-4-colocation-and-latency)[Pillar guideDerivatives and Quant115 modules across paths 12 to 19](/learn/derivatives)

Education only, not investment advice, a research report or a recommendation to buy, sell or hold any security. RupeeCase (QC Alpha Technologies Pvt Ltd) is not registered with SEBI as an investment adviser or research analyst. Contracts and prices shown are for illustration only, come from NSE end of day files at least 30 days old, and are not recommendatory. Derivatives trading carries a high risk of loss.
