Skip to content
16 changes: 8 additions & 8 deletions docs/book/content/calibration/exogenous_parameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ kernelspec:
| $\texttt{use_zeta}$ | Whether to distribute bequests between lifetime income groups | 0.00E+00 |
| $\zeta$ | Distribution of bequests | Too large to report here, see default parameters JSON |
| $Z_{t}$ | Total factor productivity | Too large to report here, see default parameters JSON |
| $\gamma$ | Capital share of income | [0.401...0.401] |
| $\gamma$ | Capital share of income | [0.618...0.618] |
| $\varepsilon$ | Elasticity of substitution between capital and labor | [1.000...1.000] |
| $\delta$ | Capital depreciation rate | 0.050 |
| $g_{y}$ | Growth rate of labor augmenting technological progress | 0.00E+00 |
| $g_{y}$ | Growth rate of labor augmenting technological progress | 0.060 |
| $\texttt{tax_func_type}$ | Functional form used for income tax functions | linear |
| $\texttt{analytical_mtrs}$ | Whether use analytical MTRs or estimate MTRs | 0.00E+00 |
| $\texttt{age_specific}$ | Whether use age-specific tax functions | 0.00E+00 |
Expand All @@ -77,14 +77,14 @@ kernelspec:
| $P$ | Coefficient on level term in wealth tax function | [0.000...0.000] |
| $\texttt{budget_balance}$ | Whether have a balanced budget in each period | 0.00E+00 |
| $\texttt{baseline_spending}$ | Whether level of spending constant between the baseline and reform runs | 0.00E+00 |
| $\alpha^{T}_{t}$ | Transfers as a share of GDP | [0.041...0.041] |
| $\alpha^{T}_{t}$ | Transfers as a share of GDP | [0.004...0.004] |
| $\eta_{j,s,t}$ | Distribution of transfers | Too large to report here, see default parameters JSON |
| $\alpha^{G}_{t}$ | Government spending as a share of GDP | [0.267...0.267] |
| $\alpha^{G}_{t}$ | Government spending as a share of GDP | [0.055...0.055] |
| $t_{G1}$ | Model period in which budget closure rule starts | 20 |
| $t_{G2}$ | Model period in which budget closure rule ends | 256 |
| $\rho_{G}$ | Budget closure rule smoothing parameter | 0.100 |
| $\bar{\alpha}_{D}$ | Steady-state Debt-to-GDP ratio | 1.200 |
| $\alpha_{D,0}$ | Initial period Debt-to-GDP ratio | 0.740 |
| $\alpha_{D,0}$ | Initial period Debt-to-GDP ratio | 0.327 |
| $\tau_{d,t}$ | Scale parameter in government interest rate wedge | [0.245...0.245] |
| $\mu_{d,t}$ | Shift parameter in government interest rate wedge | [-0.034...-0.034] |
| $\texttt{avg_earn_num_years}$ | Number of years over which compute average earnings for pension benefit | 35 |
Expand All @@ -97,9 +97,9 @@ kernelspec:
| $\texttt{PIA_minpayment}$ | Minimum PIA payment | 0.00E+00 |
| $\theta_{adj,t}$ | Adjustment to replacement rate | [1.000...1.000] |
| $r^{*}_{t}$ | World interest rate | [0.040...0.040] |
| $D_{f,0}$ | Share of government debt held by foreigners in initial period | 0.237 |
| $\zeta_{D, t}$ | Share of new debt issues purchased by foreigners | [0.237...0.237] |
| $\zeta_{K, t}$ | Share of excess capital demand satisfied by foreigners | [0.900...0.900] |
| $D_{f,0}$ | Share of government debt held by foreigners in initial period | 0.420 |
| $\zeta_{D, t}$ | Share of new debt issues purchased by foreigners | [0.120...0.120] |
| $\zeta_{K, t}$ | Share of excess capital demand satisfied by foreigners | [0.650...0.650] |
| $\xi$ | Dampening parameter for TPI | 0.400 |
| $\texttt{maxiter}$ | Maximum number of iterations for TPI | 250 |
| $\texttt{mindist_SS}$ | SS solution tolerance | 1.00E-09 |
Expand Down
45 changes: 34 additions & 11 deletions docs/book/content/calibration/macro.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,21 @@ As the default rate of labor augmenting technological change, $g_y$, we use a va

### Foreign holding of government debt in the initial period

