You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are refreshing the single-industry calibration with official Brazilian data, following what we did in OG-ZAF. This issue explains the plan and the order things need to land in.
What the refresh does. The current baseline runs, but most of its parameters are placeholders or borrowed from other country models. The refresh replaces them with values calibrated from Brazilian sources:
Pensions. This is the big one. The baseline currently pays essentially no public pensions, while Brazil's system is around 13% of GDP — the dominant item in the budget. We switch to OG-Core's Defined Benefits system, matching the post-2019 RGPS benefit rule, and anchor the accrual rate so steady-state pension spending hits 12.5% of GDP.
Income tax rates computed from the Receita Federal's Grandes Números DIRPF tables (calendar 2024, 41.7 million declarations), replacing stylized rates. The capital-income rate reflects the 2026 dividend tax.
Consumption tax (0.09 → 0.13), the effective rate from taxes on products in the national accounts. The old value covered only PIS/COFINS.
Transfer targeting. Transfers were distributed in proportion to population. Brazil has Bolsa Família — the bottom quarter of lifetime earners now receives 54% of transfers, built from World Bank and IPEA incidence data.
Smaller items with sources: bequest tax (ITCMD), capital-account openness (Chinn-Ito), payroll/income revenue split (RFB collections), public capital (IMF PIMA), and the long-run debt target (IMF Article IV).
Each value comes with docs explaining the arithmetic, and where we extracted data to compute a parameter, the extract ships in the package with a test that re-derives the parameter from it.
Fix the Defined Benefits and Points System pensions so they can actually run OG-Core#1167 (open): Brazil is the first country model to use the Defined Benefits pension system, and it turned out that code had never run. That PR fixes it, for the steady state and the transition path. The refresh cannot ship on a released ogcore until it merges and a version is cut.
The refresh PR (ready locally): lands after (1) and (2), floored to the new ogcore release. The full baseline and a reform transition path already solve against the #1167 branch, pass the resource-constraint checks, and hit the calibration targets.
Known items left open after the refresh: retuning labor-supply disutility, refining the unemployment-insurance incidence with PNADC microdata, and a proper informality treatment (which affects the income tax and payroll assumptions together).
We are refreshing the single-industry calibration with official Brazilian data, following what we did in OG-ZAF. This issue explains the plan and the order things need to land in.
What the refresh does. The current baseline runs, but most of its parameters are placeholders or borrowed from other country models. The refresh replaces them with values calibrated from Brazilian sources:
Each value comes with docs explaining the arithmetic, and where we extracted data to compute a parameter, the extract ships in the package with a test that re-derives the parameter from it.
The dependency chain.
Related: PSLmodels/OG-Core#1014 (pension system limitations, commented with what remains after #1167), PSLmodels/OG-Core#1075 (fixed by #1167), PSLmodels/OG-Core#1169 (NDC system gap, found along the way).
Known items left open after the refresh: retuning labor-supply disutility, refining the unemployment-insurance incidence with PNADC microdata, and a proper informality treatment (which affects the income tax and payroll assumptions together).
cc @rickecon @jdebacker