$TITLE Equilibrium Unemployment in a Dynamic GE 

$ONTEXT
This program appears in Appendix B of:

E.J. Balistreri (2002) "Operationalizing equilibrium 
unemployment: a general equilibrium external economies 
approach," Journal of Economics Dynamics and Control
23/3: 347-374.

Edward J. Balistreri
Research Division
U.S. International Trade Commission
ebalistreri@usitc.gov
$OFFTEXT

*----------------Original Social Accounts-------------------*
Parameter
	y0	Benchmark Gross Output,
	ks0	Benchmark Capital Payments,
	ls0	Benchmark Labor Payments,
	i0	Benchmark Savings,
	c0	Benchmark Consumption;

y0 = 200; ks0 = 50; ls0	= 150; i0 = 35; c0 = 165;

*--------------Setup the Dynamic Calibration----------------*
Set	T		Time Periods	/2000*2030/
	Tfirst(T)	First Period	/2000/
	Tlast(T)	Terminal Period /2030/;

Alias (T,TT,TTT);

Scalars
	r	Steady state rate of return
	g	Growth Rate		/0.02/,
	d	Depreciation Rate	/0.07/;

Parameter
	k0	Benchmark Capital Stock,
	rk0	Benchmark Return on a Unit of K
	pk0	Benchmark Price of a Unit of K
	qref(T) Growth Path for Quantities
	pref(T) Present Value Price Paths;

* 1) Solve for the value of the initial Capital Stock:
* Investment must cover growth and depreciation.
* i0 = k0*(1+g) - k0*(1+d)	solve for k0
k0	= i0/(g+d);

* 2) Solve for the return to a unit of Capital
rk0	= ks0/k0;

* 3) Solve for the interest rate 
r	= (rk0 - d)/(1 + rk0 - d);

* 4) Find the price of a unit of Benchmark Capital
pk0	= 1/(1-r);

* 5) Set the steady-state Reference Paths
qref(t)	=	(1+g)**(ord(t)-1);
pref(t) =	(1-r)**(ord(t)-1);

Display k0,rk0,r,pk0,qref,pref;

*---------------Setup Equilibrium Unemployment--------------*

Parameter 
	lvs	Leisures Value Share,
	sig	Exponent on LS in externality,	
	eta	Exponent on U in externality,
	u0	Benchmark Unemployment Rate,
	trn	Labor Turnover Rate,
	lsrv(T)	Labor Survival Share,
	nvl(T)	New Vintage Labor Supply,
	lsrv0	Initial Survival Portion,
	wref	Benchmark reservation wage
	s0	Benchmark leisure;

sig = 0.4; eta = 0.2; u0 = 0.10; lvs = 0.3; trn = 0.1;

lsrv0	= (1-(u0+trn));

lsrv(T)	= lsrv0*((1 - trn)**(ord(T)-1));
nvl(T)	= (ls0*(((1/(1-lvs))-u0)*qref(T)
		/(1-u0)-lsrv(T)));
wref	= 1/(1-u0);
s0	= (ls0*(lvs/(1-lvs)));

Display lsrv;

*----------------------Tax Experiments----------------------*
Parameters
	kit(T)	Capital Input Tax,
	prt(T)	Payroll TAX; 
	kit(T)=0; prt(T)=0;

*------------------------MCP Model--------------------------*

Positive Variables
	W		Welfare Index
	Y(T)		Production Index
	I(T)		Investment Index
	K(T)		Capital stock
	C(T)		Consumption Index including leisure

	PW		Intertemporal price index 
	PY(T)		Price index on output
	PC(T)		Price index on consumption
	RK(T)		Present Value Return to capital
	WAGE(T)		Present Value Wage Received
	PL(T)		Present Value Return to labor
	PK(T)		Price index on Capital
	PKT		Price of Terminal Capital

	RA		Income for Representative agent
	TCAP		Terminal Capital Demand
	E(T)		Employment Index
	U(T)		Unemployment Rate
	NVE(T)		New Vintage employment
	WF(T)		Work Force
	CONS(T)		Consumption Index;

