Mexico EMBI directed graphs
Monthly — is the current spread priced?
fair
Mexico EMBI is fairly priced at 213 bp (fair 219 bp).
The EMBI tightened 20 bp over the last 6 months (233 → 213 bp). Last month it widened another 16 bp. Last month’s move was led by US high-yield spreads (+27 bp, wider); USD broad (+13 bp, wider); the terms-of-trade gap (-6 bp, tighter). Versus the graph fair-value, the print is in line with the macros.
- The local exchange rate increased, which put downward pressure on the real exchange rate (REER), which typically widens the EMBI spread.
- US high-yield spreads widened, which put downward pressure on the local exchange rate, which typically tightens the EMBI spread.
- Fed funds increased, which put upward pressure on the local policy rate, which typically widens the EMBI spread.
| Current EMBI | 213 bp (2026-10-15) |
|---|---|
| Macro fair value | 219 bp (month-end 2026-09-30) |
| Rich / cheap | fair |
| Gap (current − fair) | -6 bp (-0.217σ) |
| Month-end residual | -6 bp |
| Residual σ | 26 bp |
| In-sample R² | 0.864 |
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 | +26.9 | 0 |
| dxy (t) | 2.401 | +13.1 | 0 |
| tot_gap (t) | -0.000 | -5.9 | 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 | -0.180 |
| fed_funds | → | policy_rate | t | +0.949 | -13.179 |
| dxy | → | fx | t | +0.896 | -27.372 |
| policy_rate | → | policy_fed_gap | t | +0.862 | -0.060 |
| fx | → | embi_bra | t | +0.846 | -5.938 |
| dxy | → | embi_bra | t | +0.806 | -5.938 |
| tot | → | fx | t | -0.795 | -27.372 |
| reserves | → | equity | t | +0.780 | -38.553 |
| sp500 | → | equity | t | +0.775 | -38.553 |
| reer | → | reer_gap | t | +0.754 | -0.001 |
| fx | → | reer | t | -0.732 | -32.025 |
| nominal_deficit | → | primary_balance | t | +0.726 | -2.173 |
| sp500 | → | policy_rate | t | +0.721 | -13.179 |
| us_hy_oas | → | equity | t | -0.711 | -38.553 |
| tot | → | embi_bra | t | -0.684 | -5.938 |
| dxy | → | policy_rate | t | +0.683 | -13.179 |
| fed_funds | → | policy_fed_gap | t | +0.659 | -0.060 |
| oil | → | reer | t | +0.654 | -32.025 |
| reserves | → | fx | t | +0.643 | -27.372 |
| ust_short | → | policy_rate | t | +0.643 | -13.179 |
| fed_funds | → | equity | t | +0.633 | -38.553 |
| us_hy_oas | → | policy_rate | t | -0.629 | -13.179 |
| oil | → | fx | t | -0.623 | -27.372 |
| equity | → | policy_rate | t | +0.610 | -13.179 |
| dxy | → | policy_fed_gap | t | +0.605 | -0.060 |
| reer_gap | → | policy_rate | t | +0.599 | -13.179 |
| tot | → | reer | t | +0.589 | -32.025 |
| tot | → | equity | t | -0.561 | -38.553 |
| fx | → | policy_fed_gap | t | +0.559 | -0.060 |
| global_sentiment | → | equity | t | +0.558 | -38.553 |
| sp500 | → | policy_fed_gap | t | +0.557 | -0.060 |
| oil | → | tot | t | +0.550 | -43739.071 |
| cpi | → | policy_fed_gap | t | +0.534 | -0.060 |
| cpi | → | equity | t | +0.532 | -38.553 |
| us_hy_oas | → | policy_fed_gap | t | -0.525 | -0.060 |
| current_account | → | embi_bra | t | +0.524 | -5.938 |
| current_account | → | reserves | t | +0.519 | -70.704 |
| primary_balance | → | policy_rate | t | +0.503 | -13.179 |
| tot | → | reserves | t | -0.503 | -70.704 |
| fx | → | equity | t | +0.498 | -38.553 |
| policy_fed_gap | → | embi_bra | t | +0.496 | -5.938 |
| reer | → | embi_bra | t | -0.493 | -5.938 |
| reer_gap | → | equity | t | +0.492 | -38.553 |
| oil | → | embi_bra | t | -0.485 | -5.938 |
| current_account | → | fx | t | +0.479 | -27.372 |
| public_debt_gdp | → | embi_bra | t | +0.456 | -5.938 |
| debt_gap | → | embi_bra | t | +0.456 | -5.938 |
| us_hy_oas | → | fx | t | -0.455 | -27.372 |
| tot_gap | → | reer | t | +0.454 | -32.025 |
| fx | → | policy_rate | t | +0.454 | -13.179 |
| cpi | → | policy_rate | t | +0.453 | -13.179 |
| vix | → | embi_bra | t | +0.449 | -5.938 |
| policy_rate | → | embi_bra | t | +0.442 | -5.938 |
| equity | → | policy_fed_gap | t | +0.438 | -0.060 |
| copper | → | exports_growth | t | +0.426 | -6.419 |
| dxy | → | reer | t | -0.424 | -32.025 |
| us_hy_oas | → | reer_gap | t | -0.417 | -0.001 |
| oil | → | tot_gap | t | +0.405 | -84.999 |
| vix | → | equity | t | -0.404 | -38.553 |
| reserves_growth | → | equity | t | -0.392 | -38.553 |
Δ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, 1] · parents: sp500, dxy, oil, fx, current_account · 182 train / 20 test through 2026-10-31.
| From | To | Lag | β (z) | Child R² | |
|---|---|---|---|---|---|
| fx | → | embi_bra | t | +0.251 | 0.616 |
| sp500 | → | embi_bra | t | -0.231 | 0.616 |
| oil | → | embi_bra | t | -0.125 | 0.616 |
| sp500 | → | embi_bra | t−1 | -0.097 | 0.616 |
| dxy | → | embi_bra | t | +0.093 | 0.616 |
| dxy | → | embi_bra | t−1 | +0.041 | 0.616 |
| fx | → | embi_bra | t−1 | -0.024 | 0.616 |
| current_account | → | embi_bra | t−1 | +0.018 | 0.616 |
| oil | → | embi_bra | t−1 | +0.009 | 0.616 |
| current_account | → | embi_bra | t | +0.001 | 0.616 |
| Method | Lags | OOS R² | σ-quintile | Lift vs naive | Naive middle | ±1 bin | 3-class | Sign | RMSE Δ | Edges | Parents |
|---|---|---|---|---|---|---|---|---|---|---|---|
| theory|lags=[0, 1] ← best | [0, 1] | 0.403 | 50.0% | 0.050 | 45.0% | 90.0% | 60.0% | 75.0% | 0.137 | 22 | 10 |
| pc|lags=[0, 1] | [0, 1] | 0.403 | 50.0% | 0.050 | 45.0% | 90.0% | 60.0% | 75.0% | 0.137 | 44 | 10 |
| pc_strict|lags=[0, 1] | [0, 1] | 0.403 | 50.0% | 0.050 | 45.0% | 90.0% | 60.0% | 75.0% | 0.137 | 40 | 10 |
| tan|lags=[0, 1] | [0, 1] | 0.403 | 50.0% | 0.050 | 45.0% | 90.0% | 60.0% | 75.0% | 0.137 | 15 | 10 |
| hybrid|lags=[0, 1] | [0, 1] | 0.403 | 50.0% | 0.050 | 45.0% | 90.0% | 60.0% | 75.0% | 0.137 | 43 | 10 |
| theory|lags=[0, 1, 2] | [0, 1, 2] | 0.292 | 50.0% | 0.050 | 45.0% | 80.0% | 55.0% | 75.0% | 0.149 | 22 | 15 |
| pc|lags=[0, 1, 2] | [0, 1, 2] | 0.292 | 50.0% | 0.050 | 45.0% | 80.0% | 55.0% | 75.0% | 0.149 | 44 | 15 |
| pc_strict|lags=[0, 1, 2] | [0, 1, 2] | 0.292 | 50.0% | 0.050 | 45.0% | 80.0% | 55.0% | 75.0% | 0.149 | 40 | 15 |
| tan|lags=[0, 1, 2] | [0, 1, 2] | 0.292 | 50.0% | 0.050 | 45.0% | 80.0% | 55.0% | 75.0% | 0.149 | 15 | 15 |
| hybrid|lags=[0, 1, 2] | [0, 1, 2] | 0.292 | 50.0% | 0.050 | 45.0% | 80.0% | 55.0% | 75.0% | 0.149 | 43 | 15 |
| theory|lags=[0] | [0] | 0.244 | 45.0% | 0.000 | 45.0% | 85.0% | 55.0% | 70.0% | 0.154 | 22 | 5 |
| pc|lags=[0] | [0] | 0.244 | 45.0% | 0.000 | 45.0% | 85.0% | 55.0% | 70.0% | 0.154 | 44 | 5 |
| pc_strict|lags=[0] | [0] | 0.244 | 45.0% | 0.000 | 45.0% | 85.0% | 55.0% | 70.0% | 0.154 | 40 | 5 |
| tan|lags=[0] | [0] | 0.244 | 45.0% | 0.000 | 45.0% | 85.0% | 55.0% | 70.0% | 0.154 | 15 | 5 |