Skip to content

Single-industry calibration refresh: what's coming and what it depends on #8

Description

@marcelolafleur

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.

The dependency chain.

  1. Require ogcore 0.16.3, regenerate the baseline demographics, and guard against drift #7 (open): migrates the baseline to ogcore 0.16.3 and regenerates the demographics — same fix as Require ogcore 0.16.3 and regenerate the baseline demographics EAPD-DRB/OG-PHL#67 and Regenerate baseline calibration for ogcore 0.16.3 demographics EAPD-DRB/OG-ZAF#134. Independent of the rest; can merge any time.
  2. 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.
  3. 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.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions