Life Cycle Consumption Problem

Problem Statement

The life cycle consumption problem is a generalization of the three-period life cycle problem in that the number of periods can vary from 1 to \(n\). Since the number of periods is variable in the general life cycle problem, the model takes as input a wage function instead of a set of discrete values. The wage function returns the wage for the current period \(p\) as a function of the total number of periods \(n\). The objective of the life cycle consumption problem is to determine how much one can consume in each period so as to maximize utility subject to the lifetime budget constraint.

Mathematical Formulation

The formulation for the general life cycle problem generalizes the formulation of the three-period life cycle problem from three periods to \(n\) periods.

P = set of periods = \({1..n}\)

\(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 \(c_p\) be consumption in period \(p\), where “life” begins at \(p=1\) and continues to \(p=n\). 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 \(\sum_{p \in P} \beta^{p-1 }u(c_p)\)

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 1 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

\[\sum_{p \in P} \frac{c_p}{R^{p-1}}.\]

Similarly, the expression for the present value of the wage income stream over the lifecycle is
\[\sum_{p \in P} \frac{w_p}{R^{p-1}}.\]

The lifetime budget constraint states that the present value of the consumption stream must equal (or be less than) the present value of the wage income stream:
\[\sum_{p \in P} \frac{c_p}{R^{p-1}} \leq \sum_{p \in P} \frac{w_p}{R^{p-1}}.\]

To avoid numerical difficulties, we add constraints requiring the consumption variables to take a non-negative value:
\(c_p \geq 0.0001, \forall p \in P\)

To solve the three-period life cycle consumption problem, we need to specify a utility function and the values of the parameters. As in the case of the three-period life cycle problem, the solution of the general life cycle consumption problem specifies the amount that Joey should consume in each period to maximize his utility.


  • Enter a planning horizon (max=10), a discount factor, and an interest rate.
  • Select a utility function.
  • 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.

Input Parameters

Planning Horizon (T)
Discount Factor
Interest Rate
Utility Function
Wage Function w(p,T)



Objective Value
Consumption Period 1 
Period 2 
Period 3 
Period 4 
Period 5 
Period 6 
Period 7 
Period 8 
Period 9 
Period 10 

GAMS Model

$Title Life Cycle Consumption

Set   p   period   /1*10/ ;

Scalar B discount factor /0.96/;

Scalar i interest rate /0.10/ ;

Scalar R gross interest rate ;

R = 1+i ;

$macro u(c) (-exp(-c)) 

Parameter w(p) wage income in period p ;

w(p) = ((10 - p.val)*p.val) / 10 ; 

Parameter lbnds(p) lower bounds of consumption
         / 1*10 0.0001 / ;

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 =l= PVw ;

obj ..
        Z =e= sum(p, power(B, p.val - 1)*u(c(p))) ;

Model LifeCycleConsumption /defPVc, defPVw, budget, obj/ ;

c.lo(p) = lbnds(p) ;

Solve LifeCycleConsumption using nlp maximizing Z ;