Notes on:

A Macroeconomic Model of the Cross-Section of Currencies

Aleksei Oskolkov & Diego Perez
Working paper, July 2026
23 October 2026
exchange rates · dollar · international finance
Talk · Paper · PDF · Transcript
Made with AI: Opus 5.5 (reading, diagram and writing), GPT 6.1-Sol (reading), Fable 5.1 (adjudication), Sonnet 5.5 (verification)

Part of International Finance and Macroeconomics Program Meeting, Fall 2026

Aleksei Oskolkov and Diego Perez, presented by Oskolkov at the nber International Finance and Macroeconomics Program Meeting, 23 October 2026; discussant Charles Engel. This note uses the draft of July 17, 2026.

In 2008 the Australian dollar fell 39% against the us dollar, the Hungarian forint 25% and the Thai baht 15%. If you do international finance you have a tidy description of that: a couple of global factors, country-specific loadings, a nice R2R^2. If you do international macro you have a tidy story mapping shocks into an exchange rate, usually one exchange rate. The first camp can tell you which currencies move together and not why. The second can tell you why and not which.

Anyway, Oskolkov and Perez want to derive the factor regression from a macro model, so that each factor has shocks inside it and each loading is a country trait. The traits they pick are commodity exposure and dollar assets. They are candid about the selection: those are the two things the empirical loadings correlate with, so those are the two things they built in.

The model

Oskolkov and Perez: one zero-capital balance sheet, two channelsUS basket priceQutDollar bonds held by the managerMi,t+1dollarsplacedindollarbondsReference size of dollar liabilitiesLt+1US household bond, the dollar bondBu,t+1∆Capital inflow to country ili,t+1Intermediary profits rebated to country iΠitRebate from manager to householdTitstrongdollar:largerwithBaseline dollar-asset stock of country iMiTradable endowmentYTitTradable consumptionCTitTradable endowmentYTutTradable consumptionCTutCountryicontinuum,onepairdrawnDollarmanagerimposedrule,notoptimisedUS basket priceQutDollar bonds held by the managerMi,t+1=Reserve-rule weightτAverage foreign basket priceQtBaseline dollar-asset stock of country iMi+(1−Reserve-rule weightτ)US basket priceQutBaseline dollar-asset stock of country iMiRebate from manager to householdTit=Gross return on the dollar-basket bondRutUS basket priceQutDollar bonds carried into tMit−US basket priceQutDollar bonds held by the managerMi,t+1HouseholdtradesonlylocalbondHousehold local bondBi,t+1Tradable endowmentYTit=1+Commodity exposure of country ieiGlobal tradable shockztNon-tradable endowmentYNit=Scale of the non-tradable endowmentN(1+Local non-tradable shockxit)staysinsideTradable consumptionCTit→Non-tradable pricePNit→Log basket priceqitBasket price of country iQit=(Non-tradable pricePNit)Non-tradable share of the basketαLog basket priceqit=Non-tradable share of the basketα(Commodity exposure of country ieiGlobal tradable shockzt+∆Capital inflow to country ili,t+1−Baseline dollar-asset stock of country iMiScaled dollar-asset accumulation∆mi,t+1−Local non-tradable shockxit)Baseline dollar-asset stock of country iMiCommodity exposure of country ieiGlobalintermediaryzerocapital;theonlyagentinbothbondmarketsmaxEtIntermediary SDFΛt+1Basket price of country iQitIntermediary holdings of currency-i bondsAi,t+1Excess return on i bonds over dollar bondsXi,t+1di−12Portfolio-cost parameterχ(Basket price of country iQitIntermediary holdings of currency-i bondsAi,t+1−Reference size of dollar liabilitiesLt+1)2dis.t.Basket price of country iQitIntermediary holdings of currency-i bondsAi,t+1di+US basket priceQutIntermediary dollar-bond positionAu,t+1=0Intermediary SDFΛt+1=Time-varying SDF weightΓtHousehold-average SDFΛavet+1+(1−Time-varying SDF weightΓt)Et[Household-average SDFΛavet+1]Time-varying SDF weightΓt=Weight on stochastic SDF partΓ(1+Risk shockγt)Log average SDF innovationλavet+1=−Non-tradable share of the basketαComposite of ρ and αϕ(Mean commodity exposuree+US commodity exposureeu)Global tradable shock∆zt+1−(Inverse EISρ−1)Non-tradable share of the basketαUS non-tradable shock∆xu,t+1assetsliabilitiesIntermediary holdings of currency-i bondsAi,t+1currency-ibondsReference size of dollar liabilitiesLt+1dollarbondsRisk shockγtoutofriskyiintodollarsPortfolio-cost parameterχ:towarduniformReference size of dollar liabilitiesLt+1Capital inflow to country ili,t+1=Portfolio-cost parameterχComposite of ρ and αϕEt[Log basket price∆qi,t+1−Log basket price∆qu,t+1]+Portfolio-cost parameterχEt[Local non-tradable shock∆xi,t+1−US non-tradable shock∆xu,t+1]+Portfolio-cost parameterχRisk exposure of currency iCiRisk shockγt+Reference size of dollar liabilitiesLt+1Scaled dollar-asset accumulationmt+1signsetby(Commodity exposure of country iei,Baseline dollar-asset stock of country iMi)DollarbondmarketreturnGross return on the dollar-basket bondRutUShouseholdmasspoint;sameproblem,localbond=dollarbondUS basket priceQut=(Non-tradable pricePNut)Non-tradable share of the basketαUS non-tradable shockxutglobalreachExchangerateup:idepreciatesReal exchange rate, i against the dollarSiut=US basket priceQut/Basket price of country iQitReal exchange rate, i against the dollar∆si,t+1=Loading on the commodity factorβi,commCommodity factorcommt+1+Loading on the dollar factorβi,dollDollar factordollt+1+Idiosyncratic residualεi,t+1Tradablegoodspooloneglobalmarket,price
A schematic drawn for this note, not one of the authors’ exhibits: the baseline of an endowment economy, with no money and no policy rate. Dollar demand and risk appetite run through one zero-capital balance sheet, the only one that sits in both the local-bond and dollar-bond markets. Managers buy dollars by rule; the intermediary issues the bonds and recycles the proceeds as inflows, so reserve demand reaches each country as Δli,t+1\Delta l_{i,t+1}. When the dial γt\gamma_t turns, capital leaves risky currencies for dollars; whether a given country is on the losing side depends on its pair (ei,Mi)(e_i,M_i). The figure writes the baseline stock MiM_i; eq. (10) rests on its scaled limit mim_i. Prices rise with tradable spending, so an inflow appreciates a currency and SiutS_{iut} rising means ii depreciates. Open the figure in a new tab

