Social Accounting Matrix (SAM)

From Wiki
(Redirected from Social Accounting Matric (SAM))

This is the approved revision of this page, as well as being the most recent.
Jump to: navigation, search

See (Hughes and Hossain, 2003)[1] for a more thorough explanation of the Social Accouting Matrix as implemented in the IFs model.

A SAM integrates a multi-sector input-output representation of an economy with the broader system of national accounts, also critically representing flows of funds among societal agents/institutions and the balance of payments with the outside world. Richard Stone is the acknowledged father of social accounting matrices, which emerged from his participation in setting up the first systems of national accounts or SNA (see Pesaran and Harcourt 1999[2] on Stone’s work and Stone 1986[3]). Many others have pushed the concepts and use of SAMs forward, including Pyatt (Pyatt and Round 1985[4]) and Thorbecke (2001)[5]. So, too, have many who have extended the use of SAMs into new frontiers. One such frontier is the additional representation of environmental inputs and outputs and the creation of what are coming to be known as social and environmental accounting matrices or SEAMs (see Pan 2000)[6]. Another very productive extension is into the connection between SAMs and technological systems of a society (see Khan 1998[7]; Duchin 1999[8]). It is fitting that the 1993 revision of the System of National Accounts by the United Nations began explicitly to move the SNA into the world of SAMs.


SAM Overview

The SAM of IFs is integrated with a dynamic general equilibrium-seeking model. The structural representation is a variant and to some degree an extension of the computable general equilibrium formulations that often surround SAMs. In wrapping SAMs into CGEs, Stone was a pioneer, leading the Cambridge Growth Project with Alan Brown. That project placed SAMs into a broader modeling framework so that the effects of changes in assumptions and coefficients could be analyzed, the predecessor to the development and use of computable general equilibrium (CGE) models by the World Bank and others. Some of the Stone work continued with the evolution of the Cambridge Growth Model of the British economy (Barker and Peterson, 1987)[9]. Kehoe (1996)[10] reviewed the emergence of applied general equilibrium (GE) models and their transformation from tools used to solve for equilibrium under changing assumptions at a single point in time to tools used for more dynamic analysis of societies.

The approach of IFs is both within these developing traditions and an extension of them on five fronts. The first extension is in universality of the SAM representation. Most SAMS are for a single country or a small number of countries or regions within them (e.g.. see Bussolo, Chemingui, and O’Connor 2002[11] for a multi-regional Indian SAM within a CGE). The IFs project has created a procedure for constructing relatively highly aggregated SAMs from available data for all of the countries it represents, relying upon estimated relationships to fill sometimes extensive holes in the available data. Jansen and Vos (1997: 400-416)[12] refer to such aggregated systems as using a "Macroeconomic social Accounting Framework." Each SAM has an identical structure and they can therefore be easily compared or even aggregated (for regions of the world).

The second extension is the connecting of the universal set of SAMs through representation of the global financial system. Most SAMs treat the rest of the world as a residual category, unconnected to anything else. Because IFs contains SAMs for all countries, it is important that the rest-of –the-world categories are mutually consistent. Thus exports and imports, foreign direct investment inflows and outflows, government borrowing and lending, and many other inter-country flows must be balanced and consistent.

The third extension is a representation of stocks as well as flows. Both domestically and internationally, many flows are related to stocks. For instance, foreign direct investment inflows augment or reduce stocks of existing investment. Representing these stocks is very important from the point of view of understanding long-term dynamics of the system because those stocks, like stocks of government debt, portfolio investment, IMF credits, World Bank loans, reserve holdings, and domestic capital stock invested in various sectors, generate flows that affect the future. Specifically, the stocks of assets and liabilities will help drive the behavior of agent classes in shaping the flow matrix.

The IFs stock framework has been developed with the asset-liability concept of standard accounting method. The stock framework is also an extension of the social accounting flow matrix, and the cumulative flows over time among the agents will determine the stocks of assets or liabilities for all agents. If the inflow demands repayment or return at some point in future, it is considered as liability for that agent and an asset for the agent from which the flow came. For example, in IFs, if a government receives loans (inflow) from other countries, the stock of those loans is a liability for the recipient government and an asset for the country or countries providing the loans.

The fourth extension is temporal and builds on the third. The SAM structure described here has been embedded within a long-term global model. The economic module of IFs has many of the characteristics of a typical CGE, but the representation of stocks and related agent-class driven behavior in a consciously long-term structure introduces a quite different approach to dynamics. Instead of elasticities or multipliers on various terms in the SAM, IFs seeks to build agent-class behavior that often is algorithmic rather than automatic. To clarify this distinction with an example, instead of representing a fixed set of coefficients that determine how an infusion of additional resources to a government would be spent, IFs increasingly attempts partially to endogenize such coefficients, linking them to such longer-term dynamics as those around levels of government debt. Similarly, the World Bank as an actor or agent could base decisions about lending on a wide range of factors including subscriptions by donor states to the Bank, development level of recipients, governance capacity of recipients, existing outstanding loans, debt-to-export ratios, etc. Much of this kind of representation is in very basic form at this level of development, but the foundation is in place.

The fifth and final extension has already been discussed. In addition to the SAM, The IFs forecasting system also includes a number of other models relevant to the analysis of longer-term forecasts. For example demographic, education, health, agriculture, and energy models all provide inputs to the economic model and SAM, as well as responding to behavior within it. The effort is to provide a dynamic base for forecasts can be made well into the 21st century. It is important to quickly emphasize that such forecasts are not predictions. Instead they are scenarios to be used for thinking about possible alternative longer-term futures.[13]

Finding data for all counties in IFs to initialize the financial flows of the social accounting matrices with the pre-processor (Hughes and Hossain 2003)[14] is not just challenging, but impossible. IFs draws on data from a variety of sources, including the World Bank’s World Development Indicators, the OECD, and the Global Trade and Analysis Project. The IMF’s Government Finance Statistics (GFS are at provides a number of important series including the ability to begin differentiating central and local government revenues and expenditures, important in IFs as we increasingly represent states, provinces or other jurisdictions within countries. At this writing, most analysis is done at the general government level (central plus local) and local variables are rather preliminary and the distinction is primarily made using data from the IMF’s GFS.

The pre-processor reads total government revenue from the SeriesGovtCalcRevTot%GDP table of the IFsHistSeries.mdb data file and reads central government revenue from SeriesGovtCalcRevCen%GDP. It computes the local portion as the residual. Whenever values are missing in tables for these variables or others in the pre-processor, holes are filled for countries with values generally estimated from a cross-sectional relationship with GDP per capita at PPP.

Various revenue streams for general government are initialized in the preprocessor with data from the World Development Indicators or the IMF’s GFS. These include taxes from firms (SeriesTaxCorp%Tot) from the IMF, social security and welfare taxes (TaxSocSec%CurRev) from WDI, and indirect taxes (TaxGoodServ%CurRev) from the WDI and originally the IMF GFS. Because many countries do not have direct taxes on households and data are poor, they are set as residual for revenue generation

Similarly, the pre-processor reads total government expenditures from SeriesGovtCalcExpendTot%GDP and central expenditures from SeriesGovtCalcExpendCen%GDP. When both expenditure values exist in the data, local is again the residual. If total expenditures do not exist, then local is computed based on some data about the growth of local revenues and expenditures in North, Walli and Weingast (2009: 10)[15]:

$ GOVEXPLOCAL_{r,t=1}=2.0+12.0*Amin(\frac{GDPPCP_{r,t=1}}{20},20) $

In this case, total expenditures are initialized as the sum of central and local.

Expenditures break down into direct government consumption (GOVCON) in categories of military, health, education, infrastructure, R&D, and other and into government to household transfers (GOVHHTRN). Data for the various categories come primarily from WDI sources and GOVCON is set as the larger of the sum from the categories and a direct specification of it in the WDI data (SeriesGovCon%GDP). The health and education expenditures are assigned to GOVCONLOCAL, but GOVCON itself remains general government (central plus local). The pre-processor assures that GOVEXP is at least 1 percent more of GDP than is GOVCON, to make some headroom for government transfers.

Data on government transfers are again not very strong. We identify social security/welfare payments (GOVSSWEL) and pension payments (GOVHHPenT) as the two categories, based on WDI data in SeriesGovSSWelBen%Exp and SeriesGovtPension%GDP, respectively.

A Note on Forecasting Central and Local Government Performance

The process described above initializes four local government finance variables for a country as a whole, namely

GOVREVLOCAL (local government revenues)
GOVEXPLOCAL (local government expenditures)
GOVCONLOCAL (local government direct consumption)
GDSLOCAL for categories health and education (local government consumption by type)

In addition three variables have been added as placeholders that would add complexity and possible utility to representation of government finance at the sub-national level:

GOVREVCENFRLOCAL (government revenue at the central level from the local—transfers)
GOVREVLOCALFRCEN (government revenue at the local level from the central—transfers)
GOVREVLOCALTAX (government revenue raised through local taxes)

Possible Futures Steps in Forecasting Central/Local Government Finance

At this point no dynamics have been added to the model for the four initialized variables, so they are displayed as constant across time. It would be easy to add dynamics that made them constant shares of GOVREV, GOVEXP, GOVCON, and GDS, respectively. It would take very considerably more work to make truly dynamic the central and local shares. There are two very different circumstances for such representations:

1. In integrated local representation without regionalization of countries. Steps of complexity: (a) local shares could be raised or lowered with functional forms or exogenous multipliers, with no forward linkages in model version with no specific representation of sub-units, having no real model impact; (b) passing through local changes to total revenues or expenditures as straight increases or decreases; for instance, if total expenditures were pushed up by an exogenous increase in local expenditures, it could have broad impacts on revenues as well as on the targets of those expenditures. But it is not clear that (b) would add much model value because exogenous changes to total revenues and expenditures are already possible.

2. In regionalized (states, provinces, districts) local representation. Using South Africa as an example, this is heavily complicated by the fact that the model cannot now represent both central government (e.g. national level government in Pretoria) and local government finance (e.g. in Western Cape), much less the interaction of the two and the possible implications for other provinces. The total government numbers being brought into the model for all SA provinces represent values related to provincial-level initialization.

A first step might be (a) to provide initialization data for as many as possible of the 7 variables for SA provinces and make sure the preprocessor uses these when available instead of estimates; (b) to initialize total government for all SA provinces as mirrors of SA national government, making all provincial total variables essentially identical shares of the national total percentage rates. The two steps are complicated, but reasonably limited.

A second and considerably larger step might be (c) to allow manipulation of provincial local expenditures with pass through to total (actually the provincial shares of the total) as indicated in point 1 above.

A much bigger step would be (d) to think about trade-offs and interactions across expenditures and revenues within and across local and total levels. It would then be possible, for example, to push up a specific consumption expenditure (say that on education) and boost educational performance and downstream impacts of that within one region, representing the trade-offs with (i) other expenditures in that region (this can already be done, but not always with meaningful provincial financial numbers) (ii) offsetting revenue increases at the local level (assuming there is any local sourcing of revenue); (iii) transfers from the regional total representation to or from the local; (iv) some combination since there would be many possible ones. In general, representing trade-offs outside of the specific region would be especially messy.

Given the lack of meaningful forecasting of local government finance variables at this time, the discussion on the forecasting of government finance will discuss only total government variables. 

Government Revenue

The model represents five revenue streams from taxes on incomes on household incomes before taxes and transfers (HHIncBTT) and firm income before taxes and transfers (FirmIncBTT), which are the labor and capital shares of value added, respectively. Those streams are: household income taxes (HHTAX), household social security/welfare taxes (HHGOVSS), firm income taxes (FIRMTAX), firm social security/welfare taxes (FIRMGOVSS), and indirect taxes (INDIRECTTAX). We have no database to distinguish social security/welfare taxes assessed on households and firms. In each revenue equation there are exogenous multipliers that the user can manipulate to simulate changes in revenue streams ( hhtaxrm , etc.) and total government revenues ( govrevm ). In addition there is a multiplier on revenues (MulRev) whose calculation we can see in the discussion of balancing of revenues and expenditures, and whose application lags one year behind the calculation. Some governments also have net domestic revenues from state-owned enterprises, but the model does not represent this stream (which is, in any case, often actually negative).

$ HHTAX_{r,h}=HHIncBTT_{r,h}*\frac{HHTAXR_{r,h}}{100}*\mathbf{hhtaxrm_r*govrevm_r}*MulRev_{r,t-1} $


$ HHGOVSS_{r,h}=HHIncBTT_{r,h}*\frac{SSWELTAXR_r}{100}*\mathbf{ssweltaxrm_r*govrevm_r}*MulRev_{r,t-1} $


$ FIRMTAX_r=FirmIncBTT_r*\frac{FIRMTAXR_r}{100}*\mathbf{firmtaxrm_r}*MulRev_{r,t-1} $


$ FIRMGOVSS_r=FirmIncBTT_r*\frac{SSWELTAXR_r}{100}*\mathbf{ssweltaxrm_r*govrevm_r}*MulRev_{r,t-1} $


$ INDIRECTTAX_r=FirmIncBTT_r*\frac{INDIRECTTAX_r}{100}*\mathbf{indirecttaxrm}_r*MulRev_{r,t-1} $

Total domestic government revenues, before consideration of external revenues in the form of foreign aid (GovRevBA) is computed from the five streams, after summing the social security or welfare taxes across households and firms (SSWELTAX).


It is useful also to compute the overall tax rate as an output indicator.

$ TAXRA_r=GovRevBA_r/GDP_r $

For aid recipients only, the amount of government receipts adjusts government revenues.

if AIDr >0 then

$ GOVREV_r=GovRevBA_r+AID_r $

There are no dynamics yet in place for local government expenditures (GOVREVLOCAL). The model now has placeholder variables for net revenue transfers to local governments from central ones (GOVREVLOCALFRCEN) and the direct imposition of taxes at the local level (GOVREVLOCALTAX), but they are now set at 0.0 because they are not yet supported by data in the model and no computations drive or use them.

Government Expenditure

In years beyond the base year the total of government expenditures is calculated from the sum of direct consumption and transfers. The two components, however, each require a moderately complex calculation. There are no dynamics yet in place within IFs for local government expenditures (GOVEXPLOCAL).


Government Consumptions

Computation of government consumption (direct expenditures on the military, education, health, R&D, foreign aid, and other categories) begins with use of a function to compute estimated government consumption (EstGovtConsum) as a portion of GDP, using GDP per capita (PPP) as the driver. The function supports a behavioral assumption of generally increasing expenditures with increases in GDP per capita (although the rate of increase is very slow).

$ EstGovtConsum_r=AnalFunc(GDPPCP_r) $

The estimated value then enters a convergence calculation that IFs uses in a number of instances. In the first year a ratio term (GovConR) was computed that represented the degree to which a country’s consumption/GDP differed from the estimated value. That ratio multiplies the estimated term in future years, allowing the function normally to increase consumption/GDP as GDP per capita rises. At the same time, such divergence from estimated functions is almost as often a matter of data inadequacy or of temporary factors for a country as it is of persistent idiosyncrasy. The convergence function allows the country/region’s value to converge towards the functional calculation over a period of time ( govfinconv ), usually quite long. Such convergence also helps avoid ceiling effects (e.g. government consumption as 100% of GDP) as GDP per capita rises.

The second term in the equation below is called the Wagner term, after the discoverer of the long-term behavioral tendency for government consumption to rise as a share of GDP, even at stable levels of GDP per capita. This is built into the consumption calculation through an exogenous parameter (wagnerc) that is multiplied by the number of the forecast year (at the time of this writing the coefficient’s value was 0). The result of the convergence process and the multiplicative terms is divided by 100 and multiplied by a GDPBase term. The GDP base term could just be GDP. But relative price adjustments in countries can greatly affect government consumption—for instance, rising and falling relative oil prices can sharply affect government revenues and expenditures in oil-rich countries like those of the Gulf. Hence we arbitrarily add half of the difference between the GDP relative price adjusted value (GDPRPA) and the GDP to the base from which we compute GOVCON.

$ GOVCON_r= $$ (Converge(EstGovtConsum_r*GovConR_{r,t=1},EstGovtConsum_r,\mathbf{govfinconv})* $

$ WagnerTerm*\mathbf{govexpm_r}*MulExp_{r,t-1})/100*GDPBase_r+WBFlowTerm_r+AidFlowTerm_r $


$ GovConR_{r,t=1}=\frac{GOVCON_{r,t=1}}{(\frac{EstGovtConsum_{r,t=1}}{100}*GDP_{r,t=1})} $


$ WagnerTerm=1+t*\mathbf{wagnerc} $


$ GDPBase_r=GDP+(GDPRPA_r-GDP_r)*0.5 $


$ WBFlowTerm_r=(XWBFLOWS_{r,ft=1,t}+XWBFLOWS_{r,ft=2,t})-(XWBFLOWS_{r,ft=1,t=1}+XWBFLOWS_{r,ft=2,t=1}) $


$ AidFlowTerm_r=(AID_r/GDP_r)-(AID_{r,t=1}/GDP{r,t=1})*GDP_r*GovConPortion_r $

Almost finally, government consumption is further modified by an exogenous multiplier of government expenditures ( govexpm ), allowing the user to directly control it by country/region and by an endogenously computed multiplier on expenditures (MulExp) that, parallel to MulRev, reflects the balance or imbalance in government expenditures and the debt level (see the discussion of equilibration of revenues and expenditures for detail on its computation).

Finally, there are adjustments to reflect the possible impact of financial flows from international financial institutions (IFIs) such as the World Bank or International Monetary Fund (called XWBFLOWS independent of the source) and from foreign aid (AID). The IFI term represents the absolute difference between those flows in the current and initial years. The targets of those IFI flows are set exogenously via a parameter ( xwbsectar ) that is dimensioned by target of flow (ft), namely education, health, unskilled households, skilled households, and other. Funds for the first two targets go to government consumption and funds for the household targets go to transfer payments. Extensive documentation of the stocks and flows associated with IFI funds and the user control of them is provided elsewhere. The aid flow term takes into account the difference between current and initial net receipts, allocating a portion of this to government consumption (the rest will go to household transfers). The government consumption portion is proportional to the share of government consumption in the sum of government consumption and household transfers.

As an alternative to the structure described above, the project has experimented with the computation of GOVCON not from a single function, but as the sum of estimates of its various destination components such as military and education (the GDS vector discussed below), with each of those estimates computed as a function of GDP per capita). That is rather more complex than necessary; and the model’s currently quite rapid drop of infrastructure spending as a portion of GDP in the transition of low-income countries to middle-income ones tends to bring down or hold down the ratio of GOVCON to GDP more than historical data suggest occurs with development.

