Government

Table of contentsdocs/gcubed/government/index.md

G-Cubed models can be extended to include various kinds of international fund transfers. These extensions involve modifications to the SYM files and to the model database.

The following three examples are described in detail below:

  • Private remittances - transfers of funds by households in one region to households in another region
  • Permit sales - sales of permits by firms or the government in one region to firms or the government in another region, again resulting in transfers of funds from the buying region to the selling region
  • Official lending - loans from the government in one region to the government in another region, typically at a discounted interest rate

The implementation of these three examples is explained below.

Note that in the SYM examples below, there is a set defined for the USA region and a set defined for all regions except the USA.

set region_USA (USA)              'United States' ;

.
.
.

set regions   (USA, ... ,ROW)     'all countries and regions' ;
set notUSA = regions - region_USA 'all countries and regions except the United States' ;  

Each of the new variables will need to be inserted into the database.csv file and given suitable values in each of the database years. The ordering of the variables in the database can be determined by the *_vars.csv file that is produced when the SYM processor is run.

Private remittances

Remittances are transfers of wealth from households in one region (without loss of generality) to households in another region. They are represented by the REMIT variable for all regions other than the USA and are expressed in Local Currency Units (LCUs).

Remittances are exogenous for all non-USA regions. The remittances for the USA are expressed in US dollars (USD) and are the negative of the sum of the remittances across all other regions, ensuring that global remittances net to zero.

Remittances impact on real Gross National Product (GNP). A transfer from the USA to another region increases real GNP of the other region and reduces the GNP of the USA. Real GNP is measured in LCUs rather than USD so the remittances need to have an exchange rate conversion before being included in the real GNP calculation. REXN for the USA is always 1 so it is omitted from the GNPR equation for the USA without loss of generality.

Remittances also contribute to current account balances. Remittances of wealth from the USA to another region increase the Current account balance in the other region and decrease the current account balance in the USA.

Remittances also lead to increases in household income in the receiving regions and decreases in the USA. By impacting on INCM, they flow through to consumption and saving, and from saving into capital accumulation and thus through to total wealth.

The following SYM declarations and equations specify the necessary additional variables in the model and how they enter the model’s equations.


// Remit variables for the USA and for all other regions
variable REMITU(region_USA)  'USD remittances paid from USA'       end,gdp ;
variable REMIT(notUSA)       'USD remittances received from USA'   exo,gdp ;

// Global remits sum to zero.
REMITU = -sum(notUSA,REMIT) ;

// Current account deficit equations are adjusted to include REMIT variables.
notUSA: CURN = TBAL + (REMIT + INAS)/exp(REXN) ;
notUSA: CURR = TBAU + REMIT + IRAS ;
region_USA: CURN = TBAL + REMITU + INAS ;
region_USA: CURR = TBAU + REMITU + IRAS ;

// Real GNP
region_USA: GNPR = GDPR + (PBGU + sum(sec_std,PBFU) + REMITU + OFLOANU + IRAS) ;
notUSA: GNPR = GDPR + (PBG + sum(sec_std,PBF) + REMIT + OFLOAN + IRAS)/exp(REXN) ;

// Household income

notUSA: INCM = (
            TRAN
          + REMIT
          - TAXL
          + INTR*BOND
          + IRAS/exp(REXN)
          + PRFZ + (1-TCOR)*PRFT
          + (1-TINC)*( exp(WAGE)*(IITL+CNPL)+ exp(WAGG)*(GOVL) + sum(sec_std,exp(WAG)*LAB) ) / exp(PRID)
       ) ;

region_USA: INCM = (
            TRAN
          + REMITU
          - TAXL
          + INTR*BOND
          + IRAS/exp(REXN)
          + PRFZ + (1-TCOR)*PRFT
          + (1-TINC)*( exp(WAGE)*(IITL+CNPL)+ exp(WAGG)*(GOVL) + sum(sec_std,exp(WAG)*LAB) ) / exp(PRID)
       ) ;

Permit sales

All permits are net sales of permits to the USA by non-USA regions. Such sales can be negative, implying a sale by the USA to the non-USA region.

Permits can be sold by firms or governments in each region. Firms sell permits to firms in other regions. Governments sell permits to governments in other regions.

The sale of a permit results in a transfer of wealth from the buying region to the selling region.

The value of permits sold by a government in a given year, in USD is represented by PBG(region). These sales result in reductions to the debt owed by the government selling the permits and increases in the debt owed by te government buying the permits.

The value of permit sales through firms, PBF(sec_std,region), contribute to standard sector firm profits in the selling region.

// Net value of permits sold by firms
variable PBFU(sec_std, region_USA) 'USD value of permits sold by firms'                 end,gdp ;
variable PBF(sec_std, notUSA)      'USD value of permits sold by firms'                 exo,gdp ;