Start with what a currency is here, because it is not money. There is no money. There is one tradable good, priced at one everywhere, and a local non-tradable, and “currency ii” means the local consumption basket, whose price is Qit=(PitN)αQ_{it}=(P^N_{it})^\alpha. So the baht-dollar rate is, in effect, the price of a Bangkok haircut over the price of a Boston haircut. Haircuts cannot leave the country. Anything that puts more tradable spending in your household’s hands therefore bids up your non-tradable price and appreciates your currency, and every channel in the paper is a claim about who gets tradable spending in which state.

Now the two traits, both permanent and exogenous. The first is eie_i: a global tradable shock zz lifts everyone by eize_i z, so commodity countries get the bigger windfall, spend more and appreciate more. The second is the dollar stock. Each country has a manager (reserves, but Oskolkov wants you to think of pension funds and insurers too) following an imposed rule: when the broad dollar is strong, sell a little and rebate the capital gain to households. The percentage is common, so the absolute rebate scales with the stock, and more rebate means more tradable spending and a smaller depreciation. This is a long-dollar hedge whose payoff gets spent on haircuts. Answering what seems to have been a question about this (the room’s questions are off-mic), Oskolkov called the rule a stand-in and said an optimising problem might deliver something similar. That problem is not solved.

The wrinkle is that the hedge pays only on a relative basis. All that dollar demand has to be intermediated, and it comes back to everyone as inflows, so what matters is mi−mm_i-m. Insurance that every neighbour also bought is worth nothing to you.

The intermediary is the only balance sheet in both markets. Households trade only their own local bond; the one global intermediary has no capital, issues dollar bonds to meet reserve demand and places the proceeds in local bonds, tilted by expected returns and risk, with a quadratic penalty for straying from a uniform portfolio. Its sdf is the household-average sdf with extra weight Γt=Γ(1+γt)\Gamma_t=\Gamma(1+\gamma_t) on the stochastic part. Two risks survive into that sdf: low global tradable output, and low us non-tradable output. The second is priced only if ρ>1\rho>1, and it survives the averaging only because the us is a mass point counted equal to the whole rest of the world. Together they make bad states strong-dollar states.

