STRASMORE/EXPLORE 2,948 QUERIES

pop_spread

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-02, from what-is-gmp-in-an-ipo.

as of ranking 6×3read in context →
pop_spread — 6 rows by 3 columns, computed from US exchange, SIP and OPRA data.
bandlisting_countshare_pct
opened more than 10% below offer725.9
opened 0-10% below offer16213.3
opened 0-10% above offer37831
opened 10-30% above offer19415.9
opened 30-60% above offer13911.4
opened more than 60% above offer27422.5
Rows × columns
6 × 3
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for pop_spread, derived from the stored result.
ColumnTypeRangeNotes
band text 6 distinct values
listing_count number 72 to 378 count
share_pct number 5.9 to 31 percent

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

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_rank
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysiswhat-is-gmp-in-an-ipo
pop_by_year ranking 6×4 → debut_two_legs table 4×5 → Top 25 weekly-options underlyings by distinct contracts traded, with expiration weekdays ranking 25×4 → Annualized volatility vs total return, 25 large caps, calmest to wildest (~2 years) ranking 25×3 → SPY options median spread by expiration date, near-the-money strikes only ranking 25×4 → Stock headlines by ET hour of publication (last 30 days, all days) ranking 24×3 → See all 2,948 queries →