Overview
Visualise Compensating Variation (CV) and Equivalent Variation (EV) — the two welfare measures for a price change — on the indifference map.
Background (MWG Ch. 3.I)
Given a price change from $p_x^0$ to $p_x^1$ (holding $p_y$ and $I$ fixed):
$$\text{CV} = e(p_x^1, p_y, U^0) - e(p_x^0, p_y, U^0) = I - e(p_x^1, p_y, U^0)$$
$$\text{EV} = e(p_x^1, p_y, U^1) - e(p_x^0, p_y, U^1) = e(p_x^0, p_y, U^1) - I$$
where $U^0 = V(p_x^0, p_y, I)$ and $U^1 = V(p_x^1, p_y, I)$.
Interpretation:
-
$\text{CV}$: income the consumer would give up (price decrease) or must receive (price increase) to remain at $U^0$ after the price change.
-
$\text{EV}$: income change at old prices that yields the same welfare as the price change.
Proposed visualisation
- Draw the original budget line $B^0$ and the optimum $A$ on $U^0$.
- Draw the new budget line $B^1$ (after price change) and the new optimum $C$ on $U^1$.
- Draw a compensated budget line (slope of $B^1$, tangent to $U^0$) — the vertical gap between $B^0$ and this line at $x = 0$ is $\text{CV}$.
- Draw an equivalent budget line (slope of $B^0$, tangent to $U^1$) — the vertical gap is $\text{EV}$.
- Annotate the two income gaps on the $y$-axis as $\text{CV}$ and $\text{EV}$ brackets.
API sketch
canvas.plot_cv_ev(model, px0=2.0, px1=3.0, py=2.0, income=60.0)
# Returns a WelfareResult(CV=..., EV=..., delta_CS=...)
Relationship with consumer surplus
For small price changes, $\text{EV} \geq \Delta CS \geq \text{CV}$ (MWG Prop. 3.I.1). The method should optionally overlay $\Delta CS$ for comparison.
Tasks
Overview
Visualise Compensating Variation (CV) and Equivalent Variation (EV) — the two welfare measures for a price change — on the indifference map.
Background (MWG Ch. 3.I)
Given a price change from$p_x^0$ to $p_x^1$ (holding $p_y$ and $I$ fixed):
where$U^0 = V(p_x^0, p_y, I)$ and $U^1 = V(p_x^1, p_y, I)$ .
Interpretation:
Proposed visualisation
API sketch
Relationship with consumer surplus
For small price changes,$\text{EV} \geq \Delta CS \geq \text{CV}$ (MWG Prop. 3.I.1). The method should optionally overlay $\Delta CS$ for comparison.
Tasks
WelfareResultdataclass withCV,EV,delta_CSplot_cv_evmethod onCanvas