So who is risky? High-eie_i currencies are, and low-dollar currencies are, and the picture is lopsided on the safe side. Low eie_i is an outright hedge against global output risk. High mim_i only shrinks exposure to us output risk, which stays positive for most countries and flips sign only around mi≈3.2m_i\approx3.2. A currency’s net riskiness depends on the pair, and only the dollar is safe by construction. Then γ\gamma arrives. It moves no one’s aggregate consumption and carries no price of risk. It just reshuffles capital from risky countries to safe ones.

Take a first-order solution around the risky steady state, assume eu=ee_u=e and uncorrelated eie_i and mim_i, send χ→∞\chi\to\infty with Mi/χ→miM_i/\sqrt{\chi}\to m_i, and (Proposition 2 with eq. 10) the panel collapses to

Δsi,t+1=βi,comm commt+1+βi,doll dollt+1+εi,t+1, \Delta s_{i,t+1}=\beta_{i,\mathrm{comm}}\,\mathrm{comm}_{t+1}+\beta_{i,\mathrm{doll}}\,\mathrm{doll}_{t+1}+\varepsilon_{i,t+1},

commt+1=2α2e(eH−eL)ΓzΔγt+1−(eH−eL)αΔzt+1,dollt+1=αϕ2(ρ−1)ΓuΔγt+1−αΔxu,t+1, \mathrm{comm}_{t+1}=2\alpha^2 e(e_H-e_L)\Gamma_z\Delta\gamma_{t+1}-(e_H-e_L)\alpha\Delta z_{t+1},\qquad \mathrm{doll}_{t+1}=\alpha\phi^2(\rho-1)\Gamma_u\Delta\gamma_{t+1}-\alpha\Delta x_{u,t+1},

βi,comm=ei−eeH−eL,βi,doll=1−τϕ(mi−m),εi,t+1=αΔxi,t+1. \beta_{i,\mathrm{comm}}=\frac{e_i-e}{e_H-e_L},\qquad \beta_{i,\mathrm{doll}}=1-\tau\phi(m_i-m),\qquad \varepsilon_{i,t+1}=\alpha\Delta x_{i,t+1}.

Here Δsi\Delta s_i is depreciation against the dollar, zz, xux_u and xix_i are the global tradable, us non-tradable and local non-tradable shocks, γ\gamma is the risk-aversion shock, eHe_H and eLe_L are mean exposures above and below the median, τ\tau is the reserve elasticity, α\alpha the non-tradable weight, ρ\rho the inverse eis, ϕ=α/φ\phi=\sqrt{\alpha/\varphi} with φ=1+ρ(1−α)/α\varphi=1+\rho(1-\alpha)/\alpha, and Γz,Γu\Gamma_z,\Gamma_u the limits of Γσz2,Γσu2\Gamma\sigma_z^2,\Gamma\sigma_u^2.

Each factor is a real shock plus a repricing of that same risk, and the loadings are simply the two traits. It is a very clean result, and it is clean conditional on all of the assumptions above. (Factors are depreciations here, so a rise in comm means commodity currencies are weakening, and βi,doll\beta_{i,\mathrm{doll}} falls with dollar assets.)

The evidence

The sample is 32 countries, monthly, 2000 to 2019, using nominal spot rates on the argument that these floating, low-inflation currencies make nominal a fair proxy for real. Each currency is left out of the factors it is regressed on. Oskolkov said the two factors explain more than half of the panel, the paper’s introduction says approximately half, and the paper’s results section says an average R2R^2 of 43%, with a maximum of 74%, against 51% for two principal components. Nothing in the talk or the draft reconciles the half with the 43. Use the 43.

The cross-sectional facts are the paper’s real empirical contribution. Commodity loadings rise with the commodity share of exports, and dollar loadings fall with the dollar share of portfolio assets, with an R2R^2 of 29% each across the 32 countries. The first was known; Oskolkov called the second relatively new. These are associations, and two things sit under the second one. The model’s mim_i is an affine map of a portfolio share, with its dispersion calibrated to fit the dispersion of dollar loadings, so the size of the wealth channel is matched rather than tested. And the appendix’s alternative scaling, dollar assets over trade, is much weaker.

