`update_equilibrium()` updates the equilibrium to a counterfactual situation with new trade costs and/or other changes.

update_equilibrium(
  model = NULL,
  initial_conditions = NULL,
  model_scenario = NULL,
  settings = NULL
)

Arguments

model

Model specification to run, e.g. caliendo_parro_2015()

initial_conditions

List of initial conditions.

model_scenario

List of counterfactual conditions

settings

List of settings. `elasticity_convention` may be `"auto"` (the default, which converts legacy inverse/sign conventions with a warning), `"silent"`, or `"strict"`.

Value

An S3-classed `kite_result` (also inheriting the model class, e.g. `caliendo_parro_2015`, `chowdhry_hinz_kamin_wanner_2022` or `mahlkow_wanner_2021`) with elements: `model` (character id), `model_function` (the model function used), `initial_conditions`, `model_scenario`, `output` (named list of result tables produced by the model), `settings`, and an `info` block with `convergence` (TRUE / FALSE / NA), `criterion`, `iterations`, `elapsed_seconds` and `accounting`. `accounting` is the result of the world trade balance check (see Details). Use [process_results()] for downstream formatting.

Details

Convergence also requires that the solved trade balances sum to zero for the world, within `settings$tolerance_accounting` (default 1e-6) times world value added, and that solved value added is positive. The default lets rounding residuals in baseline data pass. If the trade balance rule cannot hold for the world, `convergence` is FALSE and a warning of class `kite_world_trade_balance` explains why. This happens with `trade_balance_rule = "fixed_country_share"` after a shock, and with baseline trade balances that do not sum to zero under every rule except `"zero"`. `results$info$accounting` holds `ok`, `rule`, `world_trade_balance`, `baseline_world_trade_balance`, `world_value_added`, `tolerance` and `reason`.