The division of government expenditures into target destination categories (GDS), part of the broader socio-political module of IFs is described later. That division is, of course, also a key agent-class behavior. With respect to sector of origin for government consumption (GS), which is information needed for the equilibration mechanism in the core commodities module, IFs simplistically assumes in the pre-processor (because of an absence of data or even qualitative information) that all government spending except arms, which has its source in manufactures, comes from services. On a year-to-year basis, the sectors of origin remained fixed at the initial proportions.

$ GS_{r,s,t}=GOVCON_{r,t}*\frac{GS_{r,s,t=1}}{GOVCON_{r,t=1}} $

Government to Household Transfers

Government transfers, as distinguished from direct consumption expenditures, are computed using two different behavioral logics, a top-down one like the one for government consumption, and a bottom-up logic. The bottom-up logic is especially important in the analysis of pensions, because it is responsive to the changing size of the elderly population.

The top-down logic again uses an aggregate function responsive to changes in GDP per capita to calculate an estimated value of transfers as a portion of total government expenditures (EstGovtHHTrn).

$ EstGovtHHTrn_r=AnalFunc(GDPPCP_r) $

The estimated value for the portion of total expenditures that household transfers constitute, adjusted by an initial shift term to accommodate initial data (GovHHTrnR), converges over time to the estimated value without the shift term. As with government consumption there is a Wagner term to represent possible growth with time, an exogenous multiplier for scenario analysis ( govexpm ) and an endogenously computed multiplier term to adjust government revenues and expenditures to each other (MulExp). That adjusted value is multiplied by an expected value for total government expenditures based on that in the preceding year, because the current value is not yet available.

$ GovHHTrnTop_r=(Converge(EstGovtHHTrn_r*GovHHTrnR_{r,t=1},EstGovtHHTrn_r,\mathbf{govfinconv})* $$ WagnerTerm*\mathbf{govexpm_r}*MulExp_{r,t-1})/100*EGovExp_r+AidFlowTerm_r $


$ WagnerTerm=1+t*\mathbf{wagnerc} $


$ GovHHTmR_{r,t=1}=\frac{GovHHTRN_{r,t=1}}{(\frac{EstGovtHHTRN_{r,t=1}}{100}*GOVEXP_{r,t=1})} $


$ EGovExp_r=GOVEXP_{r,t-1}*(1+GDPGR_{r,t=1}) $


$ AidFlowTerm_r=(AID_r/GDP_r)-(AID_{r,t=1}/GDP_{r,t=1})*GDP_r*GovTranPortion_r $

