What (One-liner)
Central bank policy rate model implemented via Taylor (1993) rule: inflation + unemployment + stance → policy rate + 3-direction change probability. US economy constants hardcoded (other countries require Tier 2+ localization).
How to use
Drag central_bank_v1 into Canvas, fill in inflation_rate (%) + unemployment_rate (%) + policy_stance (dovish / neutral / hawkish). Output policy_rate + policy_change_probability array.
Typical scenarios:
- Inflation 2%, unemployment 4%, neutral → policy_rate = 2.0 (perfect equilibrium)
- Inflation 5%, unemployment 4%, hawkish → policy_rate = 7.0 (hike response)
- Inflation 1%, unemployment 7%, dovish → policy_rate = 0.0 (ZLB clamp)
Core formulas
raw = 2.0 + 1.5·(π - 2) + 0.5·(4 - u) + stance_adj
policy_rate = max(0, raw) # ZLB
deviation = |policy_rate - 3.0|
p_up = 0.7 if (deviation > 0.25 AND π > 2) else 0.2
p_hold = 0.6
p_down = 0.5 if (deviation > 0.25 AND u > 4) else 0.2
→ normalize (sum=1) → round(3)Rounding contract: policy_rate → 2 decimals; probabilities → 3 decimals.
Assumptions & applicability
Assumptions: US economy constants (r*=2%, π*=2%, u*=4%) + ZLB=0 + Taylor 1.5/0.5 coefficients + stance 3 discrete levels.
Applicable: US macro; short-medium term regime signals.
Not applicable: Other countries, negative rates, YCC, nonlinear rules, forecast-based IT framework.
Input / Output contract
{inflation_rate: float, unemployment_rate: float, policy_stance: 'dovish' | 'neutral' | 'hawkish'} → {policy_rate: float ≥ 0, policy_change_probability: [{direction, probability}] × 3}.
Input out-of-range or illegal stance → throws validation error (do not swallow).
Known limitations
- 5 hardcoded US constants (not exposed)
- policy_rate round(2), probabilities round(3)
- Deviation reference point 3.0 hardcoded — poor adaptability across different rate cycles
- Stance discrete 3 levels (lacks intermediate levels)
- Probability threshold jump (0.25 deviation hard step

