Level 5 — MasteryEconomic Moats & Macro

Economic Moats & Macro

90 minutes60 marksprintable — key stays hidden on paper

Level 5 (Mastery): Cross-Domain Analysis, Modeling & Proof

Time limit: 90 minutes Total marks: 60

Instructions: Show all working. Where computation is required, present formulae before substitution. Math must be exact where possible; round monetary values to 2 decimals and rates to 2 decimal places (basis points where noted). Answer all three questions.


Question 1 — Moats, Porter's Forces & Management (20 marks)

A hypothetical firm, NetLedger Ltd, operates a B2B payments network. You are given:

  • Each new business joining the network raises the value to existing members. Value to a member is modeled by Metcalfe's proportionality: network value V(n)=kn(n1)V(n) = k\,n(n-1) where nn is the number of connected businesses and k>0k>0 is a constant.
  • The firm has 2,000 businesses today, growing to 2,500 next year.
  • Gross margin is 78%; the nearest competitor's gross margin is 61%.
  • Customer switching cost is estimated at ₹4.2 lakh per business (integration + retraining).

(a) Compute the percentage increase in modeled network value as nn grows from 2,000 to 2,500. Show the algebra symbolically first, then evaluate. (5)

(b) Prove that under this Metcalfe model the marginal network value ΔV=V(n+1)V(n)\Delta V = V(n+1)-V(n) grows linearly in nn, and state precisely why this constitutes a widening network-effect moat (not merely a static one). (5)

(c) Identify which two of Porter's Five Forces are most directly weakened by the combination of (i) the network effect and (ii) the ₹4.2 lakh switching cost. Justify each mapping in one or two sentences. (4)

(d) The CEO's compensation is 85% equity, vesting over 5 years, with buybacks funded by debt while ROIC (14%) comfortably exceeds WACC (9%). Assess management quality: give three distinct evidence-based judgements (positive or negative), each tied to a specific figure or moat interaction. (6)


Question 2 — Rates, Bond–Equity Cross-Domain Valuation (22 marks)

The RBI holds the repo rate at 6.50%, then cuts it by 50 bps. Assume the risk-free rate moves 1:1 with the repo.

(a) A 3-year annual-coupon government bond has face value ₹1,000, coupon 7%. Compute its price before and after the rate cut, using discount rate = risk-free rate = repo rate. Then compute the modified duration at the pre-cut yield, and use it to approximate the price change; compare with the exact change and comment on the approximation error. (10)

(b) For equities, a dividend-discount (Gordon) model gives price P=D1rgP = \dfrac{D_1}{r-g}. A stock has D1=12D_1 = ₹12, growth g=5%g=5\%. Its required return is r=rf+ERPr = r_f + \text{ERP} with equity risk premium ERP = 5.5%. Using rfr_f = repo rate, compute PP before and after the 50 bps cut, and the percentage price change. (6)

(c) Derive, from the Gordon model, a general expression for the sensitivity Pr\dfrac{\partial P}{\partial r} and use it to explain analytically why low-growth, long-duration equities react more violently to rate changes than high-yield value stocks. Connect this to why bond and equity prices generally move inversely to rates. (6)


Question 3 — Macro Cycle Simulation & Sector Rotation (18 marks)

You are given a discrete model of an economy over 8 quarters. Output gap gtg_t (%) and inflation πt\pi_t (%) evolve; the central bank sets the policy rate iti_t via a Taylor-type rule:

it=r+πt+0.5(πtπ)+0.5gti_t = r^* + \pi_t + 0.5(\pi_t - \pi^*) + 0.5\, g_t

with r=2%r^* = 2\%, target inflation π=4%\pi^* = 4\%.

Quarterly data:

t gtg_t (%) πt\pi_t (%)
1 -2.0 3.0
2 -1.0 3.5
3 1.0 5.0
4 2.5 6.0
5 1.5 5.5
6 -0.5 4.5

(a) Compute iti_t for all six quarters using the rule. (6)

(b) Classify each quarter into a business-cycle phase (early recovery, expansion/peak, slowdown, contraction) using the signs/trends of gtg_t and πt\pi_t and the direction of iti_t. Justify with the data. (6)

(c) Write pseudocode (or Python) for a function recommend_sector(g, pi, i_prev, i_now) that returns a sector recommendation (e.g., cyclicals/industrials, consumer staples/utilities, financials, tech/growth) consistent with the standard sector-rotation map. Then apply it to the transition from t=3 to t=4 and state the recommended overweight sector with reasoning. (6)


Answer keyMark scheme & solutions

Question 1

(a) [5 marks] V(n)=kn(n1)V(n)=k\,n(n-1). Percentage increase =V(2500)V(2000)V(2000)×100= \dfrac{V(2500)-V(2000)}{V(2000)}\times100kk cancels. (2 for symbolic cancellation)

