Why would a government decide to impose price controls? Because of political pressure by either buyers that want a lower price (e.g. rent control in New York City) or sellers that want a higher price (e.g. minimum wage).
there are two kinds of price controls:
We can measure the well-being of consumer and producer by computing their surplus.
The consumer curplus (CS) is the difference between their willigness to pay and the price they actually paid.
The producer surplus (PS) is the profit producers make. That is, it is the price minus the cost of production.
A price ceiling causes inefficiency (gains from trade not realized) in the following ways:
## Call libraries
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#Start the graph
fig1, ax = plt.subplots()
q = np.arange(0.,11, .5)
ps= 0 + q
pd = 10 -q
ax.plot(q,ps,q,pd)
plt.ylabel('price')
plt.xlabel('quantity')
price_ceiling = 2
plt.axhline(y= price_ceiling, hold=None)
plt.text(1, 6, r'CS')
plt.text(.5, 1, r'PS')
plt.text(3, 5, r'DWL =(')
plt.text(4, 2.5, r'price ceiling')
#plt.text(30, 62, r'#supply')
conds = ps<=price_ceiling
ax.fill_between(q, price_ceiling, ps, where=conds)
ax.fill_between(q, pd, price_ceiling, where=conds)
ax.set_ylim(0, 11)
(0, 11)
A price floor causes inefficiency (gains from trade not realized) in the following ways:
So, why are there price controls? The basic answert is that some people benefit from these policies and they are powerful and vocal enough to convince governments to undertake them.
#Start the graph
fig2, ax2 = plt.subplots()
ax2.plot(q,ps,q,pd)
plt.ylabel('price')
plt.xlabel('quantity')
price_floor = 7
plt.axhline(y= price_floor, hold=None)
plt.text(1, 8, r'CS')
plt.text(1, 4, r'PS')
plt.text(3, 5, r'DWL =(')
plt.text(4, price_floor, r'price floor')
#plt.text(30, 62, r'#supply')
conds = pd>=price_floor
ax2.fill_between(q, price_floor, ps, where=conds)
ax2.fill_between(q, pd, price_floor, where=conds)
ax2.set_ylim(0, 11)
(0, 11)
#Start the graph
fig3, ax3 = plt.subplots()
ax3.plot(q,ps,q,pd)
plt.ylabel('price')
plt.xlabel('quantity')
quota = 4
plt.axvline(x= quota, hold=None)
plt.text(4, 5, r'DWL')
plt.text(4, 8, r'quota')
conds = np.logical_and(q>=quota, pd>=ps)
#plt.text(30, 62, r'#supply')
ax3.fill_between(q, pd, ps, where=conds)
ax3.set_ylim(0, 11)
(0, 11)
from IPython.core.display import HTML
def css_styling():
styles = open("custom.css", "r").read()
return HTML(styles)
css_styling()