Skip to content

Adding a New Country

Mariia Var edited this page Sep 30, 2025 · 12 revisions

This page outlines the required steps and code modifications when introducing a new country into the model.


1. Add country-specific input files

The following files need to be generated and then added to the country-specific input folder:

  1. Data Files (not uploaded to GitHub)
  • InitialPopulations
  • EUROMODoutput
  1. Estimation .xlsx Files
  • Regression estimates of the processes:

    • reg_education.xlsx
    • reg_employmentSelection.xlsx
    • reg_fertility.xlsx
    • reg_health.xlsx
    • reg_home_ownership.xlsx
    • reg_income.xlsx
    • reg_labourSupplyUtility.xlsx
    • reg_leaveParentalHome.xlsx
    • reg_partnership.xlsx
    • reg_retirement.xlsx
    • reg_RMSE.xlsx
    • reg_wages.xlsx
  • Alignment targets:

    • policy_parameters.xlsx
    • align_educLevel.xlsx
    • align_popProjections.xlsx
    • align_student_under30.xlsx
  • Mortality and fertility projections

    • projections_mortality.xlsx
    • projections_fertility.xlsx

2. Update Country-Specific Parameters

In the country-specific folder:

  • columns_number_parameters.xlsx
  • parameters.xlsx
    Likely parameters to modify:
    • MIN_WORK_HOURS_WEEKLY
    • LO_INCOME, HI_INCOME (used in KeyFunction2.java)
    • MAX_LABOUR_HOURS_IN_WEEK
    • MIN_HOURLY_WAGE_RATE
    • SAVINGS_RATE

3. Update Code

The following classes are likely to be adjsuted:

  • Labour.java → add new labour categories
  • LabourMarket.java → add new region enums
  • Country.java → add new country specification
  • Region.java → add new region enums
  • Parameters.java → set correct String rgn based on countryString (easy to miss!)
  • SimPathsMultiRun.java and SimPathsStart.java → add new country specification when loading lastDatabaseCountryAndYear
  • BenefitUnit.java → add new regional and labour categories enum Regressors
  • Person.java → add new regional variables
  • .gitignore → update to exclude new country-specific data: InitialPopulations, EUROMODoutput, tax_donor_populations

4. Important Notes

Make sure all regression estimates are available; otherwise, need to adjust the SimPaths code accordingly.

Existing Major Differences Between EU Models

  • Italy (IT)
    • has 5 labour categories in total: "ZERO" plus 4 additional categories with gender heterogeneity.
  • Hungary (HU), Greece (EL), Poland (PL)
    • have 4 labour categories in total: "ZERO" plus 3 additional categories with no gender heterogeneity.
  • Greece (EL)
    • Missing fertility process F1a, requiring adjustments in:
      • Fertility expectations in ExpectationsFactory.java
      • Probability of giving birth in Person.java

Several important parameters are configured in SimPathsModel.java:

  • alignment flags
  • maxAge
  • timeTrendStopsIn
  • timeTrendStopsInMonetaryProcesses

Summary

When adding a new country, you’ll need to update data files, estimation .xlsx files, country parameters, .gitignore, and multiple core classes (Person.java, BenefitUnit.java, Labour.java, LabourMarket.java, Country.java, Region.java, Parameters.java, SimPaths*.java).