What Is GMP in an IPO? Grey Market Premium
GMP in an IPO is the grey market premium: an unofficial, unsettled quote on an unlisted issue. What it measures, and how widely listing-day moves actually run.
GMP in an IPO is the grey market premium: the amount, quoted per share, that unofficial dealers say they will pay above the issue price for an IPO application or an allotment before the stock begins trading. The quote circulates by word of mouth among a small network of operators, mostly in India, and aggregator sites republish it as a daily figure. Nothing stands behind it: no exchange, no clearing corporation, no settlement guarantee, and no recourse if the other side walks away.
Does a high GMP mean a big listing-day gain? The short answer is that GMP is directionally informative and quantitatively unreliable. It is an explainer, and nothing here is an endorsement of grey-market dealing.
What does GMP in an IPO actually quote?
An IPO is sold at a fixed issue price, or inside a narrow price band. Between allotment and the listing session, allottees hold shares they cannot sell on an exchange. The grey market is the informal market that fills that gap: a dealer offers to buy an allotment at the issue price plus a premium, and that premium is the GMP. A premium of 120 on an issue priced at 500 means a dealer is quoting 620 per share for stock that has never traded.
A few properties of that number matter more than the number itself.
- It is indicative, not transacted. There is no central order book, no tape of completed trades and no published volume. The GMP on any website is a dealer's verbal quote relayed through an intermediary, and it is often hours stale by the time it is typed up.
- Settlement is honour-based. Positions are squared in cash on listing day between the dealer and the applicant, with none of the delivery and auction machinery that stands behind an exchange trade. The exchange-side process in India for a failed delivery is described in the short delivery auction, and the grey market has no equivalent.
Kostak and subject to sauda quote different things
Grey-market conversation uses several price terms, and they are not interchangeable. Reading one as another is the most common beginner error.
- GMP: a premium per share over the issue price, paid on shares actually allotted.
- Kostak: a flat price for an entire application, paid whether or not that application receives any allotment. The buyer carries the allotment risk.
- Subject to sauda: a price for an application that becomes payable only if the application is allotted. No allotment, no deal.
Does GMP predict the listing pop?
The listing pop is the gap between the issue price and the first traded price on listing day. GMP and the pop are two readings of the same thing: visible pre-listing demand. By the time a premium is widely quoted, the subscription multiples for each investor category are public, the anchor book is public, and the price band is public. The quote largely restates that information with a dealer's markup on top.
Over a hot stretch of heavily subscribed issues, a wide positive premium and a positive listing pop show up together often enough that the relationship looks strong. That is co-occurrence between two measures of the same crowd. It is not a forecast, and two features of the number keep it from becoming one.
- It is a level with no error band. Listing-day outcomes are widely dispersed, and a single number carries no information about that dispersion.
- The sample is self-selecting. Issues with visible demand get quoted actively. Cold issues get quoted thinly or not at all, which quietly removes the cases that would test the relationship hardest.
Here is what would falsify the verdict, stated precisely enough to be checked. Take the premium at a fixed cut-off time, say the evening before listing. Cover every mainboard issue across a full cycle, hot windows and cold windows alike, including the issues that priced at the bottom of the band and the ones that struggled to fill. Then compare the implied pop against the realised listing-day return. If the errors sit inside a narrow band and the slope is the same in both halves of the cycle, GMP is a forecast and this page is wrong.
How wide are listing-day moves anyway?
There is no feed of grey-market quotes to measure, so the panels below measure the thing a premium is being asked to predict: the distance between an offer price and the first real print. These are US listings from 2021 through mid-2026, where the offer price and every trade are on the record. The opening mechanism differs by venue, and the shape of the outcome transfers.
| band | listing_count | share_pct |
|---|---|---|
| opened more than 10% below offer | 72 | 5.9 |
| opened 0-10% below offer | 162 | 13.3 |
| opened 0-10% above offer | 378 | 31 |
| opened 10-30% above offer | 194 | 15.9 |
| opened 30-60% above offer | 139 | 11.4 |
| opened more than 60% above offer | 274 | 22.5 |
The exact SQL behind every number
WITH issues AS
(
SELECT
ticker,
min(listing_date) AS listing_dt,
max(toFloat64(final_issue_price)) AS offer_price
FROM global_markets.stocks_ipos
WHERE listing_date >= '2021-01-01'
AND listing_date < '2026-07-01'
AND final_issue_price > 0
AND issuer_name NOT ILIKE '%acquisition%'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
debut AS
(
SELECT
i.offer_price AS offer_price,
argMin(toFloat64(d.open), d.date) AS first_open
FROM issues AS i
INNER JOIN global_markets.stocks_daily_aggs AS d ON d.ticker = i.ticker
WHERE d.date >= i.listing_dt
AND d.date < i.listing_dt + 7
GROUP BY i.ticker, i.offer_price
)
SELECT
band,
count() AS listing_count,
round(100 * count() / sum(count()) OVER (), 1) AS share_pct
FROM
(
SELECT
round(100 * (first_open / offer_price - 1), 2) AS pop_pct,
multiIf(pop_pct < -10, 1, pop_pct < 0, 2, pop_pct < 10, 3, pop_pct < 30, 4, pop_pct < 60, 5, 6) AS band_rank,
multiIf(pop_pct < -10, 'opened more than 10% below offer',
pop_pct < 0, 'opened 0-10% below offer',
pop_pct < 10, 'opened 0-10% above offer',
pop_pct < 30, 'opened 10-30% above offer',
pop_pct < 60, 'opened 30-60% above offer',
'opened more than 60% above offer') AS band
FROM debut
WHERE first_open > 0
)
GROUP BY band, band_rank
ORDER BY band_rankAll six bands are populated. The weakest band, where a stock opened more than 10% below offer, holds 5.9% of these listings. The strongest, where it opened more than 60% above offer, holds 22.5%. A pre-listing number that is right about the direction will still be badly wrong about the size for a large share of issues, and the two tails are not symmetric.
The distribution also moves with the calendar, which is the part a single premium cannot capture at all.
| listing_year | listing_count | median_pop_pct | below_offer_pct |
|---|---|---|---|
| 2021 | 519 | 7.5 | 17.5 |
| 2022 | 86 | 11.7 | 22.1 |
| 2023 | 114 | 23.8 | 16.7 |
| 2024 | 176 | 12.2 | 21.6 |
| 2025 | 234 | 9.6 | 17.9 |
| 2026 | 90 | 2.4 | 27.8 |
The exact SQL behind every number
WITH issues AS
(
SELECT
ticker,
min(listing_date) AS listing_dt,
max(toFloat64(final_issue_price)) AS offer_price
FROM global_markets.stocks_ipos
WHERE listing_date >= '2021-01-01'
AND listing_date < '2026-07-01'
AND final_issue_price > 0
AND issuer_name NOT ILIKE '%acquisition%'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
debut AS
(
SELECT
i.ticker AS ticker,
toString(toYear(i.listing_dt)) AS listing_year,
round(100 * (argMin(toFloat64(d.open), d.date) / i.offer_price - 1), 2) AS pop_pct
FROM issues AS i
INNER JOIN global_markets.stocks_daily_aggs AS d ON d.ticker = i.ticker
WHERE d.date >= i.listing_dt
AND d.date < i.listing_dt + 7
GROUP BY i.ticker, i.offer_price, i.listing_dt
)
SELECT
listing_year,
count() AS listing_count,
round(quantileDeterministic(0.5)(pop_pct, toUInt32(cityHash64(ticker))), 1) AS median_pop_pct,
round(100 * countIf(pop_pct < 0) / count(), 1) AS below_offer_pct
FROM debut
WHERE isFinite(pop_pct)
GROUP BY listing_year
HAVING count() >= 5
ORDER BY listing_yearThe panel covers 6 listing years. In 2026, the most recent year in view, the median listing opened 2.4% from its offer price, and 27.8% of that year's listings opened below the price at which their shares had just been sold. A grey-market quote taken the night before a listing is implicitly a bet on the market's current appetite for new issues, and that appetite shifts across years rather than across issues.
There is a second leg, too. The opening print is not the close, and a premium settled on listing day lands somewhere inside the first session.
| band | listing_count | median_pop_pct | median_day1_change_pct | closed_above_open_pct |
|---|---|---|---|---|
| opened below offer | 234 | -5.3 | 0.1 | 51.3 |
| opened 0-10% above offer | 378 | 0.7 | 0 | 38.1 |
| opened 10-30% above offer | 194 | 17.6 | -0.8 | 45.4 |
| opened more than 30% above offer | 413 | 461.2 | -4.2 | 39.2 |
The exact SQL behind every number
WITH issues AS
(
SELECT
ticker,
min(listing_date) AS listing_dt,
max(toFloat64(final_issue_price)) AS offer_price
FROM global_markets.stocks_ipos
WHERE listing_date >= '2021-01-01'
AND listing_date < '2026-07-01'
AND final_issue_price > 0
AND issuer_name NOT ILIKE '%acquisition%'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
debut AS
(
SELECT
i.ticker AS ticker,
round(100 * (argMin(toFloat64(d.open), d.date) / i.offer_price - 1), 2) AS pop_pct,
round(100 * (argMin(toFloat64(d.close), d.date)
/ argMin(toFloat64(d.open), d.date) - 1), 2) AS day1_change_pct
FROM issues AS i
INNER JOIN global_markets.stocks_daily_aggs AS d ON d.ticker = i.ticker
WHERE d.date >= i.listing_dt
AND d.date < i.listing_dt + 7
GROUP BY i.ticker, i.offer_price
)
SELECT
band,
count() AS listing_count,
round(quantileDeterministic(0.5)(pop_pct, toUInt32(cityHash64(ticker))), 1) AS median_pop_pct,
round(quantileDeterministic(0.5)(day1_change_pct, toUInt32(cityHash64(ticker))), 1) AS median_day1_change_pct,
round(100 * countIf(day1_change_pct > 0) / count(), 1) AS closed_above_open_pct
FROM
(
SELECT
ticker,
pop_pct,
day1_change_pct,
multiIf(pop_pct < 0, 1, pop_pct < 10, 2, pop_pct < 30, 3, 4) AS band_rank,
multiIf(pop_pct < 0, 'opened below offer',
pop_pct < 10, 'opened 0-10% above offer',
pop_pct < 30, 'opened 10-30% above offer',
'opened more than 30% above offer') AS band
FROM debut
WHERE isFinite(pop_pct) AND isFinite(day1_change_pct)
)
GROUP BY band, band_rank
ORDER BY band_rankAmong listings that opened more than 30% above offer, the median move from the opening print to the close measured -4.2%, and 39.2% of them finished the session above where they opened. Among those that opened below offer, the median move from the open to the close measured 0.1%. An applicant who squares a grey-market position on listing day is exposed to both legs: the distance from offer price to opening print, and then the distance from that print to wherever the session ends.
How these panels are built
Issue prices come from the IPO record for each symbol, and the first traded day is the earliest daily bar within seven calendar days of the recorded listing date. Blank-check vehicles are screened out by issuer name, a rough filter rather than an exact one. Medians use a deterministic quantile, so a repeat run of the same window returns the same figure. These are US issues, not Indian ones.
What GMP is standing in for
Seen next to the real mechanism, a grey-market premium is a shadow of a price-formation process that already exists in public. On listing day the exchange runs an auction over genuine orders, publishes an indicative price as the book builds, and prints one clearing price that everyone trades at. That full sequence is laid out in how the IPO opening price is set. GMP reaches for the same answer with none of that machinery behind it: no order book, no dissemination, no clearing, no obligation.
The other thing a premium stands in for is access. Wanting exposure to a company before it lists is an ordinary impulse, and there are regulated routes for it, each with its own paperwork, holding periods and price discovery. Those are covered in how pre-IPO shares trade. The information vacuum around a new listing has a regulatory shape as well, described in the IPO quiet period.
FAQ
Is GMP in an IPO official or regulated?
No. GMP is an unofficial dealer quote with no exchange, no clearing corporation and no regulatory oversight behind it. Trades arranged on it are not recognised by the exchange or the clearing system, and there is no formal route of recourse if a counterparty does not pay.
Does a high GMP guarantee a listing gain?
It guarantees nothing. A wide positive premium and a positive listing pop frequently occur together, since both measure the same visible pre-listing demand, and the relationship is loose in size and unstable across market conditions. The panels above show listings opening anywhere from well below their offer price to far above it inside the same sample.
What is the difference between GMP and kostak?
GMP is a premium per share over the issue price, payable on shares that are actually allotted. Kostak is a flat price for a whole application, payable whether or not that application is allotted, which means the buyer takes the allotment risk. Subject to sauda sits between the two: a price for an application that is payable only on allotment.
Where do published GMP numbers come from?
From a small network of dealers and intermediaries who pass quotes along by phone and messaging app. Aggregator sites collect what they hear and publish a single daily figure. There is no print, no timestamp and no volume attached, so two sites can carry different numbers for the same issue on the same evening.
To measure listing-day behaviour over a window of your own choosing, ask the question in plain English on the Strasmore terminal.