Peru EMBI directed graphs
Monthly — is the current spread priced?
rich
Peru EMBI looks rich at 114 bp vs fair 121 bp (-6 bp tight).
The EMBI tightened 25 bp over the last 6 months (139 → 113 bp). Last month it widened another 8 bp. Last month’s move was led by US high-yield spreads (+11 bp, wider); USD broad (+3 bp, wider). It looks rich because the market print (114 bp) is tighter than macro fair value (121 bp, gap -6 bp).
- US high-yield spreads widened, which put upward pressure on the local policy–Fed funds gap, which typically widens the EMBI spread. That does not appear to have been incorporated into the current spread.
- Fed funds increased, which put upward pressure on the local policy rate, which typically widens the EMBI spread. That does not appear to have been incorporated into the current spread.
- USD broad increased, which put upward pressure on the local exchange rate, which typically widens the EMBI spread. That does not appear to have been incorporated into the current spread.
| Current EMBI | 114 bp (2026-10-15) |
|---|---|
| Macro fair value | 121 bp (month-end 2026-09-30) |
| Rich / cheap | rich |
| Gap (current − fair) | -6 bp (-0.556σ) |
| Month-end residual | -7 bp |
| Residual σ | 11 bp |
| In-sample R² | 0.858 |
4 monthly print(s) may not yet have been tradable at the last EMBI date.
| Parent | Δ last month | Contrib bp | Typical print lag (d) |
|---|---|---|---|
| us_hy_oas (t) | 0.490 | +11.1 | 0 |
| dxy (t) | 2.401 | +2.8 | 0 |
| tot_gap (t) | -0.000 | -0.1 | 45 |
| tot (t) | 0.000 | +0.0 | 45 |
| debt_gap (t) | 0.000 | +0.0 | 35 |
| current_account (t) | 0.000 | +0.0 | 25 |
Has EMBI had time to trade the prints?
| Input | Est. release | Traded after print? | Days since |
|---|---|---|---|
| us_hy_oas | 2026-09-30 | yes | 15 |
| tot | 2026-11-14 | pending | -30 |
| tot_gap | 2026-11-14 | pending | -30 |
| dxy | 2026-09-30 | yes | 15 |
| debt_gap | 2026-11-04 | pending | -20 |
| current_account | 2026-10-25 | pending | -10 |
Monthly DAG
Narrative edges (strongest first)
| From | To | Lag | β (z) | Child R² | |
|---|---|---|---|---|---|
| public_debt_gdp | → | debt_gap | t | +1.000 | -3.465 |
| reer | → | reer_gap | t | +0.953 | -0.002 |
| copper | → | tot | t | +0.907 | -4950.844 |
| dxy | → | fx | t | +0.905 | -66.927 |
| tot_gap | → | current_account | t | +0.826 | 0.662 |
| nominal_deficit | → | primary_balance | t | +0.823 | 0.590 |
| reserves | → | fx | t | +0.701 | -66.927 |
| tot | → | current_account | t | +0.700 | 0.662 |
| ust_short | → | policy_rate | t | +0.662 | 0.656 |
| primary_balance | → | debt_gap | t | -0.649 | -3.465 |
| primary_balance | → | public_debt_gdp | t | -0.649 | 0.044 |
| fed_funds | → | policy_rate | t | +0.648 | 0.656 |
| current_account | → | fx | t | +0.639 | -66.927 |
| current_account | → | reserves | t | +0.624 | -43.138 |
| tot_gap | → | fx | t | +0.621 | -66.927 |
| nominal_deficit | → | public_debt_gdp | t | -0.618 | 0.044 |
| copper | → | tot_gap | t | +0.612 | -86.609 |
| us_hy_oas | → | fx | t | -0.607 | -66.927 |
| tot_gap | → | primary_balance | t | -0.596 | 0.590 |
| reer_gap | → | policy_rate | t | +0.567 | 0.656 |
| nominal_deficit | → | policy_rate | t | +0.558 | 0.656 |
| sp500 | → | policy_fed_gap | t | -0.555 | -0.601 |
| fx | → | policy_fed_gap | t | -0.541 | -0.601 |
| dxy | → | policy_fed_gap | t | -0.533 | -0.601 |
| cpi | → | policy_rate | t | +0.510 | 0.656 |
| us_hy_oas | → | policy_fed_gap | t | +0.507 | -0.601 |
| vix | → | embi_bra | t | +0.495 | -7.942 |
| tot | → | exports_growth | t | +0.485 | 0.067 |
| policy_rate | → | policy_fed_gap | t | +0.461 | -0.601 |
| us_hy_oas | → | embi_bra | t | +0.450 | -7.942 |
| tot | → | primary_balance | t | -0.440 | 0.590 |
| copper | → | exports_growth | t | +0.435 | 0.067 |
| reer | → | policy_rate | t | +0.431 | 0.656 |
| primary_balance | → | policy_rate | t | +0.429 | 0.656 |
| debt_gap | → | policy_fed_gap | t | -0.418 | -0.601 |
| cpi | → | policy_fed_gap | t | +0.408 | -0.601 |
| exports_growth | → | current_account | t | +0.408 | 0.662 |
| fx | → | reer_gap | t | -0.392 | -0.002 |
| oil | → | tot | t | +0.386 | -4950.844 |
| fed_funds | → | policy_fed_gap | t | -0.378 | -0.601 |
| oil | → | fx | t | -0.363 | -66.927 |
| policy_fed_gap | → | embi_bra | t | +0.346 | -7.942 |
| cpi | → | fx | t | +0.336 | -66.927 |
| dxy | → | reer | t | +0.320 | -436.872 |
| tot | → | fx | t | +0.318 | -66.927 |
| tot | → | reer | t | -0.311 | -436.872 |
| tot_gap | → | embi_bra | t | -0.297 | -7.942 |
| tot_gap | → | reer | t | -0.296 | -436.872 |
| vix | → | policy_rate | t | -0.267 | 0.656 |
| current_account | → | reserves_growth | t | +0.265 | -0.094 |
| tot | → | reserves | t | +0.261 | -43.138 |
| current_account | → | embi_bra | t | -0.250 | -7.942 |
| reer | → | embi_bra | t | -0.245 | -7.942 |
| fed_funds_chg | → | policy_rate | t | +0.243 | 0.656 |
| sp500 | → | policy_rate | t | +0.238 | 0.656 |
| copper | → | fx | t | +0.224 | -66.927 |
| oil | → | reer | t | -0.220 | -436.872 |
| tot | → | reer_gap | t | -0.189 | -0.002 |
| reserves | → | reserves_growth | t | -0.182 | -0.094 |
| dxy | → | policy_rate | t | +0.174 | 0.656 |
ΔEMBI engine (holdout score)
Ridge on ΔEMBI: 1 risk (HY or VIX or S&P) + 1 rates/USD + 1 commodity + 1 local + 1 stock. Ranked by holdout R², not quintile lift. Best: theory|lags=[0] · parents: us_hy_oas, dxy, oil, fx, current_account · 182 train / 20 test through 2026-10-31.
| From | To | Lag | β (z) | Child R² | |
|---|---|---|---|---|---|
| us_hy_oas | → | embi_bra | t | +0.454 | 0.514 |
| dxy | → | embi_bra | t | +0.238 | 0.514 |
| oil | → | embi_bra | t | -0.062 | 0.514 |
| current_account | → | embi_bra | t | +0.048 | 0.514 |
| fx | → | embi_bra | t | -0.001 | 0.514 |
| Method | Lags | OOS R² | σ-quintile | Lift vs naive | Naive middle | ±1 bin | 3-class | Sign | RMSE Δ | Edges | Parents |
|---|---|---|---|---|---|---|---|---|---|---|---|
| theory|lags=[0] ← best | [0] | -0.163 | 40.0% | 0.000 | 40.0% | 95.0% | 45.0% | 65.0% | 0.098 | 20 | 5 |
| pc|lags=[0] | [0] | -0.163 | 40.0% | 0.000 | 40.0% | 95.0% | 45.0% | 65.0% | 0.098 | 45 | 5 |
| pc_strict|lags=[0] | [0] | -0.163 | 40.0% | 0.000 | 40.0% | 95.0% | 45.0% | 65.0% | 0.098 | 42 | 5 |
| tan|lags=[0] | [0] | -0.163 | 40.0% | 0.000 | 40.0% | 95.0% | 45.0% | 65.0% | 0.098 | 17 | 5 |
| hybrid|lags=[0] | [0] | -0.163 | 40.0% | 0.000 | 40.0% | 95.0% | 45.0% | 65.0% | 0.098 | 35 | 5 |
| theory|lags=[1] | [1] | -0.188 | 25.0% | -0.150 | 40.0% | 90.0% | 30.0% | 45.0% | 0.099 | 20 | 5 |
| pc|lags=[1] | [1] | -0.188 | 25.0% | -0.150 | 40.0% | 90.0% | 30.0% | 45.0% | 0.099 | 45 | 5 |
| pc_strict|lags=[1] | [1] | -0.188 | 25.0% | -0.150 | 40.0% | 90.0% | 30.0% | 45.0% | 0.099 | 42 | 5 |
| tan|lags=[1] | [1] | -0.188 | 25.0% | -0.150 | 40.0% | 90.0% | 30.0% | 45.0% | 0.099 | 17 | 5 |
| hybrid|lags=[1] | [1] | -0.188 | 25.0% | -0.150 | 40.0% | 90.0% | 30.0% | 45.0% | 0.099 | 35 | 5 |
| theory|lags=[0, 1, 2] | [0, 1, 2] | -0.209 | 40.0% | 0.000 | 40.0% | 90.0% | 50.0% | 60.0% | 0.100 | 20 | 15 |
| pc|lags=[0, 1, 2] | [0, 1, 2] | -0.209 | 40.0% | 0.000 | 40.0% | 90.0% | 50.0% | 60.0% | 0.100 | 45 | 15 |
| pc_strict|lags=[0, 1, 2] | [0, 1, 2] | -0.209 | 40.0% | 0.000 | 40.0% | 90.0% | 50.0% | 60.0% | 0.100 | 42 | 15 |
| tan|lags=[0, 1, 2] | [0, 1, 2] | -0.209 | 40.0% | 0.000 | 40.0% | 90.0% | 50.0% | 60.0% | 0.100 | 17 | 15 |