Level 5 — MasteryPrimary vs Secondary Market & IPOs

Primary vs Secondary Market & IPOs

90 minutes60 marksprintable — key stays hidden on paper

Level 5 — Mastery Examination (Cross-Domain: Finance + Math + Coding)

Time Limit: 90 minutes
Total Marks: 60
Instructions: Answer ALL questions. Show full working. Where code is required, write clean, runnable Python (pseudo-code accepted if logic is exact). Round currency to 2 decimals unless stated.


Question 1 — IPO Allotment Mechanics & Proportionate Model (24 marks)

A company launches a book-built IPO with the following parameters:

  • Price band: ₹280 – ₹295, cut-off price applies.
  • Lot size: 50 shares; retail applicant must bid in multiples of 1 lot.
  • Total shares on offer: 10,000,000.
  • Reservation: 35% QIB, 15% NII (HNI), 50% Retail (ignore anchor carve-out from QIB for part (a) unless stated).

(a) Retail portion receives valid bids for 8,000,000 shares at cut-off. State whether the retail category is over- or under-subscribed and by what factor. Compute the theoretical proportionate allotment ratio and explain why SEBI mandates a minimum lot guarantee / lottery mechanism instead of pure proportionate allotment in the retail category. (6)

(b) Anchor investors are allotted 60% of the QIB portion the day before the IPO opens. Compute the anchor allocation in shares and in rupee value at the cut-off price. Then compute the remaining QIB shares available to non-anchor QIBs. (5)

(c) A retail investor applies for the maximum permissible retail amount (SEBI retail ceiling = ₹200,000 per application). Determine the maximum number of whole lots they can apply for at the cut-off price, and the exact amount blocked under ASBA. (5)

(d) Given the retail subscription factor from (a), model the lottery allotment as a probability. Write a Python function p_allotment(demand_shares, offer_shares, lot) returning the probability a single 1-lot retail applicant receives an allotment, assuming each applicant applied for exactly 1 lot. Apply it to this IPO. Explain the assumption that makes this a clean ratio. (8)


Question 2 — Listing Gains, GMP & Expected Value Under Uncertainty (22 marks)

The IPO from Q1 lists. The Grey Market Premium (GMP) on the day before listing is quoted at ₹66.

(a) Define GMP precisely and compute the implied listing price and implied listing gain % relative to the cut-off price of ₹295. (4)

(b) GMP is an unregulated indicator. Construct a probabilistic expected-return model: suppose from historical data the actual listing price relative to GMP-implied price follows:

Scenario Actual list vs GMP-implied Probability
Bull +8% 0.25
Base 0% 0.45
Bear −20% 0.30

Compute the expected listing price and the expected listing gain % over cut-off. Show that the naive GMP-implied gain overstates the expected gain. (8)

(c) A retail investor allotted 1 lot (from Q1) will sell at listing. Using the probability of allotment from Q1(d) and the expected listing gain from (b), compute the investor's ex-ante expected profit per application (i.e., before allotment is known), given each applicant blocks capital for exactly 1 lot. Comment on what this reveals about "IPO as a strategy." (6)

(d) Write a short Python Monte-Carlo simulate(n) that draws n listing outcomes from the scenario distribution in (b) and estimates mean listing gain %. State how you'd validate it against the analytic answer. (4)


Question 3 — Instrument Design & Structured Reasoning (14 marks)

(a) A promoter holding 62% wishes to reduce stake to 55% to meet minimum public shareholding norms, without the company raising fresh capital. Compare OFS vs FPO vs QIP as routes: for each state (i) does fresh capital enter the company, (ii) who sells, (iii) typical eligible investors, and identify the correct single instrument for this promoter's goal. (6)

(b) Explain the difference between a DRHP and the final RHP/Prospectus, and name three material sections an analyst must scrutinise in a DRHP before applying. Justify each choice in one line. (4)

(c) Book-building vs fixed-price: In a book-built issue the price is discovered; in fixed-price it is pre-set. Prove with a one-line argument why book-building generally reduces the issuer's "money left on the table" (underpricing cost) compared to fixed price, referencing the demand curve. (4)

Answer keyMark scheme & solutions

Question 1

(a) Retail shares on offer = 50% × 10,000,000 = 5,000,000. Bids = 8,000,000. Subscription factor = 8,000,000 / 5,000,000 = 1.6× → over-subscribed by 1.6×. (2) Proportionate ratio = 5,000,000 / 8,000,000 = 0.625, i.e. 5 shares allotted per 8 demanded. (2) Why lottery/min-lot: pure proportion would give fractional lots (e.g. 0.625 of a lot) which is impossible since shares trade only in whole lots. SEBI mandates a minimum of 1 lot to the maximum number of applicants, distributed by lottery when demand exceeds capacity — ensuring small-investor participation and integer allotments. (2)

(b) QIB portion = 35% × 10,000,000 = 3,500,000 shares. Anchor = 60% × 3,500,000 = 2,100,000 shares. (2) Rupee value at cut-off ₹295 = 2,100,000 × 295 = ₹619,500,000 (₹61.95 crore). (2) Non-anchor QIB = 3,500,000 − 2,100,000 = 1,400,000 shares. (1)