The path of foreign holding of domestic debt is endogenous, but the initial period stock of debt held by foreign investors is exogenous. We set this parameter, `initial_foreign_debt_ratio` to 0.95, consistent with [this report from the Ministry of Finance](https://www.mofed.gov.et/media/filer_public/9b/92/9b9264db-1a2b-4cd5-aa7d-f0307d67b4ce/public_sector_debt_statistical_bulletin_no_50.pdf).
The path of foreign holding of domestic debt is endogenous, but the initial period stock of debt held by foreign investors is exogenous. We set this parameter, `initial_foreign_debt_ratio`, to 0.42 using the Ministry of Finance Public Sector Debt Portfolio Analysis for FY2023/24, where external debt is USD 28.89 billion out of USD 68.86 billion of total public debt.

### Foreign purchases of newly issued debt

We set $\zeta_D = 0.95$, the same as initial holdings of government debt by foreigners.
We set $\zeta_D = 0.12$ using the same FY2023/24 Ministry of Finance debt portfolio analysis. In that year, the change in total public debt was about USD 5.53 billion while the change in external debt was about USD 0.64 billion, implying that roughly 11.6% of new debt issuance was external.

### Foreign holdings of excess capital

We set $\zeta_K = 0.95$. Note, this parameter is harder to pin down from the data as foreign purchases on "excess" capital demand is not typically directly measured or reported. A value of 0.95 implies a high degree of openness to international capital flows.
We set $\zeta_K = 0.65$. Note, this parameter is harder to pin down from the data as foreign purchases on "excess" capital demand is not typically directly measured or reported. A value of 0.65 implies a relatively open economy while still allowing for a sizable domestic share of excess capital demand.

## Government Debt, Spending and Transfers

### Government Debt

The path of government debt is endogenous. But the initial value and the steady-state (long-run) value are exogenous. To avoid converting between model units and dollars, we calibrate the initial debt to GDP ratio, rather than the dollar value of the debt. This is the model parameter $\alpha_D$ and the parameter name in [`ogeth_default_parameters.json`](https://github.com/EAPD-DRB/OG-ETH/blob/main/ogeth/ogeth_default_parameters.json) is `initial_debt_ratio`. We compute this from the ratio of publicly held debt outstanding to GDP. Based on the 2019 value reported by the World Bank, the initial debt-to-GDP ratio in Ethiopia is 0.314.[^macro_wb_DY]
The path of government debt is endogenous. But the initial value and the steady-state (long-run) value are exogenous. To avoid converting between model units and dollars, we calibrate the initial debt-to-GDP ratio, rather than the dollar value of debt. This is the model parameter $\alpha_D$ and the parameter name in [`ogeth_default_parameters.json`](https://github.com/EAPD-DRB/OG-ETH/blob/main/ogeth/ogeth_default_parameters.json) is `initial_debt_ratio`. We set `initial_debt_ratio = 0.327` using the IMF WEO gross general government debt series for Ethiopia, where FY2023/24 mapped to calendar year 2024 is 32.66% of GDP.


#### Interest rates on government debt
Expand All @@ -37,23 +37,46 @@ We assume that there is a wedge between the real rate of return on private capit

where $\tau_d$ is the scale parameter and $\mu_d$ is the level shift parameter. We set the values of these two parameters to 0.245 and -0.034, respectively. These are found by using the estimated relationship between corporate and sovereign yields in {cite}`LMW2023` (Table 8, Column 2) and simulating a series of corporate yields given a series of sovereign yields between 2% and 12%. We then estimate the scale and level shift parameters that best fit these simulated data using ordinary least squares.

We use this emerging-markets relationship because a calibration based on readily available US corporate and sovereign yield data would be a poor proxy for Ethiopia. The goal of these parameters is not to capture a country-specific live spread series, but to impose a reasonable wedge between private and government borrowing rates using evidence from a broader sample of emerging markets.

These values are fixed calibrated defaults in [`ogeth_default_parameters.json`](https://github.com/EAPD-DRB/OG-ETH/blob/main/ogeth/ogeth_default_parameters.json); they are not refreshed from live data during calibration updates. The following Python reproduces the one-time calculation used to obtain them:

```python
import numpy as np
import statsmodels.api as sm

sov_y = np.arange(20, 120) / 10
corp_yhat = 8.199 - (2.975 * sov_y) + (0.478 * sov_y**2)
corp_yhat = sm.add_constant(corp_yhat)
res = sm.OLS(sov_y, corp_yhat).fit()

r_gov_shift = -res.params[0] / 100
r_gov_scale = res.params[1]

print(r_gov_shift) # -0.03376625043803517
print(r_gov_scale) # 0.24484763593657818
```

We store these defaults rounded to five decimal places in the packaged JSON:
`r_gov_shift = -0.03377` and `r_gov_scale = 0.24485`.

### Aggregate transfers

Aggregate (non-Social Security) transfers to households are set as a share of GDP with the parameter $\alpha_T$. We exclude Social Security from transfers since it is modeled specifically. We compute this from the IMF GFS Statement of Operations data as
<center>$\alpha_T = (\texttt{G27\_T} - \texttt{G271\_T}) / 100$</center>
For Ethiopia, the available IMF GFS percent-of-GDP series for this calibration are published under the `Budgetary central government` sector (`S1311B`), so the OG-ETH calibration uses that sector rather than mechanically reusing another country repo's sector code. Using the 2024 IMF values for `G27_T` and `G271_T`, the default calibration sets $\alpha_T = 0.0$.
Aggregate (non-Social Security) transfers to households are set as a share of GDP with the parameter $\alpha_T$. We exclude Social Security from transfers since it is modeled specifically. In OG-ETH, the relevant concept is government-financed, non-pension transfers paid to households. For Ethiopia, the IMF GFS `S1311B` social-benefits series (`G27_T` and `G271_T`) do not line up well with that concept in the calibration year because they miss the main FY2024/25 government cash contributions to the rural PSNP and urban UPSNP.

Instead, the default calibration uses the IMF program target for Government Contributions to Productive Safety Net Programme cash transfers in FY2024/25 and scales it by the IMF nominal GDP series for the same fiscal year. The FY2024/25 transfer target is 51.4 billion birr and nominal GDP is 14,856 billion birr, implying $\alpha_T = 51.4 / 14{,}856 \approx 0.00346$, which we round to 0.0035. This choice is also consistent with the World Bank development policy financing documents that place the government contribution to rural and urban safety nets at about 0.4% of GDP in FY2024/25. Using the 2024 calibration year, the default calibration therefore sets $\alpha_T = 0.0035$.

### Government expenditures

Government spending on goods and services are also set as a share of GDP with the parameter $\alpha_G$. We define government spending as:
<center>Government Spending = Total Outlays - Transfers - Net Interest on Debt - Social Security</center>
In IMF GFS Statement of Operations terms, we compute
<center>$\alpha_G = (\texttt{G2\_T} - \texttt{G24\_T} - \texttt{G27\_T}) / 100$</center>
Using Ethiopia's 2024 `S1311B` IMF GFS percent-of-GDP series, the default calibration sets $\alpha_G = 0.0453$.
For Ethiopia, the concept behind $\alpha_G$ is closer to government consumption and public-goods spending than to a budgetary-central-government outlay residual. Because the IMF GFS data available for Ethiopia are published for `Budgetary central government` (`S1311B`), while the model concept is broader and closer to general government spending on goods and services, the default calibration uses the World Bank indicator `NE.CON.GOVT.ZS` instead of mechanically reusing the IMF construction used elsewhere.

Using the World Bank's 2024 value for general government final consumption expenditure, the default calibration sets $\alpha_G = 0.0552$.


(SecLWI_footnotes)=
## Footnotes
The following are the footnotes for this section.

[^macro_wb_DY]: See https://data.worldbank.org/country/ethiopia, accessed Nov. 17, 2025.
[^macro_wb_DY]: The macro debt and transfer updates above use FY2023/24 or FY2024/25 sources mapped to the repo's 2024 calibration year when that is the closest official match.
1 change: 0 additions & 1 deletion docs/create_doc_figures.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
from ogcore import parameter_plots as pp
from ogcore import demographics as demog


CUR_DIR = os.path.dirname(os.path.realpath(__file__))
UN_COUNTRY_CODE = "231"
plot_path = os.path.join(CUR_DIR, "book", "content", "calibration", "images")
Expand Down
1 change: 0 additions & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ dependencies:
- fsspec
- aiohttp
- xlwt
- statsmodels
- linearmodels
- black
- jupyter
Expand Down
1 change: 0 additions & 1 deletion ogeth/input_output.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import os
from ogeth.constants import CONS_DICT, PROD_DICT


CUR_DIR = os.path.dirname(os.path.realpath(__file__))
sam_path = os.path.join(CUR_DIR, "data", "IFPRI_SAM_ETH_2022_SAM.csv")

Expand Down
Loading
Loading