V(2000)=k(2000)(1999)=3,998,000kV(2000)=k(2000)(1999)=3{,}998{,}000k. V(2500)=k(2500)(2499)=6,247,500kV(2500)=k(2500)(2499)=6{,}247{,}500k. (1)

Increase =6,247,5003,998,0003,998,000=2,249,5003,998,000=0.56266=\dfrac{6{,}247{,}500-3{,}998{,}000}{3{,}998{,}000}=\dfrac{2{,}249{,}500}{3{,}998{,}000}=0.56266. (1)

56.27% increase (a 25% increase in members yields a ~56% value increase — super-linear). (1)

(b) [5 marks] ΔV=k[(n+1)nn(n1)]=k[n2+nn2+n]=2kn\Delta V = k[(n+1)n - n(n-1)] = k[n^2+n - n^2+n] = 2kn. (3 for correct expansion) This is linear in nn (slope 2k2k). (1) Because each additional member adds value proportional to the current size nn, the moat widens as the firm grows: the incumbent's per-member value advantage over a small rival grows without bound, raising the entry barrier over time rather than staying fixed. (1)

(c) [4 marks]

  • Threat of new entrants — weakened by the network effect: a new entrant starts with small nn, hence tiny VV, and cannot match incumbent value. (2)
  • Bargaining power of buyers (customers) — weakened by the ₹4.2 lakh switching cost, which locks members in and reduces their leverage to demand price cuts or leave. (2) (Accept "rivalry among competitors" for the network point if well argued, but entrants/buyers is the tightest mapping.)

(d) [6 marks] Any three, 2 marks each:

  1. Positive — value creation: ROIC 14% > WACC 9% (a 5-point spread) means capital is deployed above its cost; buybacks funded here are accretive because the moat sustains high returns. (2)
  2. Positive — alignment: 85% equity, 5-year vesting aligns CEO with long-term shareholder value and discourages short-termism. (2)
  3. Caution/negative — leverage risk: debt-funded buybacks increase financial leverage; sustainable only while ROIC>WACC and moat holds — if rates rise or network erodes, the leveraged structure amplifies downside. Flag as a risk to monitor. (2)

Question 2

(a) [10 marks] Pre-cut rate r=6.50%r=6.50\%. Coupon = ₹70/yr, face ₹1,000.

P=701.065+701.0652+10701.0653P = \dfrac{70}{1.065}+\dfrac{70}{1.065^2}+\dfrac{1070}{1.065^3} =65.727+61.716+885.05=1012.49=65.727+61.716+885.05 = ₹1012.49 (≈). (3)

Post-cut r=6.00%r=6.00\%: P=701.06+701.062+10701.063=66.038+62.300+898.29=1026.63P=\dfrac{70}{1.06}+\dfrac{70}{1.06^2}+\dfrac{1070}{1.06^3}=66.038+62.300+898.29=₹1026.63. (2)

Exact change =1026.631012.49=+14.14=1026.63-1012.49 = +₹14.14. (1)

Macaulay duration at 6.50%: D=1PtCFt/(1+r)tD=\dfrac{1}{P}\sum t\cdot CF_t/(1+r)^t =1(65.727)+2(61.716)+3(885.05)1012.49=65.727+123.43+2655.141012.49=2844.301012.49=2.809=\dfrac{1(65.727)+2(61.716)+3(885.05)}{1012.49}=\dfrac{65.727+123.43+2655.14}{1012.49}=\dfrac{2844.30}{1012.49}=2.809 yrs. Modified duration Dmod=D/1.065=2.638D_{mod}=D/1.065=2.638 yrs. (2)

Approx price change =DmodΔrP=2.638×(0.005)×1012.49=+13.35=-D_{mod}\cdot\Delta r\cdot P = -2.638\times(-0.005)\times1012.49 = +₹13.35. (1)

Comparison: approximation (+₹13.35) underestimates exact (+₹14.14) by ~₹0.79 because duration is a linear (first-order) estimate ignoring positive convexity, which makes the true price gain slightly larger. (1)

(b) [6 marks] Pre-cut: r=6.50%+5.5%=12.0%r=6.50\%+5.5\%=12.0\%. P=120.120.05=120.07=171.43P=\dfrac{12}{0.12-0.05}=\dfrac{12}{0.07}=₹171.43. (2) Post-cut: r=6.00%+5.5%=11.5%r=6.00\%+5.5\%=11.5\%. P=120.1150.05=120.065=184.62P=\dfrac{12}{0.115-0.05}=\dfrac{12}{0.065}=₹184.62. (2) % change =184.62171.43171.43×100=7.69%=\dfrac{184.62-171.43}{171.43}\times100 = 7.69\%. (2)