Finally, there are adjustments to reflect the possible impact of financial flows from foreign aid (AID). The aid flow term takes into account the difference between current and initial net receipts, allocating a portion of this to government consumption (the rest goes to household transfers. The government transfer portion is proportional to the share of household transfers in the sum of government consumption and household transfers.

The bottom-up logic involves computing two terms, one for pensions and one for soi8cal welfare, in preparation for summing them. The pension term, like the top-down logic, also computes an initial estimate of pension expenditures (GovtPensions) as a portion of GDP using a function estimated cross-sectionally with GDP per capita at PPP. Not shown is an algorithm that ramps up that portion from 2 percent to 8 percent as GDP per capita at PPP climes from 0 to $8,000, over-riding the bottom portion of the analytical function below.

$ EstGovtHHTrnPen_r=AnalFunc(GDPPCP_{r,t}) $

An initial estimate of government spending on pensions (GovtPensions) is calculated by multiplying this estimate, adjusted for the shift between estimate and actual value in the first year, by an adjustment portion by a potential relative price adjusted GDP (GDPPOTRPA).

$ GovtPensions_r=EstGovHHTrnPen_r*GovHHTrnPenR_{r,t=1}*GDPPOTRPA_r $


$ GovHHTrnPenR_{r,t=1}=\frac{GovtHHPEN_{r,t=1}}{(\frac{EstGovtHHPEN_{r,t=1}}{100}*GDP_{r,t=1})} $

Consistent with the bottom-up logic, that initial calculation is compared with a calculation that is built up from an estimate of the financial needs/demands of retired population. That second estimate looks at the size of the retired population, and multiplies that by per capita pension benefits in the first year, adjusted for the increase in GDP per capita. Given changing and often decreasing retirement ages, the retired population is a sum of those over age 65 and a term called RetirementPopAdj, which is computed to take into account an exogenous retirement age ( labretagem ). The larger of the analytically determined initial estimate and the retirement-population based numbers indicates the total pressure in the system for public pensions.

$ GovHHTrnPenBottom_r=AMAX(GovtPensions_r, $$ (PopGT65_r+RetirementPopAdj_r)*GovHHPenPC_{r,t=1}*\frac{GDPRPAPC_{R,T}}{GDPRPAPC_{r,t=1}}MulExp_{r,t-1} $


$ RetirementPopAdj_r=POPWORKING_r*(1-\mathbf{labretagem_r}) $

A further algorithmic check is made of the above calculation to limit per-person pension requirements as the size of the retired population grows from below 20 percent of the total population (in which case the limit is the average per capita GDP) to 40 percent or more of the total (in which case the limit is 70 percent of the average per capita GDP).

The bottom-up calculation of welfare transfers is parallel to that for pensions.

$ GovHHTrnWelBottom_r=Pop_r*GovHHWelPC_{r,t=1}*\frac{GDPPC_{r,t}}{GDPPC_{r,t=1}}MulExp_{r,t-1} $

The total bottom-up transfer calculation is the sum of that for pension and welfare transfers.

$ GovHHTrnTotalBottom_r=GovHHTrnPenBottom_r+GovHHTrnWelBorrom_r $

The larger of the two numbers indicates the total pressure in the system for transfers to households.

$ GOVHHTRN_r=AMAX(GovHHTrnTop_r,GovHHTrnTotalBottom_r) $

Given these total transfers, there are further steps required to finalize the division into pension and welfare transfers and to divide each of those into transfers to skilled and unskilled households. The first step is an interim division of the total into pension and welfare categories using the bottom-up calculations.

$ GovHHPenTot_r=GOVHHTRN_r*\frac{GovHHTrnPenBottom_r}{GovHHPenTot_r} $


$ GovHHWelTot_r=GOVHHTRN_r-GovHHPenTot_r $

The split to unskilled and skilled households is proportional to the share of their respective income in total household income and can be further affected by exogenous transfer parameters. The pension amounts are further adjusted by a pension multiplier (MulPen) that reflects the ratio of retirement needs (HHRETIRENEED) to life cycle consumption of those who are retired (CRETIRE) and helps equilibrate those two. The welfare amounts are further adjusted if net flows from international financial institutions (XWBFLOWS) have changed from initial conditions; those are added to the welfare transfers; welfare transfers are bounded to be below 20 percent of GDP.

$ GOVHHTTRNPEN_{r,h}=GOvHHPenTot_r*\frac{HHINC_{r,h}}{\Sigma^HHHINC_{r,h}}*\mathbf{govhhtrnpenm_{r,h}}*MulPen_r $
$ GOVHHTTRNWEL_{r,h}=GOvHHwelTot_r*\frac{HHINNC_{r,h}}{\Sigma^HHHINC_{r,h}}*\mathbf{govhhtrnwelm}_{r,h}+(XWBFLOWS_{r,ft=3 or 4,t}-XWBFLOWS_{r,ft=3 or 4,t=1}) $


$ MulPen_r=MulPen_{r,t-1}*(\frac{HHRETIRENEED_{r,t-1}}{CRETIRE_{r,t-1}})^{0.1} $

Finally, total government to household transfers are recalculated as the sum of the pension and welfare transfers to the unskilled and skilled households.


Government Consumption by Destination

Government expenditures in IFs fall into two categories: direct consumption (GOVCON) and transfers (GOVHHTRN). The direct expenditures fall the following categories: military, health, education, research and development, infrastructure (the core types elaborated in the infrastructure model), other infrastructure (all non-specified infrastructure types), and other (including administrative and implicitly foreign aid of donor countries). IFs divides total government consumption (GOVCON) into these destination sectors (GDS) in a process described below. The user can change that default pattern of government spending over time with a multiplier parameter ( gdsm ). The model normalizes the allocation to assure that the money spent is no more or less than total government consumption.

There are several issues that complicate the calculation of GDS, while simultaneously assuring that the sum of it across all categories equals GOVCON. These issues are:

  1. In the cases of education, health, and infrastructure (core types), IFs contains models that produce calculations of expenditure needs or demands. Attempts to satisfy these demands in whole or part require adjustments in GDS for other spending categories.
  2. In the cases of health, infrastructure and R&D categories, the model represents private as well as public spending (it should eventually also do this for education, but does not at this time). These private expenditures need tracking also and can, as in health, affect the ability of the government to meet total bottom-up health cost demands.
  3. In the case of military spending, the model uses an action-reaction formulation that links spending of some countries to that of others (see the documentation of international politics). This is the reason that IFs code for GDS calculation was initially placed into and sits in the international political model (it should be moved to a separate function at some point).
  4. In the case of education and health, financial flows into or out of countries from international financial institutions (IFIs) such as the World Bank need to adjust the values of GDS.

Preliminary GDS Calculations (Top Down Except for Infrastructure)

The first stage in the computation of government spending by category (GDS) is the computation of a ratio of government spending in each category to GDP (Gk). In the sequencing of the code, in both first and subsequent years the first steps of that stage are the use of cross-sectionally estimated analytical functions that compute expected military, education, health and other infrastructure expenditures as a percent of GDP as a function of GDP per capita at PPP (GkComp). A similar analytical function is used to compute total (public and private) R&D expenditures. In the first year there are actually data on such expenditures, so a country-specific "shift" vector is computed (GkRI) that saves the ratios of the actual values to those computed in the functions. In the subsequent years, the values in that shift vector converge to 1 over 200 years, meaning that the pattern generated by the expected values from the functions very gradually take over from the pattern in the initial conditions. In the first year the other category is available as a residual (the preprocessor keeps it from going to zero or negative) and the ratio of that value to GDP (Gk) is maintained as the expected value over time. Note that there is no function or process to compute an expected value for infrastructure spending as a portion of GDP per capita; the data for infrastructure led model developers to conclude that it was better to use only bottom-up information on infrastructure costs and expenditures. So in general:

$ GK_{r,g,t}=(Converge(GkRI_{r,g,t=1},1,200)*GkComp_{r,g,t} $


$ GkComp_{r,g,t}=AnalFunc(GDPPCP_{r,t}) :<math>GkRI_{r,g,t=1}=\frac{GDS_{r,g,t=1}/GDP_{r,t=1}}{GkComp_{r,g,t=1}} $

After the initial calculation of the ratio of government spending to GDP in each category, a number of adjustments are made that vary by expenditure category in order to get an initial estimate of actual expenditures (GDS). First, for military spending the estimate use the Gk variable, but modifies it by both an exogenous multiplier ( gdsm ) and a multiplier for it (GkMul) computed in the action-reaction process around military spending (described in documentation of the international political model).

$ GDS_{r,g=mil}=GDP_r*Gk_{r,g=mil}*\mathbf{gdsm}_{r,g=mil}*GkMul_r $

For health, R&D, and other, the equation is a variant in which funds coming from international financial institutions (GDSWB) are added to the basic calculation; in reality, such funds affect GDS only for education and health and at this point they are added only for health (nothing augments R&D and Other).

$ GDS_{r,g=health,R\&D,other}=GDP_r*Gk_{r,g=health,R\&D,other}*\mathbf{gdsm}_{r,g=health,R\&D,other}+GDSWB_{r,g=health,R\&D,other} $

For education the equation is the same, except for the exogenous multiplier. That multiplier is used only later in the process, when the initial GDS estimate is being reconciled with the bottom-up cost calculation from the education model.

$ GDS_{r,g=educ}=GDP_r*Gk_{r,g=educ}+GDSWB_{r,g=educ} $

The process is slightly more complicated for R&D because there are both private and public expenditures to account for. The code first computes a ratio of the expected share of public expenditures within GDP in the current year relative to the first year, a term that will be used as a multiplier in the next step (RandDMul).

$ RandDMul_{r,t}=\frac{AnalFunc(GDPPCP_{r,t})}{AnalFunc(GDPPCP_{r,t=1})} $

That term is used to adjust the initial ratio of public R&D expenditures as a portion of GDP (RandDI) in order to compute the current time step's value, which is allowed to converge, but at minimal speed (1000 years) to the estimated value for the current time step:

$ Gk_{r,g=R\&D,t}=Converge(RandDGDP_{r,t},AnalFunc(GDPPCP_{r,t}),1000) $


$ RandDGDP_{r,t}=GDS_{r,g=R\&D,t=1}/GDP_{r,t=1}*100*RandDMul_{r,t} $

Finally, this allows the computation of the initial estimate of GDS for R&D:

$ GDS_{r,g=R\&D}=GDP_r*Gk_{r,g=R\&D}/100*\mathbf{gdsm}_{r,g=R\&D} $

At this point, then, initial estimates of GDS are available for all government spending categories except core infrastructure, other infrastructure, and education.

For the two infrastructure terms the process depends on value of a parameter that turns on government finance for them ( infrafinon ) and the default value is for it to be on (=1). In that case, for other infrastructure the process is essentially the same as for the military or health spending, except that there are no exogenous multipliers or other terms affecting the basic calculation. That basic calculation is:

$ GDS_{r,g=InfraOther}=GDP_r*Gk_{r,g=InfraOther} $


$ Gk_{r,g=InfraOther,t}=(Converge(GkRI_{r,g=InfraOther,t=1},1,200)*GkComp_{r,g=InfraOther,t} $
$ GkComp_{r,g=InfraOther,t}=AnalFunc(GDPPCP_{r,t}) $
$ GkRI_{r,g=InfraOther,t=1}=\frac{GDS_{r,g=InfraOther,t=1}/GDP_{r,t=1}}{GkComp_{r,g=InfraOther,t=1}} $

For core infrastructure, when the infrafinon parameter has its default value, the value of GDS comes completely from a function (CalcInfraBudgetDemand) that adds up the public portions of the new construction and maintenance costs for various types of infrastructure for the current year as already calculated in the infrastructure model. For reasons said above, infrastructure GDS calculation, unlike other GDS categories, do not use any reference to either initial values of infrastructure spending or any expected value relative to GDP per capita at PPP. It is the only preliminary GDS value that is not calculated using a top-down logic.

$ GDS_{r,g=Infra}=CalcInfraBudgetDemand_r $


$ CalcInfraBudgetDemand_r=\Sigma_{infct}infrainvnewpubshrm_{r,infct}*INFRAINVESTNEW_{r,infct}+ $$ \Sigma_{infct}infrainvmaintpubshrm_{r,infct}*INFRAINVESTMAINT_{r,infct} $

In the equations above, infct stands for the index number of various infrastructure types included in the IFs model, for example, road, electricity, water connections etc.; INFRAINVESTNEW and INFRAINVESTMAINT are total costs of new construction and maintenance respectively and infrainvnewpubshrm and infrainvmaintpubshem are shares of the costs borne by the government.

Bottom-Up Cost Calculation

The equation just above used a bottom-up cost calculation from the infrastructure model to compute an initial estimate of GDS for core infrastructure. In the case of both education and health, the models also provide a bottom-up cost calculation foundation and we turn to that next before proceeding to reconciliation of the Top-Down and Bottom-Up values.

We begin with education. The basic logic of that cost calculation is that in the first year of the forecast a ratio (EdCostGDSEdRI) is calculated of the public expenditures on education (GDS from data and the preprocessor) and a variable from the education model representing bottom-up costs (EdTotCost). A modeling decision was made to make this ratio converge to 1.1 over time.

$ EdCostGDSEdRI_{r,t}=1.1+Converge(GDS_{r,g=educ,t=1}/EDTOTCOST_{r,t=1}-1.1,0,70) $

The bottom-up educational expenditure demand (DemandCalc) used in the budget reconciliation process below is calculated as the bottom-up calculation in the preceding year times this ratio. In addition, a small adjustment is made to the bottom-up calculation from the previous year in order to make it grow somewhat over time; the initial growth rate is set equal to the initial growth rate of GDP ( igdpgr ) and allowed to converge to 0 over time

$ DemandCalc_r=EDTOTCOST_{r,t-1}*EdCostGDSEdRI_{r,t}*(1+EcGrTerm_r) $


$ EcGrTerm_r=Converge(\mathbf{igdpgr}_{r,t=1},0,50) $

This would be logical place to discuss bottom up health cost wrap around from previous year - at this point I would simply wrap it with a moving average growth term, not using anything like the 1.1 stuff above which I don't understand. Health might logically precede education given their sequence in the GDS matrix

Reconciling Top-Down Expenditure Availability With Bottom-Up Cost Calculation

At this point the initial values of GDS have been calculated and the bottom-up cost calculations for health, education, and infrastructure have been identified. But the preliminary GDS values will almost certainly not sum to GOVCON, which is what the model has determined is available. Nor will the bottom-up (EDTOTCOST and HLCOST) and top-down estimates for costs of and expenditures on health and education be equivalent. The two reconciliation issues are interactive and must be addressed to some degree simultaneously.

For education the first step in the reconciliation process (focusing on the bottom-up and top-down aspects) is a recalculation of GDS for education that determines a refined value taking into account both the bottom-up demand calculation (DemandCalc) and the earlier preliminary top-down version of GDS. The parameter for budget balancing ( edbudgon ), with a default value of 0.4 and constrained to be between 0 and 1, provides a weighted average of the two input terms.

$ GDS_{r,g=educ}=DemandCalc_r*\mathbf{edbudgon}+GDS_{r,g=educ}*(1-\mathbf{edbudgon}) $

Because the model computes the value of total (public and private) research and development expenditures (RANDDEXP) and the normalization process will change the public portion of that, the value of RANDDEXP is temporary changed to remove the public expenditures. After GDS for R&D is recalculated below, the revised version of GDS for R&D will be added back into the total.

$ RANDDEXP_r=RANDDEXP_r-GDS_{r,g=R\&D}/GDP_r*100 $

The next step in the process is to normalize the sum of all GDS terms across categories to GOVCON. This process has the potential, however, of setting GDS values for health, education, and infrastructure that are very different from the bottom-up costs. Thus the normalization process includes a mechanism for avoiding that. It protects some or all of the bottom-up calculations during the normalization.

The mechanism for protecting some or all of the bottom-up calculations involves "set asides". The extent of set asides for education, core infrastructure and other infrastructure is determined by parameters ( budbal and infrabudsdrat ) that take on values between 0 and 1; values of 0 protect none of the bottom-up value and values of 1 protect it all. The default value of infrabudsdrat is 0.

$ GDSEdSetAside_r=GDS_{r,g=educ}*\mathbf{edbudgon} $
$ GDSInfraSetAside_r=GDS_{r,g=infra}*\mathbf{infrabudsdrat} $
$ GDSInfraOtherSetAside_r=GDS_{r,g=infraother}*\mathbf{infrabudsdrat} $

There is another step before the normalization process begins, namely adjusting GDS for education, core infrastructure, and other infrastructure by an exogenous multiplier ( gdsm ), the default value for which is 1.0.

$ GDS_{r,g=educ,infra,otherinfra}=GDS_{r,g=educ,infra,otherinfra}*\mathbf{gdsm}_{r,g=educ,infra,otherinfra} $

The sum of all GDS values (GTOT) can now be compared with GOVCON. If there are more than enough funds to provide all of the GDS requested (that is, GOVCON exceeds GTOT), the final calculation of GDS simply assigns proportional shares of the surplus to each GDS category.

$ GDS_{r,g}=GDS_{r,g}*\frac{GOVCON_r}{GTOT_r} $

If there is a shortage of funds to meet all demand (that is, GTOT exceeds GOVCON), it would be possible to proportionately reduce each GDS accordingly. But the set aside values allow protection of some or all of the GDS values for education, infrastructure and other infrastructure. In the normalization process when there is a shortage of funds, each potentially or actually protected GDS is reduced by the set aside, as are both GTOT and GOVCON (using a GOVCONRed or GOVCON reduced). Then the normalization of all GDS occurs and the protected or set aside values are added back in.

$ GDS_{r,g=educ}=GDS_{r,g=educ}-GDSEdSetAside_r $


$ GDS_{r,g=infra}*=GDS_{r,g=infra}*-GDSInfraSetAside_r $


$ GDS_{r,g=infraother}=GDS_{r,g=infraother}-GDSInfraOtherSetAside_r $


$ GTOT_r=GTOT_r-GDSEdSetAside_r-GDSInfraSetAside_r-GDSInfraOtherSetAside_r $


$ GOVCONRed_r=GOVCON_r-GDSEdSetAside_r-GDSInfraSetAside_r-GDSInfraOtherSetAside_r $


$ GDS_{r,g}=GDS_{r,g}*\frac{GTOT_r}{GOVCONRed_r} $


$ GDS_{r,g=educ}=GDS_{r,g=educ}+GDSEdSetAside_r $


$ GDS_{r,g=infra}*=GDS_{r,g=infra}*+GDSInfraSetAside_r $


$ GDS_{r,g=infraother}=GDS_{r,g=infraother}+GDSInfraOtherSetAside_r $

At this point it is possible to add the public R&D expenditures back into the variable RANDEXP from which they had earlier been removed (leaving that variable temporarily to hold only private expenditures).

$ RANDDEXP_r=RANDDEXP_r+GDS_{r,g=R\&D}/GDP_r*100 $

There are a number of forward linkages from GDS that are important elsewhere in the model. The most important of these are linkages to multifactor productivity from human capital. Those are discussed elsewhere in this documentation. Here we note only two such forward linkages, both of which are set up in the same section of code as the computation of GDS.

The first is of a mortality multiplier (MORTMG) that is computed for the demographic model, using changes in health spending from the initial year and a parameter of the impact of that spending ( elashc ). This multiplier is now not typically used in the IFs system because the calculation of mortality that it feeds in the population model has been replaced in the default model mode by the entire health model.

$ MORTMG_r=1-(\frac{GDS_{r,g=health}}{GDP_r}-\frac{GDS_{r,g=health,t=1}}{GDP_{r,t=1}})*\mathbf{elashc} $

The second forward linkage at this point is in the calculation of a saved value of health expenditures as a portion of GDP to be used in the calculation of water and sanitation in the infrastructure model. In the formulation below, if the exogenous multiplier gdsm for health spending is greater than or equal to 1 (the default), the value of sHlthExpPcntGDP is not allowed to decline over time.

$ sHlthExpPcntGDP_r=\frac{GDS_{r,g=health}}{GDP_r}*100<math> $

Government Balances and Dynamics

Given calculations of government revenue and expenditure, it is possible to compute the government balance, adjusted by foreign aid donations when given (for donors, the sign of AID is negative). Repayments of loans to the IMF or World Bank also reduce the balance.


That allows the update of absolute government debt and a calculation of its magnitude relative to GDP. We use the relative price adjusted GDP because it reflects changes in energy and agricultural prices that can be of considerable significance for countries with heavy dependence on trade in those sectors.

$ GovDebtAbs_r=GovDebtAbs_{r,t-1}-GOVBAL_r $
$ GOVDEBT_r=GovDebtAbs_r/GDPRPA_r $

It is government debt as a percentage of GDP that IFs uses to build equilibrating dynamics for government revenues and expenditures.

In years beyond the first, the government debt as a percent of GDP will give rise to pressure for higher or lower levels of government revenues and expenditures. Those pressures will be conveyed via two multipliers applied to calculations of taxing and spending in subsequent years. Those multipliers are set at "1" in the first year, indicating no change in pressures initially. The rest of this section explains how those multipliers are changed over time.

$ MulRev_{r,t=1}=1 $
$ MulExp_{r,t=1}=1 $

The first step in feeding back government debt level to pressures for increases or decreases in revenues and expenditures is to compute a target for government debt as a percent of GDP with which to compare the actual level. A function relating typical levels of debt to GDP per capita is used as the foundation of that target. Dynamically, the target begins as the initial ratio of debt to potential, relative price adjusted GDP, but we found that it enhanced long-term model behavior to set the target as a moving average of that ratio over time, only allowing the moving average to be changed over time when the debt to GDP ratio falls (thus reducing the target). Further the target converges to the minimum of the moving average and the value from the function.

$ GovDebtTarget%_r=Converge(GovDebtMA_r,AMin(GovDebtMA_r,GovDebtComp_r,100)) $


$ GovDebtComp_r=AnalFunc(GDPPCP_{r,t}) $

and where if

$ \frac{GovDebtAbs_r}{GDPPOTRPA_{r_r}}<GovDebtMA_{r,t-1} $


$ GovDebtMA_r=GovDebtMA_r*0.6+\frac{GovDebtAbs_r}{GDPPOTRPA_r}*100*0.4 $

The tricky part is to get a dynamic system to chase the target over time, adjusting revenues and expenditures annually as it does so. IFs does that in this instance and in others by using an adjustment to feedback parameters based on two terms: an integral term (the absolute distance of the system from the target) and a differential term (the change in values of the target relative to the preceding year). Engineers refer to this process as a PID controller. The two terms are computed as Diff1 and Diff2. A potential relative price adjusted GDP term is used rather than the actual GDP of the year in order to protect systemic stability over time (use of GDP in the target term can set up oscillations in some feedback loops also involving GDP).

$ Diff1_r=GovDebtAbs_{r,t}-GovDebtTarget%_r*GDPPotRPA_r $
$ Diff2_r=Diff1_r-Diff1_{r,t-1} $

Once the two terms are available, the PID adjuster routine (ADJUSTR), described elsewhere is called by IFs to convert the difference terms, modified by exogenous parameters, into a multiplier on the cumulatively-computed revenue multiplier term used in equations above. (This function historically used the parameters elgrevdebt1 and elgrevdebt2 , but those are currently hard-coded in the equation below as 0.15 and 0.30).

$ Adjustr(GDPPot_r,Diff1,Diff2,\mathbf{elgrevdebt1,elgrevdebt2,}Mul) $
$ MulRev_r=MulRev_{r,t-1}*Mul $

In the above specification, the adjuster uses two elasticities for the difference terms. In completely parallel fashion, adjustment is made to the expenditure multiplier. Tuning of the model reinforced the need for the elasticities on the expenditure side normally to be lower than those on the revenue side (governments are more likely to adjust revenues than expenditures). Elgexdebt1 and elgexpdebt2 were set at 0.05 and -0.1, respectively. Yet when revenues and expenditures get substantially out of balance, there are times that some "extra kick" on the expenditure adjustment is needed and that is provided by the elasticity multiplier (ElMul) based on the ratio of revenues an expenditures.

$ Adjustr(GDPPot_r,Diff1,Diff2,\mathbf{elgexpdebt1}*ElMul_r,\mathbf{elgexpdebt2}*ElMul_r,Mul) $
$ MulExp_r=MulExp_{r,t-1}*Mul $


$ ElMul_r=AMIN(AMAX(\frac{GOVEXP_r}{GOVREV_r},\frac{GOVREV_r}{GOVEXP_r}),5) $

Household and Firm Income

It is possible to compute household income (before taxes and transfers) by sector, and as important, to divide household income into skilled and unskilled categories. The labor coefficients (LaborF) computed from the GTAP database allow that; the IFs IO threshold system creates average versions at across countries of input-output matrices and also labor skill levels at increasing levels of GDP per capita at PPP, and then uses GDPPCP to fill country-holes in initialization and to change the skill level profile as GDPPCP changes over time. Those sector-specific coefficients are weighted by sector-specific value added to compute the total relative-price-adjusted value added (VADDRPA) going to unskilled and skilled households, respectively (VADDHHU and VADDHHS). Those shares are then summed to provide household income for each household type (HHINC). Firm income is the remaining GDP (equivalent to the capital share), augmented by any foreign direct investment (XFDIFIN) or portfolio investment (XPORTFIN).

The income share computation also introduces a skill shift term (SkillShiftMul). The basis for the term is a presumption that over time there is a greater demand for skilled labor and a commensurately lower demand for unskilled labor. The rate of annual change has been initially set at 0.3 to 0.4%, corresponding approximately to the core level of change in multifactor productivity (analysis suggests that the rate might be a little low). There is much room for endogenization and refinement of this highly aggregate and rough specification. The importance of it lies in the re-allocation of household income away from unskilled households to skilled households. Because of the great growth in education around the world, and therefore the proportionately faster growth of skilled households, there is, in fact, credential inflation; in the absence of it, the supply of skilled labor would be increasing much faster than the demand for it and the price of it relative to unskilled labor would drop sharply. That is not happening in the world.

$ VADDHHU_{r,s}=VADDRPA_{r,s}*LaborF_{r,h=1,s}/SkillShiftMul_r $
$ VADDHHS_{r,s}=VADDRPA_{r,s}*LaborF_{r,h=2,s}/SkillShiftMul_r $


$ LaborF_{r,h,s}=F(GATP\ labor\ skill\ data\ with\ 10\ matrices,IFS\ 10\ threshold\ system,\ GDPPCP_r) $
$ SkillShiftMul_r=SkillShiftMul_{r,t-1}^{1.004\ to\ 1.003} $

where exponent decreases with GDPPCP

$ HHINCShr_{r,h=1}=\Sigma^SVADDHHU_{r,s} $


$ HHINCShr_{r,h=2}=\Sigma^SVADDHHS_{r,s} $


$ HHIncBTT_{r,h=1}=\frac{HHINCSHR_{r,h=1}}{HHINCSHR_{r,h=1}+HHINCSHR_{r,h=2}}*GDP_r*(1-CDALF_r) $


$ HHIncBTT_{r,h=2}=\frac{HHINCSHR_{r,h=1}}{HHINCSHR_{r,h=1}+HHINCSHR_{r,h=2}}*GDP_r*(1-CDALF_r) $


$ VADDF_{r,s}=VADDRPA_{r,s}-VADDHHU_{r,s}-VADDHHS_{r,s} $



We need also to know the net flow of funds from firms to households, and how that is split between the two types of households. A simplifying intermediate step is to compute firm income after taxes (see the discussions of government revenues and expenditures for explanations of terms such as FIRMTAX, FIRMGOVSS, INDIRECTAX, HHTAX,GOVHHTRNWEL.


IFs computes in the first year a firm investment ratio (FirmInvRI) as a general estimate of the portion of firm income after taxes that is used for gross capital formation. The residual after capital formation (investment) is the portion that is passed back to households as dividends and interest. In the absence of data on the distribution of dividends and interests between unskilled and skilled labor-based households, equations arbitrarily assign the overwhelming share of it, namely 90%, to skilled households.

$ HHDivInt_{r,h=1}=FirmIncomeAfterTaxes_r*(1-FirmInvRI_{r,t=1})*.1 $
$ HHDivInt_{r,h=2}=FirmIncomeAfterTaxes_r*(1-FirmInvRI_{r,t=1})*.9 $


$ FirmInvRI_{r,t=1}=Amin(1,\frac{I_{r,t=1}}{FirmIncomeAfterTaxes_{r,t=1}}) $

At this point it is possible to compute household income adjusted by all transfer payments from government and firm's dividends. Household disposable income (HHDispInc) is that gross income minus taxes. It is disposable income that IFs takes to the calculation of consumption and, as a residual, net savings.

$ HHINC_{r,h}=HHIncBTT_{r,h}+GOVHHTRNWEL_{r,h}+GOVHHTRNWEL_{r,h}+HDDivInt_{r,h} $
$ HHDispInc_{r,h}=HHINC_{r,h}-HHTAX_{r,h}-HHGOVSS_{r,h} $

It is also desirable to know the household income per capita (HHINCPC), which requires knowing the size of the household population (HHPOP) in each household type (that is, skilled and unskilled). The model assigns total population to households based on the labor supply (LABSUP) in each household type, thereby assuming equal household sizes.

$ HHPOP_{r,h}=POP_r*\frac{LABSUP_{r,h}}{LAB_r} $
$ HHINCPC_{r,h}=\frac{HHINC_{r,h}}{HHPOP_{r,h}} $

Household Consumption and Net Savings

One of the key behavioral relationships for households (and a very important one for the larger model) is the division of income between household consumption, C, and household savings (HHSAV). Many factors affect that division including (1) an inertial element of consumption in the face of changing household income, (2) the relationship between GDP per capita and the propensity of households to consume from income (it tends to drop slowly), (3) the age structure of the population (people tend to consume a smaller proportion of income in the mid working years of life), (4) interest rates (high rates divert some income to savings), (5) life expectancy (longer life expectancy beyond retirement age should lead increase savings propensity). This section will address each of these in turn.

It is, however, not fully possible to conceptualize household consumption independent of other expenditure components (government consumption, investment, and net trade). There are equilibrating mechanisms that cross over the goods and services market and influence agent behavior with respect to consumption, investment and savings. Other topics cover those interacting representations.

The Permanent Income Foundation of Consumption

Households have ongoing consumption needs and patterns. Thus their consumption tends not swing as widely as does income. For that reason we begin by computing an internal model variable defined in the literature (e.g. Pistaferri 2001) as permanent household income (HHDisIncPerm). The computation uses a weighted average to smooth changes of permanent income in the face of changes in actual annual disposable income (HHDispInc).

$ HHDiscIncPerm_{r,h}=HHDiscIncPerm_{r,h,t-1}*(1+IGDPRCOR_r)*.7+HDDispInc_{r,h}*.3 $

The sum permanent income across household types yields total household permanent income (TotHHIncPerm).

Basic Computation and the Affect of GDP Per Capita

The core of the consumption equation involves calculating a preliminary estimate of household consumption for each of the two household types (ConsumHHPrel) by multiplying a consumption ratio (CRA) as a portion of permanent disposable household income times that income. The consumption ratio is carried along from year-to-year, providing an additional inertial but moving element of consumption (we will update it after finalizing the computation of consumption).

$ ConsumHHPrel_{r,h}=HDDispIncPerm_{r,h}*CRA_{r,h,t-1} $

Our own cross-sectional analysis confirms a tendency for the consumption share of income to decline somewhat with increases in GDP per capita. We use that function to calculate the average household consumption propensity (HHCProp). The second term in the computation of consumption (C) adjusts the preliminary computation by household with the change of this propensity over time. The third term adjusts this consumption term based on change over time in the ratio (PenShrInc) of government to household pension transfers (GOVHHPENT) to the total permanent income, assuming that pensions are mostly consumed.

$ C_r=\Sigma^HConsumHHPrel_{r,h}*\frac{HHCProp_{r,t}}{HHCProp_{r,t=1}}+(PenShrInc_{r,t}-PenShrInc_{r,t=1})*TotHHIncPerm_r $


$ HHCProp_r=AnalFunc(GDPPCP_r) $
$ PenShrInc_r=\frac{GOVHHPENT_r}{TotHHIncPerm_r} $

Many countries have initial consumption shares of GDP that are especially high or low for a variety of historical reasons (high receipt of external assistance or remittances can boost C and governmentally-induced savings can reduce it). So we also set up a very slow convergence of C toward the more typical cross-sectional pattern for it, using again the household propensity to consume to drive C toward that target value (CTarget) in one of our standard IFs functions, ConvergeOverTime. The target is a portion of the potential, relative price adjusted GDP (GDPPOTRPA), again adjusted by changes in pensions.

$ C_r=ConvergeOverTime(C_r,CTarget_r,150) $


$ CDTarget_r=\frac{HHCProp_r}{100}*GDPPOTRPA_r+(PenShrInc_{r,t}-PenShrInc_{r,t=1})*TotHHIncPerm_r $

The Impact of Age Structure on Consumption

Modigliani (1976)[16] sketched the pattern of life-cycle savings and consumption and many others have followed (e.g. Lee and Miller 1992, Zhang and Zhang 2005[17], Zhang and Zhang 2009[18], Lee and Mason 2011[19]). Consumption as a portion of income tends to be lowest during the peak working years and higher for the young and the old and/or retired.

Drawing especially on Lee and Mason (2011) we structured a relationship between marginal propensity to consume and age (the percentage portion of additional household income that would typically be consumed at different ages). We use that to differentiate consumption demands or needs of the population prior to working years (CPREWORK), during working years (CWORKING) and in retirement (CRETIRE). The function is used to compute an estimate of the percentage of additional income that each of the three groups consumes (YouthCon, WorkerCon, and PensionCon).

$ YouthCon_r=AnalFunc(workageentry_r/2) $
$ WorkerCon_r=AnalFunc((workageentry_r+workageretire_r)/2) $
$ PensionCon_r=AnalFunc(workagretire_r+LIVEXP_{r,t-1})/2) $

At this point there is a potential diversion from the normal flow of computation is the parameter cpctnduse (C percent response to balance between the savings need and expected availability for use) has been assigned a value larger than its normal 0.0. If the value is positive, SavingsNew and SavingsOld terms are calculated using an annuity formula (PV = C * [(1-(1+i)^-n)/i]) that is meant to assure adequate retirement income when C is set to 20.

$ SavingsNew_r=20*((1-(1+savingsdiscount_r/100)\frac{workageentry_r-WORKAGERETIREND_r}{savingsdiscountrt_r/100})) $
$ SavingsOld_r=20*((1-(1+savingsdiscount_r/100)\frac{workageentry_r-workageretire_r}{savingsdiscount_r/100})) $

The difference between the new and old savings suggests the additional (or lesser) savings needed.

$ SavingsNeeded_r=SavingsNew_r-SavingsOld_r $

A portion of that (determined by the same optional parameter) can be subtracted from the consumption of workers so that they will instead save more.

$ workercon_r=workercon_r-SavingsNeeded_r*\mathbf{cpctnduse}_r $

Returning to the flow of computations regardless of the value of cpttnduse , we also compute the share of the three groups in the total population.

$ YouthPopShr_r=\frac{POPPREWORK_r}{POP_r} $
$ WorkerPopShr_r=\frac{POPWORKING_r}{POP_r} $
$ PensonerPopShr_r=\frac{POPRETIRED_r}{POP_r} $

That allows an estimate of the share that each group would have of the total household consumption.

$ YouthConShr_r=(YouthPopShr*YouthCon_r)/100 $
$ WorkerConShr_r=(WorkerPopShr*WorkerCon_r)/100 $
$ PensionerConShr_r=PensionerConShr_r*PensionerConShr_r/100 $

The sum of the consumption shares follows.

$ ComputedCon_r=YouthConShr_r+WorkerConShr_r+PensionerConShr_r $

The difference between that sum of shares and its initial value provides basic information on how the changing age structure of a population across the three groupings will typically affect consumption intensity. Multiplying that by the permanent disposable household income (HHDisIncPerm) suggests whether consumption might likely rise or fall relative to our more inertial estimate of it, and by how much. The Aging Adjustment (normally populations are becoming older, but not necessarily so the term could be negative) is added to our earlier and more basic calculation of consumption.

$ AgingAdjustment_r=(ComputedCon_r-ComputedCon_{r,t=1})*HHDisIncPerm_{r,h} $
$ C_r=C_r+AgingAdjustment_r $

This revised consumption can then be divided among the population-age categories.

$ CPREWORK_r=\frac{YouthConShr_r}{ComputedCon_r}*C_r $
$ CWORKING_r=\frac{WorkingConShr_r}{ComputedCon_r}*C_r $
$ CRETIRE_r=\frac{PensionerConShr_r}{ComputedCon_r}*C_r $

A normalization process assures that the term sum to C.

The Impact of Life Expectancy on Consumption

The logic around changing consumption in response to age structure does not take into account life expectancy. To do that a life expectancy term (LifExpTerm) further adjusts consumption (and also gross capital formation, IGCF). That term responds to a life expectancy gap (LifExpGap) compared to the value of the gap in the first year; the gap itself compares actual life expectancy (LifExp) with a value for expected value based on GDP per capita at PPP (GDPPCP).

$ C_r=C_r-LifExpTerm_r $


$ LifExpTerm_r=IGCF_r*(LifExpGap_r-LifExpGap_{r,t=1}*0.01 $
$ LifExpGap_r=LifExp_{r,t-1}-LifExpGDPBased_r $
$ LifExpGDPBased_r=F(GDPPCP_r) $

Interest Rates, Stocks (Inventories) and Consumption

The trade-off for households between consumption and savings also responds to prices, both those of financing (interest rates) and those of goods and services. In IFs, both of those prices in turn respond to levels of inventories in the production/consumption sectors (called stocks (ST) inside IFs).

The modeling of the influence of interest rates could be done with the primary target being household savings. We instead represent the impact of rates on consumption, making savings the residual. The impact of interest rates on consumption is via an interest rate multiplier term (IntrMulTermC) that rise or falls over time as a function of the difference between a smoothed interest rate term (SmoothIntr) and a very long-term or highly-smoothed interest rate term (LongTermIntr). That is, as the smoothed interest rate rises above the long-term interest rate, it depresses consumption (and will therefore raise savings). In IFs there is no monetary sector and interest rates are real rates, not nominal ones.

Although we could similarly use the real prices of goods and services to affect consumption, the recursive structure of the model means that prices are computed in the supply/demand balance and not available at the time of this adjustment to consumption (the same lag issue affects interest rates, but the lagged values change slowly and using them is not a problem). To bypass the lag, the implicit price effect on consumption is introduced directly via an additive term reflecting half of excess stocks; the reason for passing through an adjustment of that magnitude is that household consumption is generally well above have of the total economy. Excess stocks are the difference between actual and desired stocks, which are determined by a stock base (STBase) linked to production and consumption levels and a desired stock level (dstl) as a portion of the stock base.

$ C_r=C_r*IntrMulTermC_r+ExcessStocks_r/2 $


$ IntrMulTermC_r=IntrMulTermC_{r,t-1}*F(SmoothIntr_r-LongTermIntr_r,ADJSTR $
$ ExcessStocks_r=\Sigma^S(ST_{r,s}-STBase_{r,s}*dstl) $

Savings Rates and Consumption

Were IFs to make savings rates responsive to interest rates and prices, rather than making consumption responsive to them, the formulation would most likely identify some long-term target value of savings rates and allow the actual value to rise above or fall below that based on driving values such as interest rates. Since IFs works primarily on consumption and makes savings the residual, it would be possible that savings rates are pushed unreasonably high or low. Moreover, it is possible that foreign savings swings can dramatically influence savings totals in a fashion that would completely crowd out or greatly expand domestic savings were there no other forces working at equilibrating domestic savings.)

To avoid this we make an additional adjustment to consumption using a multiplier on it (MulCon) that is responsive to the level of household and firm savings (HHSAV and FIRMSAV) as a portion of relative price adjusted potential GDP (GDPPOTRPA). That current household and firm savings rate (HHFirmSavR) is compared with a targeted one (HHFirmSavTarget) and the multiplier is computed in our standard IFs PID adjuster function (Adjstr). The target rate also uses one of our standard IFs functions, namely ConvergeOverTime, which causes it to gradually move from the initial rate to 30 percent over 80 years.

$ C_r=C_r*MulCon_r $


$ MulCon_r=Adjstr(HHFirmSavR_r-HHFirmSavTarget_r) $
$ HHFirmSavR_r=\frac{\Sigma^HHHSAV_{r,h}+FIRMSAV_r}{GDPOTRPA_r} $
$ HHFirmSavTarget_r=ConvergeOverTime(HHFirmSavR_{r,t=1},30,80) $

Investment and Consumption

investment/gross capital formation (IGCF) can be done in IFs using the multiplicative parameter on investment ( invm ). That parameter varies around its base value of 1. Rapid scenario changes can complicate model adjustment. Therefore, an adjustment term (IAdj) is calculated based on the difference between the parameter and 1.0, and that adjustment factor is subtracted from consumption.

$ C_r=C_r-IAdj_r $


$ IAdj_r=IGCF_r*(\mathbf{invm}_r-1) $

Of course, the same amount needs to be added to investment.

$ I_r=I_r+IAdj_r $

Consumption by Household Type and Update of Consumption Propensity for Future Years

Having modified total household consumption (C) the preliminary household consumptions (ConsumHHPrel) of the different household types will no longer sum to it, so they are normalized to do so.

$ ConsumHH_{r,h}=\frac{ConsumHHPrel_{r,h}}{\Sigma^HConsumHHPrel_{r,h}}*C_r $

The rates of consumption relative to disposable income (CRA) can then be re-computed and saved for the next year for use in the preliminary calculations of consumption prior to the various adjustments of C.

$ CRA_{r,h}=\frac{ConsumHH_{r,h}}{HHDispInc_{r,h}} $

The split of household consumption between unskilled and skilled households is maintained as a constant in this process. That is not ideal, but we have developed no alternative formulation at this point. But is therefore also important to explain the initialization of those rates of consumption by household type. In the first time step, those rates are calculated taking into account the differential propensity of populations at different levels of income to consume and save.

The average propensity to consume in the initial year (AveConsumR) can be calculated from data.

$ AveConsumR_{r,t=1}=\frac{C_{r,t=1}}{\Sigma^HHHInc_{r,h,t=1}} $

If both types of households consumed an equivalent share of income, they would consume at the average rate. Almost certainly, however, lower income, unskilled households have a higher average propensity to consume than do skilled households. In the absence of data-based knowledge about that, IFs currently uses a stylistic, and flexibly changeable function to represent the differential consumption propensity at different income levels, assumed to decrease as income (proxied by GDP/capita at PPP) increases.

The consumption differential from the function adjusts the average rate for unskilled households and allows computation of actual consumption (ConsumHH) of the unskilled and a residual calculation of consumption for the skilled (subject to tests for positive sign and reasonable size, not shown below).

The differential propensity to consume is an important feature for scenario analysis, because transfers across household types (and resultant changes in relative disposable income) are one of the key policy levers available to governments.

$ AveConsumptionR_{r,h=1,t=1}=AveConsumR_{r,t=1}+ConsumDiffR_{r,t=1} $
$ ConsumHH_{r,h=1,t=1}=HHINC{r,h=1,t=1}*AveConsumptionR{r,h=1,t=1} $
$ ConsumHH_{r,h=1,t=2}=C_{r,t=1}-ConsumHH_{r,h=1,t=1} $


$ ConsumDiffR_{r,t=1}=TablFunc(GDPPCP_{r,t=1}) $

This allows then that initial year estimate of consumption propensity that will vary by household type with that variation carrying over across time, even as the rate of consumption for each household type rise and fall together as the consumption share of household income rises and falls.

$ CRA_{r,h,t=1}\frac{CONSUMHH_{r,h,t=1}}{HHDISPINC_{r,h,t=1}} $

Household Savings

Savings terms are calculated as residuals for all agent classes, and are determined after all income and expenditure/transfer calculations. In the case of households they are income, minus consumption and net transfers to government.

$ HHSav_{r,h}=HHInc_{r,h}-CONSUMHH_{r,h}-HHTax_{r,h}-HHGovSS_{r,h} $

IFs has begun to track assets of households in total over time as an element of looking at retirement financing, but not yet begun to do that by household type so as to add that information to the behavioral representation of household-specific savings. That might be useful in the future.

Household Consumption by Sector

Consumption by sector of origin is complicated by the fact that households significantly change their pattern of consumption as their incomes increase. To capture that dynamics, IFs relies upon a linear expenditure system (LES)—for a description of the LES approach see Taylor (1979: 219-223). Consumption in each sector of origin and household type (CSHH) in the LES depends upon a minimum level of expenditure in each sector (MINEX) and the marginal budget share (MARBD) of each sector in total consumption (C ) above the sum of all minimum expenditures—the floor (FLOOR). IFs computes the parameters for this consumption function during the first time cycle of the model. The constant of 0.5 in the equation for MINEX represents a Frisch parameter (the marginal utility of income with respect to income) of -2.0. Parameters and calculations are specific to household type.

$ CSHH_{r,s,h}=MINEX_{r,s,h,t=1}+MARBD_{r,s,h,t=1}*(ConsumHH_{r,h}-FLOOR_{r,h,t=1}) $


$ CSHH_{r,s,h,t=1}=ConsumHH_{r,h,t=1}*CS_{r,s,t=1}/C_{r,t=1} $
$ MARBD_{r,s,h,t=1}=\frac{\mathbf{engel}_s*\frac{CSHH_{r,s,h,t=1}}{CONSUMHH_{r,h,t=1}}}{\Sigma^S\mathbf{engel}_s*\frac{CSHH_{r,s,t=1}}{CONSUMHH_{r,h,t=1}}} $
$ MINEX_{r,s,h,t=1}=CONSUMHH_{r,t=1}*(\frac{CSHH_{r,s,t=1}}{CONSUMHH_{r,h,t=1}}-0.5*MARBD_{r,s,h,t=1}) $
$ FLOOR_{r,h,t=1}=\Sigma^SMINEX_{r,s,h,t=1} $

In future years, given consumption by household type and sector, total consumption by sector across households is possible to compute, and that value is necessary for the goods and services market module.

$ CS_{r,s}=\Sigma^HCSHH_{r,s,h} $

Domestic Distribution of Household Income

Conceptual Foundations of Distribution in IFs: The Lorenz Curve and Gini Coefficient

The Lorenz curve is the most widely used method for representing inequality in earnings, income, or wealth (see the figure below). It portrays the cumulative share of income (or any other quantity distributed across a population) held by increasingly well-to-do cumulative shares of population. The more equally distributed a factor is, the closer the Lorenz curve will be to the hypotenuse of the right-triangle, sometimes called the line of equality. The Gini coefficient is the “area of inequality” immediately below the hypotenuse (A) divided by the area of the triangle (A+B); thus larger Gini coefficients indicate greater inequality. 

Example of a Lorenz curve with Gini coefficient

The Lorenz curve is “non-parametric” in the sense that it is an empirical distribution that is an accurate representation of survey data on income or consumption for a society. While the Lorenz curve is useful conceptually, to capture the dynamically evolving distribution of income or consumption it is more convenient to have an analytic or “parametric” representation of the distribution. Moreover, we would like a representation from which we can conveniently compute specific deciles or quintiles (thereby reconstructing the Lorenz curve) and also compute key poverty measures like the headcount. The most widely used parametric representation is the lognormal density. We will not describe that function here. Because we relate the Gini coefficient to a lognormal function in our forecasting of poverty rates, please see the documentation of poverty forecasting for that discussion. Here we will focus only on the forecasting of the Lorenz curve in IFs and the calculation of the Gini coefficient from that forecasting.

The challenge for IFs forecasting of distribution becomes the forecasting of the Lorenz curve itself; calculation of Gini is simple once we have that curve at any time point for any population. Forecasting the Lorenz curve necessarily involves the forecasting of the differential performance of segments within the population. Based on historic data, the income means of different deciles could be extrapolated or in some other way forecast, but such extrapolation would be unrelated to the rest of the IFs model (including specific interventions that might change those means) and would add nothing much simply to extrapolating changes in Gini itself.

Ideally, the forecasting of segments of population from poorest to richest across the Lorenz curve should be tied to an elaboration of household types as is done with a Social Accounting Matrix (SAMs). SAMs can distinguish multiple types of urban and rural households and their changing demographic sizes (as a result, for instance, of rural-to-urban migration) and income structures (as a result of structural change in the economy, of changing patterns of government transfers, and many other factors). For the purposes of studying longer-term change in global poverty levels in IFs the SAM ideal is tarnished by two realities: (1) in spite of efforts via the UN’s System of National Accounts, there is no standard household classification system for SAMs; they vary widely and are generally used in single-country analysis, not global forecasting; and (2) most models built around SAMs are used for rather short-term analysis and even more commonly for comparative static analysis (for example, comparison of income patterns in a society not open to agricultural imports to one that is, without much or any consideration of the dynamic path from one to the other).

Nonetheless, the basic rooting of forecasts of a Lorenz curve and therefore of Gini in a SAM retains the tremendous advantage of tying those forecasts to changes in clearly policy-relevant interventions. And fortunately, the Global Trade and Analysis Project (GTAP) has collected key information, such as share taken of value added, about two classes of households, those based respectively on skilled and unskilled labor, across the large number of countries/ regions and economic sectors that the project covers (see IFs has drawn heavily on the GTAP data, updating regularly to the most recent version, in its own economic model structure and built the IFs SAM on the basis of the two household categories. The GTAP database has made it possible to develop forecasts of income by type of household as economies and therefore value added shares shift from agriculture to manufacturing and to services. (See the documentation topic on Household and Firm Income.)

Although it is far from ideal to have only two categories of population (unskilled and skilled), it is possible to represent a Lorenz Curve showing what portion of income the unskilled (poorer) portion of the population obtains, specifying one point on the Lorenz curve that will fall below the diagonal (the line of equality). The unskilled and skilled portions together will receive all of the income. Although simple this Lorenz curve (actually two line segments), allows calculation of Gini.

For the purposes of forecasting, we need only forecast two things: the changing shares of income of the two groups and the changing sizes of the two groups. The GTAP database facilitates the forecasting of income shares because it indicates income patterns for the two population groupings by economic sector and, across all of the countries in GTAP, helps us abstract changing patterns of those sector shares with change in GDP per capita at PPP. The documentation of household income by household type describes how that is done in IFs.

This leaves one further challenge for forecasting, the determination of the split of the population between unskilled and skilled households. Unfortunately, the GTAP dataset does not provide numbers on labor force size, only on sector income shares. And OECD data on labor force size by classification such as professional and administrative, which could be used to estimate numbers of skilled versus unskilled workers, exist only for well-to-do countries. Moreover, we need not only initial conditions, but forecasting formulations. Although we would expect that the portion of the population that is skilled would grow with the educational level of the population, the relationship is complex, in part because (1) more advanced economies may set a higher bar for determining what a skilled worker is and (2) more highly educated populations may find that there is credential inflation that effectively demotes some with education to a less skilled category.

Therefore formulations and algorithms for both the initialization and forecasting of skilled and unskilled numbers are necessary. IFs has used two different processes to help generate rough estimates of the numbers, a legacy procedure that we document because some variation of it may still have value in the future, and a second, currently used process. 

An Earlier, Legacy Process to Compute Domestic Gini

The earlier process involved looking at the formal educational attainment levels of the adult population. The cross-sectional graph below shows the portion of the population 25 years and older with tertiary education plus ½ of that with secondary education. That is a very arbitrary and crude definition of skilled labor, but is a starting point. The value of tying the size of skilled and unskilled labor forces to education completion is that the education module of IFs forecasts sizes of population with various educational attainment levels and those can be driven by agent-class interventions. And it is the change in share of skilled labor that is most important, not the absolute numbers—the Gini coefficient data can be used to adjust the initial conditions of income distribution and the change in labor force sizes can help us forecast the change in Gini.

Population 25 years and older with tertiary education plus ½ of that with secondary education

There are some obvious problems with the graph above. One of the most significant is that better fits are achieved by other functional forms, including the logarithmic one below. Unfortunately, those forms tend to suggest that the poorest countries have absolutely no skilled labor, clearly an exaggeration.

Logarithmic form of GDP graph above

How do we know that an absence of skilled labor in the poorest countries is an exaggeration? In addition to common sense, it can be seen from the GTAP data on the income share of skilled labor in the graph below. That shows that they obtain a substantial share of value added even at the lowest levels of GDP per capita. The two cross-sectional graphs below show the shares of value added accruing to skilled and unskilled labor, respectively.

GDP graph above with shares of value added accruing to skilled labor
GDP graph above with shares of value added accruing to unskilled labor

The Current Process in IFs to Compute Domestic and Global Gini Coefficients

An earlier procedure for computing Gini linking skilled labor to those with a tertiary education and half of those with a secondary education was formerly used in IFs. But it had some instability and unanticipated consequences, in part because the reality is there is credential inflation; as countries become richer, fewer and fewer of those with tertiary education, much less secondary, are considered adequately skill. Therefore the model has been switched to one that looks at the average years of education held by adults 15 years of age and over (EDYRSAG15).

The process begins by using a function estimated from the relationship between GDPPCP and GTAP data on the share of value added accruing to skilled workers to estimate the share of the labor force that is skilled (PerSkilled); that will be wrong, but remember that we do not need the exact share, what we need is the change over time. And the model uses that same function over time to estimate the expected share of skilled labor, all else equal, over time. But all is not equal and it is unequal to the extent that education levels rise higher than those that we would expect in the same development process. Hence there is an adjustment term in the calculation (LabSupSkillAdj) that looks at the difference between the actual years of education in the population and the expected years (YearsEdExp), again computed by an analytical function with GDP per capita at PPP. A fraction of the proportional difference of actual with expected is added to the percentage skilled.

$ PerSkilled_r=PerSkilledExp_r*(1+LabSupSkillAdj_r) $


$ PerSkilledExp_r=AnalFun(GDPCPP) $
$ LabSupSkillAdj_r=\frac{EDYRSAG15_r-YearsEdExp_r}{YearsEdExp_r}*0.3 $
$ YearsEdExp_r=AnalFun(GDPCPP) $

Given the percentage skilled it is simple to calculate the number skilled (LABSUP) and the residual percentage of the labor force that is unskilled.

$ LABSUP_{r,h=2}=LAB_r*PerSkilled_r/100 $
$ LABSUP_{r,h=1}=LAB_r-LABSUP_{r,h=2} $

Levels of skill in the labor force are used to estimate household populations with associated skills (recognizing that household sizes in different skill categories may actually be unequal).

$ HHPOP_{r,h}=POP_r*LABSUP_{r,h}/LAB_r $

Given the income shares accruing to skilled and unskilled shares of the population and the sizes of those portions of the population, the domestic Gini index (GINIDOM) is computed from the simple Lorenz curve that those two incomes and population shares create, scaled to the empirically known initial condition. The calculation in the Lorenz curve function GinDomCalcFunc is modified by a scaling or shift parameter (GINIDomRI) so that the initial condition is preserved. A multiplier parameter ( ginidomm ) can change the calculation over time.

$ GINIDOM_r=(GiniDomCalcFunc(HHINC_{r,h}HHPOP_{r,h})+GINIDomRI_{r,t=1})*\mathbf{ginidomm_r} $


$ GINIDomRI_{r,t=1}=GINIDOM_{r,t=1}-GiniDomCalcFunc(HHINC_{r,h,t=1}HHPOP_{r,h,t=1}) $

There is, however, an alternative and completely exogenous way of calculating Gini, if the parameter ginidomr has a value greater than 0. In that case, the value of Gini is simply the initial condition changed over time by ginidomr (again modified, if desired, by ginidomm ).

$ GINIDOM_r=GINDOM_{r,t=1}*\mathbf{ginidomr}_r*\mathbf{ginidomm}_r\ if\ \mathbf{ginidomr}_r>0 $

IFs also calculates two variations of a global Gini index to supplement the country-specific one. The first is a Gini coefficient (GINI) that describes the distribution of income across all countries, using country incomes as the unit of analysis.

$ GINI=GiniCalc(HHINC_{r,h},HHPOP_{r,h}) $

That measure does not take into account income distribution within countries. The second global Gini measure (GINIFULL) does take into account income distributions both within and across countries (subject, of course, to the limitation that IFs represents domestic income distribution only as a function of two income categories). That makes it essentially a measure of global income distribution at the individual human level, rather than the country level.

$ GINIFULL=GiniFullCalc(HHINC_{r,h}HHPOP_{r,h}) $

Finally, the user interface of IFs uses the same Lorenz-curve approach to allow the user to calculate a specialized-display GINI for any variable that can be represented across all countries/regions of the model.

Firm Savings

The agent class that is least developed within IFs as a class with behavioral relationships, and that instead relies on aggregated relationships is the firm (as discussed around the production function). Even if the basic behavior of the firm is simplified, its accounts must still balance. Firm savings is equal to firm income minus net transfers to households and government. In addition, there are positive net transfers to the rest of the world in the form of outward FDI flows (XFDIFOUT), portfolio flows (XPORTFOUT), and subscriptions to the World Bank (XWBSUBF) by net contributors.

$ FirmSav_r=FirmInc_r-\Sigma^HHHDivInt_{r,h}-FirmTax_r-IndirectTax_r-FirmGovSS_r-XFDIFOUT_r-XPORTFOUT_r-XWBSUBF_r $

Domestic Closure: Total Savings, Investment, and Interest Rates

Given information about the financial accounting within government, households, and firms, it is possible to turn to total domestic economy balances and also to consider the linkages with the global financial system. We want to look in turn at savings, investment and interest rates, then begin to identify some important elements of international connections.

Foreign and Total Savings

Other sections of this documentation explain the computations of government, household, and firm savings. The only element missing for the calculation of total savings is foreign savings (savings from abroad). Foreign savings is basically the flipside of the current account—remember that a deficit in the current account must be offset by an inflow of foreign savings. Hence everything that improves the current account, such as more exports, reduces the net inflow of foreign savings. In IFs foreign savings have terms from trade and aid, but also from the balances of government and firms with the outside world. For government those terms involves credits and flows to and from the IMF (XIMFCRFOUT and XIMFCRFIN) and the World Bank (XWBLNFOUT and XWBLNFIN) For firms those terms involve foreign direct investment (XFDIFOUT and XFDIFIN) and portfolio flows (XPORTFOUT and XPORTFIN) as well as subscriptions to the World Bank institutions (XWBSUBF) and worker remittances (XWORKREMIT).

$ ForSav_r=GovForSavBal_r+FirmForSavBal_r-X_r+M_r-AID_r $



The total savings in each country will be the sum of the individual terms. By definition it will equal investment (I), defined as capital formation (IGCF) plus inventory stock (ST) changes. Treatment of physical balances over time, not elaborated in this topic, assure that equality. Looking at the two variables side by side is a good test of the functioning of the SAM.

$ Savings_r=\Sigma^HHHSav_{r,h}+FirmSav_r+GovBal_r+ForSav_r $

In other sections of this documentation we have described the computation of relative-price adjusted variables such as exports (XRPA), imports (MRPA), and GDP, potential and actual (GDPRPA and GDPPOTRPA). In addition we have relative price adjusted versions of foreign savings (FORSAVRPA) and total savings (SAVINGSRPA).

$ SAVINGSRPA_r=\Sigma^HHHSav_{r,h}+FirmSav_r+GovBal_r+FORSAVRPA_r $

These relative-price adjusted savings variables are used for information only and do not affect financial balances or other variables. The relative-price adjusted trade, however, is taken to the trade balance (TRADEBAL) in the economic model and on to the current account balance (CURACT) in the international financial accounting and equilibration. There it will affect international debt calculations (XDEBTRPA).

Gross Capital Formation and Investment

The equation below indicates that the core of the gross capital formation (IGCF) calculation each year is potential GDP (GDPPOT) times an investment rate (IRA) from the initial year. The investment rate core determination also involves input from foreign direct investment, increasing or decreasing if the FDI ratio to potential, relative price adjusted GDP changes.

$ IGCF_r=GDPPOT_r*(IRA_{r,t=1}+FDITerm_r) $


$ FDITerm_r=\frac{XFDIFIN_{r,t-1}-XFDIFOUT_r*xdioutf}{GDPPOTRPA_r}-\frac{XFDIFIN_{r,t=1}-XFDIFOUT_{r,t=1}*xfdioutf}{GDPPOTRPA_r,{t=1}} $

There are multiple factors that modify that core. (See the similarities in the calculation of household consumption as having a core in permanent income, with a number of factors modifying it.) In general, those modifications help investment react to changes in savings patterns and they help maintain the equilibrium of the domestic financial system. The first is an interest rate multiplier (IRAMul) that, like the one on consumption, drives down investment when interest rates rise. In fact, the multiplier responds to smoothed and long-term interest rates exactly as consumption responds, although the parameters in the PID adjustment function make the adjustment a little less responsive. The second is one that ties investment to a smoothed version of the SAVINGS variable. As savings rise, normally investment does also, and IFs uses a moving average to smooth the impact of changes of savings rates in this relationship. The third is a direct response to excess stocks or inventories. Again this is parallel to the adjustment of household consumption to stocks, except that 1/2 of the excess stocks are passed to household consumption and only 1/6 of them are assigned to gross capital formation.

$ IGCF_r=IGCF_r*IntrMulTermI_r*SmoothSavingsTerm_t+ExcessStocks_r/6 $


$ IntrMulTermI_r=IntrMulTermI_{r,t-1}*F(SmoothIntr_r-LongTermIntr_r,ADJSTR) $
$ SmoothSavingsTerm_t=\frac{SmoothSavingsR_r}{SmoothSavingsR_{r,t=1}} $
$ SmoothSavingsR_r=MovingAverage(\frac{SAVINGS_r}{GDPPOT_r},.8) $
$ ExcessStocks_r=\Sigma^S(ST_{r,s}-STBase_{r,s}*dstl) $

Additionally, there are two adjustments that reflect the changing life expectancy and/or savings patterns of the society. The first reacts to changes over time in the variation of the actual life expectancy from the life expectancy expected given the GDP per capita at PPP of a society. If that gap increases, a small portion of it increases investment rates (as it would savings rates). The second again involves life expectancy, but the purpose of it is to reflect the changing age structure of a society and the consumption/savings-investment patterns of societies with different age structures. Finally, an exogenous multiplier ( invm ) allows the user to push capital formation rates up or down.

$ IGCF_r=IGCF_r*\mathbf{invm}_r+IGCF_r*(LifExpGap_r-LifExpGap_{r,t=1})*.01+SavingsAgeAdj_r $


$ LifExpGap_r=LIFEXP_r-LifExpComp_r $
$ LifExpComp_r=F(GDPPDP_r) $
$ SavingsAgeAdj_r=F(LIFEXP_r,AgeStructure,SavingsStructure) $

Gross capital formation, although highly correlated with investment (I) is not equal to it. Investment also contains changes in stocks. It is that addition of delta stocks that brings the entire representation of the goods and services market in proper relationship with the financial representations of flows among agent classes.

$ I_r=IGCF_r+\Sigma^S(ST_{r,s,t}-ST_{r,s,t-1}) $

Having total investment, it is also possible to compute investment by origin sector (INVS). In IFs, that spread is constant over time in the configuration of the first model year. See documentation on the goods and services market for information on investment by destination sector, IDS.

$ INVS_{r,s}=I_r*\frac{INVS_{r,s,t=1}}{I_{r,t=1}} $

Interest Rates

The SAM structure in IFs is really a combination of an accounting system and an equilibrating system. Just as the equilibrating mechanisms discussed above are important, it is critical to make sure that the accounting balances are maintained. One good measure of ultimate balance is the required, conceptual equality of total savings and investment. Their equality, in fact, is also reassurance that the goods and service market elements of the model are fully integrated with the broader financial ones.

Just as changes in real relative prices by sector help the goods and services market chase equilibrium across time (using build-up or run-down of stocks or inventories to change prices and send signals to supply and demand sides of the model), changes in real interest rates (INTR) send signals to consumption and investment in order to allow the system to chase equilibrium between savings and investment/consumption over time. IFs does not maintain a monetary sector that would introduce nominal interest rates (or nominal prices).

IFs slows down change in interest rates by making them responsive to the average of a term that is directly responsive to inventory levels and the interest rate in the preceding year. It further anchors interest rates in the responsive term to the real interest rate of the initial model year (because this is set at a stylized rate of about 3 percent rather than to actual nominal rates in the initial year, the anchor does not need to converge to a long-term target level). The responsiveness comes from a ratio of a sum across all sectors of the desired stocks (a stock base, STBase, times a parameter of desired stock rates, dstl ) to a sum across sectors of the actual stocks (ST). Because the denominator in the ratio could become inappropriately small, it is bound so as to be at least 30 percent of desired stocks. See documentation on changes in relative prices for more information on the stock base and the general approach. Interest rates rise as stocks fall relative to desired levels and fall as stocks rise above those desired levels.

$ INTR_r=(INTR_{r,t=1}*\frac{\Sigma^SSTBase_{r,s}*\mathbf{dstl}}{AMAX(\Sigma^SSTBase_{r,s}*\mathbf{dstl}*0.3,\Sigma^SST_{r,s}}+INTR_{r,t-1})/2 $


$ STBASE_{r,s}=ZSP_{r,s}+MS_{r,s,t=1}*\frac{GDPPOT_r}{GDP_{r,t=1}} $

Even with the smoothing of the above equation, a model of long-term behavior like IFs benefits from some further smoothing of the interest rates before they feed back to the consumption and investment patterns. Two smoothed terms (a very long-term interest rate, LongTermIntr, and a smoothed rate, SmoothedIntr) moderate the impacts of real interest rates and allow somewhat more variation in them.

$ LongTermIntr_r=LongTermIntr_r*0.95+INTR_r*0.05 $
$ SmoothIntr_r=SmoothIntr_r*0.7+INTR_r*0.3 $

Current and Capital Account Elements

The current account includes trade in goods and services; income on assets (such as rents, interest, profits and dividends); and current transfer payments (including foreign aid, government subscriptions to international organizations, pension payments to workers living abroad, and foreign worker remittances to their home countries). The larger of these elements have representation in IFs.

The capital account involves changes in ownership of assets, such as includes foreign direct investment (FDI), portfolio flows, IMF credits and World Bank loans, net bank lending, other net flows, and change in reserves. Note that these capital account related flows have associated stocks (assets) of importance in understanding their own long-term behavior and that of the larger financial system including the current account.

With respect to the elements of the current and capital accounts, another part of this documentation (part of the representation of goods and services and their balances) has explained trade. This section will discuss foreign aid and worker remittances, two additional elements of the current account, then move to FDI and portfolio flows, two critical elements of the capital account. It will then move to flows from and to international financial institutions, which are also placed in the capital account. A subsequent section on overall equilibration will also address changes in reserves, which are strictly speaking also part of the broader capital account.

Foreign Aid

IFs uses a "pool" approach to aid (AID) rather than indicating bilateral flows from particular donors to particular recipients. That is, all aid from all donors flows into the pool and then all recipients draw proportions of the pool.

IFs uses the aid value parameter ( aiddon ) to calculate the aid (AID) from donors and aidrec to calculate the targeted aid to recipients. The pool of aid donations determines the actual total level of interstate aid flows, however, and is allocated among potential recipients according to the proportions targeted for each.

$ AID_{\gamma}=\frac{GDP*(\mathbf{aidrec}_{\gamma}-\mathbf{aiddon}_{\gamma})}{100} $

Aid outflows are negative and the total aid pool given (AIDP) is the sum of the negative flows, while the total desired aid of recipients (AIDR) is the sum of positive flows.

$ AIDP=\Sigma^R-AID_{r} $ if $ AID_r<1 $
$ AIDR=\Sigma^RAID_{r} $ if $ AID_{r}>1 $

A re-computation of aid for recipients distributes the aid pool across their demands.

$ AID=AIDP*\frac{AID_{r}}{AIDR} $ if $ AID_{r}>1 $

Woker Remittances

Worker remittances are tied closely to the migration formulation of the IFs demographic model (see the documentation of that model). It is important to know the number of foreign workers from each country and into each country (POPFOREIGN), as well as the pattern of remittances per worker, as a basis for computing remittance levels. The IFs migration module once relied heavily on UN data for past migration levels and also tapped their near-term forecasts. The IFs preprocessor and model now rely primarily on migration data from the International Institute of Applied Systems Analysis (IIASA). The preprocessor has fairly extensive algorithms to reconcile that migration data with remittance data, and migration and remittance data from the World Development Indicators with foreign population data (from the same source).

The data do not, however, exist for global representation of dyadic remittance flows that is, of flows from country of origin to country of destination. IFs therefore uses a pooled approach, representing aggregate flows out of countries and aggregate flows into countries, requiring that they be balanced, but not attempting to trace dyadic patterns. The pooled approach is also used by IFs in trade (where dyadic representation would be possible), foreign aid (where it would be difficult but not completely impossible to obtain dyadic data), and other financial flows (where again dyadic data are seldom available).

The specific formulation computes a global average remittance rate per worker (WWorkRemitRate) and a host-country specific ratio of remittance rate to the global one (WorkRemitRate) in the first year. In subsequent years, those rates are applied to the number of foreign workers, but adjusted by the ratio of current GDP per capita to initial GDP per capita. The outflows are assigned to inflow countries so as to maintain a global balance.

$ XWORKREMIT_{r}=-POPFOREIGN_{r}*WWorkRemitRate_{t=1}*WorkRemitRateI -{r,t=1}*\frac{GDPPCP_{r}}{GDPPCP_{r,t=1}} $


$ WWorkRemitRate_{t=1}=\frac{\Sigma^R-XWORKREMIT_{r,t=1}}{\Sigma^RPOPFOREIGN_{r,t=1}} $
$ WorkRemitRateI_{r,t=1}=\frac{\frac{Abs(XWORKREMIT_{r,t=1})}{Abs(POPFOREIGN_{r,t=1})}}{WWorkRemitRate_{t=1}} $

Initial data on worker remittances, added to the IFs database as a percentage of GDP, come from the World Bank’s WDI, as do data on foreign population as a percentage of the total. The original sources were Global Development Finance and the OECD, respectively. At one time the worker remittance series only included data by country of receipt, forcing us to estimate remittances by countries of origin in the preprocessor on the basis of the foreign worker series. Now remittance flows in and out are reported, but there are still balancing issues.

Foreign Direct Investment

Firms are primarily in charge on both ends of foreign direct investment. In general, of course, the pattern is likely to be that firms direct FDI from relatively capital-rich countries to relatively capital-poor ones. Estimation reinforces that presumption by showing the patterns found in the IFs database (using FDI flow data from WDI). A less steeply sloped line is the relationship between GDP per capita at PPP and the stocks of FDI inflows as a ratio to GDP. A more steeply sloped line is the relationship between GDP per capita at PPP and the stocks of FDI outflows as a ratio to GDP. Both lines are upward sloping and, in fact, countries are simultaneously larger sources and targets of investment, even relative to GDP, as they develop. Yet, roughly speaking, countries are net recipients until GDP per capita is somewhat above $20,000 and net sources thereafter.

IFs recognizes that these patterns will not be universal. Thus the algorithm that determines stocks of investment outflows is one that builds in the historic pattern of FDI outflows, but that assumes convergence over long periods of time, such as a century, towards the generic pattern. The same is true for recipients and stocks of inflows. It would probably be reasonable to posit that both lines would shift to the right over time as the average per capita levels of global GDP increase. We have not built that presumption into the model at this time.

In addition to the relative behavior of firms in states across the system, another behavioral issue is the overall pattern of increase or decrease in FDI flows relative to the size of the global economy. Over the last several decades FDI has grown steadily as a portion of the global capital stock and global economy. Economic historians are, however, quick to point out that the turn of the 20th century was a period of enhanced globalization of capital and that those flows then retreated for most of the 20th century before advancing again. And this century has already seen some at least temporary retreats. Thus the base case presumption built into IFs, based roughly on patterns of the late 1990s, is of growth in FDI flows at a rate that exceeds economic growth but that convergences towards GDP growth by 2010.

The representation of FDI in IFs builds from the concepts and general theory around FDI stocks that estimation and the preceding discussion suggest. In each time cycle the model computes stocks of both inflows and outflows. As a first step, the expected stocks of inflows (EXFDISTOCK) are a fraction of GDP (FDIRatio), where the ratio gradually converges from the initial condition for each country (XFDIGDPIn) to the pattern of global ratios expected as a function of GDP (ExpFDIRatioIn).

$ EXFDISTOCK_{r}=GDP_{r}*FDIRationIn $


$ ExpFDIRatioIn=AnalFunc(GDPPCP) $
$ XFDIGDPIn_{r,t=1}=\frac{XFDISTOCK_{r,t=1}}{GDP_{r,t=1}} $
$ FDIratioIn=ConvergeOverTime(XFDIGDPIn_{r,t=1},ExpFDIRatioIn,100) $

Exactly the same logic applies to expected stocks of outflows (EXFDISTOUT).



$ ExpFDIRatioOut=AnalFunc(GDPPCP) $
$ XFDIGDPOut_{r,t=1}=\frac{XFDISTOUT_{r,t=1}}{GDP_{r,t=1}} $
$ FDIRatioOut=ConvergeOverTime(XFDIGDPOut_{r,t=1},ExpFDIRatioOut,100) $

Without further modification, the above formulations would result in stocks that fully determined the annual inflows and outflows. There are, however, empirical initial conditions for such annual flows that should not be ignored, especially in the early years of forecasts; the late 1990s were, for instance, a period of high flow rates that would not be captured by the above formulations.

Thus the formulation has a second step built around flows. Based on the above-expected stocks of FDI inflows (EXFDISTOCK), actual stocks (XFDISTOCK) are computed using a rate of growth (FDIRIn). The user can further intervene in the stock specification with a multiplier ( xfdistockm ). The rate of FDI stock growth converges from an initial rate tied to empirical inflows to an exogenous rate ( xfdistockr ).

$ XFDISTOCK_r=EXFDISTOCK_r*(1+\frac{FDIRIn}{100})*\mathbf{xfdistockm}_r $


$ XFDISTOCKR_{r,t=1}=\frac{XFDIFIN_{r,t=1}}{XFDISTOCK_{r,t=1}}*100 $
$ FDIRIn=ConvergeOverTime(XFDISTOCKR_{r,t=1},\mathbf{xfdistockr}_r,100) $

Again the logic is the same for outward flows and stocks.

$ XFDISTOUT_r=EXFDISTOUT_r*(1+\frac{FDIROut}{100})*\mathbf{xfdistockm_r} $


$ XFDISTOUTR_{r,t=1}=\frac{XFDIFOUT_{r,t=1}}{XFDISTOUT_{r,t=1}}*100 $
$ FDIROut=ConvergeOverTime(XFDISTOUTR_{r,t=1},\mathbf{xfdistockr}_r,100) $

There is, therefore, in the formulation a tension between the convergence of stock patterns to the analytic function for stocks as a portion of GDP and the convergence of them towards growth as specified in the exogenous parameter for rate of stock growth ( xfdistockr ). If the model user were to set the exogenous parameter for all geographical units and time points to approximately the rate of global economic growth, the tension would be resolved. Many users will, however, want to override the analytic specification by using that exogenous parameter.

There is one additional element of the formulation for FDI, which is primarily in place for the purpose of model use in scenarios. It will often be desirable for a user to be able to simply specify a rate of global growth in FDI (including potentially sharp retrenchments in FDI) and impose the resulting global FDI levels (WFDI) on the above formulations, letting the above equations determine country/regional stocks and flows within the global constraint. This formulation element uses a rate of growth (WFDIR) in the ratio of FDI to world GDP (WFDIRGDP) that is set to move from the initially calculated growth rate (WFDIFRI) of world foreign direct investment relative to GDP growth to 0.5% (now WFDIGR) over the first 20 years of the model run. The calculation takes into account the expected depreciation rate of the FDI stock as represented by the lifetime of manufacturing capital ( lks ). The user has some control over this global growth pattern in the form of a multiplier on global FDI ( wfdiwgrm ). Once WFDI is determined, it is used to normalize the country/regional calculations of stocks (XFDISTOCK and XFDISTOUT)—normalization not shown in the equations.

$ WFDI=WFDIRGDP_{t-1}*WGDP*(1+WFDIR*\mathbf{wfdiwgrm}) $


$ WFDIR=ConvergeOverTime(WFDIGRI_{t=2},WFDIGR,20) $
$ WFDIRGDP_{t-1}=\frac{WFDI_{t-1}}{WGDP_{t-1}} $
$ WFDIGRI_{t=2}=\frac{WFDIFLOWS_{t=2}*(1+WFDIGR_{t=2})-\frac{WFDISTOCK_{t=2}}{\mathbf{lks}_{3=manuf}}}{WFDISTOCK_{t=2}}-WGDPGROWTH_{t=2} $
$ WGDPGROWTH_{t=2}=\frac{WGDP_{t=2}-WGDP_{t=1}}{WGDP_{t=1}} $
$ WFDIGR=0.005 $

The changes in the ultimate values of stocks, of course, then provide gross inflows and outflows.

$ XFDIFIN_{r,t}=XFDISTOCK_{r,t}-XFDISTOCK_{r,t-1}+\frac{XFDISTOCK_{r,t-1}}{\mathbf{lks}_{3=manuf}} $
$ XFDIFOUT_{r,t}=XFDISTOUT_{r,t}-XFDISTOUT_{r,t-1}+\frac{XFDISTOUT_{r,t-1}}{\mathbf{lks}_{3=manuf}} $

Obtaining data for initialization of the stocks and flows of FDI posed some challenges. UNCTAD’s annual World Investment Report had some data on stocks, but they proved difficult to obtain electronically. We therefore turned once again to the World Development Indicators, in spite of the fact that the source provides only flows. It does, however, basically provide both net inflows and net outflows (XFDIFIN and XFDIFOUT). Because of the instability in these numbers over time, the last five years of data were averaged to compute initial conditions for annual flows in the model.

Integrating the flows from 1970, on the assumption that there was relatively little FDI prior to 1970, provided estimates of stocks that seemed fairly reasonable when checked against some of the UNCTAD stock data. But because these do not necessarily yield the same totals for global inflows and outflows, the two sets of numbers were summed for their respective totals, true values were assumed to be the average, and inflows and outflows were normalized to that average. The result was initialization of FDI stocks from abroad (XFDISTOCK) and FDI stocks held abroad (XFDISTOUT).

International Accounting and Financial Equilibration

The documentation of the domestic side of the SAM representation explains equilibrating dynamics of two kinds: those around goods and service markets and fluctuations in inventories or stocks (both by sector via relative prices and overall via interest rates) and those around financial assets and liabilities of agent-classes (via adjustment multipliers sensitive to the level of debt), especially government debt. On the international side of the SAM structure, the key equilibrating dynamic centers on the total level of international debt of a country. Changes in foreign reserves and short-term governmental borrowing play important short-term buffering roles Exchange rates are the key longer-term equilibrating variable.

Conceptual foundations for the dynamics build largely on two concepts: current account balance (CURACT) and capital account balance (CAPACT). Although in terms of definition they are equal with opposite signs, it is more complicated than that. Current account equals the trade balance (TRADEBAL) of relative-price adjusted exports (XRPA) minus imports (MRPA), plus the net outflow of foreign aid (AID), plus foreign workers’ remittances to home countries, plus pension payments to retirees living abroad, plus the rents, interest, profits, and dividends paid on past capital inflows. Capital account equals the net inflow of underlying capital flows (the change in stocks), both long-term and short-term. The long-term includes foreign direct investment; the short term includes hot money in bank deposits and T-bills.

Although the current and capital accounts must balance, the balance often relies in the very short term on residual changes in stocks, namely reserve holdings and reactive government borrowing. In the longer-term exchange rate and interest rate fluctuations help maintain the balance by affecting the dynamics of the more slowly adjusting trade and longer-term financial flows. IFs brings together most of these elements in its representations of the international financial dynamics around the SAM.

Current Account

IFs computes the current account balance from the elements indicated above, except that pension liabilities abroad are not represented. Although actual foreign direct investment and portfolio flows belong in the capital account (see below), the net earnings on the assets abroad and in-country belong in the current account. In the formulation below, not all government or firm debt is represented as a basis for generating international flows, only international government debt (XGOVTDEBT, not GOVDEBT, which is also different in that it in IFs it is a percent of GDP) and only international firm debt (XFIRMDEBT).

$ Curact_r=XRPA_r-MRPA_r+AID_r+XWORKREMIT_r-Interest_r $


$ Interest_r=\mathbf{lintr}*(IFIDebt_r+FDIDebt_r+PortDebt_r+FirmDebt_r+GovDebt_r) $
$ FirmDebt_r=XFIRMDEBT_r $
$ GovtDebt_r=XGOVTDEBT_r $

Most of the above formulation is focused on determining the net interest, profit, dividend flows, which are specified as an exogenous real interest rate ( lintr ) times the net stocks of assets mostly discussed earlier.

Captial Account

IFs computes a limited (or partial) capital account balance from the elements of the capital account over which the government normally has least direct control. The limited capital account balance purposefully excludes the two equilibrating elements of changes in reserves and short-term government compensatory borrowing.

$ CapActLim_r=FDIFlow_r+PortFlow_r+IFIFlow_r $



External Debt

The current and capital accounts come together in the determination of external balancing debt. The model makes no assumption that it can anticipate a government’s relative choice between changes in reserves and changes in debt taken on for balancing purposes (XGOVTDEBTB) to satisfy the discrepancy between the current and capital accounts. . In addition to updating current year values of that debt with current and capital account information (in IFs the sign on capital account is reversed from that on the current account, so both are subtracted), the loan portion of foreign aid (LoanPortionAid), determined by the parameter aidlp , is also added to the debt.

$ XGOVTDEBTB_{r,t+1}=XGOVTDEBTB_{r,t}-CURACT_r-CapActLim_r+LoanPortionAid_r $


$ LoanPortionAid_r=AID_r*\mathbf{aidlp}_r $

Total external governmental debt is set as the basic debt plus (normally longer-term) IFI credits and loans.


Total external debt is the sum of governmental indebtedness and firm debt.


Although IFs does not separate out reserve position changes from this debt, it has begun to develop an initial representation of reserves (XRESERVES) and at some point that separation may occur. Currently the equations (not shown) simply move XRESERVES from the initial portion of GDP toward 15 percent of GDP. That allows a quick calculation of liquidity as the current account ratio to the reserves.

$ LIQUIDITY_r=\frac{CURACT_r}{XRESERVES_r}*100 $

External Debt for Exchange Rates and External Accounts Balancing

Exchange rates are a function of external debt, using a PID controller mechanism to maintain relative balance with a target over time of "TypicalDebt" at a given GDP per capita level. The target can be modified with an exogenous parameter ( repayrm ).

$ XDebtTargetPerGDP_r=ConvergeOverTime(XDebtIRat_r,UltimateTarget_r,100) $


$ XDebtIRat_r=\frac{XDEBTRPA_{r,t=1}}{GDPPOT_{r,t=1}} $
$ UltimateTarget_r=Amin(XDebtIRat_r,TypicalDebt_r)*\mathbf{repayrm}_r $
$ TypicalDebt_r=F(GDPPCP_r) $

The exchange rates change with a multiplier computed from the debt levels, where the multiplier and therefore the change use the PID adjuster function of IFs so as to control movement toward equilibrium with both the absolute debt level and the change in it. The exchange rate term is also imbedded in a moving average formulation, pulling it very slowly back toward its initial index value of 1.0.

$ EXRATE_r=EXRATE_{r,t-1}*Mul*0.98+.02*1.0 $


$ Mul=ADJSTR(GDPPOT_r,Diff1,Diff2,Par1,Par2) $
$ Diff1=XDEBTRPA_r/GDPPOT_r-XDebtTargetPerGDP_r $

The parameters used in the exchange rate adjustment above are second-order parameters computed from exogenous specifications ( elerca1, elerca2 ). For entrepot economies with a high ratio of trade to GDP, the parameters are scaled back so as to avoid over-reaction.

$ Par1=\mathbf{elerca1}*mul*0.5 $
$ Par2=\mathbf{elerca2}*mul*0.35 $

where if

$ X_{r,t-1}+M_{r,t-1}>GDPPOT_r $


$ Mul=\frac{GDPPOT_r}{X_{r,t-1}+M_{r,t-1}} $


$ Mul=0.2 $

Foundations in the Preprocessor for Extending Treatment of Debt

With debt, initialization of concepts with data was a challenge. The first step in the initialization of all financial stocks within the pre-processor is the processing of data on total external debt of countries (XDEBTRPA). The raw data came from the WDI. Null values for developing countries are filled with zeros. Unfortunately, external debt data from the WDI are for developing countries only and there are no corresponding asset data for the lending countries, presumably mostly developed countries. As in other such instances, the pre-processor now assigns the total of external debt of developing countries to developed countries, defined for this purpose as countries with no external debt indicated and GDP per capita of $10,000 or more. The assignment is proportional to GDP of the more developed countries. Both the presumption that more developed countries are primarily asset holders and the proportional assignment are clearly inaccurate. The rationale for both is that the resultant stock assumptions, on average, are almost certainly better than assumptions that asset stocks of such countries are uniformly zero. Further, the dynamics of the model will be more greatly determined by change in stocks from initial levels than by the absolute values of them. Nonetheless, data on these assets would be highly desirable.

In the preprocessor some steps have been taken to further refine the specification of government debt, for instance the separation of externally-held debt from domestically-held debt and the differentiation of publicly guaranteed and not-guaranteed debt. Although these distinctions have not been brought into the forecasting side of IFs yet, and the need for them is not great, it merits comment on the preprocessor foundations.

With respect to firms, the preprocessor reads data from WDI on publicly guaranteed and not-guaranteed debt, both of which are assumed to be held by firms and which are summed to obtain total external firm debt (XFIRMDEBT). Holes are filled with zeros because levels of debt are often very small and non-reporting often will imply debt levels near zero. Because the data only cover stocks of debt held by developing countries as liabilities, the stocks as assets were once again allocated to developed countries, specifically to firms within them, according to GDP size.

With respect to government, not all of government debt is external. In fact, especially for developed countries, households and firms often hold much of it. In order to divide government debt between foreign and domestic holders of it, the preprocessor first computes government external debt. This is done by assuming that households do not have any real external debt, so that all external debt not assignable to firms is governmental external debt.


The assumption was again made that all of this debt should be assigned as assets to governments in developed countries. Rather than assigning it on the basis of GDP, however, it was assigned on the basis of official development assistance (ODA). The OECD and WDI both provide data on ODA. Because significant portions of ODA come as loans rather than grants, the assignment of the government asset offset of developing government debt based on the size of ODA makes sense.

Again, only in the preprocessor and not in the forecasting portion of the model, governmental domestic debt is calculated as total government debt minus the external stock.

$ GOVTDEBTD_r=TotGovtDebt_r-XGOVDEBT_r $


  1. Hughes, B. B., & Hossain, A. (2004). LONG-TERM SOCIOECONOMIC MODELING (WITH UNIVERSAL, GLOBALLY INTEGRATED SOCIAL ACCOUNTING MATRICES IN A GENERAL EQUILIBRIUM MODEL STRUCTURE) (Working Paper No. Working Paper 2004.05.07). Denver, CO: Pardee Center for International Futures, Josef Korbel School of International Studies, University of Denver. Retrieved from
  2. Pesaran, M. Hashem and G. C. Harcourt. 1999. Life and Work of John Richard Nicholas Stone. Available at
  3. Stone, Richard. 1986. "The Accounts of Society," Journal of Applied Econometrics 1, no. 1 (January): 5-28.
  4. Pyatt, G. and J.I. Round, eds. 1985. Social Accounting Matrices: A Basis for Planning. Washington, D.C.: The World Bank.
  5. Thorbecke, Erik. 2001. "The Social Accounting Matrix: Deterministic or Stochastic Concept?", paper prepared for a conference in honor of Graham Pyatt's retirement, at the Institute of Social Studies, The Hague, Netherlands (November 29 and 30). Available at
  6. Pan, Xiaoming. 2000 (January). "Social and Ecological Accounting Matrix: an Empirical Study for China," paper submitted for the Thirteenth International Conference on Input-Output Techniques, Macerata, Italy, August 21-25, 2000.
  7. Khan, Haider A. 1998. Technology, Development and Democracy. Northhampton, Mass: Edward Elgar Publishing Co.
  8. Duchin, Faye. 1998. Structural Economics: Measuring Change in Technology, Lifestyles, and the Environment. Washington, D.C.: Island Press.
  9. Barker, T.S. and A.W.A. Peterson, eds. 1987. The Cambridge Multisectoral Dynamic Model of the British Economy. Cambridge: Cambridge University Press.
  10. Kehoe, Timothy J. 1996. Social Accounting Matrices and Applied General Equilibrium Models. Federal Reserve Bank of Minneapolis, Working Paper 563.
  11. Bussolo, Maurizio, Mohamed Chemingui and David O’Connor. 2002. A Multi-Region Social Accounting Matrix (1995) and Regional Environmental General Equilibrium Model for India (REGEMI). Paris: OECD Development Centre (February). Available
  12. Jansen, Karel and Rob Vos, eds. 1997. External Finance and Adjustment: Failure and Success in the Developing World. London: Macmillan Press Ltd.
  13. As a graduate student in what is now the Josef Korbel School of International Studies, Anwar Hossain worked with Barry Hughes in the development of the SAM structure and database for IFs (see Hughes and Hossain 2003); his help was much appreciated.
  14. Hughes, B. B., & Hossain, A. (2004). LONG-TERM SOCIOECONOMIC MODELING (WITH UNIVERSAL, GLOBALLY INTEGRATED SOCIAL ACCOUNTING MATRICES IN A GENERAL EQUILIBRIUM MODEL STRUCTURE) (Working Paper No. Working Paper 2004.05.07). Denver, CO: Pardee Center for International Futures, Josef Korbel School of International Studies, University of Denver. Retrieved from
  15. North, Douglass C., John Joseph Wallis, and Barry R. Weingast. 2009. Violence and Social Orders: A Conceptual Framework for Interpreting Recorded Human History. Cambridge: Cambridge University Press.
  16. Modigliani, Franco. 1976. “Life-cycle, individual thrift, and the wealth of nations,” American Economic Review, 76(3), 297–313.
  17. Zhang, J., & Zhang, J. (2005). The Effect of Life Expectancy on Fertility, Saving, Schooling and Economic Growth: Theory and Evidence. The Scandinavian Journal of Economics, 107(1), 45–66.
  19. Lee, Ronald D. and Andrew Mason, eds. 2011. Population Aging and the Generational Economy: A Global Perspective. Cheltenham, UK: Edward Elgar.