// Net value of permits sold by government
variable PBGU(region_USA)    'USD value of permits sold by government'                  end,gdp ;
variable PBG(notUSA)         'USD value of permits sold by government'                  exo,gdp ;

// Global permit sales net to zero
PBFU = -sum(notUSA,PBF) ;
PBGU = -sum(notUSA,PBG) ;

// Current account
region_USA: CURR = TBAU + PBGU + sum(sec_std,PBFU) + IRAS ;
notUSA:     CURR = TBAU + PBG + sum(sec_std,PBF) + IRAS ;

region_USA: CURN = TBAL + PBGU + sum(sec_std,PBFU) + INAS ;
notUSA:     CURN = TBAL + (PBG + sum(sec_std,PBF) + INAS)/exp(REXN) ;

// Government debt
region_USA: lead(BOND) = DEFI + BOND*(1-labgrow) - PBGU ;
notUSA:     lead(BOND) = DEFI + BOND*(1-labgrow) - PBG ;

// Real GNP
region_USA: GNPR = GDPR + (PBGU + sum(sec_std,PBFU) + IRAS) ;
notUSA:     GNPR = GDPR + (PBG  + sum(sec_std,PBF)  + IRAS)/exp(REXN) ;

// Firm profit - note that this example does not include permits for sectors Y (raw capital) or Z (household capital).
notUSA: PRF = PBF + (
                 OUP*exp(PRP)
               - ENT*exp(PRE)
               - LAB*exp(WAG)
               - OIN*exp(POI)
               - (1-TITC)*INV*exp(PRII)
          ) / exp(PRID) ;

region_USA: PRF = PBFU + (
                 OUP*exp(PRP)
               - ENT*exp(PRE)
               - LAB*exp(WAG)
               - OIN*exp(POI)
               - (1-TITC)*INV*exp(PRII)
          ) / exp(PRID) ;

Official loans between region governments

Official loans are made at a discounted interest rate OINTR(notUSA), that is specific to each region. They are all (again without loss of generality) represented as loans from the USA to other regions. Interest on these loans accrue over time, building up the value of the official debt. Eventually the official loans must be fully repaid.

Official loans for non-USA regions are represented by the OFLOAN(notUSA) variable, again expressed in USD for all regions. They are exogenous Their cumulative sum across all projection years should be zero.

US Official loans are the negative of the sum of all official loans by non-USA regions.

The loans are flows between regions. The stock of official debt is tracked by the OFDEBT(notUSA) variable, again expressed in USD for all regions. If the official loans are discounted by 1 percentage point, OINTR would be set equal to 1 in the database or simulation layer.

// Official interest rates
variable OINTR(notUSA) 'discount on the interest rate on official loans from the USA'    exo,pct ;

// Official lending in a given year
variable OFLOANU(region_USA) 'USD net official loans paid from USA'                     end,gdp ;
variable OFLOAN(notUSA)      'USD net official loans received from USA'                 exo,gdp ;

// Official debt (lending from international organisations funded at source by the USA)
variable OFDEBTU(region_USA) 'Official debt owed by the USA to other regions'           sta,gdp ;
variable OFDEBT(notUSA)      'USD official debt owed to USA'                            sta,gdp ;

// Global net zero official lending
OFLOANU = -sum(notUSA,OFLOAN) ;

// Official debt accumulation
notUSA:     lead(OFDEBT) = OFLOAN + OFDEBT*(1+(INTR-OINTR)-labgrow) ;
region_USA: lead(OFDEBTU) = -sum(notUSA, OFLOAN + OFDEBT*(1+(INTR-OINTR)-labgrow)) ;

// Current account
region_USA: CURN = TBAL + OFLOANU + INAS ;
notUSA: CURN = TBAL + (OFLOAN + INAS)/exp(REXN) ;

region_USA: CURR = TBAU + OFLOANU + IRAS ;
notUSA: CURR = TBAU + OFLOAN + IRAS ;

// Government deficits
region_USA: DEFI = GOVT + TRAN - TAXT + INTR*BOND - OFLOANU - sum(notUSA, OFDEBT*OINTR);
notUSA:     DEFI = GOVT + TRAN - TAXT + INTR*BOND - OFLOAN + OFDEBT*OINTR;

// Real GNP
region_USA: GNPR = GDPR + OFLOANU + IRAS ;
notUSA:     GNPR = GDPR + (OFLOAN  + IRAS)/exp(REXN) ;

It would also be possible to have interest payments lead to intra-region flows rather than accruing as debt. That would make it easier to design experiments in which the official loans are zero in the long run.

Note that the model will typically not be stable. Eigenvalues will be outside of the unit circle, reflecting the accumulation of official loans. This will not be a problem, as long as the exogenous official lending goes to zero after some number of years.