qpm_block: Model extension blocks

View source: R/blocks.R

qpm_blockR Documentation

Model extension blocks

Description

A block is a documented, reusable bundle of variables, shocks, parameters and equations that adapts a template to a country. Blocks are how a technical-assistance engagement customizes the canonical model without forking it: add_block() applies one, qpm_diff() shows exactly what changed, and the result is an ordinary qpm_model.

Usage

qpm_block(
  name,
  variables = NULL,
  shocks = NULL,
  params = list(),
  sigma = NULL,
  equations = NULL,
  description = ""
)

Arguments

name

Block name, used in printing and in the model's history.

variables

New variables, from vars() (optional).

shocks

New shocks, from shocks() (optional).

params

Named list of new parameters (optional).

sigma

Named vector of standard deviations for the new shocks (optional; default 1).

equations

Equations, from eqs(): replacements for existing variables and definitions for new ones.

description

One-line description of what the block does.

Details

Equations whose left-hand side names a variable that already exists replace that variable's equation; equations for newly declared variables are appended. Left-hand sides must be bare variable names.

Value

An object of class qpm_block.

See Also

block_food_cpi(), block_fx_intervention()

Examples

b <- qpm_block(
  name = "risk premium shifter",
  params = list(prem_extra = 0),
  equations = eqs(prem ~ rho_prem * prem[-1] +
                    (1 - rho_prem) * (prem_ss + prem_extra) + eps_prem)
)
m <- add_block(qpm_template("bkl"), b)

qpmR documentation built on Sept. 29, 2026, 5:10 p.m.