Shares, Ownership & Indices
Difficulty: Level 3 — Production (from-scratch derivations, code-from-memory, explain-out-loud) Time limit: 45 minutes Total marks: 60
Instructions: Show all working. For derivation questions, state assumptions. For "explain-out-loud" prompts, write as if teaching a peer. Use for any math.
Q1. [10 marks] — Dividend yield & the effect of corporate actions
A company has the following data:
- Face value per share:
- Current market price:
- Declared dividend: (on face value)
(a) From first principles, derive the dividend per share and the dividend yield. State the formula in words, then compute. (4 marks)
(b) The company now announces a bonus issue. Assuming the market capitalisation is unchanged by the bonus itself, derive the new theoretical market price and recompute the dividend yield if the same ₹ dividend-per-share (post-bonus) policy of maintaining on face value continues. Explain out loud why the yield changes (or doesn't). (6 marks)
Q2. [12 marks] — Building a price-weighted vs free-float index from scratch
You are given a 3-stock universe:
| Stock | Price | Shares Outstanding | Free-float factor |
|---|---|---|---|
| A | |||
| B | |||
| C |
(a) Derive the price-weighted index value using a divisor of . (2 marks)
(b) Derive the free-float market-cap-weighted index, given a base free-float market cap of and a base index value of . (4 marks)
(c) Stock B undergoes a split (price halves, shares double). Recompute BOTH indices. For the price-weighted index, derive the new divisor required to keep the index value continuous across the split. Explain out loud why price-weighted indices need divisor adjustment but free-float indices generally do not. (6 marks)
Q3. [10 marks] — Rights issue: theoretical ex-rights price (from memory)
A shareholder holds shares of a company priced at . The company announces a rights issue of new share for every held, at a subscription price of .
(a) Derive, from first principles, the Theoretical Ex-Rights Price (TERP). Write the general formula and substitute. (4 marks)
(b) Derive the value of one right. (3 marks)
(c) An investor with shares does NOT subscribe. Explain out loud the wealth impact and quantify the "dilution loss" before considering any sale of rights. (3 marks)
Q4. [10 marks] — Buyback economics & EPS
A firm has shares outstanding, net profit , and market price . It executes a buyback of shares at .
(a) Derive EPS before and after the buyback. (4 marks)
(b) Show whether the buyback is EPS-accretive and explain the mechanism out loud. (3 marks)
(c) Contrast a buyback with a bonus issue in terms of effect on: number of outstanding shares, EPS, and cash. Give a one-line reasoning for each. (3 marks)
Q5. [10 marks] — Conceptual chain (explain-out-loud + classification)
(a) Trace the chain from authorized → issued → outstanding shares. Define each and state the inequality relationship between them. Where do treasury (bought-back) shares sit? (4 marks)
(b) Differentiate common vs preferred shares across: voting rights, dividend priority, dividend variability, and claim in liquidation. Present as a compact comparison. (4 marks)
(c) Explain why the Dow Jones can be "moved" more by a high-priced constituent than a large-cap one, whereas the Nifty 50 cannot. Tie your answer to index construction methodology. (2 marks)
Q6. [8 marks] — Index construction pseudocode (code-from-memory)
Write clear pseudocode (or Python) for a function free_float_index(prices, shares, freefloat, base_mcap, base_index) that computes a free-float market-cap-weighted index value from lists/arrays. Then state, in words, the one line you would change to make it price-weighted instead. (8 marks)
Answer keyMark scheme & solutions
Q1 (10 marks)
(a) Formula (words): Dividend per share (DPS) = dividend rate × face value; Dividend yield = DPS ÷ market price.
- DPS . (2)
- Yield . (2)
(b) Bonus doubles shares; market cap unchanged ⇒ theoretical price halves:
- New price . (2)
- Post-bonus dividend still of face value per share, but now each old holder has 2 shares, so DPS-per-original-share = ₹4 stays ₹4 per (new) share.
- New yield . (2)
- Explain: If the company continues paying ₹4 on every (now doubled) share, total payout doubles → yield doubles. The bonus alone (price halving, dividend halving) would leave yield unchanged; the yield rises here only because the ₹ dividend per share was maintained rather than halved — effectively a payout increase. (2)
Q2 (12 marks)
(a) Price-weighted . (2)
(b) Current free-float mcap:
- A:
- B:
- C:
- Total . (2)
- Index . (2)
(c) After B split (price , shares ):
- Price-weighted: sum of prices . To keep index at pre-split : new divisor satisfies . (3)
- Free-float: B's free-float mcap (unchanged), total still ⇒ index stays . (1)
- Explain: A split changes price without changing value; a price-weighted index sums prices, so it must adjust the divisor to remove the artificial drop. A free-float mcap index sums market values (price×shares), which are invariant to a split, so no adjustment is needed. (2)
Q3 (10 marks)
(a) TERP formula: .
- With : .
- TERP . (4)
(b) Value of a right per existing share. (Equivalently, right entitlement value = TERP − subscription = per new share, and per old share.) (3)
(c) With 400 shares: pre-value . Post ex-rights value if not subscribing . Dilution loss (= , the value of the un-exercised rights). Explain: the investor's holding is diluted because new shares are issued below market; not subscribing (and not selling the rights) forfeits ₹2,400 of value. (3)
Q4 (10 marks)
(a) EPS before .
- Shares after . Net profit unchanged (₹50m).
- EPS after . (4)
(b) EPS rose from ₹5.00 to ₹5.26 ⇒ accretive. Mechanism: same earnings spread over fewer shares. (Note: buyback price ₹220 > ₹200 uses cash, but with earnings fixed the share-count reduction dominates EPS.) (3)
(c)
| Aspect | Buyback | Bonus issue |
|---|---|---|
| Outstanding shares | Decrease | Increase |
| EPS | Rises (fewer shares) | Falls (more shares) |
| Cash | Cash goes out to shareholders | No cash movement (reserves capitalised) |
One line each: buyback returns cash and shrinks share base; bonus capitalises reserves, expanding share base with no cash outflow. (3)
Q5 (10 marks)
(a) Authorized = max shares the charter permits issuing. Issued = shares actually created/allotted (≤ authorized). Outstanding = issued shares currently held by investors (= issued − treasury). Inequality: . Treasury shares (repurchased, not retired) are issued but NOT outstanding. (4)
(b)
| Feature | Common | Preferred |
|---|---|---|
| Voting | Yes | Usually no |
| Dividend priority | After preferred | Before common |
| Dividend variability | Variable/discretionary | Fixed (typically) |
| Liquidation claim | Last | Ahead of common |
(4)
(c) Dow Jones is price-weighted: a higher-priced stock has larger weight regardless of company size, so a big % move in a high-priced constituent moves the index more. Nifty 50 is free-float market-cap-weighted: weight depends on free-float market value, not price, so nominal price level alone doesn't grant outsized influence. (2)
Q6 (8 marks)
def free_float_index(prices, shares, freefloat, base_mcap, base_index):
current_mcap = 0
for p, s, f in zip(prices, shares, freefloat):
current_mcap += p * s * f # free-float market cap per stock
return (current_mcap / base_mcap) * base_indexMarks: loop/sum of (3), ratio to base_mcap (2), scale by base_index & return (1).
Change for price-weighted (1 line): replace current_mcap += p * s * f with total += p and divide the summed price by a divisor instead of base_mcap (i.e. return sum(prices)/divisor). (2)
[
{"claim":"Q1a dividend yield = 1.6%","code":"dps=0.40*10; yld=dps/250; result=abs(yld-0.016)<1e-9"},
{"claim":"Q1b post-bonus yield = 3.2%","code":"yld=4/125; result=abs(yld-0.032)<1e-9"},
{"claim":"Q2b free-float index = 103.333","code":"mcap=100*1000*1.0+200*500*0.5+50*4000*0.8; idx=(mcap/300000)*100; result=abs(idx-Rational(310,3))<Rational(1,1000)"},
{"claim":"Q2c new divisor = 2.142857","code":"pre=Rational(350,3); d=250/pre; result=abs(d-Rational(15,7))<Rational(1,10000)"},
{"claim":"Q3a TERP = 114","code":"terp=(4*120+1*90)/5; result=terp==114"},
{"claim":"Q3b value of right = 6","code":"terp=Rational(4*120+90,5); vr=120-terp; result=vr==6"},
{"claim":"Q4a EPS after buyback approx 5.263","code":"eps=50000000/Rational(9500000); result=abs(eps-Rational(100,19))<Rational(1,1000)"}
]