Calibration inverts Proposition 4: the factor covariance matrix pins down the shock sizes, exactly, within the model. In this structure the two output shocks enter different factors, so only γ\gamma can make the factors covary. That reads off the importance of risk shocks if the structure is right. It does not show that risk shocks are the only thing that could correlate two exchange-rate factors. (The slide lists average R2R^2 and exchange-rate volatility among the targets; the paper’s text presents them as validation. Do not count them as wins.)

The paper’s language on fit is warmer than its appendix. The text calls model and data loadings tightly linked, while the appendix regression of data on model gets slopes well below one. The model also says each loading depends on one trait alone, and the appendix’s own regressions show the other trait helping on both sides, which sits awkwardly with the proposition and which neither paper nor talk takes up. There is also a housekeeping problem: commodity loadings in the appendix country tables are on a visibly different scale from those in the calibration table and figures, and not by a constant factor. The draft does not explain it, so I would hold off on any claim about how well the model matches their dispersion.

The shock that moves nobody

Slide with a small table of variance shares: the risk shock, global output shock and US output shock in rows, and the US price change, dollar factor and commodity factor in columns. Below it, a line saying financial shocks matter more for the dollar factor than for the US price.
Slide at 02:00:40: Oskolkov explains that the financial shock counts for far more in the relative price than in the US price alone, because it pushes the US and everyone else in opposite directions. Paper Table 3; the US column sums to 101 from rounding, and the blank cells are blank in the original.

Here is the surprising number. In the calibrated model, γ\gamma accounts for 7% of the variance of the us price, 24% of the dollar factor and 40% of the commodity factor. It redistributes without producing anything, and that is why: it pulls us and non-us prices in opposite directions, so it barely registers in a level and registers strongly in a relative price. Oskolkov’s gloss is that when the Australian dollar moves against the yen, part of that is commodity demand and part is intermediaries getting more frightened of commodity risk. These are model decompositions, not measured shock shares, and they are a statement about two relative prices rather than a claim that finance runs every currency.

They also rest on less than they seem to. A check of my own, not in the paper: under Proposition 4 the only source of factor covariance is γ\gamma, so the two γ\gamma shares multiply to the squared factor correlation. Their product, 0.24×0.40≈0.100.24\times0.40\approx0.10, is therefore fixed by the data. The split between them comes from the externally set ρ=2\rho=2. Re-solving Proposition 4 with the same moments and the same implied eH−eLe_H-e_L, I get 15% and 66% at ρ=1.25\rho=1.25, 31% and 32% at ρ=3\rho=3, and 37% and 26% at ρ=5\rho=5. The paper reports no such exercise. The us weight is another open dial: the model has the us equal to the rest of the world, Oskolkov put it nearer a third by gdp in their data, and said rescaling should preserve the results but that not every decomposition has been recomputed.

Three currencies

Slide with a table comparing Thailand, Hungary and Australia. In the data: exchange rate volatility, factor R squared, and low or high commodity exposure and dollar assets. In the model: volatility, factor R squared and variance shares of the risk, global output and US output shocks.
Slide at 02:03:30, still on screen through the Australia remarks: Thailand is presented as insulated by its dollar assets, Hungary as exposed for lack of them, Australia as doubly exposed. Paper Table 4. The three model shares sum to 100 and leave out the local shock.

The payoff is a map of two coordinates. Thailand has low commodity exposure and high dollar assets; it is quiet, and most of what moves it is local. Hungary has low commodities and few dollar assets (Oskolkov suspects its foreign assets are mostly in euros), so us shocks go straight through. Australia has high commodities and low dollar assets, is exposed to both risks, and is where Oskolkov says financial shocks are nearly half of what global components explain.

Read that table carefully, because the shares do not say what they look like they say. Each column’s three numbers sum to 100 and exclude the local shock. So Australia’s 48% is a share of the global part. Multiply by the model R2R^2 of 75% (my arithmetic) and the risk shock is about 36% of Australian variance. For Thailand the local residual is about two-thirds. “Local” is itself assigned rather than measured, since everything the factors miss is ascribed to the non-tradable shock, and with one calibrated size for every country that shock alone is larger than Thailand’s entire exchange-rate volatility in the data. My guess is that this floor is why the model’s Thai volatility overshoots.

