Three-Period Life Cycle Problem

Problem Statement

Joey, a recent college graduate, has just started his first job and is trying to be smart in managing his finances for the next several years. Given his wages and some basic knowledge about the state of the economy, Joey would like to calculate how much he can spend each year (consume) on rent, groceries, entertainment, and leisure. Joey first considers a plan for the next three years.

Joey recalls studying in college an economic model called the life cycle model. The life cycle theory of consumption was developed in the 1950s by Franco Modigliani and his student, Richard Brumberg ([1]). The main premise of the theory is that people make consumption decisions with the goal of maintaining a stable level of income over their lifetime. The implication is that individuals save for retirement by building up income during their working years to spend during their retirement.

To solve his own three-period life cycle problem, Joey needs the following information:

  1. period: length of time in each segment. In the example, Joey’s period is one year but it could be one day, one month, or any other specified economic period.
  2. wages: income received in each period. The model assume that income in each period is known and does not change within the period.
  3. utility function: utility refers to the perceived value of a good. A utility function assigns a number to indicate the value associated with a good or service. For example, if Joey consumes 3 slices of pizza, he perceives 5 units of happiness. However, he likely experiences less utility (happiness) with each additional slice. A common utility function is \(log(x)\), in which the value increases rapidly from 0 but levels off as \(x\) increases.
  4. interest rate: rate at which interest is paid by borrowers for the use of money that they borrow from a lender. In this model, the interest rate is expressed as a number between 0 and 1.
  5. discount factor: measure of how people value time. The discount factor is a measure of how much less something is worth if it is received in the future. In this model, the discount rate is expressed as a number between 0 and 1.

Then, the objective of the three-period life cycle problem is to determine how much Joey can consume in each period so as to maximize his utility subject to the lifetime budget constraint. The lifetime budget constraint is the key assumption in the life cycle model; the assumption is that consumption over the life cycle depends entirely on the present value of the lifetime income.

Mathematical Formulation

We present a mathematical formulation of the three-period life cycle model.

P = set of periods = {1, 2, 3}

\(w_p\) = wage income in period \(p\), \(\forall p \in P\)
\(r\) = interest rate
\(\beta\) = discount factor

Decision Variables
\(c_p\) = consumption in period \(p\), \(\forall p \in P\)

Objective Function
Let \(u()\) be the utility function and let \(u(c_p)\) be the utility value associated with consuming \(c_p\). Utility in future periods is discounted by a factor of \(\beta\). Then, the objective function is to maximize the total discounted utility:

maximize \(u(c_1) + \beta u(c_2) + \beta^{2} u(c_3)\)

The main constraint in the life cycle model is the lifetime budget constraint, which asserts that, over the life cycle, the present value of consumption equals the present value of wage income. From above, \(r\) is the interest rate; therefore, \(R = 1 + r\) is the gross interest rate. If I invest one dollar in this period, then I receive \(R\) dollars in the next period. The expression for the present value of the consumption stream over the life cycle is

\[c_1 + \frac{c_2}{R} + \frac{c_3}{R^{2}}.\]

Similarly, the expression for the present value of the wage income stream over the life cycle is
\[w_1 + \frac{w_2}{R} + \frac{w_3}{R^{2}}.\]

The lifetime budget constraint states that the present value of the two streams must be equal:
\[c_1 + \frac{c_2}{R} + \frac{c_3}{R^{2}} = w_1 + \frac{w_2}{R} + \frac{w_3}{R^{2}}.\]

To avoid numerical difficulties, we add constraints requiring the consumption variables to take a non-negative value:
\(c_1 \geq 0.0001, c_2 \geq 0.0001, c_3 \geq 0.0001\)

Providing an initial starting point is helpful for some solvers; as an example, one possible starting point for this example is
\(c_1 \approx 1, c_2 \approx 1, c_3 \approx 1\)

To solve the three-period life cycle consumption problem, we need to specify a utility function and the values of the parameters. The solution specifies the amount that Joey should consume in each period to maximize his utility. Note that, in the next case study, the Life Cycle Consumption Problem, we generalize the model from three periods to \(n\) periods.


  • Enter a discount factor and an interest rate.
  • Select a utility function.
  • Enter an income path. For example, the default income path \((w_1 = 2; w_2 = 3; w_3 = 0)\) corresponds to a life
    cycle with wage income increasing from period 1 to period 2 and then decreasing to 0 in retirement.
  • Click “Submit” to solve the problem using the NEOS Server.
  • Wait for the results to show up in the solution section at the bottom. The solution section will display the
    objective value and the optimal amount to consume in each period.

: If we run the applet with the exponential utility function and the default values, we obtain a solution with consumption values \(c_1 = 1.71\), \(c_2 = 1.79\), and \(c_3 = 1.87\). If we select the logarithmic utility function instead, we obtain a solution with consumption values \(c_1 = 1.66\), \(c_2 = 1.79\), and \(c_3 = 1.93\).

Input Parameters

Discount Factor
Interest Rate
Utility Function
Wage Income Period 1 
Period 2 
Period 3 



Objective Value
Consumption Period 1 
Period 2 
Period 3 

GAMS Model

$Title Three-period Life Cycle problem
Set  p   period   /1*3/ ;
Scalar B discount factor /0.9/;
Scalar i interest rate /0.2/ ;  
Scalar R gross interest rate ;
R = 1+i ;
$macro u(c) -exp(-c) 
Parameter w(p) wage income in period p
          / 1  2
            2  3
            3  0 / ;
Parameter lbnds(p) lower bounds of consumption
          / 1*3 0.0001 / ;
Parameter initvals(p) initial value guess of consumption
          / 1*3 1 / ; 
Positive Variables 
                   c(p) consumption expenditure in period p ,
                   PVc present value of consumption expenditures ,
                   PVw present value of wage income ; 
Variable Z objective ;
          defPVc definition of PVc ,
          defPVw definition of PVw ,
          budget lifetime budget constraint ,
          obj objective function ; 
defPVc ..
        PVc =e= sum(p, c(p) / power(R, p.val - 1)) ;
defPVw ..
        PVw =e= sum(p, w(p) / power(R, p.val - 1)) ;
budget ..
        PVc =e= PVw ;
obj ..
        Z =e= sum(p, u(c(p))*power(B, p.val - 1)) ;
model NumericalExample /defPVc, defPVw, budget, obj/ ;
c.lo(p) = lbnds(p) ;
c.l(p) = initvals(p) ;
solve NumericalExample using nlp maximizing Z ;


  1. Modigliani, F. and R. Brumberg. 1954. “Utility Analysis and the Consumption Function.” In K. Kurihara, ed., Post-Keynesian Economics. New Brunswick: Rutgers University Press.