<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[QuantStrategy: From Assumptions to Portfolios]]></title><description><![CDATA[A practitioner's series on building strategic asset allocation from the ground up — from capital market assumptions to multi-period scenario distributions, with full empirical methodology and reproducible code on GitHub.]]></description><link>https://quantstrategy.substack.com/s/from-assumptions-to-portfolios-a</link><image><url>https://substackcdn.com/image/fetch/$s_!ydv9!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1f488b0-0a62-4d27-9e10-186007a50135_1024x1024.png</url><title>QuantStrategy: From Assumptions to Portfolios</title><link>https://quantstrategy.substack.com/s/from-assumptions-to-portfolios-a</link></image><generator>Substack</generator><lastBuildDate>Tue, 28 Jul 2026 10:19:51 GMT</lastBuildDate><atom:link href="https://quantstrategy.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Thomas Osowski]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[quantstrategy@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[quantstrategy@substack.com]]></itunes:email><itunes:name><![CDATA[Thomas Osowski]]></itunes:name></itunes:owner><itunes:author><![CDATA[Thomas Osowski]]></itunes:author><googleplay:owner><![CDATA[quantstrategy@substack.com]]></googleplay:owner><googleplay:email><![CDATA[quantstrategy@substack.com]]></googleplay:email><googleplay:author><![CDATA[Thomas Osowski]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Data Layer Behind the Scenario Atlas]]></title><description><![CDATA[What we use, why we use it, and where the sample really starts]]></description><link>https://quantstrategy.substack.com/p/the-data-layer-behind-the-scenario</link><guid isPermaLink="false">https://quantstrategy.substack.com/p/the-data-layer-behind-the-scenario</guid><dc:creator><![CDATA[Thomas Osowski]]></dc:creator><pubDate>Tue, 07 Jul 2026 06:13:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KG1i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><span>Article role: </span></strong><span>This draft documents the empirical foundation for the upcoming Scenario Atlas articles: 11 investable assets, one EUR/USD risk driver, monthly EUR log returns, and a complete analysis sample from 2011-01-31 to 2025-12-31.</span></p><p><span>Before we can talk about scenario atlases, Entropy Pooling, portfolio construction, risk constraints, or strategic allocation decisions, we need something less glamorous but more important: a clean return panel.</span></p><p><span>This article documents the data foundation for the &#8220;From Assumptions to Portfolios&#8220; series. It explains which assets we use, which data sources feed the model, how returns are transformed, what the final sample window is, and which simplifications are intentional.</span></p><p><span>The goal is not to pretend that the data layer is perfect. The goal is to make it explicit enough that every later article has a clear empirical base. T</span></p><p><span>This Article will be updated over time. You can find the implementation in the corresponding </span><a href="https://github.com/ThomasOs71/quantstrategy"><span>Github Repo</span></a><span>.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://quantstrategy.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading QuantStrategy! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><span>The final panel</span></h2><blockquote><p><span>&#183; 11 investable assets</span></p><p><span>&#183; 1 auxiliary EUR/USD risk driver</span></p><p><span>&#183; 12 monthly driver series in total</span></p><p><span>&#183; 180 fully observed monthly return vectors</span></p><p><span>&#183; a complete sample from 2011-01-31 to 2025-12-31</span></p></blockquote><p><span>Everything is expressed as monthly log returns from a EUR investor&#8217;s perspective.</span></p><h2><span>Why start with the data layer?</span></h2><p><span>Most portfolio articles start too late. They begin with expected returns, a covariance matrix, an optimizer, or a set of views. But before any of that, we need to answer a more basic question: what historical market objects are we actually using?</span></p><p><span>The following chart presents a detailed map of the data framework used throughout this series:</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KG1i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KG1i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KG1i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KG1i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KG1i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KG1i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1412087,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://quantstrategy.substack.com/i/205151448?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!KG1i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KG1i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KG1i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KG1i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cabb73a-4c18-4369-a94b-9de55ba316ec_1672x941.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>For this series, the primitive object is not a covariance matrix. It is a panel of synchronized monthly returns across assets and risk drivers. From that panel we can later build scenario paths, terminal return distributions, drawdown diagnostics, stress clusters, and eventually view-adjusted posterior probabilities.</span></p><p><strong><span>Core idea: </span></strong><span>A covariance matrix compresses the world. A scenario atlas needs the world before compression.</span></p><h1><span>The asset universe</span></h1><p><span>The investable universe has 11 assets. It is designed to represent a EUR-based multi-asset allocation problem without becoming unnecessarily complex.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NDlb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NDlb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!NDlb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!NDlb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!NDlb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NDlb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4de6771-b70e-4597-89ff-63953faf681f_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1456237,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://quantstrategy.substack.com/i/205151448?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NDlb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!NDlb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!NDlb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!NDlb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4de6771-b70e-4597-89ff-63953faf681f_1672x941.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>In addition, the model includes one auxiliary risk driver: EUR/USD. This gives us 12 modeled series in total, but only 11 of them are investable assets. EUR/USD is not something the optimizer will allocate to directly. It is included because it is needed to translate USD-based assets into EUR returns and to keep currency exposure visible in the scenario engine.</span></p><h1><span>What we deliberately do not include</span></h1><p><span>The universe is intentionally compact. There is no separate Japan sleeve. Japan remains implicitly inside the broad Global Developed Markets ex-EMU proxy, but it is not modeled with a separate MSCI Japan series or a separate EUR/JPY driver.</span></p><p><span>There is no separate EUR/GBP driver. UK exposure is also part of the broader developed-market proxy. There are no REITs in this version of the Block 1 universe.</span></p><p><span>These are not claims that those exposures are unimportant. They are scope decisions. The first objective is a reproducible, explainable scenario foundation. Adding more regional sleeves and FX drivers too early would make the implementation more fragile without necessarily improving the educational value of the series.</span></p><h1><span>The concrete data sources</span></h1><p>The implementation combines three source types: MSCI index exports, ETF proxies via yfinance, and FRED macro/market series. The two MSCI series are manually downloaded because the raw index data cannot be redistributed through the public repository.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IuRB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IuRB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png 424w, https://substackcdn.com/image/fetch/$s_!IuRB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png 848w, https://substackcdn.com/image/fetch/$s_!IuRB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png 1272w, https://substackcdn.com/image/fetch/$s_!IuRB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IuRB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png" width="887" height="589" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:589,&quot;width&quot;:887,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29797,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://quantstrategy.substack.com/i/205151448?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IuRB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png 424w, https://substackcdn.com/image/fetch/$s_!IuRB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png 848w, https://substackcdn.com/image/fetch/$s_!IuRB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png 1272w, https://substackcdn.com/image/fetch/$s_!IuRB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9bc59ee-41fc-41a9-8511-d6b966ecefdf_887x589.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>This is a pragmatic research setup. It is not a Bloomberg-grade institutional index build. Several assets use ETF proxies instead of licensed total-return benchmark histories. That tradeoff is intentional: the series is meant to be reproducible by readers with public tools and manually supplied MSCI files, not dependent on proprietary terminals.</span></p><h1><span>Return convention</span></h1><p><span>All model outputs are monthly log returns.</span></p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;r_t = log(P_t / P_{t-1})&quot;,&quot;id&quot;:&quot;QNLGLYFEFU&quot;}" data-component-name="LatexBlockToDOM"></div><p><span>For cash, the annualized EURIBOR 3M rate is converted into an approximate monthly log return.</span></p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;r_cash,t = log(1 + rate_t / 100 / 12)\n\n&quot;,&quot;id&quot;:&quot;IXRLKAVERN&quot;}" data-component-name="LatexBlockToDOM"></div><p><span>This gives the panel a consistent monthly return convention. The implementation uses month-end observations. ETF price data are aggregated to monthly frequency, and all series are aligned on month-end dates.</span></p><h1><span>Currency treatment</span></h1><p><span>The base investor is EUR-based. That means USD-denominated assets must be converted into EUR returns. The EUR/USD series used here is FRED DEXUSEU, quoted as USD per 1 EUR.</span></p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;r_{EUR} = r_{USD} - r_{EUR/USD}&quot;,&quot;id&quot;:&quot;KPLONANKTX&quot;}" data-component-name="LatexBlockToDOM"></div><p></p><p><span>If EUR/USD rises, the euro strengthens. A USD asset then loses value from the perspective of a EUR investor, all else equal.</span></p><p><span>The USD-exposed series converted this way are Global DM ex-EMU, EM Equities, Gold, and Commodities. Euro-native assets are used directly in EUR return space.</span></p><p><span>For Global Government Bonds and EM Hard Currency Bonds, the implementation uses unhedged USD ETF proxies and applies a simple monthly hedge approximation.</span></p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;r_{hedged} ~= r_{USD} + (EURIBOR_{3M} - USD_{3M)} / 12 / 100&quot;,&quot;id&quot;:&quot;WMIRTCQFWR&quot;}" data-component-name="LatexBlockToDOM"></div><p></p><p><span>This is not a full institutional FX-hedged index replication. It is a transparent approximation that keeps the economics visible: the return is the USD bond return adjusted by the short-rate differential between EUR and USD.</span></p><h1><span>The final sample window</span></h1><p><span>The implemented build can create an extended panel from 2010 onward. But the complete analysis sample starts later.</span></p><blockquote><p><span>build_return_panel(start=&#8221;2010-01-01&#8221;, end=&#8221;2025-12-31&#8221;)</span></p><p><span>The verified build produces a panel with:</span></p><p><span>192 monthly rows x 12 series</span></p></blockquote><p><span>However, the first 12 rows contain missing values in Euro High Yield. Therefore, the complete sample used for analysis is 2011-01-31 to 2025-12-31. That gives us 180 fully observed monthly return vectors.</span></p><p><strong><span>Conservative choice: </span></strong><span>The technical data build starts earlier for quality assurance, but the published analysis uses only the fully observed common panel. No synthetic splice is used to fill the early Euro High Yield gap.</span></p><h1><span>Why Euro High Yield determines the start</span></h1><p><span>The binding data constraint is the Euro High Yield proxy. Most other series have longer available histories. MSCI equity data go much further back. EURIBOR and EUR/USD also have earlier histories. Several ETF proxies start before the final common sample.</span></p><p><span>But a multi-asset scenario engine needs synchronized return vectors. For every month in the final analysis panel, each of the 12 driver series must be observed.</span></p><p><strong><span>Practical rule: </span></strong><span>The series starts where the weakest required source becomes usable across the full panel.</span></p><h1><span>Why raw data are not in the repository</span></h1><p><span>The public repository contains code, documentation, tests, and instructions. It does not contain all raw downloaded data. That is deliberate.</span></p><p><span>MSCI index exports are licensed data. ETF price data from Yahoo Finance also come with usage restrictions. The repository therefore provides the code needed to construct the panel, but readers must obtain certain data themselves where redistribution is not appropriate.</span></p><blockquote><p><span>data/raw/msci/<br> msci_emu_ntr_usd.csv<br> msci_world_ex_emu_ntr_usd.csv</span></p></blockquote><p><span>The loader also accepts .xls and .xlsx files for these MSCI exports. This creates a clean boundary: the methodology is reproducible, the code is inspectable, and the raw licensed files are not redistributed.</span></p><h1><span>What this panel will be used for</span></h1><p><span>This return panel is the foundation for Block 1 of the series. The next articles will not immediately jump to expected returns or optimal portfolios. Instead, the panel will be used to build and diagnose scenario engines.</span></p><blockquote><p><span>&#183; Synchronized Historical Block Bootstrap: resampling historical cross-asset blocks without breaking contemporaneous relationships.</span></p><p><span>&#183; Conditional Similarity Resampling: giving more weight to historical periods that resemble the current market state.</span></p><p><span>&#183; Filtered Historical Simulation: separating volatility states from empirical shocks without defaulting to Gaussian simulation.</span></p><p><span>&#183; Atlas Coverage Diagnostics: checking which worlds history captures well and which plausible portfolio environments remain underrepresented.</span></p></blockquote><p><span>Later, in Block 2, views will be applied through Entropy Pooling. In Block 3, portfolio construction will use the resulting scenario distribution. But none of that works cleanly unless the data layer is explicit.</span></p><h1><span>The main limitations</span></h1><p><span>This setup is intentionally transparent, not perfect. The main limitations are:</span></p><blockquote><p><span>&#183; Some benchmark exposures are represented by ETF proxies.</span></p><p><span>&#183; Hedged fixed income uses an approximate hedge formula.</span></p><p><span>&#183; The sample has only 180 complete monthly observations.</span></p><p><span>&#183; The universe excludes separate Japan, GBP, JPY, and REIT sleeves.</span></p><p><span>&#183; The panel is monthly, not daily.</span></p><p><span>&#183; The model is EUR-investor centric.</span></p></blockquote><p><span>These limitations are not hidden. They are part of the design. The point of this series is not to claim that public data and ETF proxies produce the final word on strategic asset allocation. The point is to build a disciplined, inspectable research workflow that can be understood, challenged, and extended.<br><br></span>None of these limitations invalidate the framework. They define its scope. A scenario atlas built from real data, with named proxies and documented approximations, is more defensible than one built from a parametric model that hides similar choices inside its distributional assumptions. But the choices are still there, and they should be visible.</p><h1><span>The key takeaway</span></h1><p><strong><span>Bottom line: </span></strong><span>11 investable assets, one EUR/USD risk driver, monthly EUR log returns, and 180 complete observations from January 2011 to December 2025.</span></p><p><span>That panel is not the conclusion of the research process. It is the starting point.</span></p><p><span>From here, we can ask better questions: what does history actually show across assets? Which return properties survive simple diagnostics? How should we resample paths without destroying cross-asset structure? Which market worlds are missing from the historical record? How can investor views be added without rewriting the entire scenario set?</span></p><p><span>That is where the Scenario Atlas begins.</span></p>]]></content:encoded></item><item><title><![CDATA[I. Scenario Modeling: Why We Build Scenario Atlases, Not Covariance Matrices]]></title><description><![CDATA[You build the worlds first, place views on them second, and optimize third.]]></description><link>https://quantstrategy.substack.com/p/before-views-why-we-build-scenario</link><guid isPermaLink="false">https://quantstrategy.substack.com/p/before-views-why-we-build-scenario</guid><dc:creator><![CDATA[Thomas Osowski]]></dc:creator><pubDate>Tue, 07 Jul 2026 06:12:09 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2503af78-e2c3-45b6-afcd-540eeb0763e7_692x349.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>Three key points:<br><br>&#8226; <strong>The optimizer is not the beginning of the portfolio process.<br></strong> Before we place views or compute weights, we need a model of what can happen.<br><br>&#8226; <strong>A covariance matrix is a useful diagnostic, but a poor foundation.</strong><br> It summarizes volatility and linear correlation, but it cannot show drawdowns, sequencing risk, regime shifts, or stress paths.<br><br>&#8226;<strong> </strong><em><strong>Before</strong></em><strong> deciding on which &#8220;world&#8221; your portfolio will live in the future </strong>- by weightening the probability of future paths -  <strong>it is necessary to build a sufficiently rich set of possible worlds</strong>. Entropy Pooling (Block 2) and Portfolio Construction (Block 3) come later</p></blockquote><p>Before you think about performing portfolio construction or even place an investment view on a portfolio, you need a model of what can happen to the assets in the future you want to invest in today. Most processes skip this step. They go straight from historical data to a covariance matrix, from a covariance matrix to expected returns, and from expected returns to portfolio weights. The model of what can happen is implicit &#8212; buried inside the Gaussian assumption, invisible in the optimization.</p><p><em><strong>This series makes it explicit.<br><br></strong></em>The broader architecture that connects risk identification, scenario generation, view integration and portfolio construction is described in <a href="https://quantstrategy.substack.com/p/why-portfolio-construction-is-more">Why Portfolio Construction Is More Than Optimization</a> which describes the process of building and evaluating portfolios in four subsequent blocks. The article at hand is the starting point and focuses on the first question that architecture has to answer: <em>What are the potential futures your portfolio might have to live in</em>?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IrSS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IrSS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png 424w, https://substackcdn.com/image/fetch/$s_!IrSS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png 848w, https://substackcdn.com/image/fetch/$s_!IrSS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png 1272w, https://substackcdn.com/image/fetch/$s_!IrSS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IrSS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png" width="948" height="360" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:948,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:494569,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://quantstrategy.substack.com/i/205147363?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!IrSS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png 424w, https://substackcdn.com/image/fetch/$s_!IrSS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png 848w, https://substackcdn.com/image/fetch/$s_!IrSS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png 1272w, https://substackcdn.com/image/fetch/$s_!IrSS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefab980f-911a-486b-a8f9-a8d7bb8f48ff_948x360.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The central object of this series is not a covariance matrix. It is a scenario atlas: a structured collection of possible multi-year paths across assets, built from historical market data and extended with stress scenarios that history alone cannot provide. Views come later. Optimization comes later. First, we need to know what worlds we are asking our portfolio to survive.</p><p><strong>This first article of my new flagship series explains why &#8212; and what we are building as necessary prerequisite for the subsequent steps of view implementation and portfolio constructoin.</strong></p><p>A few honest words: While our approach will have a certain level of complexity, we still keep it rather simple in some aspects. Our framework is improvable in many areas, but for us it is intuition and the right mindset that is the heart of this series. The implementation can be found on <a href="https://github.com/ThomasOs71/quantstrategy">Github</a>. Find infos about the Technical &amp; Data elements in the separate <strong><a href="https://quantstrategy.substack.com/publish/post/205151448">Technical Article</a></strong> of this series</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://quantstrategy.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading QuantStrategy! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>The Problem with Covariance-First Thinking</h2><p>First Of All: Using a covariance matrix is not wrong. It is a useful summary of how assets have moved together in the past - on average at least. It captures volatility. It captures linear correlation. It gives an optimizer something to work with.</p><p>The problem is not the covariance matrix itself. The problem is treating it as the foundation of the investment process &#8212; the primitive object from which everything else follows. When you start with covariance, you are already committed to a set of implicit choices that are rarely made explicit and are highly unrealistic: <br>You are assuming that second moments are the right summary of risk. <br>You are assuming that the correlations in your estimation window are a reasonable guide to future correlations. <br>You are assuming that a portfolio that looks efficient in covariance space will behave acceptably across the range of environments it will actually face.</p><p>None of these assumptions are obviously true. And more importantly, none of them are visible in the covariance matrix itself.</p><p>To be clear: even before we get to these deeper issues, the sample covariance matrix is a fragile object in its own right. With a limited number of observations and a meaningful number of assets, the raw estimate is noisy, ill-conditioned, and sensitive to outliers &#8212; problems that require shrinkage, robust estimation, or factor models to manage. We have written about this in detail <a href="https://quantstrategy.substack.com/p/why-most-covariance-estimations-fail">here</a>. But here is the more uncomfortable point: even a well-estimated covariance matrix faces a structural limitation that no amount of shrinkage can fix. It answers the wrong question.</p><p><strong>Consider what a covariance matrix cannot tell you</strong>. It cannot tell you how deep a drawdown might be, or how long it might last. It cannot tell you whether the correlation between equities and government bonds will be negative or positive over the next three years &#8212; a question that turns almost entirely on the inflation regime. It cannot tell you what happens to credit spreads and equity volatility simultaneously in a liquidity crisis. It cannot represent the difference between a portfolio that loses thirty percent over six months and recovers, and one that loses thirty percent over six months and does not. These are not edge cases. They are the situations in which portfolio decisions actually matter. </p><p>The following table summarizes what a covariance matrix captures well and where a scenario atlas adds what it cannot provide.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oRk5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oRk5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png 424w, https://substackcdn.com/image/fetch/$s_!oRk5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png 848w, https://substackcdn.com/image/fetch/$s_!oRk5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!oRk5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oRk5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:149485,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://quantstrategy.substack.com/i/205147363?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oRk5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png 424w, https://substackcdn.com/image/fetch/$s_!oRk5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png 848w, https://substackcdn.com/image/fetch/$s_!oRk5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!oRk5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b41db20-8172-42d3-be57-f515d050f665_2400x1350.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This series does not reject covariance. <strong>Volatilities and correlations </strong>are useful diagnostics, and we will compute them from scenario paths throughout. But the<strong>y are outputs of the analysis, not its foundation</strong>. The foundation is a structured set of possible worlds.</p><h2>What a Scenario Atlas Actually Is</h2><p>A scenario atlas is a structured collection of possible futures &#8212; not point forecasts, not probability distributions in the parametric sense, but concrete multi-year paths across assets. Each path describes a potential future realisation or &#8220;world&#8221;: how equities moved, how bonds behaved, how credit spreads evolved, how the currency shifted &#8212; month by month, over a horizon of one, three, or five years.</p><p>The word <em>atlas</em> is deliberate. An atlas does not tell you where you will end up. It shows you the territory. It makes the range of possible destinations visible so that you can reason about them explicitly &#8212; which roads are likely, which are dangerous, which you have not prepared for.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BvE3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BvE3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png 424w, https://substackcdn.com/image/fetch/$s_!BvE3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png 848w, https://substackcdn.com/image/fetch/$s_!BvE3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png 1272w, https://substackcdn.com/image/fetch/$s_!BvE3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BvE3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png" width="948" height="413" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:413,&quot;width&quot;:948,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:149380,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://quantstrategy.substack.com/i/205147363?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BvE3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png 424w, https://substackcdn.com/image/fetch/$s_!BvE3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png 848w, https://substackcdn.com/image/fetch/$s_!BvE3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png 1272w, https://substackcdn.com/image/fetch/$s_!BvE3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31edb90f-c39e-4316-b3ac-e423276f2d6f_948x413.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In this series, the atlas contains thousands of such paths, organized into three sets built with different methods. Each set reflects a different way of asking the same question: <strong>Given what history tells us about how markets move together, what worlds should our portfolio be prepared to face?</strong></p><p>What makes this different from a covariance matrix is not a question of mathematical complexity. The distinction is one of transparency. A covariance matrix compresses the structure of market behavior into something algebraically convenient &#8212; a single object that an optimizer can work with directly. A scenario atlas keeps that structure visible. You can look at an individual path and ask whether it is plausible. You can count how many paths end in a drawdown of more than twenty percent. You can check whether your stress scenario of choice &#8212; stagflation, a liquidity crisis, a decade of financial repression &#8212; is actually represented, and with what weight.</p><p>This visibility is not just pedagogically convenient. It is what makes the framework governable. An investment committee can interrogate a collection of scenarios in a way that it cannot interrogate a covariance matrix. The question <em>&#8220;which worlds are we not prepared for?&#8221;</em> has a natural answer when the worlds are explicit. It has no answer when risk is summarized in a single matrix. <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><p>One more clarification before we go further. An atlas of possible worlds is not a set of forecasts. Building the atlas does not require a view on which world is more likely. That comes later, in Block 2 of this series, when we use Entropy Pooling to shift probability mass across the scenarios we have already built. The atlas and the views are kept separate &#8212; and that separation is the methodological core of this approach. </p><h2>The Primitive Object: asset_paths</h2><p>Every framework makes a choice about what to put at the center. In mean-variance optimization, the central object is the covariance matrix &#8212; everything else is derived from it or added to it. In this series, the central object is something different:</p><blockquote><p><span>asset_paths # shape: S &#215; H &#215; N_assets</span></p></blockquote><p>This is a three-dimensional array. <strong>S</strong> is the number of scenarios &#8212; in practice, several thousand. <strong>H</strong> is the horizon in months &#8212; we work with paths of up to sixty months. <strong>N_assets</strong> is the number of investable assets in the portfolio. This series models eleven investable assets and one auxiliary FX risk driver &#8212; EUR/USD &#8212; which is used to convert USD-denominated returns into EUR perspective. </p><p>In plain terms: <em><strong>asset_paths</strong></em><strong> is a collection of possible futures, one slice per scenario, showing how each asset moved month by month over the full horizon.</strong></p><p>The reason this is the right primitive object is a simple asymmetry. From paths, you can derive almost everything else you might want:</p><blockquote><p><strong><span>expected_returns</span></strong><span> = compute_means(asset_paths)<br></span><strong><span>covariance </span></strong><span>= compute_covariance(asset_paths)<br></span><strong><span>terminal_returns</span></strong><span> = compound(asset_paths)<br></span><strong><span>max_drawdowns </span></strong><span>= compute_max_drawdown(asset_paths)<br></span><strong><span>cvar </span></strong><span>= compute_cvar(asset_paths)</span></p></blockquote><p><em>The reverse is not true</em>. <strong>From a covariance matrix</strong>, you cannot recover paths. You cannot reconstruct drawdowns, sequencing risk, time-under-water, or the joint behavior of assets in a specific stress environment. <strong>The compression is irreversible.</strong></p><p>This asymmetry is why we start with paths rather than moments. We are not giving up information to gain tractability. We are keeping the information and accepting a slightly different form of computation.</p><p>The paths in this atlas are built from historical market data &#8212; monthly returns from September 2010 to the present, giving approximately 189 observations. How exactly those paths are constructed from that data, and what assumptions each construction method makes, is the subject of the next four articles in this series.</p><h2>Why Empirical-First</h2><p>This series describes itself as empirical-first. That phrase needs unpacking, because it is easy to misread it as a rejection of models, or as a claim that historical data speaks for itself. Neither is true.</p><p>Empirical-first means that t<strong>he starting point is the historical record of how assets have actually moved together</strong> &#8212; not a parametric model. We resample and reconstruct from observed market behavior rather than drawing from fitted distributions. History provides the raw material; the methods determine how we use it.</p><p>The alternative &#8212; parametric-first &#8212; would mean starting with a model. Assume returns follow a certain distribution. Estimate its parameters. Generate scenarios by drawing from that distribution. This is a legitimate approach, and in some settings the right one. But it carries a risk that is easy to underestimate: the model becomes a hidden assumption. The scenarios look like they came from data, but they actually came from a Gaussian copula, or a hidden Markov model, or whatever distributional choice was made. That choice shapes everything downstream, often invisibly.</p><p>Empirical-first makes the nature of the assumptions more inspectable. The building blocks are actual market observations &#8212; you can look at a resampled path and ask whether it is plausible, whether it corresponds to a real historical episode, whether the co-movements it contains make economic sense. That kind of inspection is harder to do with a scenario drawn from a fitted distribution, where the building blocks are model parameters rather than observable events.</p><p>But &#8212; and this is the point the phrase can obscure &#8212; empirical-first is not assumption-free. The assumptions do not disappear. They shift. And here the comparison with parametric approaches deserves more nuance than the empirical-first framing sometimes receives.</p><p>With a parametric model, the assumptions are written down explicitly. You specify a distribution, you write out the likelihood, you derive estimators with known statistical properties &#8212; consistency, asymptotic normality, confidence intervals. The model is on paper and, at least in principle, falsifiable. This is not a weakness. It is a genuine strength of the parametric approach. The formal explicitness of parametric assumptions is something empirical-first methods cannot fully match.</p><p>With empirical-first methods, the core assumption &#8212; that the historical sample is sufficiently representative of the range of plausible futures &#8212; is harder to make precise. It is less a formal assumption than a judgment call. You cannot write a likelihood for it. You cannot derive its sampling properties in the usual sense. In this specific way, the empirical-first framework is formally less explicit than its parametric counterpart, even as its building blocks are more directly inspectable.</p><p>The two dimensions are different and should not be conflated:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3eKV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3eKV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png 424w, https://substackcdn.com/image/fetch/$s_!3eKV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png 848w, https://substackcdn.com/image/fetch/$s_!3eKV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!3eKV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3eKV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:168918,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://quantstrategy.substack.com/i/205147363?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3eKV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png 424w, https://substackcdn.com/image/fetch/$s_!3eKV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png 848w, https://substackcdn.com/image/fetch/$s_!3eKV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!3eKV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cbcb0b1-d6be-4800-a4d3-06a3c1a3062b_2400x1350.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Neither column wins unconditionally. The empirical-first choice in this series is a deliberate preference, not a universal verdict. With approximately 180 months of data across eleven assets, we do not have enough observations to estimate a rich parametric model reliably &#8212; the curse of dimensionality bites hard in that regime. That tilts the balance toward empirical methods in this specific setting. In a different setting &#8212; more data, fewer assets, a well-understood return-generating process &#8212; the parametric approach might be the stronger choice.</p><p>We will also examine parametric alternatives directly. Hidden Markov models, copula-based generators, and factor-structured approaches each offer something the empirical sets do not &#8212; explicit regime structure, tail dependence modeling, cleaner separation of marginal and joint behavior. Understanding what they add, and what they cost, is part of taking the empirical-first choice seriously rather than treating it as the only reasonable one.</p><p><strong>One more thing this series is not: anti-parametric</strong>. Parametric tools appear throughout &#8212; as volatility filters in Set C, as diagnostics throughout. The question is not whether to use models. It is where to put them. In this series, they are tools within an empirical framework, not the foundation of it. Whether parametric alternatives deserve a more thorough treatment of their own is a question we will return to separately.</p><h2>What This Series Builds</h2><p>Block 1 of this series produces a scenario atlas with three distinct sets of paths, each constructed using a different method. The sets are not competing alternatives &#8212; they are complements, each designed to answer a slightly different question about the range of plausible futures.</p><p><strong>Set A &#8212; Synchronized Historical Block Bootstrap</strong> is the baseline. It resamples blocks of historical returns across all assets simultaneously, preserving the cross-asset structure that existed in each historical episode. No distributional assumptions, no latent states. Just history, resampled and stitched together into multi-year paths.</p><p><strong>Set B &#8212; Conditional Similarity Resampling</strong> asks a refinement of the same question: <em>are all historical periods equally relevant to where we are today</em>? Set B weights historical episodes by their similarity to the current market environment &#8212; current yield levels, credit spreads, equity volatility, and other observable conditions. Periods that resemble today receive more weight. This is a state-dependent atlas without hidden Markov states.</p><p><strong>Set C &#8212; Filtered Historical Simulation</strong> addresses volatility clustering. It separates the volatility state from the underlying market shocks, uses a filter to scale shocks to the current volatility environment, and then resamples the standardized shocks empirically. The shocks remain historical &#8212; no Gaussian draws &#8212; but their scaling reflects where we are in the volatility cycle.</p><p>In addition to these three sets, the atlas is augmented with a small collection of <strong>stress scenarios</strong> &#8212; structured multi-year paths representing environments that history alone underrepresents: deep stagflation, severe liquidity crises, prolonged financial repression. These are not point forecasts. They are modelling priors, assigned a small collective weight to ensure the atlas covers worlds it would otherwise miss.</p><p>All three sets share the same asset universe and the same horizon structure. Paths run to sixty months, and terminal returns are computed at twelve, thirty-six, and sixty months. This multi-horizon design allows the atlas to support both annual SAA reviews and longer-term strategic views.</p><p>The asset universe consists of eleven investable assets and one auxiliary FX risk driver:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4mBp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4mBp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png 424w, https://substackcdn.com/image/fetch/$s_!4mBp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png 848w, https://substackcdn.com/image/fetch/$s_!4mBp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!4mBp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4mBp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:221045,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://quantstrategy.substack.com/i/205147363?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!4mBp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png 424w, https://substackcdn.com/image/fetch/$s_!4mBp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png 848w, https://substackcdn.com/image/fetch/$s_!4mBp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!4mBp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67997b8f-0065-4c7c-a629-3025bd0b8834_2400x1350.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The data underlying the atlas runs from September 2010 to the present &#8212; approximately 180 monthly observations. The start date is determined by the earliest available proxy for Euro High Yield, the binding constraint in the asset universe. This shorter history than one might ideally want is part of the honest accounting this series tries to maintain throughout.</p><h2>Limitations</h2><p>This framework is deliberately transparent about its boundaries.</p><p>The historical return panel starts in September 2010. That gives a clean common sample across all assets, but it also means that some important worlds &#8212; including the 2008 financial crisis and earlier inflation regimes &#8212; are not directly present in the empirical sample. This is one reason the atlas later adds explicit stress clusters rather than pretending that history is complete.</p><p>The asset universe also uses practical public-market proxies, and the FX treatment is intentionally parsimonious: EUR/USD is the only explicit currency driver. These choices make the framework reproducible and explainable, but they remain approximations.</p><p>The detailed data sources, proxy choices, currency treatment, schema conventions and repricing logic are documented separately in <strong>Technical Note: Scenario Atlas Infrastructure</strong>. </p><h2>What This Means for Your SAA</h2><p>If you run a strategic asset allocation process, this series is relevant to you at three levels.</p><p><strong>Diagnostic.</strong> Even if you never build a scenario atlas yourself, the framework changes what questions you can ask. Which historical environments does your current portfolio handle well, and which does it handle badly? What is the worst twelve-month path in a plausible set of futures? Which stress scenarios are absent from your current risk process? These questions have natural answers when possible worlds are explicit.</p><p><strong>Governance.</strong> Investment committees are better at reasoning about scenarios than about covariance matrices. A portfolio that survives stagflation but struggles in a liquidity crisis is a comprehensible statement. A portfolio with a tracking error of 4.2% is not. The scenario atlas produces outputs that translate directly into committee language &#8212; not because they are simplified, but because they are structured around the questions committees actually care about. </p><blockquote><p><strong>Interested in ways to improve you decisions of your Investment Committee? Then check out our other series: <a href="https://quantstrategy.substack.com/s/the-allocators-toolkit">The Allocator's Toolkit</a> and <a href="https://quantstrategy.substack.com/s/the-irrational-committee">The Irrational Committee</a>.</strong></p></blockquote><p><strong>Methodological.</strong> If you currently build your SAA around a mean-variance optimizer fed by a covariance matrix and a set of capital market assumptions, this series offers an alternative architecture. The optimizer still appears in Block 3, and the capital market assumptions still matter in Block 2. But the order of operations is different. <strong>You build the worlds first, place views on them second, and optimize third.</strong></p><h2>Key Takeaways</h2><p><strong>A covariance matrix is a useful diagnostic tool, but a poor foundation for strategic asset allocation</strong>. It compresses out exactly the information &#8212; drawdowns, path dependence, regime changes, stress behavior &#8212; that matters most in real portfolio decisions.</p><p>The primitive object of this series is <em>asset_paths</em>: a collection of possible multi-year futures across eleven assets, built from historical market data and structured into three complementary scenario sets.</p><p>Empirical-first does not mean assumption-free. The core assumption &#8212; that history is representative enough to resample from &#8212; is less formally explicit than a parametric model&#8217;s likelihood, but its building blocks are more directly inspectable. Both approaches involve genuine trade-offs.</p><p>The three scenario sets in Block 1 address different aspects of that trade-off: Set A is the synchronous historical baseline, Set B conditions on current market state, Set C accounts for volatility clustering. A small stress layer covers worlds history alone underrepresents.</p><p>Views come in Block 2. The atlas contains no investment opinion. Its purpose is to make the space of possible worlds visible before any probability tilts are applied.</p><h2>Next: From Returns to Scenario Building Blocks</h2><p>The next article in this series asks a more practical question: what exactly does history give us to work with, and what are its limitations as raw material for a scenario atlas?</p><p>Before we can resample historical returns responsibly, we need to understand their properties. Monthly returns are not independent draws from a fixed distribution. They exhibit autocorrelation, volatility clustering, fat tails, and time-varying correlations. These properties do not disqualify them as building blocks &#8212; but they determine how those building blocks should be used.</p><p></p><h4>Disclaimer</h4><p>This article is published for informational and educational purposes only. Nothing in this series constitutes investment advice, a recommendation to buy or sell any security, or an invitation to engage in any investment activity. The views expressed are those of the authors in their personal capacity and do not represent the views of any employer, institution, or affiliated organization.</p><p>All scenario construction, data handling, and methodological choices described in this series are illustrative. Past market behavior, however carefully analyzed, is not a reliable guide to future outcomes. Code published on GitHub is provided as-is, without warranty of any kind.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>You should never forget: The world we are living in right now is the one which has &#8220;materialised&#8221; which was only one in a set of unlimited possible worlds that could have materialised. What about the other &#8220;world&#8221; that have not manifested? </p><p>Maybe a decision had only a few world where it would be successful. Would that be a wise decision only because it was successful in the world that manifested?</p><p>That&#8217;s a little deep for a quant finance article - i guess.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>This will be a topic of one of the next articles in my series: &#8220;The Allocator&#8217;s Toolkit&#8221;</p></div></div>]]></content:encoded></item></channel></rss>