Equations
	PRF_Y(T)	Zero Profit for Production
	PRF_I(T)	Zero Profit for Investment
	PRF_K(T)	Capital stock evolution
	PRF_C(T)	Transitory Expenditure function
	PRF_LS(T)	Zero Profit for Labor Supply
	EXPND		Expenditure function

	MKT_PY(T)	output market
	MKT_PC(T)	consumption market
	MKT_RK(T)	rental return market
	MKT_PL(T)	Generic labor market
	MKT_WAGE(T)	Employed labor market
	MKT_PK(T)	Capital market
	MKT_PKT		Terminal Capital market

	BC_RA		Budget Constraint
	INC_EXH		Income exhaustion
	TERM_TCAP	Terminal Capital Constraint
	DEF_E(T)	Employment Index
	DEF_U(T)	Unemployment Rate
	DEF_WF(T)	Work Force
	DEF_CONS(T)	Consumption definition;
	

PRF_Y(T)..
	 ((WAGE(T)/wref)*(1+prt(T)))**(1-ks0/y0)
	*( RK(T)*        (1+kit(T)))**(  ks0/y0) 
	=g= PY(T);

PRF_I(T)..
	PY(T) =g= PK(T+1)+PKT$Tlast(T);

PRF_K(T)..
	PK(T)=g= PKT$Tlast(T)	*(1-d)
		+PK(T+1)	*(1-d)
		+RK(T)		*ks0/k0;

PRF_C(T)..
	 ((( c0/(c0+s0))*PY(T)**(1-0.5)
	 +(1-c0/(c0+s0))*PL(T)**(1-0.5)
	 )**(1/(1-0.5))) 
	 =g= PC(T);

PRF_LS(T)..
	PL(T) =g= WAGE(T)*
	(1-u0)*((NVE(T)/((1-u0)*qref(T)-lsrv(T)))**(sig)
	      * (U(T)  /    u0                  )**(eta));

EXPND..
	(SUM(T,
	       (( (c0+s0)*qref(T )*pref(T ))
	/(SUM(TT, (c0+s0)*qref(TT)*pref(TT)))
	)*(PC(T)/pref(T))**(1-0.5)))**(1/(1-0.5))

	=g= PW;
	
MKT_PY(T)..
	y0*Y(T) 
	=g= 
	I(T)*i0 +
	C(T)*c0*(
	((( c0/(c0+s0))*PY(T)**(1-0.5)
	+(1-c0/(c0+s0))*PL(T)**(1-0.5)
	)**(1/(1-0.5)))/PY(T))**0.5
	;

MKT_PC(T)..
	C(T)*(c0+s0)
	=g=
	W*((c0+s0)*qref(T))*
	((SUM(TT ,(((c0+s0)*qref(TT )*pref(TT ))
	/(SUM(TTT,  (c0+s0)*qref(TTT)*pref(TTT)))
	)*(PC(TT)/pref(TT))**(1-0.5)))**(1/(1-0.5))
	*pref(T)/PC(T))**0.5;

MKT_WAGE(T)..

	ls0*(NVE(T)+lsrv(T))
	=g= 
	ls0*(1-u0)*Y(T)*
	((RK(T)*  (1+kit(T)))**(  ks0/y0)
	*((WAGE(T)/wref)*(1+prt(T)))**(1-ks0/y0))
	/((WAGE(T)/wref)*(1+prt(T)));

MKT_PL(T)..

	ls0*(qref(T)-lsrv(T)) + s0*qref(T)
	=g= 
	ls0*NVE(T)+
	U(T)*ls0*WF(T)+
	C(T)*s0*(
	((( c0/(c0+s0))*PY(T)**(1-0.5)
	+(1-c0/(c0+s0))*PL(T)**(1-0.5)
	)**(1/(1-0.5)))/PL(T))**0.5;

MKT_RK(T)..
	K(T)*ks0 
	=g= 
	ks0*Y(T)*
	((RK(T)*(1+kit(T)))**(ks0/y0)
		*((WAGE(T)/wref)*(1+prt(T)))**(1-ks0/y0))
	/(RK(T)*(1+kit(T)));

MKT_PK(T)..
	K(T-1)*(1-d)*k0 + 
	I(T-1)*i0 + k0$Tfirst(T) 
	=g= 
	K(T)*k0;

MKT_PKT..
	SUM(Tlast,K(Tlast)*k0*(1-d)+I(Tlast)*i0) =g= TCAP;		

TERM_TCAP..
	SUM(T$Tlast(T+1),C(T)*I(T+1) - I(T)*C(T+1)) =e= 0;