(c) [6 marks] P=D1rgPr=D1(rg)2=PrgP=\dfrac{D_1}{r-g}\Rightarrow \dfrac{\partial P}{\partial r}=-\dfrac{D_1}{(r-g)^2}=-\dfrac{P}{r-g}. (3) The magnitude Pr=Prg\left|\dfrac{\partial P}{\partial r}\right|=\dfrac{P}{r-g} blows up as (rg)0(r-g)\to0, i.e. when growth gg is close to rr (long-duration/high-growth priced-for-the-future stocks). So a small rate rise (higher rr) causes a proportionally larger price fall for these than for high-yield value stocks where rgr-g is large and the denominator is stable. (2) Because P/r<0\partial P/\partial r<0, prices move inversely to rates — identical in sign to bonds, whose PV of fixed cash flows also falls when discount rates rise. (1)


Question 3

(a) [6 marks] Rule: it=2+πt+0.5(πt4)+0.5gti_t = 2 + \pi_t + 0.5(\pi_t-4) + 0.5 g_t. (1 mark each row)

t calc iti_t
1 2+3+0.5(1)+0.5(2)=2+30.51.02+3+0.5(-1)+0.5(-2)=2+3-0.5-1.0 3.50%
2 2+3.5+0.5(0.5)+0.5(1)=2+3.50.250.52+3.5+0.5(-0.5)+0.5(-1)=2+3.5-0.25-0.5 4.75%
3 2+5+0.5(1)+0.5(1)=2+5+0.5+0.52+5+0.5(1)+0.5(1)=2+5+0.5+0.5 8.00%
4 2+6+0.5(2)+0.5(2.5)=2+6+1+1.252+6+0.5(2)+0.5(2.5)=2+6+1+1.25 10.25%
5 2+5.5+0.5(1.5)+0.5(1.5)=2+5.5+0.75+0.752+5.5+0.5(1.5)+0.5(1.5)=2+5.5+0.75+0.75 9.00%
6 2+4.5+0.5(0.5)+0.5(0.5)=2+4.5+0.250.252+4.5+0.5(0.5)+0.5(-0.5)=2+4.5+0.25-0.25 6.50%

(b) [6 marks] (1 mark each)

  • t1: g<0g<0, low π\pi, low rate → contraction / trough.
  • t2: gg still negative but rising, π\pi rising, rate rising → early recovery.
  • t3: g>0g>0, π\pi high & rising, rate rising sharply → expansion.
  • t4: gg peak (2.5), π\pi peak (6.0), highest rate → peak / overheating.
  • t5: gg falling, π\pi falling, rate falling → slowdown.
  • t6: g<0g<0 again, π\pi near target, rate down to 6.50% → early contraction / late slowdown.

(c) [6 marks] Function [3], application [3]:

def recommend_sector(g, pi, i_prev, i_now):
    rising_rates = i_now > i_prev
    if g < 0 and rising_rates:            # early recovery
        return "cyclicals/industrials"
    if g > 0 and rising_rates:            # expansion -> peak
        return "financials (rate-sensitive) / energy"
    if g > 0 and not rising_rates:        # slowdown begins
        return "consumer staples/utilities"
    if g < 0 and not rising_rates:        # contraction, easing
        return "tech/growth (long-duration benefits from cuts)"
    return "balanced"

Application t3→t4: g=2.5>0g=2.5>0, ii rose 8.00→10.25 (rising) → returns "financials / energy". Reasoning: at the overheating peak with rising rates, banks earn wider net interest margins and commodity/energy names benefit from inflation, while long-duration growth is penalised by rising discount rates. (3)

[
  {"claim":"Q1a network value increase ~56.27%","code":"V=lambda n:n*(n-1); r=(V(2500)-V(2000))/V(2000)*100; result=abs(r-56.2656)<0.01"},
  {"claim":"Q1b marginal value equals 2kn","code":"from sympy import symbols,expand,simplify; n,k=symbols('n k'); dV=expand(k*(n+1)*n - k*n*(n-1)); result=simplify(dV-2*k*n)==0"},
  {"claim":"Q2a pre-cut bond price ~1012.49","code":"P=70/1.065+70/1.065**2+1070/1.065**3; result=abs(P-1012.49)<0.05"},
  {"claim":"Q2a exact change ~14.14","code":"P0=70/1.065+70/1.065**2+1070/1.065**3; P1=70/1.06+70/1.06**2+1070/1.06**3; result=abs((P1-P0)-14.14)<0.1"},
  {"claim":"Q2b equity % change ~7.69","code":"P0=12/0.07; P1=12/0.065; ch=(P1-P0)/P0*100; result=abs(ch-7.6923)<0.01"},
  {"claim":"Q3a Taylor rate t4 = 10.25","code":"i=2+6+0.5*(6-4)+0.5*2.5; result=abs(i-10.25)<1e-9"},
  {"claim":"Q3a Taylor rate t2 = 4.75","code":"i=2+3.5+0.5*(3.5-4)+0.5*(-1.0); result=abs(i-4.75)<1e-9"}
]