(c) Cost per lot = 50 × 295 = ₹14,750. (1) Max lots ≤ 200,000 / 14,750 = 13.559 → 13 whole lots. (2) Blocked (ASBA) = 13 × 14,750 = ₹191,750 (≤ ₹200,000 ✓). (2)

(d) With every applicant applying exactly 1 lot, number of lots demanded = demand/lot, lots available = offer/lot, and probability = min(1, offer/demand).

def p_allotment(demand_shares, offer_shares, lot):
    lots_demanded  = demand_shares / lot
    lots_available = offer_shares  / lot
    return min(1.0, lots_available / lots_demanded)
 
# retail: demand 8,000,000 ; offer 5,000,000 ; lot 50
print(p_allotment(8_000_000, 5_000_000, 50))  # 0.625

p = 5,000,000 / 8,000,000 = 0.625. (6) Assumption: all applicants bid the same 1 lot, so lot cancels and the ratio equals the inverse subscription factor — a clean uniform lottery. (2)


Question 2

(a) GMP = premium at which IPO shares trade in the unofficial/grey market before listing, over the issue price. (1) Implied listing price = 295 + 66 = ₹361. (1) Implied gain % = 66/295 × 100 = 22.37%. (2)

(b) Expected multiplier of GMP-implied price: E = 0.25(1.08) + 0.45(1.00) + 0.30(0.80) = 0.27 + 0.45 + 0.24 = 0.96. (3) Expected listing price = 361 × 0.96 = ₹346.56. (2) Expected gain % = (346.56 − 295)/295 × 100 = 51.56/295 = 17.48%. (2) Since 17.48% < 22.37%, the naive GMP-implied gain overstates expected gain (the bear tail drags the mean down). (1)

(c) Expected profit per allotted lot = 50 × 295 × 17.48% = 14,750 × 0.17478 ≈ ₹2,578 per allotted lot. (2) Ex-ante (before allotment) = p × profit = 0.625 × 2,578.0 ≈ ₹1,611.3 per application. (2) (Using exact: 14,750 × ((346.56−295)/295) × 0.625 = 14,750 × 0.174780 × 0.625 = ₹1,611.3.) Interpretation: positive expected value here, but it hinges on allotment probability (0.625) and a favourable GMP; heavy over-subscription (low p) and bear outcomes can turn IPO-flipping into a low/negative EV strategy. Capital is blocked with no interest and outcome is uncertain. (2)

(d)

import random
def simulate(n):
    outs, probs = [0.08, 0.00, -0.20], [0.25, 0.45, 0.30]
    base = 361.0; cutoff = 295.0
    gains = []
    for _ in range(n):
        r = random.random()
        c = 0
        for o, pr in zip(outs, probs):
            c += pr
            if r <= c:
                price = base * (1 + o)
                gains.append((price - cutoff) / cutoff * 100)
                break
    return sum(gains) / len(gains)
 
print(simulate(1_000_000))  # ~17.48

Validation: as n→∞ the Monte-Carlo mean converges (LLN) to the analytic 17.48%; check |sim − 17.48| < a few × standard error. (4)


Question 3

(a) (1 each row correct + 1 for right pick)

Route Fresh capital to company? Who sells? Eligible investors
OFS No Existing promoters/shareholders All (retail + institutional via exchange window)
FPO Usually Yes (fresh issue) Company (+ possibly promoters) Public
QIP Yes Company issues fresh shares Only QIBs

Promoter wants to dilute own stake, no fresh capitalOFS is the correct instrument. (2 for correct pick + reasoning that only OFS is promoter-selling with no fresh capital) (6)

(b) DRHP = Draft Red Herring Prospectus, filed with SEBI for review, no price/dates finalised; RHP/final prospectus is post-approval with price band/lot/dates. (1) Three sections (1 each):

  • Risk Factors — reveals business/legal/financial threats.
  • Objects of the Issue — where the money goes (fresh vs OFS split).
  • Financial Statements / restated financials — assess profitability, debt, growth quality. (Also acceptable: Management, Litigation, Related-party transactions.) (4)

(c) In fixed price the issuer sets P before knowing demand; if true clearing price P* > P, shares are underpriced and the issuer forgoes (P*−P)×Q — "money left on the table." Book-building elicits the demand curve from bids, letting the price move toward the market-clearing P*, so the gap (and thus underpricing cost) shrinks. (4)

[
  {"claim":"Retail allotment probability = 0.625","code":"result = (min(1.0, (5_000_000/50)/(8_000_000/50)) == 0.625)"},
  {"claim":"Max retail whole lots = 13 within Rs200000","code":"lots = int(200000/(50*295)); result = (lots==13 and lots*50*295==191750)"},
  {"claim":"Anchor shares = 2,100,000 and value 619,500,000","code":"a=0.60*0.35*10_000_000; result = (a==2_100_000 and a*295==619_500_000)"},
  {"claim":"Expected GMP multiplier = 0.96","code":"result = (0.25*1.08+0.45*1.00+0.30*0.80==0.96)"},
  {"claim":"Expected listing gain % approx 17.478","code":"g=(361*0.96-295)/295*100; result = (abs(g-17.478)<0.01)"},
  {"claim":"Ex-ante expected profit per application approx 1611.3","code":"ev=14750*((361*0.96-295)/295)*0.625; result = (abs(ev-1611.3)<1.0)"}
]