DEF_E(T)..
	E(T) =e= (NVE(T)+lsrv(T));

DEF_U(T)..
	U(T) =e= 1-E(T)/WF(T);

DEF_WF(T)..
	WF(T) =e=
	(NVE(T)/
	(1+((
	((1-u0)*((NVE(T)/((1-u0)*QREF(T)-LSRV(T)))**(SIG)
	      * ( U(T)  /    u0                  )**(ETA)))
	     -1
	     )*
	     (QREF(T)/(qref(T)-lsrv(T)))))
	)
	+lsrv(T);

DEF_CONS(T)..
	CONS(T) 
	=e= 
	C(T)*(
	((( c0/(c0+s0))*PY(T)**(1-0.5)
	+(1-c0/(c0+s0))*PL(T)**(1-0.5)
	)**(1/(1-0.5)))/PY(T))**0.5
	;

BC_RA..
	RA=e=

*Value of initial capital stock
	+SUM(Tfirst,PK(Tfirst)*k0)
	+SUM(T,

*Payments to New Vintage Labor
	PL(T)*ls0*(qref(T)-lsrv(T)+
		   qref(T)*(lvs/(1-lvs)))+

*Rents on locked in workers
	WAGE(T)*ls0*lsrv(T)*(1-(WF(T)-lsrv(T))
				/(qref(T)-lsrv(T)))+
	PL(T)*  ls0*lsrv(T)*(  (WF(T)-lsrv(T))
				/(qref(T)-lsrv(T)))+

*Tax Revenues
	prt(T)*WAGE(T)*
	((1-u0)*ls0*Y(T)*
	((RK(T)*  (1+kit(T)))**(  ks0/y0)
	*((WAGE(T)/wref)*(1+prt(T)))**(1-ks0/y0))
	/((WAGE(T)/wref)*(1+prt(T))))
	+
	kit(T)*RK(T)*(ks0*Y(T)*
	((RK(T)*(1+kit(T)))**(ks0/y0)
		*((WAGE(T)/wref)*(1+prt(T)))**(1-ks0/y0))
	/(RK(T)*(1+kit(T))))
	)
*Less payment to terminal capital
	-PKT*TCAP;

INC_EXH..
	PW*W*(SUM(T,(c0+s0)*qref(T)*pref(T)))
	=e= RA;

*--------------------Model Declaration----------------------*
Model DYNMCP /	
	PRF_Y.Y,PRF_I.I,PRF_C.C,PRF_K.K,PRF_LS.NVE,EXPND.W,
	MKT_PY.PY,MKT_PK.PK,MKT_PC.PC,MKT_RK.RK,MKT_WAGE.WAGE,
	MKT_PL.PL,MKT_PKT.PKT,TERM_TCAP.TCAP,BC_RA.RA,
	INC_EXH.PW,DEF_U.U,DEF_E.E,DEF_WF.WF,DEF_CONS.CONS/;

*---Set Steady State Level Values and Replicate Benchmark---*

*	Activities grow at Q-ref
Y.L(T)=qref(T);I.L(T)=qref(T);K.L(T)=qref(T);C.L(T)=qref(T);

*	Prices decline at P-ref
PY.L(T)=pref(T);PC.L(T)  =pref(T);RK.L(T)=pref(T);
PL.L(T)=pref(T);WAGE.L(T)=pref(T)/(1-u0);PK.L(T)=pref(T)*pk0;

*	Terminal levels
PKT.L= (1-R)*sum(Tlast, PK.L(Tlast));
TCAP.L = sum(Tlast, i0*qref(Tlast)+k0*(1-d)*qref(Tlast));

*	Benchmark equilibrium unemployment
E.l(T)=(1-u0)*qref(T);U.L(T)=u0;WF.l(T)=qref(T);
NVE.l(T)=(1-u0)*qref(T)-lsrv(T);CONS.l(T)=qref(T);

*	Income
RA.l=	 SUM(Tfirst,pref(Tfirst)*pk0*k0)
	-PKT.l*TCAP.l
	+SUM(T,pref(T)*qref(T)*ls0*(1+(lvs/(1-lvs))));

*	Initial welfare and price indexes are one
PW.l=1;W.l=1;

DYNMCP.ITERLIM = 0;
SOLVE DYNMCP USING MCP;