Skip to main content
Social Sci LibreTexts

4.1: Engel Curves

  • Page ID
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    The Theory of Consumer Behavior is built on an optimization problem: maximize utility subject to a budget constraint. It is written in equation form like this: \[\max\limits_{x_1,x_2}U(x_1,x_2) \\ \textrm{s.t. } p_1x_1 + p_2x_2 = m\]

    This problem can be solved analytically or with numerical methods and the solution can be displayed by a canonical graph, as in Figure 4.1. But it turns out that this is just a first step in how economists think.

    The material in this chapter gets to the heart of the economic approach: we explore how the optimal solution responds to a shock, a change in an exogenous variable, holding everything else constant. This is called comparative statics.

    The most important comparative statics exercise is based on changing a price, enabling us to derive a demand curve. We start, however, by shocking income and tracking the response. This produces an Engel curve. Starting here gives you a chance to absorb and master the logic of comparative statics before diving into the demand curve.

    Initial, Shock, New, Compare

    To do comparative statics analysis, we follow a four-step procedure.

    1. We find the initial solution.

    2. We change a single exogenous variable, called the shock, holding all other exogenous variables constant. Economists use a Latin phrase, ceteris paribus, as shorthand. This literally means with other things held equal and economists use the phrase to mean everything else held constant.

    3. We find the new optimal solution.

    4. Finally, we compare the new to the initial solution to see how the optimal solution responded to the shock.

    Comparative statics is the fundamental methodology of economics. It gives a framework for interpreting observed behavior. This framework has been given many names, including: the method of economics, the economic approach, the economic way of thinking, and economic reasoning.

    While comparative clearly points to the comparison between the new and initial solution, the meaning of statics (not be confused with statistics) is less obvious. It means that we are going to focus on positions of rest and not worry about the path of the solution as it moves from the initial to the new point.

    There are a few complications and additional issues to be aware of when doing comparative statics analysis. Analytical and numerical methods can be used, but they do not always exactly agree. In addition, we have several ways of comparing the new and initial solutions. A qualitative comparison focuses only on direction (up or down), while quantitative comparisons compute magnitudes of the change in response (either as a difference or a percentage change). Finally, we can display the comparative statics analysis in the canonical graph itself or a separate chart. These three issues will be demonstrated via example.

    Elasticity Basics

    Elasticity is a pure number (it has no units) that measures the sensitivity or responsiveness of one variable when another changes. Elasticity, responsiveness, and sensitivity are synonyms. An elasticity number expresses the impact one variable has on another. The closer the elasticity is to zero, the more insensitive or inelastic the relationship.

    Elasticity is often expressed as "the something elasticity of something," like the price elasticity of demand. The first something, the price, is always the exogenous variable; the second something, in this case demand (the amount purchased), is the response or optimal value being tracked.

    A less common, but perhaps easier, way is to say, “the elasticity of something with respect to something.” The elasticity of demand with respect to price clearly shows that demand depends on and responds to the price.

    Unlike the difference between the new and initial values, elasticity is computed as the ratio of percentage changes in the values. The endogenous or response variable always goes in the numerator and the exogenous or shock variable is always in the denominator.

    The percentage change, \(\frac{new - initial}{initial}\), is the change (or difference), \(new - initial\), divided by the initial value. This affects the units in the computation. The units in the numerator and denominator of the percentage change cancel and we are left with a percent as the units. If we compute the percentage change in apples from 2 to 3 apples, we get 50%. The change, however, is \(+1\) apple.

    If we divide one percentage change by another, the percents cancel and we get a unitless number. Thus, elasticity is a pure number with no units. So if the price elasticity of demand for apples is \(-1.2\), there are no apples, dollars, percents, or any other units. It’s just \(-1.2\).

    The lack of units in an elasticity measure means we can compare wildly different things. No matter the underlying units of the variables, we can put the dimensionless elasticity number on a common yardstick and interpret it.

    Figure 4.2 shows the possible values that an elasticity can take, along with the names we give particular values.

    Empirically, elasticities are usually low numbers around one (in absolute value). An elasticity of \(+2\) is extremely responsive or elastic. It means that a 1% increase in the exogenous variable generates a 2% increase in the endogenous variable.

    The sign of the elasticity indicates direction (a qualitative statement about the relationship between the two variables). Zero means that there is no relationshipi.e., that the exogenous variable does not influence the response variable at all. Thus, \(-2\) is extremely responsive like \(+2\), but the variables are inversely related so a 1% increase in the exogenous variable leads to a 2% decrease in the endogenous variable.

    One (both positive and negative) is an important marker on the elasticity number line because it tells you if the given percentage change in an exogenous variable results in a smaller percentage change (when the elasticity is less than one), an equal percentage change (elasticity equal to one), or greater percentage change (elasticity greater than one) in the endogenous variable.

    Elasticities are a confusing part of economics. Below are six common misconceptions and issues surrounding elasticity. Reading these typical mistakes will help you better understand this fundamental, but easily misinterpreted concept.

    1. Elasticity is about the relationship between two variables, not just the change in one variable. Thus, do not confuse a negative elasticity as meaning that the response variable must decrease. The negative means that the two variables move in opposite directions. So, if the age elasticity of time playing sports is negative, that means both that time playing sports falls as age increases and time playing sports rises as age decreases.

    2. Elasticity is a local phenomenon. The elasticity will usually change if we analyze a different initial value of the exogenous variable. Thus, any one measure of elasticity is a local or point value that applies only to the change in the exogenous variable under consideration from that starting point. You should not think of a price elasticity of demand of \(-0.6\) as applying to an entire demand curve. Instead, it is a statement about the movement in price from one value to another value close by, say $3.00/unit to $3.01/unit. The price elasticity of demand from $4.00/unit to $4.01/unit may be different. There are constant elasticity functions, where the elasticity is the same all along the function, but they are a special case.

    3. Elasticity can be calculated for different size changes. To compute the \(x\) elasticity of \(y\), we can go from one point to another, \(\frac{\%\Delta y}{\%\Delta x}\), or use the derivative’s infinitesimally small change at a point, \(\frac{dy}{dx}\frac{y}{x}\). These formulas will be explained below, but the point now is that economists are sloppy in their language and do not bother to distinguish elasticity calculated at a point via calculus (for an infinitesimal change) and elasticity calculated for a finite distance from one point to another. If the function is nonlinear, these two methods give different results. If an economist mentions a point elasticity, it is probably calculated via calculus as an infinitesimally small change.

    4. Elasticity always puts the response variable in the numerator. Do not confuse the numerator and denominator in the computation. In the x elasticity of y, x is the exogenous or shock variable and y is the endogenous or response variable. Students will often compute the reciprocal of the correct elasticity. Avoid this common mistake by always checking to make sure that the variable in the numerator responds or is driven by the variable in the denominator.

    5. You already know this, but remember that elasticity is unitless. The x elasticity of y of 0.2 is not 20%. It is 0.2. It means that a 1% increase in x leads to a 0.2% increase in y.

    6. Perhaps the single most important thing to remember about elasticity is: Do not confuse elasticity with slope. This may be the most common confusion of all and deserves careful consideration.

    Economists, unlike chemists or physicists, often gloss over the units of variables and results. If we carefully consider the units involved, we can ensure that the difference between the slope and elasticity is crystal clear.

    The slope is a quantitative measure in the units of the two variables being compared. If \(Q\mbox{*} = \frac{P}{2}\), then the slope, \(\frac{dQ\mbox{*}}{dP} = \frac{1}{2}\). This says that an increase in P of $1/unit will lead to an increase in \(Q\mbox{*}\) of \(\frac{1}{2}\) a unit. Thus, the slope would be measured in units squared per dollar (so that when multiplied by the price, we end up with just units of Q).

    Elasticity, on the other hand, is a quantitative measure based on percentage changes and is, therefore, unitless. The P elasticity of \(Q\mbox{*}\) = 1 says that a 1% increase in P leads to a 1% increase in \(Q\mbox{*}\). It does not say anything about the actual, numerical $/unit increase in P, but speaks of the percentage increase in P. Similarly, elasticity focuses on the percentage change in \(Q\mbox{*}\), not the change in terms of number of units.

    Thus, elasticity and slope are two different ways to measure the responsiveness of a variable as another variable changes. Elasticity uses percentage changes, \(\frac{\%\Delta y}{\%\Delta x}\), while the slope does not, \(\frac{\Delta y}{\Delta x}\). They are two different ways to measure the effect of a shock and mixing them up is a common mistake.

    Comparative Statics Analysis of Changing Income

    STEP Open the Excel workbook EngelCurves.xls, read the Intro sheet, and proceed to the OptimalChoice sheet.

    We have run Solver and the initial solution, \(x_1\mbox{*} \approx 25\) and \(x_2\mbox{*} \approx 16 \frac{2}{3}\), is displayed.

    Our first attempt at comparative statics analysis is straightforward: change income, ceteris paribus, and compute the response in \(x_1\mbox{*}\) and \(x_2\mbox{*}\).

    STEP Change cell B18 to 150 (this is the shock) and then run Solver to find the new optimal solution.

    The budget line shifts out and the consumer takes advantage by re-optimizing and moving to a new, highest attainable indifference curve.

    STEP Compare the initial and new values of \(x_1 \mbox{*}\) and \(x_2 \mbox{*}\) given the $50 increase in income.

    In qualitative terms, we would say that the increase in income has led to an increase in optimal consumption of the two goods.

    In quantitative terms, we can compute the response as the change in the own units of the two variables.

    The own units statement of comparative statics for \(x_1 \mbox{*}\) is \(\frac{\Delta x_1 \mbox{*}}{\Delta m}\).

    Income rose by $50 and optimal consumption of each good went up by 12.5 units. We compute \(\frac{37.5 - 25}{150 - 100}\) so we say that we get an increase of \(\frac{1}{4}\) unit for every $1 increase in income.

    Elasticity is another a way to present a quantitative comparative statics result. We use a formula that multiplies the slope by the initial values.

    Income elasticity of \(x_1 \mbox{*} = \frac{\Delta x_1 \mbox{*}}{\Delta m}\frac{m}{x_1 \mbox{*}} = [\frac{37.5 - 25}{150 -100}][\frac{100}{25}] = 1\). This elasticity is unit elastic. This means that a 1% change in income leads to a 1% change in the optimal purchase of good 1. We had a 50% increase to income and that produced a 50% increase in \(x_1 \mbox{*}\).

    The elasticity formula seems mysterious, but it is easily derived from the definition of the ratio of percentage changes. \[\frac{\% \Delta x_1 \mbox{*}}{\% \Delta m} = \frac{\frac{\Delta x_1 \mbox{*}}{x_1 \mbox{*}}}{\frac{\Delta m}{m}} = \frac{\Delta x_1 \mbox{*}}{x_1 \mbox{*}}\frac{m}{\Delta m} = \frac{\Delta x_1 \mbox{*}}{\Delta m}\frac{m}{x_1 \mbox{*}}\] The algebra above shows how slope and elasticity are connected. Multiplying the slope by an initial position is the same as computing a percentage change.

    While it is certainly possible to do comparative statics analysis by running Solver to find the initial solution, changing a parameter on the sheet, running Solver again to find the new solution, and then comparing the initial and new solutions, the tediousness of this manual approach is obvious.

    Fortunately, there is a better way. It involves using the Comparative Statics Wizard Excel add-in.

    STEP Click the Screen Shot 2021-07-09 at 09.18.59.png button to make sure you start from the initial parameter values.

    STEP Install the Comparative Statics Wizard add-in, Cswiz.xla, from the MicroExcel archive.

    Instructions and documentation are available in the CompStatics.doc file in the SolverCompStaticsWizard folder. You can see which add-ins are installed by accessing the Add-ins Manager dialog (In Excel 2019, File: Excel Options: Add-ins: Go).

    STEP Once the Comparative Statics Wizard add-in is installed, from the OptimalChoice sheet, click the Add-ins tab on the Ribbon, then click Wizard and Comp Statics (in earlier versions, execute Tools: Wizard: Comp Statics) to bring up the main dialog box of the CSWiz add-in, shown in Figure 4.3.

    STEP Click on the Screen Shot 2021-07-09 at 09.20.16.png button and answer the three questions posed.

    You are providing Excel with the information it needs to organize the results. Clearly, the goal is cell B7 so you will click on cell B7 when prompted by the first question. Excel enters the absolute reference to that cell ($B$7) in the dialog box and you click OK. Follow the same procedure for the next two questions. The endogenous variables are in cells B11:B12 and the exogenous variables are in cells B16:B20 so can click and drag to select those cells.

    Notice how the Comparative Statics Wizard add-in presumes that you have properly organized and set up the problem on the spreadsheet.

    STEP Once you have provided the goal, endogenous and exogenous variable cells, click the Screen Shot 2021-07-09 at 09.21.17.png button.

    Step 2 uses Excel’s Solver to find the initial solution. It temporarily hides the Comparative Statics Wizard and brings up Solver so you can use it to find the optimal solution.

    STEP At the Step 2 screen, click the Screen Shot 2021-07-09 at 09.22.03.png button to bring up the Solver dialog box. Click Solve to have Solver find the initial solution.

    Read the message in the box after you have run Solver. It explains what you have done so far.

    Having found the initial solution, we are ready to input the shock.

    STEP At the Step 3 screen, click the Screen Shot 2021-07-09 at 09.20.16.png button.

    As in the first screen, you are asked three questions. The first question asks for the shock variable itself. In this case, click on cell B18 (the income variable value, not the label). The second question is the amount of change. Enter 50. The third question is the number of shocks. The default value is 5. Accept this value by clicking the OK button.

    You have asked Excel to change income, holding the other variables constant, from 100 to 150 to 200 to 250 to 300 to 350—five jumps of 50 each from the 100 initial value.

    STEP After verifying that you have entered the shock information correctly, click the Screen Shot 2021-07-09 at 09.21.17.png button to continue.

    The Step 4 screen is the heart of the add-in. You have provided the goal, endogenous and exogenous variable information, Solver found the initial solution, and you have told Excel which variable to shock and how. Excel is ready to run the problem over and over again for each of the shock variable values you provided. It is essentially the manual approach, but Excel does all of the tedious work.

    STEP Click the Screen Shot 2021-07-09 at 09.25.31.png button. The bar displays Excel’s progress through the repeated optimization problems. It runs Solver at each value of income, but it is very fast.

    STEP Click the Screen Shot 2021-07-09 at 09.21.17.png button, read the information in the box, and click the Screen Shot 2021-07-09 at 09.24.56.png button.

    Excel takes you to a sheet it has inserted into the workbook with all of the comparative statics results. This sheet is similar to the CS1 sheet. Notice how the results are arranged. It begins with the initial parameter values (widen column A if needed), then displays a table with income in column A, followed by maximum utility and the optimal values of the two goods.

    The results produced by the Comparative Statics Wizard can be further processed as shown in the CS1 sheet.

    STEP Proceed to the CS1 sheet. Columns F and G contains slope and elasticity calculations. Click on the cells to see the formulas.

    Notice that you have to be careful with parentheses when doing percentage change calculations in Excel. Simply entering “= C14 – C13/C13” will not do what you want because Excel’s order of operations rule will divide C13 by C13 (which is 1) and subtract that from C14.

    Income Consumption and Engel Curves

    There are two graphs on the CS1 sheet. They appear to be the same, but they are not. One graph is an income consumption curve and the other is an Engel curve. They are related and understanding their connection is important.

    Ernst Engel (not to be confused with Karl Marx’s benefactor and friend, Friedrich Engels) was a 19th century German statistician who analyzed consumer expenditure data. He found that food purchases increased as income rose, but at a decreasing rate. This became known as Engel’s Law. A graph of quantity demanded for a good as a function of income, ceteris paribus, is called an Engel curve.

    The income consumption curve (ICC) shows the effect of the increase in income in the canonical indifference-curves-and-budget-constraint graph. In other words, the ICC shows the comparative statics analysis on the underlying, canonical graph. Panel A in Figure 4.4 shows the income consumption curve.

    Panel B shows that the Engel curve for \(x_1\) plots the relationship between income and optimal \(x_1\). This presentation graph shows only the optimal value of the endogenous variable (\(x_1\)) as a function of the shock variable (m) and hides everything else. There is an Engel curve graph for \(x_2\), but it is not displayed.

    STEP Use your comparative statics results to make Engel and income consumption curves. This will help you understand the relationship between the two curves.

    For the Engel curve, select data in m (in column A) and \(x_1\) (in column C). For the ICC, you need to select \(x_1\) and \(x_2\) (in columns C and D). After selecting the data, click the Insert tab in the Ribbon and choose the Scatter chart type in the Charts group.

    The slope of the Engel curve reveals if the good is normal or inferior. A normal good, as in Figure 4.4, has a positively sloped Engel curve: when income rises, so does optimal consumption. An inferior good has a negatively sloped Engel curve, increases in income lead to decreases in optimal consumption of the good. Figure 4.5 shows this case.

    Hamburger is the classic inferior good example. As income rises, the idea is that you eat less hamburger meat and more of better cuts of beef. The example also serves to point out that goods are not either normal or inferior due to some innate characteristic, but that the relationship is a local phenomenon. Figure 4.6 shows how a consumer might react across the full range of income. Do you understand the story this graph is telling?

    Figure 4.6 shows that hamburger is normal at low levels of income (with increasing consumption as income rises), but inferior at higher levels of income. Our Cobb-Douglas utility function cannot generate this complicated Engel curve.

    Analytical Comparative Statics Analysis of Changing Income

    We can derive the Engel curve for the problem in the EngelCurves.xls workbook via analytical methods.

    As usual, we rewrite the constraint and form the Lagrangean, then take derivatives, and solve the system of equations. The novelty this time is that we leave m as a letter so that our final answer is a function of income. This enables us to derive an Engel curve.

    1. Rewrite the constraint so that it is equal to zero.

    \(0 = m - 2x_1 - 3x_2\)

    2. Form the Lagrangean function.

    Math1Lag copy.png

    We take derivatives and set them equal to zero.

    Math2FOC copy.png

    To solve for the optimal values of \(x_1\) and \(x_2\), move the lambda terms in the top two equations to the right-hand side and divide the first equation by the second to eliminate lambda (and give the familiar MRS = \(\frac{p_1}{p_2}\) condition. Then solve for optimal \(x_2\) in terms of \(x_1\).

    Math3Solving copy.png

    Substitute this expression for \(x_2\) into the third first-order condition and solve for optimal \(x_1\).

    Math4x1Star copy.png

    We can evaluate this expression at any value for m. If we substitute in \(m = 100\), we get \(x_1 \mbox{*} = 25\) which is what we got when we solved this problem with an income of $100.

    Our reduced form expression for \(x_1 \mbox{*}\) agrees with the values in columns A and C of the CS1 sheet that we produced via the numerical approach using the Comparative Statics Wizard. The numerical method picks individual points off the Engel curve function that we derived here.

    There is also an Engel curve for \(x_2 \mbox{*}\). It is \(x_2 \mbox{*} = \frac{1}{6}m\).

    Of course, these Engel curves are for this particular consumer, with this particular utility function and set of exogenous variables. Different preferences will give different Engel curves.

    If we make the problem more general, in the sense of substituting letters for numbers in the Lagrangean, then these exogenous variables will appear in the reduced form expression. In other words, the one-quarter and one-sixth constants in the Engel curves will be changed into an expression with the exogenous variables. Evaluating that expression at the current values of the exogenous variables will give one-quarter and one-sixth.

    If you change an exogenous variable other than income, you will no longer move along the Engel curve. Instead, you will shift the entire Engel curve.

    To compute an own units response in \(x_1 \mbox{*}\) given a change in income, we can simply take the derivative with respect to m, which is simply \(\frac{1}{4}\). This means the slope of the reduced form is constant at any value of m.

    The elasticity at a given value of m can be computed via the following formula: \[\frac{dx_1 \mbox{*}}{dm}\frac{m}{x_1 \mbox{*}}\] Because it is calculated at a particular point, this is called point elasticity, as opposed to an elasticity measured from one point to another. Economists usually compute and report point elasticities, but they often omit the adjective and simply call the result an elasticity.

    Notice how the point elasticity formula is similar to the elasticity formula from one point to another, \(\frac{\Delta x_1 \mbox{*}}{\Delta m}\frac{m}{x_1 \mbox{*}}\). We have simply replaced the delta with a dthis shows that the two formulas are the same except for the size of the change in m. Instead of a discrete-size change, the point elasticity formula is based on an infinitesimally small change in m.

    At m = 100, the point income elasticity of \(x_1 \mbox{*} = (\frac{1}{4})(\frac{100}{25}) = 1.\) Good \(x_2\) also has a constant unit income elasticity. Rays from the origin always have constant unit elasticities.

    The utility function plays a crucial role in comparative statics outcomes. Cobb-Douglas utility functions always yield linear Engel curves with constant unit income elasticities. We do not believe that, in the real world, Engel curves are always linear and unit income elastic. While there are other utility functions with less restrictive results, they are more difficult to work with mathematically. Ease of algebraic manipulation helps explain the popularity of the Cobb-Douglas functional form.

    An Engel Curve is Comparative Statics Analysis

    This chapter introduced comparative statics analysis. It focused on tracking the optimal solution as income changes. This is called an Engel curve.

    Comparative statics analysis, including elasticities, can be done via numerical and analytical methods. The Comparative Statics Wizard handles much of the tedious work in the numerical approach.

    We can compute an elasticity in two ways: at a point and from one point to another. The former uses the derivative and latter is based on a discrete-size change in the exogenous variable. A point elasticity is one based on the derivative. Both elasticities are based on percentage changes, but the derivative uses infinitesimally small changes in the exogenous variable.

    We will often compare the two methods. In this case, the two methods agreed perfectly. This will not always be true.


    1. Change the price of good 1 from 2 to 3 in the OptimalChoice sheet of the EngelCurves.xls workbook. From \(m = 100\), use the Comparative Statics Wizard to create a graph of the Engel curve for good 1. Title the graph and label the axes. Take a picture of your graph and paste it in your Word document.

    2. Why is the slope of your graph different than the one in the CS1 sheet?

    3. Compute the income elasticity of demand for good 1 from \(m = 100\) to 200. Show your work.

    4. Compute the income elasticity of demand for good 1 at \(m = 100\). Show your work.

    5. Why are your answers in question 3 and 4 the same?


    The epigraph is from H. S. Houthakker, "Engel’s Law," in J.Eatwell, M.Milgate and P.Newman (eds.) The New Palgrave Dictionary of Economics, (London: McMillan, 1987), pp. 143-144.

    The Palgrave is much more than a simple dictionary. It is a reference resource with articles on specific terms or phrases. The 2008 version of the Palgrave Dictionary is edited by Stephen N. Durlauf and Lawrence E. Blume. It is available online at

    This page titled 4.1: Engel Curves is shared under a CC BY-SA license and was authored, remixed, and/or curated by Humberto Barreto.

    • Was this article helpful?