Three scatter plots of data against model by currency for commodity loadings, dollar loadings and R squared. In the commodity panel most points bunch near minus 0.5 on the model axis, while Australia sits near 1.9 on the model axis and near zero in the data.
Figure 3, paper p. 29: commodity loadings, dollar loadings and R squared by currency, data on the vertical axis against model on the horizontal. AUD is the far right point of panel (a).

Now look at Australia in panel (a). It has about the highest commodity share in the paper’s scatter, it is the flagship commodity story, and its commodity loading in the data is about zero, against about 1.9 in the model, the worst miss in the panel. Its 70% data R2R^2 comes from a dollar loading of about 1.6. So the model gets Australia’s R2R^2 roughly right for a different reason than the data does, and overshoots its volatility on the way (5.0% against 3.6%). Norway, a commodity exporter on the model axis, has a negative loading in the data, and Turkey, which is not one, has a large positive loading. My tentative reading is that the commodity factor is sorting on something else as well, perhaps emerging against advanced, and the paper itself notes the overlap with carry. Thailand, meanwhile, is less hedged than advertised. Its model dollar loading is about 0.9, so on my reading its low factor R2R^2 owes more to low eie_i than to dollar assets, though Oskolkov credited the assets.

The discussant

Engel liked the framework and the empirical discipline, expects the paper to become a template, and said up front that the mechanism had not convinced them, while offering no alternative model. Engel also announced skipping the risk factor and the intermediary, so the paper’s most surprising number went undiscussed.

Five objections followed. First, are real exchange rates relative non-traded prices at all? In low-inflation, high-income countries Engel ties them to pricing-to-market and local-currency stickiness. The test: under a simple Balassa (1964)-Samuelson (1964) calibration the cpi real wage relative to the us should track the real exchange rate. In Engel’s quick detrended plots this is tolerable for Thailand and poor for Hungary and Australia, where the exchange rate swings about ±0.28\pm0.28 and the wage about ±0.06\pm0.06, read off the chart, and Engel called Australia typical of high-income countries.

Second, monetary stance. In Engel’s work with Wu, rolling 20-year R2R^2s reach about 0.28 with traditional variables around half of the fit, and Engel adds that a lot of these countries now target inflation. The paper has no monetary policy, so any such news lands in the residual.

Third, gross or net. The model runs on gross holdings because households can trade only local bonds, while Engel thinks net ought to matter for a wealth effect. A self-described rough calculation produced a correlation near zero, 0.036 or so. Treat this as provisional: Engel did not name the two variables (presumably the net ratio against the dollar loading), and Engel’s dollar shares differ from the paper’s. The paper’s nearest evidence does not settle it, because its nominally net series multiplies total net flows by a gross dollar share.

Fourth, intervention differed sharply across the three examples in 2008, and the model has a single τ\tau. (Australia intervened too and still fell most, so this does not simply rank them. Earlier, apparently on country-specific τ\tau, Oskolkov said there are too few data points to estimate one.)

Fifth, and sharpest: the whole channel is a wealth effect, and “the consumption literature doesn’t find big wealth effects.” Since mim_i is a share whose scale is fitted to the loadings, the paper has no independent check on that size. Engel still conceded that the correlation with dollar assets is there.

There is no reply. The recording of the Q&A is unusable, so no answer from the authors to Engel survives, and audience questions during the talk were off-mic, leaving only Oskolkov’s side of them. One of those answers deserves noting: on whether the sdf would stay so tied to global shocks if intermediaries consumed, which appears to be what was asked, Oskolkov said it needed more thought.

So the country the talk ends on is one with a commodity story and no commodity loading in the data, and, on Engel’s rough proxy, a non-traded-price story and no matching move in the wage. The fact underneath it, that dollar assets line up with dollar loadings, is still standing, and the discussant, whose job was to knock it down, said they had nothing to put in its place.

References

Balassa, Bela. 1964. “The Purchasing-Power Parity Doctrine: A Reappraisal.” Journal of Political Economy 72 (6): 584–596. doi:10.1086/258965.
Samuelson, Paul A. 1964. “Theoretical Notes on Trade Problems.” The Review of Economics and Statistics 46 (2): 145. doi:10.2307/1928178.