<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://ronaldluc.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ronaldluc.com/" rel="alternate" type="text/html" /><updated>2026-07-13T14:38:45+00:00</updated><id>https://ronaldluc.com/feed.xml</id><title type="html">Ronald Luc</title><subtitle>Machine learning, teaching, life.</subtitle><author><name>Ronald Luc</name></author><entry><title type="html">Kolik státního rozpočtu jde na poslední rok života</title><link href="https://ronaldluc.com/trends/posledni-rok-zivota/" rel="alternate" type="text/html" title="Kolik státního rozpočtu jde na poslední rok života" /><published>2026-07-12T21:30:00+00:00</published><updated>2026-07-12T21:30:00+00:00</updated><id>https://ronaldluc.com/trends/posledni-rok-zivota-statni-rozpocet</id><content type="html" xml:base="https://ronaldluc.com/trends/posledni-rok-zivota/"><![CDATA[<p>Mám několik známých se stejným příběhem: babičku odvezli do nemocnice kvůli mrtvici, v nemocnici našli rakovinu, provedli operaci, babička chytla pneumonii a umřela během hospitalizace, bez rodiny. O nesmyslném „léčení” na konci života jsem slyšel i přímo od lékařů. A zároveň se pořád zvyšuje věk odchodu do důchodu – dnes 65, moje generace má jít v 72. Napadla mě proto otázka: <strong>pokud nechci být poslední rok „léčen” a raději dožiju v kruhu rodiny s podporou mobilního hospice, ušetří se dost peněz na to, abych šel o rok dva dřív do důchodu?</strong></p>

<p>Spočítal jsem z veřejných dat, kolik peněz protéká posledním rokem života českých seniorů – zdravotní péče plus důchod – a co s tím podílem udělá stárnutí populace za 10, 20 a 30 let. Odpověď na moji otázku je dole pod výsledky.</p>

<h2 id="výsledky">Výsledky</h2>

<table>
  <thead>
    <tr>
      <th>Podíl na výdajích státního rozpočtu</th>
      <th>2023</th>
      <th>2033</th>
      <th>2043</th>
      <th>2053</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Poslední rok života lidí 65+</strong></td>
      <td><strong>2,6 %</strong></td>
      <td>3,3 %</td>
      <td>4,3 %</td>
      <td><strong>5,3 %</strong></td>
    </tr>
    <tr>
      <td>Poslední rok života lidí 85+</td>
      <td>0,9 %</td>
      <td>1,4 %</td>
      <td>2,2 %</td>
      <td>2,6 %</td>
    </tr>
    <tr>
      <td>Absolutně, 65+ (dnešní Kč)</td>
      <td>56,6 mld.</td>
      <td>72,7 mld.</td>
      <td>89,7 mld.</td>
      <td>104,5 mld.</td>
    </tr>
    <tr>
      <td><strong>Pracujících (20-64) na jednoho seniora 65+</strong></td>
      <td><strong>2,86</strong></td>
      <td>2,64</td>
      <td>2,16</td>
      <td><strong>1,89</strong></td>
    </tr>
  </tbody>
</table>

<p>Poměr pracujících na seniora sedí na tisíciny s oficiální Eurostat projekcí (<code class="language-plaintext highlighter-rouge">OLDDEP3</code>) a odpovídá i <a href="https://csu.gov.cz/produkty/projekce-obyvatelstva-ceske-republiky-2023-2100">projekci ČSÚ 2023-2100</a>.</p>

<h2 id="co-to-znamená-bez-ekonomštiny">Co to znamená, bez ekonomštiny</h2>

<p>Stát za každého člověka platí dvě velké věci: <strong>zdravotní péči</strong> a ve stáří <strong>důchod</strong>. Zdravotní péče není rozprostřená rovnoměrně – zdaleka nejdražší je <strong>poslední rok života</strong>, kdy se koncentrují hospitalizace a intenzivní léčba. U seniora 65+ stojí poslední rok života zdravotnictví průměrně <strong>349 tisíc Kč</strong> (běžný rok téhož seniora: 85 tisíc). Když k tomu přičtete roční důchod (~248 tisíc Kč), protečou posledním rokem života jednoho seniora zhruba <strong>597 tisíc Kč</strong> veřejných peněz – asi dva roky odvodů průměrného zaměstnance.</p>

<p>Teď to vynásobte demografií. Silné ročníky stárnou, takže seniorů přibývá a lidí v produktivním věku ubývá. Dnes se na jednoho seniora skládají necelí tři pracující, v roce 2053 to budou necelí dva. Peněz do rozpočtu tedy přiteče méně, a zároveň bude umírat víc lidí ročně (113 tisíc dnes, ~192 tisíc v 2053 při dnešní úmrtnosti). Obě nůžky se rozevírají proti sobě – proto podíl posledního roku života na rozpočtu vzroste na dvojnásobek, <strong>aniž by se cokoliv zdražilo</strong>. V celém výpočtu jsou záměrně zafixované dnešní ceny, dnešní důchody i dnešní odvody na hlavu; mění se jen to, kolik je komu let.</p>

<p>Jedna věc, která mě překvapila: poslední rok života člověka 85+ je o něco <strong>levnější</strong> než průměr 65+ (340 vs. 349 tisíc Kč). U nejstarších se léčí méně intenzivně – méně JIP, méně agresivní terapie.</p>

<h2 id="odpověď-stačí-to-na-dřívější-důchod">Odpověď: stačí to na dřívější důchod?</h2>

<p>Skoro přesně na <strong>jeden rok</strong>. Počty na jednoho člověka 65+:</p>

<ul>
  <li>Poslední rok života s běžnou trajektorií („léčení”): <strong>349 tisíc Kč</strong>.</li>
  <li>Poslední rok života doma: běžná péče jako u přeživšího seniora (85 tisíc Kč) + mobilní hospic (45 tisíc Kč, průměrná úhrada pojišťovny na pacienta) = <strong>130 tisíc Kč</strong>.</li>
  <li><strong>Úspora: ~219 tisíc Kč.</strong> Rok důchodu stojí ~248 tisíc Kč =&gt; úspora pokryje <strong>~0,9 roku důchodu navíc</strong>.</li>
</ul>

<p>Takže rok dřív do důchodu: zhruba ano. Dva roky: ne. A jeden háček – když jdete o rok dřív do důchodu, stát nepřijde jen o rok důchodu navíc, ale i o váš rok odvodů (~304 tisíc Kč). V plné fiskální logice úspora pokryje jen <strong>~5 měsíců</strong>. Fér verze odpovědi tedy zní: umírání doma s hospicem zaplatí přibližně rok důchodu, nebo necelý půlrok, pokud byste ten rok jinak ještě pracovali.</p>

<p>Ve prospěch hospice ale hraje ještě jedna položka: bez ventilátorů a JIP člověk umře o něco <strong>dřív</strong> – intenzivní terminální péče typicky prodlouží život o bolestné měsíce na ventilátoru. Každý takový nevyplacený měsíc důchodu je dalších ~21 tisíc Kč, takže reálná úspora je ještě o kus vyšší než počítám (a záměrně to nechávám jen jako kvalitativní bonus – prodloužení života na JIP nikdo v ČR neměřil).</p>

<p>Druhý háček: nejde to naplánovat pro každého. Část úmrtí je náhlá, část trajektorií (demence, dlouhá křehkost) domácí péči neumožní bez obrovské zátěže rodiny – a ČR je v dostupnosti domácí péče druhá nejhorší z 22 zemí OECD (stojí 668 % mediánového příjmu důchodce, bez veřejné podpory). Přesto je tu reálný přesah: dnes v nemocnici umírá 64 % Čechů, druhý nejvyšší podíl v OECD, a přání většiny je opačné.</p>

<h2 id="metodologie-ve-třech-vrstvách">Metodologie ve třech vrstvách</h2>

<p>Vše je spočítané z veřejných, stažitelných dat. High level: vzal jsem oficiální tabulku ČSÚ „výdaje zdravotních pojišťoven na obyvatele podle věku”, rozdělil ji na náklady přeživších a náklady umírajících pomocí skutečné úmrtnosti každé věkové skupiny, a výsledek přepočítal na populační strukturu z oficiální evropské projekce. Podrobnosti jsou v rozbalovacích blocích.</p>

<details>
  <summary><strong>Jak se z jedné tabulky pozná cena posledního roku života</strong></summary>

  <p>ČSÚ publikuje průměrné výdaje pojišťoven na obyvatele podle věku a pohlaví (tab. T3.1 Zdravotnických účtů, 2017-2023). Průměr každé skupiny je ale směs dvou populací: přeživších a lidí v posledním roce života. Platí <code class="language-plaintext highlighter-rouge">s = (1-m)·σ + m·δ</code>, kde <code class="language-plaintext highlighter-rouge">m</code> je úmrtnost skupiny, <code class="language-plaintext highlighter-rouge">σ</code> náklad přeživšího a <code class="language-plaintext highlighter-rouge">δ</code> náklad posledního roku života. Poměr <code class="language-plaintext highlighter-rouge">δ/σ = 4,1</code> beru z jediné české mikrodatové studie (Pavloková 2010, data VZP o 7 milionech pojištěnců: zemřelí stáli 4,1× víc než přeživší, a po očištění o blízkost smrti efekt věku skoro mizí – náklady nerostou stářím, ale blízkostí smrti). Úrovně v Kč jsou plně z dat 2018-2023.</p>

  <p>Sanity check: z modelu vychází, že poslední rok života spotřebuje <strong>8,0 %</strong> výdajů pojišťoven – mezinárodní studie devíti zemí (French et al. 2017, Health Affairs) měří 8,5-11,2 %. Sedí to na dolní hranici, takže čísla výše jsou spíš konzervativní.</p>
</details>

<details>
  <summary><strong>Jak se posouvá populační křivka a proč se smršťuje rozpočet</strong></summary>

  <p>Nepoužívám naivní „posunutí křivky doprava” (to by vynulovalo děti a ignorovalo migraci), ale oficiální projekci <strong>Eurostat EUROPOP2023 baseline</strong> pro roky 2033/2043/2053 – s porodností i migrací, populace se drží kolem 10,7 milionu, jen vnitřně stárne. Na projekci aplikuji dnešní čísla na osobu: výdaje podle věku, úmrtnost 2023, odvody 304 tisíc Kč na zaměstnance ročně (včetně odvodů zaměstnavatele), důchod 248 tisíc Kč ročně.</p>

  <p>Ekonomika se škáluje počtem lidí 20-64 při konstantní zaměstnanosti, produktivitě a daňové kvótě: méně plátců =&gt; menší HDP =&gt; menší odvody i rozpočet. Konkrétně odvody klesnou z 2 699 na 2 406 mld. Kč (-11 %). Procenta v tabulce jsou tedy podíl rostoucího čitatele na klesajícím jmenovateli.</p>
</details>

<details>
  <summary><strong>Co by čísla posunulo (limity)</strong></summary>

  <ul>
    <li><strong>Úmrtnost je zafixovaná na roku 2023.</strong> Reálně klesá, takže zemřelých bude méně, než počítám (moje 169 tisíc v 2043 vs. ~140 tisíc v projekci ÚZIS pro 2040). Procenta jsou horní odhad.</li>
    <li><strong>Produktivita je zafixovaná.</strong> Reálný růst produktivity jmenovatel zvedne a nůžky částečně zavře – jenže s produktivitou porostou i mzdy ve zdravotnictví, takže jednotkové náklady stáří nezůstanou stát.</li>
    <li><strong>Důchodový věk se posouvá</strong> a míra zaměstnanosti starších roste; to model ignoruje.</li>
    <li>Kalibrace 4,1 je z dat 2004 (novější česká mikrodata nikdo nepublikoval). Citlivost: při poměru 6 by zdravotní složka scénáře 65+ byla ~43 místo 33 mld. Kč.</li>
    <li>Není to návrh „neplatit poslední rok života” – ex ante nikdo neví, čí poslední rok právě běží. Je to účetní řez, kolik tím rokem protéká.</li>
  </ul>
</details>

<h2 id="zdroje">Zdroje</h2>

<p>Hlavní vstupy: <a href="https://csu.gov.cz/produkty/vysledky-zdravotnickych-uctu-2023">ČSÚ Zdravotnické účty</a> (tab. T3.1), Eurostat <code class="language-plaintext highlighter-rouge">demo_magec</code>/<code class="language-plaintext highlighter-rouge">demo_pjan</code>/<code class="language-plaintext highlighter-rouge">proj_23np</code> (EUROPOP2023), <a href="https://doi.org/10.18267/j.pep.365">Pavloková 2010, Prague Economic Papers</a>, <a href="https://www.healthaffairs.org/doi/10.1377/hlthaff.2017.0174">French et al. 2017, Health Affairs</a>, MFČR (výdaje rozpočtu 2024), ČSSZ/MPSV (důchody). Celý výpočet je reprodukovatelný Python skript nad stáhnutelnými CSV.</p>]]></content><author><name>Ronald Luc</name></author><category term="Headline Trends" /><category term="Czech" /><category term="Public Policy" /><category term="Demography" /><category term="Data" /><summary type="html"><![CDATA[Populační křivka ‒> méně plátců ‒> poslední rok života seniorů 65+ vzroste z 2,6 % na 5,3 % státního rozpočtu.]]></summary></entry><entry><title type="html">Rethinking the Custom Wedding Cake Topper</title><link href="https://ronaldluc.com/custom-wedding-cake-toppers/" rel="alternate" type="text/html" title="Rethinking the Custom Wedding Cake Topper" /><published>2026-06-24T00:00:00+00:00</published><updated>2026-06-24T00:00:00+00:00</updated><id>https://ronaldluc.com/custom-wedding-cake-toppers</id><content type="html" xml:base="https://ronaldluc.com/custom-wedding-cake-toppers/"><![CDATA[<p><em>Disclosure: I co-founded <strong><a href="https://conjure.tech">conjure.tech</a></strong> — we’re building ChatGPT for physical products — with Jakub Suchánek, and <strong><a href="https://conjure.wedding">conjure.wedding</a></strong> is one of the first things we’ve made with it. So I’m anything but neutral here; this is my honest account of why we built it, including what we learned by quietly ordering custom toppers from eight other companies with our own money first.</em></p>

<p>A wedding cake topper sits on the cake for about forty minutes. Then it sits on a shelf for the next few decades. It is one of the very few things from the whole expensive day that you actually keep — and, if it’s made to look like the two of you, one of the few that becomes genuinely irreplaceable.</p>

<p>So it’s strange how painful it still is to get a good one.</p>

<h2 id="ordering-a-custom-topper-today-pay-a-stranger-wait-months-hope">Ordering a custom topper today: pay a stranger, wait months, hope</h2>

<p>Search “custom wedding cake topper” and you land in a beautiful, slightly terrifying aisle. The work can be lovely. But the <em>transaction</em> is stuck in 2010: you describe your faces to a stranger in a text box, pay in full up front, and then wait — sometimes for months — for a box to arrive, with no real idea whether it’ll look like you until it’s on your doorstep.</p>

<figure>
  <img src="/assets/images/projects/conjure/etsy-pain-delivery.jpg" alt="A custom wedding cake topper listing showing a €270 price, an 'Add to cart' button, and a delivery month dropdown set to December 2026." width="1000" height="447" loading="lazy" decoding="async" />
  <figcaption>A real listing: pay <strong>€270 now</strong>, choose a "Delivery Month" of <strong>December 2026</strong>, and you still have never once seen your own faces. You're buying a description and a hope.</figcaption>
</figure>

<figure>
  <img src="/assets/images/projects/conjure/etsy-pain-grid.jpg" alt="A grid of marketplace custom wedding cake toppers priced between roughly 150 and 200 euros." width="1000" height="590" loading="lazy" decoding="async" />
  <figcaption>The custom-topper aisle. Real craft, often €150–200 — but you commit your money <em>before</em> you see yourself, and "custom" means a back-and-forth with a human artist measured in weeks.</figcaption>
</figure>

<h2 id="we-ordered-eight-of-them-before-we-built-anything">We ordered eight of them before we built anything</h2>

<p>Before writing a line of product, we became customers — and I mean that literally: <strong>I’m getting married myself</strong>, so I went looking for our own topper first. We ordered <strong>eight</strong> custom toppers from across the market — marketplace sellers and factory-direct shops, in Europe, the US and China — about <strong>$2,000</strong> in total, all shipped to one address (mine), and we logged every step: the ordering flow, every reply, the wait, and what actually showed up.</p>

<p>The results were a gift, because they were so consistently bad:</p>

<ul>
  <li><strong>0 of 8</strong> arrived both intact <em>and</em> on time.</li>
  <li><strong>7 of 8</strong> blew past the delivery window they’d promised.</li>
  <li><strong>Two sellers ghosted</strong> us completely after a single message.</li>
  <li>The one that <em>did</em> arrive within its window failed on quality — our notes from unboxing it just say “looks horrible.”</li>
  <li>The most expensive order ($529) is the one that never shipped at all.</li>
</ul>

<p>We scored every vendor on the dimensions a couple actually <em>feels</em> — not on a spec sheet, but on the stuff that decides whether the experience is delightful or miserable. Then we set our own target one notch above the best score in the field on <strong>every single axis at once</strong>.</p>

<div class="cw-cmp-wrap">
<table class="cw-cmp">
  <thead>
    <tr>
      <th class="cw-cmp-v">Who we ordered from</th>
      <th>Ordering<br />experience</th>
      <th>Comms</th>
      <th>Quality<br />promised</th>
      <th>Quality<br />delivered</th>
      <th>Reply<br />speed</th>
      <th>Price</th>
      <th>On time<br />&amp; intact?</th>
    </tr>
  </thead>
  <tbody>
    <tr class="cw-cmp-us">
      <td class="cw-cmp-v"><strong>Conjure</strong><span>our target — +1 on everything</span></td>
      <td data-s="9.0">9.0</td>
      <td data-s="10">10</td>
      <td data-s="9.0">9.0</td>
      <td data-s="9.0">9.0</td>
      <td data-s="9.5">9.5</td>
      <td class="cw-cmp-good">from&nbsp;$50</td>
      <td class="cw-cmp-yes">✓ yes</td>
    </tr>
    <tr>
      <td class="cw-cmp-v">Mass-market <span>vinyl figures · UK</span></td>
      <td data-s="7.0">7.0</td>
      <td data-s="5.0">5.0</td>
      <td data-s="5.0">5.0</td>
      <td class="cw-cmp-na" data-s="0">—</td>
      <td class="cw-cmp-na" data-s="0">none</td>
      <td>$138</td>
      <td class="cw-cmp-no">+21 d late</td>
    </tr>
    <tr>
      <td class="cw-cmp-v">Marketplace seller <span>Etsy · Paris</span></td>
      <td data-s="3.0">3.0</td>
      <td data-s="1.0">1.0</td>
      <td data-s="7.0">7.0</td>
      <td class="cw-cmp-bad" data-s="2.0">2.0</td>
      <td class="cw-cmp-na" data-s="0">ghosted</td>
      <td class="cw-cmp-good">$105</td>
      <td class="cw-cmp-no">v1 failed</td>
    </tr>
    <tr>
      <td class="cw-cmp-v">Factory-direct <span>China</span></td>
      <td data-s="2.5">2.5</td>
      <td data-s="6.0">6.0</td>
      <td data-s="7.0">7.0</td>
      <td class="cw-cmp-na" data-s="0">—</td>
      <td data-s="8.0">8.0</td>
      <td>$196</td>
      <td class="cw-cmp-no">+14 d late</td>
    </tr>
    <tr>
      <td class="cw-cmp-v">Factory-direct <span>China · AI-assisted</span></td>
      <td data-s="5.5">5.5</td>
      <td data-s="5.5">5.5</td>
      <td data-s="5.5">5.5</td>
      <td class="cw-cmp-bad" data-s="3.0">3.0</td>
      <td data-s="5.0">5.0</td>
      <td class="cw-cmp-over">$314</td>
      <td class="cw-cmp-no">v1 failed</td>
    </tr>
    <tr>
      <td class="cw-cmp-v">Marketplace seller <span>Etsy · China</span></td>
      <td data-s="3.5">3.5</td>
      <td data-s="6.0">6.0</td>
      <td data-s="8.5">8.5</td>
      <td class="cw-cmp-na" data-s="0">—</td>
      <td data-s="5.0">5.0</td>
      <td>$230</td>
      <td class="cw-cmp-no">+14 d late</td>
    </tr>
    <tr>
      <td class="cw-cmp-v">Factory-direct <span>Guangzhou, China</span></td>
      <td data-s="1.0">1.0</td>
      <td data-s="9.0">9.0</td>
      <td data-s="6.0">6.0</td>
      <td class="cw-cmp-na" data-s="0">—</td>
      <td data-s="5.0">5.0</td>
      <td>$215</td>
      <td class="cw-cmp-no">+4 d late</td>
    </tr>
    <tr>
      <td class="cw-cmp-v">Marketplace seller <span>Etsy · Florida</span></td>
      <td data-s="2.0">2.0</td>
      <td data-s="6.5">6.5</td>
      <td data-s="6.0">6.0</td>
      <td class="cw-cmp-na" data-s="0">—</td>
      <td data-s="7.0">7.0</td>
      <td class="cw-cmp-good">$172</td>
      <td class="cw-cmp-no">+23 d late</td>
    </tr>
    <tr>
      <td class="cw-cmp-v">Factory-direct <span>Kansas, USA</span></td>
      <td data-s="1.5">1.5</td>
      <td data-s="3.5">3.5</td>
      <td data-s="4.5">4.5</td>
      <td class="cw-cmp-na" data-s="0">—</td>
      <td class="cw-cmp-na" data-s="0">silent</td>
      <td class="cw-cmp-over">$529</td>
      <td class="cw-cmp-no">never shipped</td>
    </tr>
  </tbody>
</table>
</div>
<p class="cw-cmp-note">Scores 0–10, triangulated from our own orders placed April 2026. "Quality delivered" is filled in only after a piece physically arrived; the gap between what was <em>promised</em> and what <em>arrived</em> is the whole story. Competitor names withheld — these are mostly small studios doing sincere work, and the point isn't to pillory anyone, it's that the <em>format</em> is broken.</p>

<p>The pattern jumped out immediately: even the strongest competitor only led on one or two dimensions, and every one of them made you pay before you could see the result. Nobody was good at the whole thing at once.</p>

<p>So that became the rule for Conjure, and it’s a little obsessive: <strong>be at least one notch better than the entire field on every dimension that a couple actually feels</strong> — at the same time. Not “best in the world.” Just provably ahead of everyone else on ordering, communication, quality, speed, <em>and</em> price, together.</p>

<h2 id="so-we-inverted-the-one-thing-everyone-gets-wrong">So we inverted the one thing everyone gets wrong</h2>

<p>Here’s the core idea, and it’s almost embarrassingly simple: <strong>the moment you <em>buy</em> should not be the moment you <em>pay</em>.</strong></p>

<p>Every other custom topper makes you pay first and pray. We turned it around. With Conjure you <strong>design first, for free</strong>, and only reach for a card once you’ve approved the exact thing — rotated it, zoomed in, checked the likeness from every angle.</p>

<p>At a high level, the flow is:</p>

<ol>
  <li><strong>Upload a photo or two</strong> of the two of you (pets and all).</li>
  <li><strong>Our system sculpts you both</strong> and renders a real 3D model — in minutes, not weeks, with no human artist to brief and re-brief.</li>
  <li><strong>It loads right in your browser.</strong> Spin it, change the style, the size, the finish — redo it as many times as you like, free.</li>
  <li><strong>Pay only when it’s unmistakably you.</strong> Production starts the moment you approve, and the price you see is all-in: worldwide shipping and customs included, nothing waiting at the door.</li>
</ol>

<p><em>(I’ll keep the how-it-actually-works under the hood to ourselves — but the part that matters to you is all above the surface, and you can poke at it right now.)</em></p>

<h2 id="try-the-real-thing-right-here">Try the real thing, right here</h2>

<p>This is the same designer that runs on our site — drop in a look, set the size and finish, and watch the price and delivery update live. Pick a style and see the <strong>same couple</strong> re-rendered three completely different ways from one photo:</p>

<div id="cw" class="cw" aria-label="Interactive Conjure cake-topper designer">
  <div class="cw-card">
    <div class="cw-stage">
      <span class="cw-badge"><b>Live preview</b> · pick a style</span>
      <img id="cw-preview" class="cw-preview" src="/assets/images/projects/conjure/style-pixar.jpg" alt="3D-sculpted wedding cake topper of a couple, shown in a Pixar-clean style." width="760" height="590" loading="lazy" decoding="async" />
      <figure class="cw-input">
        <img src="/assets/images/projects/conjure/your-photo.jpg" alt="The original reference photo of the couple." width="560" height="747" loading="lazy" decoding="async" />
        <figcaption>your&nbsp;photo</figcaption>
      </figure>
    </div>
    <div class="cw-controls">
      <p class="cw-eyebrow">Step 1 · your photo &nbsp;→&nbsp; Step 2 · choose a look</p>
      <div class="cw-styles" role="group" aria-label="Choose a style">
        <button type="button" class="cw-style is-on" data-img="/assets/images/projects/conjure/style-pixar.jpg" data-alt="Pixar-clean style cake topper">Pixar</button>
        <button type="button" class="cw-style" data-img="/assets/images/projects/conjure/style-origami.jpg" data-alt="Folded origami style cake topper">Origami</button>
        <button type="button" class="cw-style" data-img="/assets/images/projects/conjure/style-duck.jpg" data-alt="Rubber-duck style cake topper">Rubber duck</button>
        <button type="button" class="cw-style cw-style-custom" data-custom="1">＋ your own</button>
      </div>
      <p class="cw-custom-note" hidden="">On the real studio you can describe <em>any</em> style in words — "watercolour with our dog", "claymation", "art-deco gold". The three above are just a taste.</p>
      <hr class="cw-rule" />
      <p class="cw-eyebrow">Step 3 · size &amp; finish</p>
      <div class="cw-field">
        <label class="cw-label" for="cw-size">Size <b id="cw-size-val">12 cm</b></label>
        <input id="cw-size" class="cw-range" type="range" min="0" max="3" step="1" value="1" aria-label="Topper size" />
        <div class="cw-ticks"><span>10</span><span>12</span><span>14</span><span>16</span></div>
      </div>
      <div class="cw-tiers" role="radiogroup" aria-label="Finish">
        <label class="cw-tier"><input type="radio" name="cw-tier" value="single" /><span class="cw-tier-b"><span class="cw-tier-h">Single-colour <b>$50</b></span><span class="cw-tier-s">Sculptural, one colour, porcelain-like.</span></span></label>
        <label class="cw-tier"><input type="radio" name="cw-tier" value="four" /><span class="cw-tier-b"><span class="cw-tier-h">Four-colour <b>$60</b></span><span class="cw-tier-s">Skin, hair, dress, suit — built into the material.</span></span></label>
        <label class="cw-tier cw-tier-pick"><span class="cw-pick-badge">Most couples choose</span><input type="radio" name="cw-tier" value="full" checked="" /><span class="cw-tier-b"><span class="cw-tier-h">Full-photo colour <b>from $200</b></span><span class="cw-tier-s">Photographic, full-colour surface — lace and embroidery legible up close.</span></span></label>
      </div>
      <div class="cw-summary">
        <div class="cw-price-box">
          <span class="cw-price-lbl">Price</span>
          <span class="cw-price-val" id="cw-price">$230</span>
          <span class="cw-price-meta">all in — shipping &amp; duties included</span>
        </div>
        <div class="cw-deliver-box">
          <span class="cw-price-lbl">Delivered by</span>
          <span class="cw-price-val" id="cw-deliver">—</span>
          <span class="cw-price-meta">free re-make if it doesn't match your 3D</span>
        </div>
      </div>
      <a class="cw-cta" href="https://conjure.wedding/studio/start" rel="noopener">Design yours for real →</a>
    </div>
  </div>
</div>

<p>That widget is a faithful copy of the flow on <strong><a href="https://conjure.wedding/studio/start">the Conjure studio</a></strong>; the live version adds a true drag-to-rotate 3D model instead of a still, and runs on your <em>own</em> photos.</p>

<h2 id="why-doing-it-in-the-browser-wins">Why doing it in the browser wins</h2>

<p>When the computer does the sculpting and the browser does the showing, the whole experience changes shape. Every one of these is a place we set out to beat the field by at least a notch:</p>

<ul>
  <li><strong>See it before you pay.</strong> No more buying a description. What you approve in 3D is what you unbox.</li>
  <li><strong>Minutes, not months.</strong> No artist queue, no “Delivery Month: December.” The design exists while you’re still on the page.</li>
  <li><strong>Infinite revisions, free.</strong> Wrong pose, wrong style, wrong vibe? Redo it as many times as you want — it costs nothing because no one’s hand-sculpting each attempt.</li>
  <li><strong>One honest price.</strong> $50 to $350, all-in — scaled honestly by colour and size (and tracking our actual costs), with worldwide shipping, customs and tax already included. No second invoice at the door.</li>
  <li><strong>Every couple.</strong> Any height, any body, same-sex couples, pets sized to scale, cultural dress from a hanbok to a sherwani — because it’s generated for you, not pulled from a shelf of stock figures.</li>
  <li><strong>The 3D file stays yours.</strong> Re-order it in ten years for an anniversary. The keepsake doesn’t expire.</li>
</ul>

<p>A topper is on the cake for forty minutes and on the shelf for sixty years. The least we can do is let you <em>see</em> it before it’s yours.</p>

<div class="cw-founders">
  <p class="cw-eyebrow">Who's "we"</p>
  <p>Conjure is built by two co-founders — <strong>Ronald Luc</strong> (that's me) and <strong>Jakub Suchánek</strong>. We started it the way described above: as frustrated customers who ordered eight toppers, hated the experience, and decided the whole format deserved a rebuild. If you're getting married — or you just want to see yourselves sculpted in 3D for free — <a href="https://conjure.wedding" rel="noopener"><strong>see yourselves in 3D at conjure.wedding</strong></a>.</p>
</div>

<style>
/* ===== Conjure interactive designer (scoped under #cw) ===== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Montserrat:wght@300;400;500;600&display=swap');
#cw{--ink:#2c241c;--soft:#4a3f33;--muted:#8a7d6d;--paper:#fffbf2;--bg:#faf5ea;--rule:#e7dec8;--gold:#b08947;--gold-deep:#8a6a2f;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:2rem 0;color:var(--ink)}
#cw *{box-sizing:border-box}
#cw .cw-card{display:flex;flex-wrap:wrap;gap:0;background:var(--paper);border:1px solid var(--rule);border-radius:16px;overflow:hidden;box-shadow:0 18px 50px -28px rgba(60,40,15,.5)}
#cw .cw-stage{position:relative;flex:1 1 320px;min-height:340px;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 100% at 50% 18%,#1c1712 0%,#0c0a07 70%,#060503 100%)}
#cw .cw-preview{width:100%;height:100%;max-height:440px;object-fit:contain;display:block}
#cw .cw-badge{position:absolute;top:14px;left:14px;z-index:2;font-family:var(--sans);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:#f3e9d6;background:rgba(0,0,0,.45);border:1px solid rgba(224,195,137,.45);padding:5px 10px;border-radius:999px;backdrop-filter:blur(4px)}
#cw .cw-badge b{color:var(--gold);font-weight:600}
#cw .cw-input{position:absolute;bottom:14px;left:14px;z-index:2;margin:0;width:74px;text-align:center}
#cw .cw-input img{width:74px;height:99px;object-fit:cover;border-radius:8px;border:2px solid rgba(224,195,137,.8);box-shadow:0 6px 18px rgba(0,0,0,.5)}
#cw .cw-input figcaption{margin-top:4px;font-family:var(--sans);font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:#cdbfa6}
#cw .cw-controls{flex:1 1 300px;padding:22px 22px 24px;background:var(--paper)}
#cw .cw-eyebrow{font-family:var(--sans);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
#cw .cw-styles{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 4px}
#cw .cw-style{font-family:var(--sans);font-size:.78rem;font-weight:500;color:var(--soft);background:var(--bg);border:1px solid var(--rule);border-radius:999px;padding:7px 13px;cursor:pointer;transition:all .15s ease;line-height:1}
#cw .cw-style:hover{border-color:var(--gold);color:var(--gold-deep)}
#cw .cw-style.is-on{background:var(--gold-deep);border-color:var(--gold-deep);color:#fff}
#cw .cw-style-custom{font-style:italic}
#cw .cw-custom-note{font-family:var(--sans);font-size:.74rem;line-height:1.5;color:var(--soft);background:var(--bg);border-left:3px solid var(--gold);border-radius:0 8px 8px 0;padding:9px 12px;margin:10px 0 0}
#cw .cw-rule{border:0;border-top:1px solid var(--rule);margin:18px 0}
#cw .cw-field{margin:0 0 6px}
#cw .cw-label{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--sans);font-size:.8rem;color:var(--soft);margin-bottom:8px}
#cw .cw-label b{font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--ink)}
#cw .cw-range{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--gold) 0%,var(--gold) 33%,var(--rule) 33%);outline:none;cursor:pointer}
#cw .cw-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--paper);border:2px solid var(--gold-deep);box-shadow:0 2px 6px rgba(0,0,0,.25);cursor:pointer}
#cw .cw-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--paper);border:2px solid var(--gold-deep);cursor:pointer}
#cw .cw-ticks{display:flex;justify-content:space-between;font-family:var(--sans);font-size:.62rem;color:var(--muted);margin-top:6px;padding:0 2px}
#cw .cw-tiers{display:flex;flex-direction:column;gap:8px;margin:16px 0 0}
#cw .cw-tier{position:relative;display:flex;gap:10px;align-items:flex-start;border:1px solid var(--rule);border-radius:10px;padding:10px 12px;cursor:pointer;transition:border-color .15s,background .15s}
#cw .cw-tier:hover{border-color:var(--gold-light,#e0c389)}
#cw .cw-tier input{margin:3px 0 0;accent-color:var(--gold-deep);flex:0 0 auto}
#cw .cw-tier:has(input:checked){border-color:var(--gold-deep);background:#fdf6e8}
#cw .cw-tier-b{display:flex;flex-direction:column;gap:2px}
#cw .cw-tier-h{font-family:var(--sans);font-size:.82rem;font-weight:600;color:var(--ink)}
#cw .cw-tier-h b{font-family:var(--serif);font-weight:600;color:var(--gold-deep);font-size:1rem}
#cw .cw-tier-s{font-family:var(--sans);font-size:.7rem;line-height:1.4;color:var(--muted)}
#cw .cw-tier-pick{padding-top:16px}
#cw .cw-pick-badge{position:absolute;top:-9px;left:12px;font-family:var(--sans);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--gold-deep);padding:3px 8px;border-radius:999px}
#cw .cw-summary{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 0}
#cw .cw-price-box,#cw .cw-deliver-box{flex:1 1 140px;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--rule);border-radius:10px;padding:11px 13px}
#cw .cw-price-lbl{font-family:var(--sans);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
#cw .cw-price-val{font-family:var(--serif);font-size:1.7rem;font-weight:600;color:var(--ink);line-height:1.1;margin:2px 0}
#cw .cw-price-meta{font-family:var(--sans);font-size:.64rem;line-height:1.35;color:var(--muted)}
#cw .cw-cta{display:block;text-align:center;font-family:var(--sans);font-size:.9rem;font-weight:600;letter-spacing:.02em;color:#fff;background:var(--gold-deep);border-radius:10px;padding:14px;margin:18px 0 0;text-decoration:none;transition:background .15s,transform .15s}
#cw .cw-cta:hover{background:#74591f;transform:translateY(-1px);color:#fff;text-decoration:none!important}
#cw a.cw-cta,#cw a.cw-cta:hover{text-decoration:none!important}
@media(max-width:560px){#cw .cw-stage{flex-basis:100%;min-height:300px}#cw .cw-preview{max-height:340px}}

/* ===== Competitor comparison table ===== */
.cw-cmp-wrap{overflow-x:auto;margin:1.4rem 0 .6rem;-webkit-overflow-scrolling:touch}
.cw-cmp{border-collapse:separate;border-spacing:0;width:100%;min-width:660px;font-family:"Montserrat",-apple-system,sans-serif;font-size:.78rem}
.cw-cmp th,.cw-cmp td{padding:8px 6px;text-align:center;border-bottom:1px solid #ece4d6}
.cw-cmp thead th{font-size:.62rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#8a7d6d;vertical-align:bottom;border-bottom:2px solid #d9cdb5}
.cw-cmp .cw-cmp-v{text-align:left;font-weight:600;color:#2c241c;min-width:150px}
.cw-cmp .cw-cmp-v span{display:block;font-weight:400;font-size:.66rem;color:#9a8d7b;letter-spacing:0;text-transform:none}
.cw-cmp tbody td{font-weight:600;color:#2c241c;font-variant-numeric:tabular-nums}
.cw-cmp .cw-cmp-na{color:#b9ae9c;font-weight:500;font-size:.7rem}
.cw-cmp .cw-cmp-us{background:linear-gradient(90deg,#fbf2dc,#fdf8ed)}
.cw-cmp .cw-cmp-us td{border-bottom-color:#ecd9a8}
.cw-cmp .cw-cmp-us .cw-cmp-v strong{color:#8a6a2f}
.cw-cmp .cw-cmp-us .cw-cmp-v span{color:#a98a4a}
.cw-cmp .cw-cmp-yes{color:#1a7f5a;font-weight:700}
.cw-cmp .cw-cmp-no{color:#b4503a;font-weight:600;font-size:.7rem}
.cw-cmp .cw-cmp-good{color:#1a7f5a}
.cw-cmp .cw-cmp-over{color:#b4503a}
.cw-cmp .cw-cmp-bad{outline:2px solid rgba(180,80,58,.5);border-radius:5px}
.cw-cmp-note{font-size:.74rem;line-height:1.5;color:#8a7d6d;margin:.2rem 0 1.6rem}
.cw-founders{background:#faf5ea;border:1px solid #e7dec8;border-left:4px solid #b08947;border-radius:0 12px 12px 0;padding:18px 20px;margin:2rem 0}
.cw-founders .cw-eyebrow{font-family:"Montserrat",sans-serif;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#8a7d6d;margin:0 0 8px}
.cw-founders p{margin:0 0 0;line-height:1.6}
</style>

<script>
(function(){
  var cw=document.getElementById('cw'); if(!cw) return;
  var PRICE={single:[50,60,75,95],four:[60,72,90,115],full:[200,230,280,350]};
  var SIZES=[10,12,14,16];
  var preview=document.getElementById('cw-preview');
  var sizeEl=document.getElementById('cw-size'), sizeVal=document.getElementById('cw-size-val');
  var priceEl=document.getElementById('cw-price'), deliverEl=document.getElementById('cw-deliver');
  var note=cw.querySelector('.cw-custom-note');

  function tier(){var r=cw.querySelector('input[name="cw-tier"]:checked');return r?r.value:'full';}
  function recalc(){
    var si=+sizeEl.value;
    sizeVal.textContent=SIZES[si]+' cm';
    priceEl.textContent='$'+PRICE[tier()][si];
    var pct=si/3*100;
    sizeEl.style.background='linear-gradient(90deg,var(--gold) 0%,var(--gold) '+pct+'%,var(--rule) '+pct+'%)';
  }
  function setDelivery(){
    try{
      var d=new Date(); d.setDate(d.getDate()+18);
      deliverEl.textContent=d.toLocaleDateString('en-GB',{day:'numeric',month:'long'});
    }catch(e){deliverEl.textContent='~3 weeks';}
  }

  cw.querySelectorAll('.cw-style').forEach(function(b){
    b.addEventListener('click',function(){
      if(b.dataset.custom){ if(note) note.hidden=!note.hidden; return; }
      if(note) note.hidden=true;
      cw.querySelectorAll('.cw-style').forEach(function(x){x.classList.remove('is-on');});
      b.classList.add('is-on');
      if(b.dataset.img){ preview.src=b.dataset.img; if(b.dataset.alt) preview.alt=b.dataset.alt; }
    });
  });
  sizeEl.addEventListener('input',recalc);
  cw.querySelectorAll('input[name="cw-tier"]').forEach(function(r){r.addEventListener('change',recalc);});
  recalc(); setDelivery();

  /* heatmap-tint the comparison scores by value */
  document.querySelectorAll('.cw-cmp td[data-s]').forEach(function(td){
    var s=parseFloat(td.dataset.s); if(!(s>0)) return;
    td.style.background='rgba(26,127,90,'+(s/10*0.42).toFixed(3)+')';
  });
})();
</script>

<script type="application/ld+json">
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Rethinking the Custom Wedding Cake Topper",
  "description":"Ordering a custom wedding cake topper usually means paying a stranger upfront and waiting months. Conjure sculpts you from your photos and lets you approve it in 3D, free, in your browser, from $50.",
  "image":["https://ronaldluc.com/assets/images/projects/conjure/conjure-hero.jpg"],
  "datePublished":"2026-06-24",
  "dateModified":"2026-06-24",
  "author":[
    {"@type":"Person","name":"Ronald Luc","url":"https://ronaldluc.com/about/","jobTitle":"Co-founder","sameAs":["https://www.linkedin.com/in/ronald-luc","https://github.com/ronaldluc","https://twitter.com/ronaldkluc"],"worksFor":{"@type":"Organization","name":"Conjure","url":"https://conjure.tech"}},
    {"@type":"Person","name":"Jakub Suchánek","jobTitle":"Co-founder","worksFor":{"@type":"Organization","name":"Conjure","url":"https://conjure.tech"}}
  ],
  "publisher":{"@type":"Person","name":"Ronald Luc","url":"https://ronaldluc.com"},
  "mainEntityOfPage":{"@type":"WebPage","@id":"https://ronaldluc.com/custom-wedding-cake-toppers/"}
}
</script>]]></content><author><name>Ronald Luc</name></author><category term="startups" /><category term="generative-ai" /><category term="weddings" /><category term="web-app" /><summary type="html"><![CDATA[I'm getting married and getting a cake topper that looks like you sucks right now. At the same time we're building ChatGPT for physical products, so we used our tech to fix cake topper creation.]]></summary></entry><entry><title type="html">Reverse-Engineering Czechia’s New Mega-Benefit</title><link href="https://ronaldluc.com/superdavka-2026-calculator/" rel="alternate" type="text/html" title="Reverse-Engineering Czechia’s New Mega-Benefit" /><published>2026-06-23T00:00:00+00:00</published><updated>2026-06-23T00:00:00+00:00</updated><id>https://ronaldluc.com/superdavka-2026-calculator</id><content type="html" xml:base="https://ronaldluc.com/superdavka-2026-calculator/"><![CDATA[<p>On 1 October 2025 the Czech Republic switched on its biggest welfare reform in a generation: four separate benefits — housing allowance, housing supplement, subsistence supplement, and the child allowance — were collapsed into a single <strong>dávka státní sociální pomoci (DSSP)</strong>, nicknamed the <strong>“superdávka.”</strong> For 2026 it is <em>the</em> number that decides whether a low-income household makes rent.</p>

<p>I wanted one honest answer to a question every recipient actually asks — <strong>“if I earn 100 Kč more, how much of it do I keep?”</strong> — plus a transparent breakdown of where the money comes from. The result is a single-page calculator (in Czech, because its users are Czech). This post is about the hard part, which was not the UI: it was getting the math <em>exactly right</em> when the rules are split across five laws and the only binding implementation is a government web form nobody published the source of.</p>

<p><a href="/projects/superdavka/"><strong>Open the calculator →</strong></a> <em>(the app itself is in Czech)</em></p>

<h2 id="the-problem-the-law-is-not-the-ground-truth">The problem: the law is not the ground truth</h2>

<p>The statute — Act <strong>151/2025 Sb.</strong> plus its sibling laws and decrees — defines the benefit in prose. But prose is ambiguous, and the place where ambiguity gets resolved is the <strong>Úřad práce</strong> (Labour Office), which runs everyone’s application through one official calculator at <code class="language-plaintext highlighter-rouge">mpsv.gov.cz</code>. Whatever that calculator outputs <em>is</em> what a household receives. So for a tool that claims to predict real payouts, the ground truth is not my reading of the statute — it is the MPSV calculator’s behaviour.</p>

<p>The two disagree in places. The clearest example is the housing component. A strict reading of §23 and §28 suggests recognised rent should be <code class="language-plaintext highlighter-rouge">min(actual rent, normative cap)</code>. The MPSV calculator does something else: it recognises a flat <strong>80% of the normative rent</strong> and ignores your actual rent entirely (even when your real rent is <em>lower</em>). I couldn’t resolve that from the text — only by watching the calculator.</p>

<pre class="mermaid">
graph LR;
  LAW[Five laws and decrees]:::src --&gt; AMBIG[Ambiguous prose rules];
  MPSV[Official MPSV web calculator]:::src --&gt; ORACLE[Scrape 21 million answers];
  AMBIG --&gt; ENGINE[Reimplement the engine in JavaScript];
  ORACLE --&gt; ENGINE;
  ENGINE --&gt; VAL[Validate exact match 99.98 percent]:::ok;
  VAL --&gt; APP[Self-contained explainer app]:::app;
  classDef src fill:#3d8fc4,color:#fff;
  classDef ok fill:#1a7f5a,color:#fff;
  classDef app fill:#e6a817,color:#3a2a00;
  classDef step fill:#eef2ff,color:#1e293b,stroke:#94a3b8;
  class AMBIG,ORACLE,ENGINE step;
</pre>

<h2 id="the-approach-treat-the-government-form-as-an-oracle">The approach: treat the government form as an oracle</h2>

<p>If the calculator is the source of truth, then the way to reproduce it is to <strong>treat it as a black-box oracle</strong> and fit an implementation to it. I drove the official form across a grid of inputs — net work income, other income, rent, energy cost, housing type, municipality size, number of adults, children by age band, alimony, asset test, vulnerability flags — and recorded its answers. By the current version that’s <strong>21,023,897 verified computations</strong>.</p>

<p>Then I wrote a clean-room engine in plain JavaScript and tuned it against that dataset until it stopped disagreeing. Where I had a curated golden subset, it now reproduces <strong>603,658 / 603,658</strong> rows. Across the full 21M scrape, my engine agrees with MPSV on the exact koruna in <strong>99.98%</strong> of cases; the residual 0.02% are households where the benefit comes out to 0 Kč either way, so the disagreement never changes a real payout.</p>

<p>That number — <em>99.98% match against 21M of the government’s own answers</em> — is the whole credibility argument for the tool, so it sits in a badge at the top of the page rather than buried in a footnote.</p>

<h2 id="the-formula-four-components">The formula, four components</h2>

<p>Under the hood the benefit is a sum of four independent components, with no global cap:</p>

<blockquote>
  <p><strong>DSSP = S_housing + S_subsistence + B_children + B_work</strong></p>
</blockquote>

<pre class="mermaid">
graph TD;
  DSSP[Superdavka DSSP total]:::root --&gt; H[Housing component]:::c;
  DSSP --&gt; S[Subsistence component]:::c;
  DSSP --&gt; C[Child bonus]:::c;
  DSSP --&gt; W[Work bonus]:::c;
  H --&gt; HN[80 percent of normative rent minus 30 percent of income];
  S --&gt; SN[Living minimum minus 70 percent of income];
  C --&gt; CN[500 to 1000 Kc per child by income ratio];
  W --&gt; WN[40 percent of income then tapered];
  classDef root fill:#2d3748,color:#fff;
  classDef c fill:#3d8fc4,color:#fff;
  classDef leaf fill:#eef2ff,color:#1e293b,stroke:#c7d2fe;
  class HN,SN,CN,WN leaf;
</pre>

<p>Everything keys off two quantities: <strong>P</strong>, the household’s decisive net monthly income, and <strong>ŽM</strong>, the household’s living minimum (the sum of each member’s statutory minimum). The component thresholds are all multiples of ŽM — 1.43× ŽM is where the subsistence component and the “addressed vs. flat-rate” energy rules switch; 1.6× ŽM is where the work bonus stops growing and starts tapering. The repeated coefficients (0.30 of income toward housing, 0.40 work-bonus rate, 0.80 rent recognition) are spelled out term by term in the app’s “Explanation with formulas” section, each linked to its paragraph in the law.</p>

<p><img src="/assets/images/projects/superdavka-chart.png" alt="The four components stacked against rising net income, with the old four-benefit system as a dashed line — the app's live composition chart (in Czech)." /></p>

<p><em>The app’s “Skladba superdávky” chart: how each component fades in and out as income rises. The dashed line is the pre-2026 system, so you can see exactly where the new benefit overtakes or undershoots the old one.</em></p>

<h2 id="the-quirks-you-only-find-by-watching-the-oracle">The quirks you only find by watching the oracle</h2>

<p>The interesting part of reverse-engineering is the behaviour that <em>isn’t</em> in any plain reading of the statute. These are the choices baked into the official calculator that I had to replicate to hit 99.98%:</p>

<ul>
  <li><strong>Housing is indexed by the number of <em>adults</em>, not people.</strong> The normative-rent table is looked up on adult count, not household size. This single detail moves the housing component by thousands of koruna for families with children.</li>
  <li><strong>Only 80% of normative rent is recognised, and your real rent is ignored above that floor.</strong> The app ships an MPSV-faithful mode by default but offers a <em>“strict reading of the law”</em> toggle that applies <code class="language-plaintext highlighter-rouge">min(actual, normative)</code> instead — so you can see both the lawful-on-paper number and the one you’ll actually get.</li>
  <li><strong>A discontinuity exactly at P = 3× ŽM.</strong> The child bonus drops to 0 Kč precisely at that point and immediately returns to ~1,000 Kč — an unfilled seam in the algorithm. It’s un-triggerable in practice (your income would have to land on the exact koruna), but the engine reproduces it because the oracle does.</li>
  <li><strong>Self-employment imputes a phantom income.</strong> For a person on self-employment as their main activity (OSVČ hlavní), §12 floors the counted income at <strong>39,173 Kč/month</strong> (80% of the average wage) <em>even in a month they earned nothing</em>. This is the single biggest reason some households are dramatically worse off than under the old system.</li>
  <li><strong>Auto-imputed alimony of 2,500 Kč</strong> for the “separated, amount not set” case, and <strong>banker’s rounding</strong> to the nearest 100 Kč that matches Python’s <code class="language-plaintext highlighter-rouge">round()</code> — both small, both necessary for exact agreement.</li>
</ul>

<h2 id="the-design-choices-in-the-explainer">The design choices in the explainer</h2>

<p>Matching the oracle is necessary but not the point; the point is making the result legible. The choices I made there:</p>

<ul>
  <li><strong>Lead with the marginal koruna.</strong> The headline isn’t the benefit amount, it’s <em>“for every extra 100 Kč you earn, you take home X Kč.”</em> That’s the number that tells someone whether picking up more hours is worth it, and the benefit’s tapers make it genuinely non-obvious.</li>
  <li><strong>Show the exact amount, not MPSV’s rounding.</strong> The official form rounds to 100 Kč, which makes the figure jump between 0 and 100 on tiny income changes. I display the precise koruna so the curves are smooth and the marginal effect is readable.</li>
  <li><strong>A “?” on every term</strong>, in plain Czech, because the legal vocabulary (rozhodný příjem, normativní nájemné, zranitelná domácnost) is exactly what trips people up.</li>
  <li><strong>An honest “MPSV mode vs. strict law” switch</strong>, so the tool never pretends the calculator and the statute are the same thing.</li>
  <li><strong>Built-in tests.</strong> Appending <code class="language-plaintext highlighter-rouge">#test</code> to the URL runs the engine’s golden tests against stored MPSV oracle values right in the browser — the validation isn’t a claim, it’s runnable.</li>
</ul>

<h2 id="who-wins-and-who-loses">Who wins and who loses</h2>

<p>Because I had a fast, exact engine, I could also do the comparison the reform’s own materials are vague about: I ran <strong>both</strong> the old four-benefit system and the new DSSP across ~9,300 typical households.</p>

<p>The pattern is consistent. <strong>Working families with children and a net wage around 25–40k Kč gain</strong> (up to +5,400 Kč/month); single working parents and low-wage workers in big cities mostly gain modestly. <strong>Very-low- and zero-income households lose</strong> — typically −1,000 to −6,000 Kč/month — for three structural reasons the calculator makes visible: the near-universal child allowance was replaced by a smaller, income-capped child bonus; the housing normative is now indexed by adults rather than people; and the old housing supplement (doplatek na bydlení), which topped up uncovered real costs, is simply gone. The starkest case is a self-employed person with zero turnover, hit by that §12 phantom income — a swing of −26,000 Kč/month in one of the worked examples.</p>

<h2 id="how-its-built">How it’s built</h2>

<p>The whole thing is a <strong>single self-contained <code class="language-plaintext highlighter-rouge">index.html</code></strong> — vanilla JavaScript, hand-drawn <code class="language-plaintext highlighter-rouge">&lt;canvas&gt;</code> charts, no framework, no build step, no backend, zero external requests. That’s deliberate: the engine was <em>validated offline against the scraped oracle</em>, so the deployed artifact has no dependency that could drift, it loads instantly, it’s trivial to archive, and anyone can read the entire model by viewing source. It deploys as a static page and that’s the entire ops story.</p>

<h2 id="caveats">Caveats</h2>

<p>The calculator is <strong>orientational</strong>. It doesn’t model §37 (individually raised living needs — care plans, public service, prescribed diets), and for self-employment it applies only the lower 0.80× average-wage floor. The fine-grained vulnerability categories of §7 (age 68+, disability grade II/III, pregnancy, single parent, …) are collapsed into a single per-person “vulnerable yes/no” flag you set yourself. For a binding figure, file through the official <strong><a href="https://jenda.mpsv.cz">Jenda</a></strong> portal or the <strong><a href="https://mpsv.gov.cz/dssp-kalkulacka-app">MPSV calculator</a></strong>. This is an independent project and is not endorsed by MPSV.</p>

<h2 id="legal-basis">Legal basis</h2>

<ul>
  <li>Act <strong>151/2025 Sb.</strong> — on the social-assistance benefit (DSSP), in force 1 Oct 2025</li>
  <li>Act <strong>152/2025 Sb.</strong> — amending act</li>
  <li>Government Decree <strong>361/2025 Sb.</strong> — living and subsistence minimum</li>
  <li>MPSV Communication <strong>526/2025 Sb.</strong> — normative rent for 2026</li>
  <li>Act <strong>110/2006 Sb.</strong> — on the living and subsistence minimum</li>
</ul>

<p><a href="/projects/superdavka/"><strong>Open the calculator →</strong></a> <em>(in Czech)</em></p>

<script type="module">
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
  mermaid.initialize({ startOnLoad: true, theme: 'default', securityLevel: 'loose' });
</script>]]></content><author><name>Ronald Luc</name></author><category term="reverse-engineering" /><category term="data-engineering" /><category term="public-policy" /><category term="czech-republic" /><category term="web-app" /><summary type="html"><![CDATA[The Czech Republic merged four social benefits into one 'superdávka' for 2026 — and the only authoritative implementation is an opaque government web form. So I scraped 21 million of its answers and rebuilt the engine until mine matched it to 99.98%.]]></summary></entry><entry><title type="html">Mapping Pollen Allergens for the Whole Earth</title><link href="https://ronaldluc.com/pollen-allergy-map-whole-earth/" rel="alternate" type="text/html" title="Mapping Pollen Allergens for the Whole Earth" /><published>2026-06-22T00:00:00+00:00</published><updated>2026-06-22T00:00:00+00:00</updated><id>https://ronaldluc.com/pollen-allergy-map-whole-earth</id><content type="html" xml:base="https://ronaldluc.com/pollen-allergy-map-whole-earth/"><![CDATA[<p>A single WebGL map that lets you pick the allergens that affect you and scrub a 52-week timeline anywhere on Earth. The hard part is not the rendering — it is doing this <strong>honestly</strong> when measured pollen data exists for only a handful of regions. Here is exactly how each pixel is sourced, modelled, and labelled.</p>

<p><a href="/projects/pollen-map/"><strong>Open the interactive map →</strong></a></p>

<h2 id="what-data-we-use-and-where">What data we use, and where</h2>

<p>Every pixel on the map comes from one of three kinds of source, and the kind decides how much you can trust it. Think of it as a <strong>precision hierarchy</strong> — from real airborne-pollen measurements down to a season computed from satellite and climate data:</p>

<ul>
  <li><strong>Highest precision — measured station networks.</strong> Two regions are anchored on real airborne-pollen measurements. <strong>Europe</strong> comes from the <strong>EAN</strong> [European Aeroallergen Network] climatology, published as the <em>ContaminationMapEurope</em> widget on polleninformation.at. The <strong>US (CONUS)</strong> [contiguous United States] comes from <strong>PECM 2.0</strong> [Pollen Emissions for Climate Models] — a 1995–2014 measured pollen-emission climatology (Zhang &amp; Steiner 2022). We download each, decode it to weekly pollen levels, and spatially interpolate between stations.</li>
  <li><strong>Medium precision — literature &amp; monitoring-network calendars.</strong> The other populated regions — <strong>East Asia</strong>, <strong>Oceania</strong> (via the <strong>TERN/ACEAS</strong> [Australian ecology monitoring network]), the <strong>Middle East</strong>, the <strong>rest of Asia</strong>, <strong>Latin America</strong>, and <strong>Africa</strong> (via <strong>SAPNET</strong> [South African Pollen Network]) — have no continuous gridded measurements. Instead we take <strong>seasonal pollen calendars</strong> from peer-reviewed studies and monitoring networks (when each taxon flowers, at a few cities) and spatially interpolate them across the region.</li>
  <li><strong>Computed — satellite + climate model.</strong> Everywhere else on Earth — and the empty voids <em>inside</em> the regions above — the season is <strong>computed</strong>, not measured. We derive it from <strong>NASA MODIS</strong> [satellite vegetation phenology] greenness timing plus <strong>ERA5-Land</strong> [Copernicus reanalysis climate] temperature. This claims <strong>timing only</strong> (roughly when a taxon flowers), never intensity, and large stretches with no defensible estimate are masked out entirely.</li>
</ul>

<pre class="mermaid">
graph TD;
  ALL[All pollen-season data]:::root --&gt; M[Measured station networks - highest precision]:::real;
  ALL --&gt; L[Literature and network calendars - medium precision]:::lit;
  ALL --&gt; C[Satellite plus climate model - computed timing only]:::model;
  M --&gt; EU[Europe - EAN climatology]:::real;
  M --&gt; NA[US CONUS - PECM 2.0]:::real;
  L --&gt; EA[East Asia]:::lit;
  L --&gt; OC[Oceania - TERN ACEAS]:::lit;
  L --&gt; ME[Middle East]:::lit;
  L --&gt; AS[Rest of Asia]:::lit;
  L --&gt; LA[Latin America]:::lit;
  L --&gt; AF[Africa - SAPNET]:::lit;
  C --&gt; REST[Everywhere else on Earth]:::model;
  C --&gt; VOID[Empty voids inside the regions above]:::model;
  classDef root fill:#2d3748,color:#fff;
  classDef real fill:#1a7f5a,color:#fff;
  classDef lit fill:#3d8fc4,color:#fff;
  classDef model fill:#e6a817,color:#3a2a00;
</pre>

<p><img src="/assets/images/projects/pollen-data-sources-world.png" alt="Pollen data sources by region — measured (green), literature (blue), model-computed (amber), masked (grey)" /></p>

<p><em>At a glance: green regions are measured station networks, blue are literature/network calendars, amber is the computed timing-only model, and grey is masked out (no defensible estimate). The rest of this post digs into how the blue and amber tiers are built.</em></p>

<h2 id="digging-deeper-how-the-rest-of-the-map-is-computed">Digging deeper: how the rest of the map is computed</h2>

<p>Outside the two measured anchors, the map is built by <strong>re-computing and imputing</strong> the season — interpolating sparse calendars and, where even that runs out, modelling timing from satellite and climate data. Everything below follows from one honest constraint.</p>

<h3 id="the-one-rule-claim-when-never-how-much">The one rule: claim WHEN, never HOW MUCH</h3>

<p>The whole design follows from a single honest constraint. Where we have real measurements (Europe, North America, East Asia, Oceania), the map shows interpolated <strong>measured / literature</strong> pollen levels. Everywhere else, a satellite-and-climate model fills the gaps — but it only claims the <strong>season window</strong> (roughly when a taxon flowers), never the <strong>intensity</strong>. Satellite greenness correlates with airborne-pollen concentration at Spearman <strong>ρ ≈ 0</strong> [rank correlation ≈ zero], so modelled areas get a single flat, conservative in-season level, sit in the lower confidence tiers, are aggressively masked where indefensible, and carry a visible confidence indicator. That honesty <em>is</em> the methodology.</p>

<p>Two composition guarantees hold everywhere:</p>

<ul>
  <li><strong>Override-never-overwrite</strong> — the model only fills confirmed no-data voids; real and literature data are byte-verified to never change (0 pre-existing data pixels altered in every region apply).</li>
  <li><strong>Honest masking</strong> — where no defensible estimate exists (Sahara, Amazon/Congo interior, ice, ocean), the pixel stays transparent. Africa masks 84.3% of its voids; Oceania 99.2%.</li>
</ul>

<h2 id="end-to-end-pipeline">End-to-end pipeline</h2>

<p>Three source pipelines feed one on-disk format, which feeds the WebGL app. (See <a href="#two-branches-one-merge">the two data branches</a> for how measured and modelled data compose.)</p>

<pre class="mermaid">
graph LR;
  S1[Measured pollen stations]:::real --&gt; T1[IDW spatial interpolation];
  S2[Literature pollen calendars]:::real --&gt; T1;
  S3[NASA MODIS plus ERA5-Land climate]:::model --&gt; T2[B0 void-fill model];
  T1 --&gt; M[Override-never-overwrite merge];
  T2 --&gt; M;
  M --&gt; E[Encoding-B PNG atlas];
  M --&gt; C[conf.png confidence raster];
  E --&gt; APP[WebGL world map];
  C --&gt; APP;
  classDef real fill:#1a7f5a,color:#fff;
  classDef model fill:#e6a817,color:#3a2a00;
</pre>

<h2 id="two-branches-one-merge">Two branches, one merge</h2>

<p>The left branch carries real signal; the right branch is the global model. Both emit identical <a href="#encoding-b-format">Encoding-B strips</a>, then merge in priority order so the model only shows through where nothing better exists.</p>

<pre class="mermaid">
graph TD;
  A[Measured stations Hirst-trap counts]:::real --&gt; B[IDW interpolation per region];
  A2[Peer-reviewed pollen calendars]:::real --&gt; B;
  B --&gt; MERGE{Compose higher tier wins};
  D[NASA MODIS plus ESA WorldCover plus ERA5-Land]:::model --&gt; E[B0 void-fill model];
  E --&gt; A4[A4 quality-floor mask];
  A4 --&gt; MERGE;
  MERGE --&gt; OUT[Encoding-B level strips];
  MERGE --&gt; CONF[conf.png per-pixel tier];
  classDef real fill:#1a7f5a,color:#fff;
  classDef model fill:#e6a817,color:#3a2a00;
</pre>

<h2 id="inside-the-b0-model">Inside the B0 model</h2>

<p>The void-fill model (we call it the <strong>B0 model</strong> [satellite+climate void-filler]) ingests NASA MODIS phenology (MCD12Q2 greenup) [satellite green-up timing] and MODIS land cover (MCD12Q1) [plant functional types] from NASA Earthdata, plus ERA5-Land 2 m air temperature from the Copernicus Climate Data Store. It derives a per-taxon flowering <strong>onset</strong> via three paths, then sets a flat conservative intensity. Crucially, growing-degree-day accumulation starts from each pixel’s <strong>local thermal-year origin</strong> (its coldest week), so the Southern Hemisphere is seasonally correct by construction — no hemisphere-flip hack anywhere.</p>

<pre class="mermaid">
graph TD;
  G[MODIS MCD12Q2 greenup DOY]:::in --&gt; PA[Path A: greenup plus per-taxon offset];
  T[ERA5-Land 2m temperature]:::in --&gt; PB[Path B: GDD from local thermal-year origin];
  L[MODIS MCD12Q1 land cover]:::in --&gt; RANGE[Range and PFT gating];
  PC[Path C: fixed-photoperiod weeds AMBR ARTE]:::in --&gt; ONSET[Per-taxon flowering onset];
  PA --&gt; ONSET;
  PB --&gt; ONSET;
  ONSET --&gt; FLAT[Flat conservative intensity capped at level 2];
  RANGE --&gt; FLAT;
  FLAT --&gt; Z[Calibrated season window];
  classDef in fill:#e6a817,color:#3a2a00;
</pre>

<ul>
  <li><strong>Path A — trees &amp; grass (primary):</strong> onset = MODIS greenup + a per-taxon offset.</li>
  <li><strong>Path B — GDD fallback</strong> [growing-degree-day thermal model]: used where phenology QA is poor; accumulates heat from the pixel’s local coldest week, thresholds frozen to priors.</li>
  <li><strong>Path C — photoperiod weeds:</strong> ragweed (AMBR) [Ambrosia] and mugwort (ARTE) [Artemisia] flower on a fixed solstice-relative photoperiod, so they are hemisphere-aware by definition.</li>
</ul>

<p>Intensity is a single per-taxon constant taken from the Europe + North America median (e.g. EU grass in-season mean ≈ 2.04 → level 2) — a <strong>flat plateau, not a per-pixel gradient and not a bell curve</strong>.</p>

<h2 id="calibration-is-the-whole-point">Calibration is the whole point</h2>

<p>The model is fit and validated against the <strong>decoded real ordinal data</strong> for Europe and North America — the precision anchors. The test is timing, not intensity.</p>

<table>
  <thead>
    <tr>
      <th>Test</th>
      <th>Method</th>
      <th>Gate</th>
      <th>Result</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Onset / peak timing</td>
      <td>Spatial k-fold cross-validation on EU+NA, held-out</td>
      <td>onset ≤ 3 wk, peak ≤ 3 wk</td>
      <td><strong>11 / 17 taxa pass</strong> [taxa = pollen types]</td>
    </tr>
    <tr>
      <td>Cross-region transfer</td>
      <td>EU ↔ NA peak-week transfer</td>
      <td>cross-region peak ≤ 4 wk</td>
      <td>gated together with above</td>
    </tr>
    <tr>
      <td>Literature cross-check (K-LIT)</td>
      <td>Family peak vs published regional calendar</td>
      <td>within ± 4 wk</td>
      <td><strong>AMBR + ARTE only</strong>, in LatAm + Middle East</td>
    </tr>
    <tr>
      <td>Intensity</td>
      <td>satellite greenness vs airborne pollen</td>
      <td>(retired)</td>
      <td><strong>ρ ≈ 0</strong> → flat constant instead</td>
    </tr>
  </tbody>
</table>

<p>Two consequences make the honesty concrete. First, the most universal allergen — <strong>grasses (POAC</strong> [Poaceae]) — <em>flips</em> PASS→FAIL on held-out data (onset/peak error 3.4 / 3.2 wk, just past the ≤ 3.0 wk gate), so grass ships <strong>synthetic everywhere</strong> in the void-fill. Second, the literature cross-check (K-LIT) is the only test inside the true extrapolation domain (arid / tropical / Southern Hemisphere), and only AMBR + ARTE clear it — which is why the entire <code class="language-plaintext highlighter-rouge">model</code> tier is just ragweed + mugwort in two regions. Everything else that survives masking is <code class="language-plaintext highlighter-rouge">synthetic</code>.</p>

<h2 id="the-confidence-ladder">The confidence ladder</h2>

<p>Every pixel carries one of five tiers, recorded in a separate <code class="language-plaintext highlighter-rouge">conf.png</code> raster that reuses the same byte ladder as the level strips (the two rasters share the numbers {0,64,…} but must not be conflated). A higher tier always wins the merge.</p>

<pre class="mermaid">
graph LR;
  M255[Measured byte 255 station IDW]:::t1 --&gt; L192[Literature byte 192 pollen calendars]:::t2;
  L192 --&gt; MO128[Model byte 128 K-LIT-anchored season]:::t3;
  MO128 --&gt; S64[Synthetic byte 64 biological-prior season]:::t4;
  S64 --&gt; N0[No-data byte 0 masked transparent]:::t5;
  classDef t1 fill:#1a7f5a,color:#fff;
  classDef t2 fill:#3d8fc4,color:#fff;
  classDef t3 fill:#e6a817,color:#3a2a00;
  classDef t4 fill:#c46e2d,color:#fff;
  classDef t5 fill:#c0c0c0,color:#333;
</pre>

<h2 id="encoding-b-format">The Encoding-B format</h2>

<p>Each taxon ships as <strong>4 PNG strips × 13 weekly slices = 52 ISO weeks</strong>, grayscale-8, with bytes drawn from a 5-value ladder {0, 64, 128, 192, 255} mapping to pollen levels 0–4. Composition happens at <em>extraction</em> time, so the PNG already encodes the merged result — the app just samples it.</p>

<pre class="mermaid">
graph LR;
  TAX[One taxon for one region]:::h --&gt; ST[4 PNG strips];
  ST --&gt; SL[13 weekly slices each];
  SL --&gt; W[52 ISO weeks total];
  W --&gt; BYTE[Byte ladder 0 64 128 192 255];
  BYTE --&gt; LV[Levels 0 1 2 3 4 none to very high];
  classDef h fill:#3d8fc4,color:#fff;
</pre>

<h2 id="the-eight-regions">The eight regions</h2>

<p>All facts below are read directly from each region’s shipped manifest (<code class="language-plaintext highlighter-rouge">region</code>, <code class="language-plaintext highlighter-rouge">dims</code>, <code class="language-plaintext highlighter-rouge">nAllergens</code>, <code class="language-plaintext highlighter-rouge">confidence</code>/<code class="language-plaintext highlighter-rouge">confidenceFloor</code>, <code class="language-plaintext highlighter-rouge">provenance.sources</code>). The 52-week temporal structure is fixed by the Encoding-B format (confirmed in the app and methodology, not stored as a manifest field). Europe and North America carry no tier field in their manifest — they are the highest-quality measured anchors and are described qualitatively below.</p>

<table>
  <thead>
    <tr>
      <th>Region</th>
      <th>Grid (W×H)</th>
      <th>Taxa</th>
      <th>Weeks</th>
      <th>Dominant tier</th>
      <th>Primary data source · license</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Europe</strong></td>
      <td>600×800</td>
      <td>12</td>
      <td>52</td>
      <td>Measured (anchor; no tier field)</td>
      <td>EAN climatology via polleninformation.at · © 2012 EAN</td>
    </tr>
    <tr>
      <td><strong>North America (CONUS)</strong></td>
      <td>585×260</td>
      <td>13</td>
      <td>52</td>
      <td>Measured (anchor; no tier field)</td>
      <td>PECM 2.0 (Zhang &amp; Steiner 2022) · CC BY 4.0</td>
    </tr>
    <tr>
      <td><strong>Korea + Japan (East Asia)</strong></td>
      <td>440×320</td>
      <td>14</td>
      <td>52</td>
      <td>Literature → IDW (no tier field)</td>
      <td>Open-access EA pollen literature · CC BY / equiv.</td>
    </tr>
    <tr>
      <td><strong>Oceania (AU &amp; NZ)</strong></td>
      <td>838×488</td>
      <td>13</td>
      <td>52</td>
      <td>Literature (floor: synthetic)</td>
      <td>TERN / ACEAS network · CC BY 4.0</td>
    </tr>
    <tr>
      <td><strong>Middle East</strong></td>
      <td>410×406</td>
      <td>14</td>
      <td>52</td>
      <td>Literature (floor: synthetic)</td>
      <td>Qatar PLoS ONE + Turkey calendars · CC BY 4.0</td>
    </tr>
    <tr>
      <td><strong>Rest of Asia</strong></td>
      <td>640×730</td>
      <td>20</td>
      <td>52</td>
      <td>Literature (floor: synthetic)</td>
      <td>China/Pakistan/SE-Asia/Russia studies · CC BY 4.0</td>
    </tr>
    <tr>
      <td><strong>Latin America</strong></td>
      <td>989×1048</td>
      <td>17</td>
      <td>52</td>
      <td>Literature (floor: synthetic)</td>
      <td>Santiago, Chile (Toro 2015) · CC BY 4.0</td>
    </tr>
    <tr>
      <td><strong>Africa</strong></td>
      <td>1014×987</td>
      <td>12</td>
      <td>52</td>
      <td>Literature (floor: synthetic)</td>
      <td>SAPNET (7 cities) · CC BY 4.0</td>
    </tr>
  </tbody>
</table>

<p>The five fill regions are dominantly <code class="language-plaintext highlighter-rouge">literature</code> but floor at <code class="language-plaintext highlighter-rouge">synthetic</code> because their void-fill is mostly biological-prior. Verified void-fill outcomes from the apply reports: Middle East 7,605 voids filled (8.2%, 91.8% masked, ARTE the only <code class="language-plaintext highlighter-rouge">model</code>-tier taxon); Asia-rest 163,985 (41.6%, 58.4% masked, <strong>zero</strong> <code class="language-plaintext highlighter-rouge">model</code> pixels); Oceania 2,806 (0.76%, 99.2% masked, zero <code class="language-plaintext highlighter-rouge">model</code>); Africa 149,309 (15.68%, 84.32% masked, zero <code class="language-plaintext highlighter-rouge">model</code>); Latin America 366,106 voids filled with just 8 <code class="language-plaintext highlighter-rouge">model</code> pixels (AMBR/ARTE within 5° of a Southern-Hemisphere anchor). <strong>Africa, Oceania and Asia-rest have zero model pixels</strong> — the entire <code class="language-plaintext highlighter-rouge">model</code> tier is AMBR + ARTE in two regions.</p>

<p><a href="/projects/pollen-map/"><strong>Explore it yourself on the interactive map →</strong></a></p>

<h2 id="data--sources">Data &amp; sources</h2>

<p>Here is everything the map draws on, grouped by what it does. Attribution strings are reproduced verbatim from the region manifests.</p>

<p><strong>Measured pollen data</strong></p>

<ul>
  <li><strong>Europe — EAN climatology.</strong> Pollen-load climatology published as the <em>ContaminationMapEurope</em> widget on polleninformation.at, produced with the European Aeroallergen Network (EAN), Medical University of Vienna (© 2012 EAN).</li>
  <li><strong>North America (CONUS) — PECM 2.0</strong> (CC BY 4.0). Pollen-emission climatology, 1995–2014 historical average. Zhang &amp; Steiner (2022, <em>Nature Communications</em>, doi:10.1038/s41467-022-28764-0). Data: doi:10.7302/628t-r416.</li>
</ul>

<p><strong>Literature &amp; network pollen data</strong></p>

<ul>
  <li><strong>Oceania — TERN / ACEAS</strong> (CC BY 4.0). Pollen monitoring network (portal.tern.org.au), 9 AU/NZ stations.</li>
  <li><strong>Africa — SAPNET</strong> (CC BY 4.0). Two-year South African pollen monitoring network report (PMC10620116), 7 cities, 2019–2021.</li>
  <li><strong>Middle East</strong> (CC BY 4.0). Qatar / Arabian Peninsula calendar, PLoS ONE 2022, doi:10.1371/journal.pone.0270975; Turkey NE Anatolia (Posof/Ardahan), <em>Scientific Reports</em> 2025, doi:10.1038/s41598-025-05867-4; Turkey SE Anatolia (Siirt), <em>Biology</em> 14(7):841, 2025, doi:10.3390/biology14070841.</li>
  <li><strong>Latin America</strong> (CC BY 4.0). Toro et al. (2015, <em>PLoS ONE</em>, doi:10.1371/journal.pone.0123077), Santiago, Chile.</li>
  <li><strong>East Asia &amp; rest of Asia.</strong> Open-access regional pollen-calendar literature (China / Korea / Japan / Pakistan / SE-Asia / Russia studies), CC BY or equivalent.</li>
</ul>

<p><strong>Satellite &amp; climate inputs</strong></p>

<ul>
  <li><strong>NASA MODIS MCD12Q2 V061</strong> [satellite green-up timing] (LP DAAC): Friedl, Gray &amp; Sulla-Menashe (2022), doi:10.5067/MODIS/MCD12Q2.061.</li>
  <li><strong>NASA MODIS MCD12Q1 V061</strong> [satellite land cover] (LP DAAC): Friedl &amp; Sulla-Menashe (2022), doi:10.5067/MODIS/MCD12Q1.061.</li>
  <li><strong>ERA5-Land</strong> (Copernicus Climate Change Service): <em>“Generated using Copernicus Climate Change Service information [1950–2024]. ERA5-Land monthly averaged data from 1950 to present (doi:10.24381/cds.e2161bac). Neither the European Commission nor ECMWF is responsible for any use that may be made of the Copernicus information or data it contains.”</em></li>
  <li><strong>ESA WorldCover 2021 v200</strong> (CC BY 4.0): <em>“© ESA WorldCover project 2021 / Contains modified Copernicus Sentinel data (2021) processed by ESA WorldCover consortium.”</em></li>
  <li><strong>WorldClim 2.1</strong>: Fick &amp; Hijmans (2017), <em>Int. J. Climatology</em> 37(12):4302–4315, doi:10.1002/joc.5086.</li>
  <li><strong>GALORE</strong> global modern pollen (CC BY 4.0): Pound &amp; O’Keefe (2024), doi:10.5281/zenodo.14161411 — <em>pipeline-internal range-gate prior only</em>.</li>
  <li><strong>GBIF</strong> species occurrences (CC BY 4.0): per-download DOI — <em>pipeline-internal range-gate prior only</em>.</li>
</ul>

<p><strong>Basemap &amp; reference</strong></p>

<ul>
  <li>Basemap tiles by OpenFreeMap (OpenMapTiles schema), © OpenStreetMap contributors; land mask from Natural Earth (public domain).</li>
</ul>

<blockquote>
  <p>Not endorsed by ESA, Copernicus/ECMWF, NASA, TERN, SAPNET, PLoS ONE, or any data provider. This is a research project explaining a modelled product — the void-fill claims a season window and presence at the stated confidence tier, never a measured pollen concentration.</p>
</blockquote>

<script type="module">
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
  mermaid.initialize({ startOnLoad: true, theme: 'default', securityLevel: 'loose' });
</script>]]></content><author><name>Ronald Luc</name></author><category term="geospatial" /><category term="remote-sensing" /><category term="data-engineering" /><category term="allergies" /><category term="webgl" /><summary type="html"><![CDATA[An honest world pollen-allergy map: real station data where it exists, a satellite-and-climate model for the rest — and a visible confidence tier on every pixel.]]></summary></entry><entry><title type="html">Eight axes for the LLM supply chain (interactive v2)</title><link href="https://ronaldluc.com/research/eight-axes-for-the-llm-supply-chain-v2/" rel="alternate" type="text/html" title="Eight axes for the LLM supply chain (interactive v2)" /><published>2026-05-26T14:30:00+00:00</published><updated>2026-05-26T14:30:00+00:00</updated><id>https://ronaldluc.com/research/eight-axes-for-the-llm-supply-chain-v2</id><content type="html" xml:base="https://ronaldluc.com/research/eight-axes-for-the-llm-supply-chain-v2/"><![CDATA[<div class="eight-axes-root">

<style>
/* TL;DR strip */
.eight-axes-tldr {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin: 18px 0 28px;
}
.eight-axes-tldr.eight-axes-tldr--3up { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 720px) {
  .eight-axes-tldr { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
  .eight-axes-tldr.eight-axes-tldr--3up { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
}
/* v1 hyperlink — preserves "v1" reading flow while flagging it as a cross-post link */
a.eight-axes-v1-link {
  color: #1d4d8a;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 2px;
  font-weight: 600;
}
a.eight-axes-v1-link:hover { background: rgba(29,77,138,0.08); text-decoration-style: solid; }
.eight-axes-hero-stat {
  background: #fdfdfa;
  border: 1px solid #e0e0d4;
  border-left: 4px solid #1d4d8a;
  border-radius: 4px;
  padding: 12px 14px;
}
.eight-axes-hero-num {
  font-size: 28px; font-weight: 800; line-height: 1.1;
  color: #1d4d8a;
  font-feature-settings: "tnum";
}
.eight-axes-hero-label {
  font-size: 12px; color: #555; margin-top: 6px; line-height: 1.35;
}
.eight-axes-hero-stat--inline { display: inline-flex; gap: 10px; align-items: baseline; padding: 8px 12px; }
.eight-axes-hero-stat--inline .eight-axes-hero-num { font-size: 22px; }

/* Lede + collapsible */
.eight-axes-lede {
  font-size: 15.5px; line-height: 1.55; margin: 6px 0 10px;
  color: #1a1a1a;
}
details.eight-axes-more {
  border: 1px solid #e6e6dd;
  border-radius: 4px;
  background: #fafaf4;
  padding: 8px 14px;
  margin: 8px 0 22px;
}
details.eight-axes-more > summary {
  cursor: pointer; font-weight: 600; font-size: 13.5px;
  color: #555; list-style: none;
}
details.eight-axes-more > summary::-webkit-details-marker { display: none; }
details.eight-axes-more > summary::before {
  content: "\25B6"; display: inline-block; margin-right: 8px;
  font-size: 10px; color: #888; transition: transform .12s ease;
}
details.eight-axes-more[open] > summary::before { transform: rotate(90deg); }
.eight-axes-more-body { padding-top: 8px; font-size: 14.5px; line-height: 1.6; }

/* Callouts */
.eight-axes-callout-premise,
.eight-axes-callout-info,
.eight-axes-callout-caveat {
  border-left: 4px solid;
  border-radius: 0 4px 4px 0;
  padding: 10px 14px;
  margin: 12px 0;
  font-size: 14px;
  line-height: 1.55;
}
.eight-axes-callout-premise { background: #eef4fc; border-color: #1d4d8a; }
.eight-axes-callout-info    { background: #f3f3ed; border-color: #888;   }
.eight-axes-callout-caveat  { background: #fdf6e3; border-color: #b58900; }

/* Premise-as-axiom: large, explicit thesis statement above the lede */
.eight-axes-premise-axiom {
  margin: 24px 0 28px;
  padding: 28px 32px;
  background: linear-gradient(135deg, #fafbfc 0%, #f1f4f9 100%);
  border-left: 4px solid #2563eb;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.eight-axes-premise-label {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 12px;
  font-weight: 700;
  color: #2563eb;
  margin-bottom: 12px;
}
.eight-axes-premise-statement {
  font-size: 22px;
  line-height: 1.4;
  font-weight: 500;
  color: #0f172a;
}
.eight-axes-premise-statement strong {
  color: #2563eb;
  font-weight: 700;
  font-size: 28px;
}
@media (max-width: 640px) {
  .eight-axes-premise-axiom { padding: 18px 20px; }
  .eight-axes-premise-statement { font-size: 18px; }
  .eight-axes-premise-statement strong { font-size: 22px; }
}
.eight-axes-premise-axiom-note {
  margin: 14px 0 0;
  font-size: 13.5px;
  color: #4b5563;
  line-height: 1.5;
  padding-top: 10px;
  border-top: 1px solid rgba(8,145,178,0.15);
}

/* Mini-table (counter-intuitive section, axis breakdown) */
table.eight-axes-mini-table {
  width: 100%;
  border-collapse: collapse;
  margin: 10px 0 12px;
  font-size: 13px;
  font-feature-settings: "tnum";
}
table.eight-axes-mini-table th,
table.eight-axes-mini-table td {
  border-bottom: 1px solid #e6e6dd;
  padding: 6px 10px;
  text-align: left;
  vertical-align: top;
}
table.eight-axes-mini-table th {
  background: #f3f3ed;
  font-weight: 700;
  font-size: 12px;
  color: #444;
}
table.eight-axes-mini-table td:nth-child(2) {
  font-weight: 700;
  color: #1d4d8a;
  white-space: nowrap;
  width: 70px;
}
table.eight-axes-mini-table td:nth-child(1) {
  white-space: nowrap;
  width: 130px;
}

/* 8-axis grid */
.eight-axes-axis-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px; margin: 14px 0; padding: 0;
}
.eight-axes-axis-card {
  background: #fff; border: 1px solid #e0e0d4; border-radius: 4px;
  padding: 10px 12px;
}
.eight-axes-axis-card dt {
  font-weight: 700; font-size: 14px; margin-bottom: 4px;
}
.eight-axes-axis-id {
  display: inline-block; min-width: 26px; padding: 1px 6px;
  background: #1d4d8a; color: #fff; border-radius: 3px;
  font-size: 12px; margin-right: 6px; font-feature-settings: "tnum";
}
.eight-axes-axis-what    { font-size: 13px; color: #222; margin: 0 0 4px; }
.eight-axes-axis-extreme { font-size: 12px; color: #666; margin: 0; font-feature-settings: "tnum"; }

/* Top-5 / Bottom-5 strip */
.eight-axes-pick-strip {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: 8px; margin: 12px 0;
}
@media (max-width: 720px) {
  .eight-axes-pick-strip { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
}
.eight-axes-pick {
  background: #fff; border: 1px solid #e0e0d4; border-top: 3px solid #1d4d8a;
  border-radius: 3px; padding: 8px 10px;
}
.eight-axes-pick-rank  { font-size: 11px; color: #888; font-weight: 700; }
.eight-axes-pick-name  { font-size: 13px; font-weight: 600; color: #1a1a1a; word-break: break-word; }
.eight-axes-pick-score { font-size: 18px; font-weight: 800; color: #1d4d8a; margin-top: 4px; font-feature-settings: "tnum"; }
.eight-axes-pick-strip--bottom .eight-axes-pick { border-top-color: #a02323; }
.eight-axes-pick-strip--bottom .eight-axes-pick-score { color: #a02323; }

/* Tilt grids (gainers / losers) */
.eight-axes-tilt-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 12px 0;
}
.eight-axes-tilt-col { background: #fafaf4; border: 1px solid #e6e6dd; border-radius: 4px; padding: 10px; }
.eight-axes-tilt-col h4,
.eight-axes-tilt-col-title { margin: 0 0 6px; font-size: 13px; font-weight: 700; color: #1a1a1a; }
.eight-axes-strip-label { margin: 14px 0 4px; font-size: 13px; color: #444; text-transform: uppercase; letter-spacing: .04em; }
.eight-axes-tilt-row { display: flex; justify-content: space-between; padding: 3px 0; font-size: 13px; }
.eight-axes-rank-chip {
  display: inline-block; min-width: 36px; padding: 1px 6px; border-radius: 3px;
  font-weight: 700; font-feature-settings: "tnum"; text-align: center;
}
.eight-axes-rank-chip--up   { background: #dff5e2; color: #1f7a36; }
.eight-axes-rank-chip--down { background: #fbe2e2; color: #a02323; }

/* Inline hero-stat (number to flag in prose) */
.eight-axes-hero-inline {
  font-weight: 800; color: #1d4d8a; font-feature-settings: "tnum";
}

/* Glossary tooltip (ported from .lis-glo / #lis-glotip) */
.eight-axes-root .eight-axes-glo, .eight-axes-glo {
  border-bottom: 1px dotted #999; cursor: help;
}
.eight-axes-root .eight-axes-glo:hover, .eight-axes-glo:hover { background: rgba(29,77,138,0.06); }
#eight-axes-glotip {
  position: fixed; z-index: 9999;
  min-width: 320px; max-width: 420px; max-height: 60vh;
  overflow-y: auto;
  background: #fff; border: 1px solid #bbb;
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
  padding: 12px 14px; border-radius: 4px;
  font-size: 14px; line-height: 1.45;
  display: none; opacity: 0;
  transition: opacity 120ms;
  pointer-events: none;
  color: #1a1a1a;
  font-family: -apple-system, "Segoe UI", "Inter", Helvetica, Arial, sans-serif;
}
#eight-axes-glotip.is-on { opacity: 1; }
#eight-axes-glotip .eight-axes-glotip-cat {
  color: #666; font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em;
}
#eight-axes-glotip h4.eight-axes-glotip-h { margin: 0 0 4px 0; font-size: 14px; }
#eight-axes-glotip .eight-axes-glotip-key { color: #888; font-weight: 400; }
#eight-axes-glotip .eight-axes-glotip-expl { margin: 6px 0; font-size: 13px; color: #222; }
#eight-axes-glotip .eight-axes-glotip-link a { color: #1d4d8a; font-weight: 600; text-decoration: none; }
#eight-axes-glotip .eight-axes-glotip-link a:hover { text-decoration: underline; }
@media (max-width: 640px) {
  .eight-axes-root .eight-axes-glo, .eight-axes-glo { border-bottom: none; }
  #eight-axes-glotip { display: none !important; }
}

/* References list */
.eight-axes-refs { font-size: 14px; line-height: 1.55; }
.eight-axes-refs li { margin: 4px 0; }
.eight-axes-refs .eight-axes-ref-ctx { color: #555; font-size: 13px; }

/* Warn banner: shown inside slider card when any vertical's gap_ratio < 1 */
body.is-warn .eight-axes-v2-slider-card {
  border-left-color: #dc2626;
}
.eight-axes-v2-warn-banner {
  font-size: 12px;
  color: #dc2626;
  background: #fee2e2;
  padding: 6px 10px;
  margin-top: 8px;
  border-radius: 3px;
}

/* Print: expand all details */
@media print {
  details.eight-axes-more, details.eight-axes-more[open] { border: none; background: transparent; }
  details.eight-axes-more > summary { display: none; }
  details.eight-axes-more > .eight-axes-more-body { display: block !important; }
}
</style>

<!-- EIGHT_AXES_GLOSSARY_BEGIN -->
<div id="eight-axes-glotip" role="tooltip"></div>
<script type="application/json" id="eight-axes-glossary">{"NVDA":{"category":"ticker","full_name":"NVIDIA Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/NVDA","explanation":"NVIDIA is the dominant designer of GPUs used to train and serve large language models. Its CUDA software stack plus the Hopper (H100/H200) and Blackwell (B100/B200/GB200) accelerator lines power roughly 90%+ of frontier-scale AI training in 2025-26. Data-center revenue is now ~88% of company sales, almost entirely from hyperscalers, neoclouds, and frontier AI labs."},"AMD":{"category":"ticker","full_name":"Advanced Micro Devices, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMD","explanation":"AMD is the only credible merchant alternative to NVIDIA for AI accelerators with its Instinct MI300/MI325/MI350 GPU line, plus EPYC server CPUs that pair with most AI hosts. It also makes Xilinx FPGAs and embedded chips after the 2022 acquisition. Data-center is now its largest segment and the swing driver of revenue growth."},"AVGO":{"category":"ticker","full_name":"Broadcom Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AVGO","explanation":"Broadcom co-designs custom AI ASICs (XPUs) for hyperscalers — Google TPU, Meta MTIA, OpenAI custom silicon — and is the dominant supplier of high-radix AI Ethernet switch silicon (Tomahawk, Jericho) and Sienna SerDes that power most non-NVLink scale-out networks. Acquired VMware in 2023 to add infrastructure software. AI-related semis are now $20B+ annualized."},"INTC":{"category":"ticker","full_name":"Intel Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/INTC","explanation":"Intel is the historic leader in x86 server/client CPUs and is building Intel Foundry (18A/14A) as the only credible non-Asian leading-edge logic alternative to TSMC. Microsoft is a named 18A design win; Gaudi accelerators remain a distant third in AI training silicon. Margins are heavily depressed during the foundry build-out."},"TSM":{"category":"ticker","full_name":"Taiwan Semiconductor Manufacturing Company (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/TSM","explanation":"TSMC is the dominant pure-play foundry with ~70% of global foundry revenue and an effective monopoly on leading-edge N3 and N2 production used in every major AI accelerator (NVIDIA, AMD, Broadcom, Google TPU, AWS Trainium, Apple). It also runs the CoWoS advanced-packaging line that physically integrates GPU dies with HBM stacks."},"GFS":{"category":"ticker","full_name":"GlobalFoundries Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/GFS","explanation":"GlobalFoundries is a US/Singapore foundry focused on mature and specialty nodes (12LP+, 22FDX, RF SOI, photonics) — not leading-edge. Its LLM relevance is indirect: silicon photonics, power management ICs, and trailing-edge logic that surround AI accelerators. Major customer concentrations in AMD, Qualcomm, and US defense."},"UMC":{"category":"ticker","full_name":"United Microelectronics Corporation (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/UMC","explanation":"UMC is the #4 pure-play foundry, focused on 28nm and trailing-edge nodes used for analog, display drivers, and microcontrollers around AI systems. Not a leading-edge AI play but benefits from secondary demand for legacy logic in datacenter peripherals."},"ASML":{"category":"ticker","full_name":"ASML Holding N.V.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ASML","explanation":"ASML is the sole maker of EUV (extreme-ultraviolet) lithography scanners required to print sub-7nm transistors used in every AI accelerator. Each EUV tool costs ~$200M ($380M+ for High-NA), making it a single point of failure for leading-edge supply. ~50% gross margins and 2026-29 backlog effectively sold out."},"AMAT":{"category":"ticker","full_name":"Applied Materials, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMAT","explanation":"Applied Materials is the world's largest wafer-fab equipment (WFE) vendor, dominant in deposition (CVD/PVD/ALD), epi, ion implant, and metrology. Critical for HBM stacking, advanced packaging, and the high-aspect-ratio etch/deposition steps that enable 3D DRAM and gate-all-around transistors at N2."},"LRCX":{"category":"ticker","full_name":"Lam Research Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/LRCX","explanation":"Lam Research dominates wafer etch and deposition equipment, especially the high-aspect-ratio etch tools required for 3D NAND, HBM through-silicon vias, and advanced packaging. It is the most leveraged WFE name to HBM stack-count growth (HBM3E 12-Hi to HBM4 16-Hi)."},"KLAC":{"category":"ticker","full_name":"KLA Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/KLAC","explanation":"KLA holds an ~80% share of process-control and yield-management inspection/metrology equipment, the tools that find tiny defects on wafers and photomasks. Its share grows at every node because more inspection passes are needed; advanced-packaging metrology is a high-growth subsegment."},"ACLS":{"category":"ticker","full_name":"Axcelis Technologies, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ACLS","explanation":"Axcelis is a focused ion-implant specialist, especially strong in high-energy and high-current implanters used by image sensors, memory, and silicon carbide power devices. It is the smallest of the major WFE pure plays and most exposed to power-semi and memory capex."},"ENTG":{"category":"ticker","full_name":"Entegris, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ENTG","explanation":"Entegris supplies process chemicals, filtration, gas/liquid delivery, and advanced materials consumables to every leading-edge fab. Revenue scales with wafer starts, not just equipment shipments, so it captures the recurring HBM/AI logic ramp without the cyclicality of WFE."},"ONTO":{"category":"ticker","full_name":"Onto Innovation Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ONTO","explanation":"Onto Innovation is a niche metrology/inspection vendor specializing in advanced-packaging measurement — bump/pillar inspection, hybrid-bonding metrology, and panel-level lithography. Direct leverage to CoWoS, HBM, and FOPLP capacity build-outs."},"MU":{"category":"ticker","full_name":"Micron Technology, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MU","explanation":"Micron is the only US-headquartered HBM/DRAM maker. HBM3E is in volume production for NVIDIA Blackwell and AMD MI300; HBM4 sampling in 2025-26. Currently ~24% of HBM market share with goal of reaching parity with the two Korean leaders by 2027."},"FN":{"category":"ticker","full_name":"Fabrinet","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/FN","explanation":"Fabrinet is the contract optical-assembly partner to most of the merchant optics industry; it assembles the 800G/1.6T transceivers and DSP modules sold by Coherent, Lumentum, Cisco, and others. Direct pure-play exposure to AI back-end network buildouts."},"COHR":{"category":"ticker","full_name":"Coherent Corp.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/COHR","explanation":"Coherent (formerly II-VI) is a top-tier optical transceiver maker (800G/1.6T) and the leading supplier of pump lasers, ROADMs, and SiC substrates. Optical-networking is its largest segment and the main growth driver for AI cluster interconnect."},"LITE":{"category":"ticker","full_name":"Lumentum Holdings Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/LITE","explanation":"Lumentum makes lasers, indium-phosphide chips, and 800G/1.6T DR/FR transceivers used in datacenter optical links between switches and accelerator nodes. Cloud & Networking is now >70% of revenue."},"CIEN":{"category":"ticker","full_name":"Ciena Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CIEN","explanation":"Ciena is the leading long-haul/metro coherent-optical systems vendor (WaveLogic DSPs); its WaveLogic 6 lands in DCI links between AI campuses. Most exposed to inter-datacenter (DCI) AI traffic rather than intra-cluster."},"AAOI":{"category":"ticker","full_name":"Applied Optoelectronics, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AAOI","explanation":"Applied Optoelectronics makes lasers and AOC/transceiver modules; historically dominant in cable broadband but now ramping 800G AI-datacenter optics for Microsoft. High volatility, small cap."},"ALAB":{"category":"ticker","full_name":"Astera Labs, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ALAB","explanation":"Astera Labs makes 'connectivity ICs' — PCIe/CXL retimers, smart cable modules, and the Scorpio fabric switch — that link CPUs, GPUs, and memory inside AI servers. IPO'd 2024; one of the purest AI-only public plays."},"CRDO":{"category":"ticker","full_name":"Credo Technology Group Holding Ltd","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CRDO","explanation":"Credo designs Active Electrical Cables (AECs) and SerDes-based retimer chips that move signals reliably between AI server racks at 100G+ per lane. Major Microsoft and Amazon design wins; ~80% revenue concentration in a handful of hyperscaler customers."},"POET":{"category":"ticker","full_name":"POET Technologies Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/POET","explanation":"POET Technologies is a small-cap developing the Optical Interposer — a silicon-photonics platform that integrates lasers and electronic ICs in one package. Pre-revenue speculative bet on co-packaged optics (CPO) replacing pluggable transceivers."},"ANET":{"category":"ticker","full_name":"Arista Networks, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ANET","explanation":"Arista is the leading high-radix Ethernet switch vendor (7000/7800 series, Etherlink AI-fabric line) for hyperscaler datacenters. Microsoft and Meta are major customers; benefits directly from AI back-end network (Ethernet/UEC) buildouts."},"CSCO":{"category":"ticker","full_name":"Cisco Systems, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CSCO","explanation":"Cisco is the incumbent enterprise networking vendor, now pushing Silicon One (its merchant switch silicon) and Nexus HyperFabric AI-pod switches. Less leveraged to AI than Arista because enterprise/campus is its core, but a significant beneficiary of AI factory build-outs."},"HPE":{"category":"ticker","full_name":"Hewlett Packard Enterprise Co.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/HPE","explanation":"HPE sells AI-server systems (ProLiant, Cray supercomputers) and acquired Juniper Networks in 2025 to add a credible switching portfolio. Its Cray division builds liquid-cooled HPC/AI clusters for national labs and the largest enterprises."},"SMCI":{"category":"ticker","full_name":"Super Micro Computer, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/SMCI","explanation":"Supermicro builds rack-scale GPU server systems faster than HPE/Dell, often first to market with each NVIDIA generation. Direct-liquid-cooled (DLC) Blackwell racks are now ~70% of its order book; ongoing accounting/audit issues created 2024-25 volatility."},"MRVL":{"category":"ticker","full_name":"Marvell Technology, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MRVL","explanation":"Marvell designs custom AI accelerator ASICs (Trainium2 with AWS, Maia helper silicon with Microsoft, Axion with Google) plus PAM4 DSPs that go inside every 800G/1.6T optical transceiver. Data-center is >70% of revenue."},"SNPS":{"category":"ticker","full_name":"Synopsys, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/SNPS","explanation":"Synopsys is the #1 EDA vendor (~31% share) — the software used to design every chip — plus DesignWare silicon IP. The July 2025 Ansys acquisition added multi-physics simulation, important for advanced-packaging thermal/mechanical co-design. Recurring-revenue model insulated from semi cyclicality."},"CDNS":{"category":"ticker","full_name":"Cadence Design Systems, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CDNS","explanation":"Cadence is the #2 EDA vendor (~30% share), known for digital implementation (Innovus), Palladium emulation/Protium prototyping (critical for AI chip verification), and the Tensilica DSP IP. AI-driven verification load is a structural tailwind."},"ARM":{"category":"ticker","full_name":"Arm Holdings plc (ADR)","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ARM","explanation":"Arm Holdings licenses the CPU architecture (Neoverse for servers, Cortex for everything else) that powers Apple silicon, AWS Graviton, NVIDIA Grace, and most mobile SoCs. It collects per-chip royalties so it rides the AI volume curve without semi-cycle capex risk."},"MSFT":{"category":"ticker","full_name":"Microsoft Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MSFT","explanation":"Microsoft is the #2 hyperscaler (Azure) and the largest single LLM-inference operator via its OpenAI partnership and Azure AI Foundry. AI annualized run rate ~$37B (Q2 FY26); also designs its own Maia AI accelerator and Cobalt Arm CPU."},"GOOGL":{"category":"ticker","full_name":"Alphabet Inc. (Class A)","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/GOOGL","explanation":"Alphabet runs Google Cloud (#3 hyperscaler) and is the only player with a fully vertically integrated AI stack: in-house TPU accelerators (designed with Broadcom), Gemini foundation models, and an inference cloud. ~$155B RPO backlog at Q4 2025."},"AMZN":{"category":"ticker","full_name":"Amazon.com, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMZN","explanation":"Amazon runs AWS, the #1 cloud at ~$142B annualized. Inferentia (inference) and Trainium (training) are its in-house accelerators co-designed with Annapurna/Marvell. Heavy spender on Anthropic and on Project Rainier — multi-GW Trainium clusters."},"META":{"category":"ticker","full_name":"Meta Platforms, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/META","explanation":"Meta is the largest non-cloud AI capex spender, training Llama models on multi-GW campuses (Hyperion, Prometheus). MTIA is its custom inference ASIC co-designed with Broadcom. Capex guided to $60-65B in 2025, mostly AI."},"ORCL":{"category":"ticker","full_name":"Oracle Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ORCL","explanation":"Oracle is a tier-2 hyperscaler (OCI) that has signed unusually large multi-year AI training deals — most notably the September 2025 ~$300B OpenAI contract that lifted RPO above $450B. Highly leveraged to AI capex via long-duration take-or-pay contracts."},"BABA":{"category":"ticker","full_name":"Alibaba Group Holding Ltd (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/BABA","explanation":"Alibaba runs Aliyun, China's largest cloud, and develops Qwen open-weight LLMs. Domestic AI inference plus Hanguang custom ASIC (T-Head). Subject to US semi-export restrictions limiting access to NVIDIA H200/Blackwell."},"CRWV":{"category":"ticker","full_name":"CoreWeave, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CRWV","explanation":"CoreWeave is the largest GPU-only neocloud, pioneer of the 'AI infrastructure REIT' model: long-term take-or-pay GPU rental contracts financed via debt against NVIDIA collateral. IPO'd March 2025. Microsoft, NVIDIA, and OpenAI are anchor customers."},"NBIS":{"category":"ticker","full_name":"Nebius Group N.V.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/NBIS","explanation":"Nebius is the European GPU neocloud spun out of Yandex's international business in 2024. Pure-play AI infrastructure provider with NVIDIA Hopper/Blackwell capacity in Finland, France, US. Smaller and earlier-stage than CoreWeave."},"VNET":{"category":"ticker","full_name":"VNET Group, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/VNET","explanation":"VNET (formerly 21Vianet) is a Chinese carrier-neutral colocation operator scaling wholesale AI datacenter capacity for Tencent and ByteDance. Listed in the US despite operations being entirely in China."},"GDS":{"category":"ticker","full_name":"GDS Holdings Limited (ADR)","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/GDS","explanation":"GDS is China's largest carrier-neutral datacenter operator. Spun off DayOne in 2024 for its international (SEA + Hong Kong) AI datacenter footprint. Tier-1 Chinese cloud and ByteDance are anchor customers."},"EQIX":{"category":"ticker","full_name":"Equinix, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/EQIX","explanation":"Equinix is the global retail colocation and interconnection leader with 270+ IBX facilities. The xScale joint venture and AI Solutions retail product target hyperscale AI workloads. Slower AI growth than DLR due to retail mix."},"DLR":{"category":"ticker","full_name":"Digital Realty Trust, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/DLR","explanation":"Digital Realty is the prototypical wholesale and hyperscale datacenter REIT — the landlord that builds shells and powered shells for hyperscaler AI training clusters. ~3 GW IT capacity, more leveraged to AI than Equinix."},"IRM":{"category":"ticker","full_name":"Iron Mountain Incorporated","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/IRM","explanation":"Iron Mountain is the records-storage incumbent now scaling Iron Mountain Data Centers (IMDC) as an AI-adjacent growth vehicle. Smaller but fastest-growing datacenter REIT; ~$1B+ AI-linked development pipeline."},"AJBU.SI":{"category":"ticker","full_name":"Keppel DC REIT","exchange":"SGX (Singapore Exchange)","yahoo_url":"https://finance.yahoo.com/quote/AJBU.SI","explanation":"Keppel DC REIT is the largest pure-play Asian datacenter REIT, listed in Singapore. ~25 facilities across Asia and Europe; benefits from Southeast Asia AI inference demand and sovereign-cloud build-outs."},"NVT":{"category":"ticker","full_name":"nVent Electric plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/NVT","explanation":"nVent (spin from Pentair) is a leading provider of liquid-cooling distribution units (CDUs), bus bars, and electrical enclosures for AI racks. Acquired Trachte in 2024 to add modular enclosures. Datacenter is the fastest-growing end-market."},"VRT":{"category":"ticker","full_name":"Vertiv Holdings Co","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/VRT","explanation":"Vertiv is the broadest pure-play AI thermal-management vendor: CRAH/CRAC, chillers, coolant distribution units (CDUs), rear-door heat exchangers, and immersion cooling. Acquired PurgeRite (Dec 2025) and CoolTera (2023). Closest public name to an 'AI cooling pure play'."},"MOD":{"category":"ticker","full_name":"Modine Manufacturing Company","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/MOD","explanation":"Modine bought Airedale chillers in 2023 and now sells TurboChill air-cooled chillers, 1 MW CDUs, and immersion-cooling tanks. Data-center is now ~25% of sales and the highest-margin segment."},"CARR":{"category":"ticker","full_name":"Carrier Global Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CARR","explanation":"Carrier is the legacy HVAC OEM that has pivoted hard into data-center cooling (Carrier Quantum Leap). Smaller AI share than Vertiv/Modine but benefits from broad chiller and air-handling refresh in datacenters."},"TT":{"category":"ticker","full_name":"Trane Technologies plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/TT","explanation":"Trane is a chiller and air-handling specialist with significant data-center exposure via its commercial HVAC business. Less pure-play than Vertiv but benefits from the mega-datacenter cooling capex cycle."},"JCI":{"category":"ticker","full_name":"Johnson Controls International plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/JCI","explanation":"Johnson Controls is a building-controls and HVAC conglomerate; Silent-Aire (acquired 2021) made it the leading modular cooling provider to hyperscaler campuses (Microsoft, AWS). Sold its residential HVAC business in 2024 to focus on commercial/datacenter."},"GNRC":{"category":"ticker","full_name":"Generac Holdings Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/GNRC","explanation":"Generac is the leading US residential standby-generator maker, expanding into Industrial natural-gas gensets and BESS for behind-the-meter AI datacenter power. Data-center is small but a fast-growing call option."},"ETN":{"category":"ticker","full_name":"Eaton Corporation plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ETN","explanation":"Eaton is the global #1 in datacenter electrical infrastructure: switchgear, busways, UPS, PDUs, transformers. Data-center + Distributed IT was ~21% of FY25 sales with Q4 orders up ~200%. Most-leveraged pure-play to AI campus electrification."},"SU.PA":{"category":"ticker","full_name":"Schneider Electric SE","exchange":"Euronext Paris","yahoo_url":"https://finance.yahoo.com/quote/SU.PA","explanation":"Schneider Electric is co-leader with Eaton in datacenter power management — UPS, PDUs, EcoStruxure software, prefab modular DCs. Data center & networks was ~30% of orders in FY25, the single largest end-market."},"ABBNY":{"category":"ticker","full_name":"ABB Ltd (ADR)","exchange":"OTC US (NYSE)","yahoo_url":"https://finance.yahoo.com/quote/ABBNY","explanation":"ABB is a Swiss-Swedish electrification, robotics, and motion specialist; HiPerGuard medium-voltage UPS and Smissline busway target AI datacenters. Heavy industrial automation cushion makes it less AI-pure than ETN/SU.PA."},"HUBB":{"category":"ticker","full_name":"Hubbell Incorporated","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/HUBB","explanation":"Hubbell makes electrical products (transformers, conduit, lighting) and grid-modernization gear (meters, capacitors). Power-Systems segment ramped on transmission and substation orders driven by datacenter load growth."},"POWL":{"category":"ticker","full_name":"Powell Industries, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/POWL","explanation":"Powell Industries is a small-cap maker of custom medium-voltage switchgear and packaged power systems — directly leveraged to AI datacenter and oil & gas substation construction. Massive multiple expansion on AI-power thesis since 2023."},"ROK":{"category":"ticker","full_name":"Rockwell Automation, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ROK","explanation":"Rockwell is the US leader in factory automation (PLCs, drives, SCADA) — not a direct AI play, included as an electrification and reshoring proxy. AI-datacenter exposure is indirect via construction automation."},"GEV":{"category":"ticker","full_name":"GE Vernova Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/GEV","explanation":"GE Vernova (spun from GE in April 2024) is the #1 heavy-duty gas turbine OEM (7HA/9HA F- and H-class) plus aeroderivatives (LM2500/6000/9000). 80 GW gas turbine backlog into 2029; named supplier to Crusoe, Chevron/Engine No.1, and Microsoft AI campuses."},"ENR.DE":{"category":"ticker","full_name":"Siemens Energy AG","exchange":"Xetra (Frankfurt)","yahoo_url":"https://finance.yahoo.com/quote/ENR.DE","explanation":"Siemens Energy is the #2 heavy-duty gas turbine OEM (SGT5/SGT6 F/H-class) plus aeroderivative SGT-A (formerly Rolls-Royce). Gas-services parts of book sold out into 2030; Siemens Gamesa wind unit a long-running drag now turning."},"SIEGY":{"category":"ticker","full_name":"Siemens AG (ADR)","exchange":"OTC US","yahoo_url":"https://finance.yahoo.com/quote/SIEGY","explanation":"Siemens AG is the German industrial conglomerate (digital industries, smart infrastructure, mobility) — not to be confused with separately listed Siemens Energy. Indirect AI exposure via factory automation and data-center building technology."},"7011.T":{"category":"ticker","full_name":"Mitsubishi Heavy Industries, Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7011.T","explanation":"Mitsubishi Heavy Industries (MHI) is the #3 global heavy-duty gas turbine OEM (M501JAC/M701JAC) and a major nuclear plant builder. Highest TIT (turbine inlet temperature) ratings among the big three; significant Asian datacenter exposure."},"HPS-A.TO":{"category":"ticker","full_name":"Hammond Power Solutions Inc.","exchange":"Toronto Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/HPS-A.TO","explanation":"Hammond Power Solutions is a Canadian dry-type and cast-resin transformer specialist — the #1 North American merchant transformer pure-play. Direct beneficiary of the transformer shortage caused by datacenter and grid build-outs."},"MTRS.ST":{"category":"ticker","full_name":"Munters Group AB","exchange":"Nasdaq Stockholm","yahoo_url":"https://finance.yahoo.com/quote/MTRS.ST","explanation":"Munters is a Swedish specialist in evaporative cooling and air treatment. Data-center cooling (FoodTech and DataCenter segments) is the highest-growth driver as hyperscalers adopt adiabatic/indirect-evaporative AHUs."},"6501.T":{"category":"ticker","full_name":"Hitachi, Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/6501.T","explanation":"Hitachi is a Japanese industrial conglomerate; Hitachi Energy (formerly ABB Power Grids, acquired 2020) is the world's #1 grid transformer and HVDC equipment maker — the most-constrained capacity in the global energy supply chain."},"CEG":{"category":"ticker","full_name":"Constellation Energy Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CEG","explanation":"Constellation Energy is the largest US nuclear fleet operator (~22 GW). The September 2024 deal to restart Three Mile Island Unit 1 for Microsoft AI offtake made it the poster child for nuclear-for-AI PPAs. Highly leveraged to merchant power prices and PPA premiums."},"VST":{"category":"ticker","full_name":"Vistra Corp.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/VST","explanation":"Vistra is a Texas-anchored merchant generator with nuclear (Comanche Peak), coal, gas, and a growing battery fleet. Acquired Energy Harbor in 2024 to add 4 GW of nuclear. Massive multiple expansion on AI offtake thesis."},"TLN":{"category":"ticker","full_name":"Talen Energy Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/TLN","explanation":"Talen Energy is the operator of the Susquehanna nuclear plant in PA. In March 2024 it sold the adjacent Cumulus AI datacenter campus to AWS with a behind-the-meter PPA — the first hyperscaler-nuclear co-location deal. Re-emerged from Chapter 11 in 2023."},"NRG":{"category":"ticker","full_name":"NRG Energy, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/NRG","explanation":"NRG Energy is a Texas-centric merchant power and retail electricity provider. Less nuclear exposure than VST/CEG; benefits from ERCOT load growth from Texas AI datacenters."},"AEP":{"category":"ticker","full_name":"American Electric Power Company, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AEP","explanation":"AEP is one of the largest US regulated electric utilities, serving 11 states across PJM and SPP. Most disclosed datacenter load-growth pipeline of any utility (~20 GW); central to PJM transmission queue politics."},"DUK":{"category":"ticker","full_name":"Duke Energy Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/DUK","explanation":"Duke Energy is a large regulated utility (NC, SC, FL, IN) with significant nuclear capacity and surging data-center load in the Carolinas — Google, Microsoft, Amazon campuses. Major capex plan for new gas + nuclear."},"D":{"category":"ticker","full_name":"Dominion Energy, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/D","explanation":"Dominion Energy serves Virginia, where ~70% of global internet traffic transits and 'Data Center Alley' (Loudoun County) sits. Most concentrated single-state AI datacenter exposure; constrained by transmission interconnect queue."},"PEG":{"category":"ticker","full_name":"Public Service Enterprise Group Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PEG","explanation":"PSEG is a New Jersey-anchored utility with nuclear (Salem/Hope Creek) exposure and a heavily regulated rate-based capex plan. Less direct datacenter load growth than D/AEP, but a high-quality nuclear yield play."},"BWXT":{"category":"ticker","full_name":"BWX Technologies, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/BWXT","explanation":"BWX Technologies makes nuclear reactor components (US Navy submarines/carriers, large-reactor steam generators) and is the prime contractor for HALEU fuel production and SMR pressure vessels. Cornerstone US nuclear industrial base."},"SMR":{"category":"concept","full_name":"Small Modular Reactor","explanation":"Compact nuclear reactors (<300 MW) designed to be factory-built in modules and shipped to site, instead of stick-built like traditional plants. Targeting hyperscaler behind-the-meter offtake. NuScale, Oklo, BWXT, X-energy, Holtec, Rolls-Royce SMR are the leading designs."},"OKLO":{"category":"ticker","full_name":"Oklo Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/OKLO","explanation":"Oklo is a Sam Altman-chaired advanced-reactor startup developing the 75 MW Aurora fast-spectrum SMR fueled by HALEU. Pre-revenue, no commercial reactor yet; SPAC-listed 2024 and trades as the most speculative pure-play AI-nuclear name."},"LEU":{"category":"ticker","full_name":"Centrus Energy Corp.","exchange":"NYSE American","yahoo_url":"https://finance.yahoo.com/quote/LEU","explanation":"Centrus Energy is the only US-licensed HALEU (High-Assay Low-Enriched Uranium) producer; HALEU is the fuel SMRs need but cannot easily get because Russia previously dominated supply. Tiny pure-play option on US nuclear supply-chain reshoring."},"CCJ":{"category":"ticker","full_name":"Cameco Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CCJ","explanation":"Cameco is the largest publicly traded uranium miner (Cigar Lake, McArthur River) and co-owns Westinghouse (with Brookfield) which is the dominant Western large-reactor designer/services firm. Largest non-state uranium player."},"UUUU":{"category":"ticker","full_name":"Energy Fuels Inc.","exchange":"NYSE American","yahoo_url":"https://finance.yahoo.com/quote/UUUU","explanation":"Energy Fuels operates the only conventional uranium mill in the US (White Mesa, Utah) plus heavy-mineral-sand rare-earth processing. Tiny diversified bet on US uranium + REE supply-chain reshoring."},"MP":{"category":"ticker","full_name":"MP Materials Corp.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/MP","explanation":"MP Materials owns Mountain Pass — the only operating US rare-earth mine — and is vertically integrating into NdPr separation and magnet manufacturing in Texas. Strategic supplier for permanent magnets used in datacenter motors, wind, EVs."},"LYC.AX":{"category":"ticker","full_name":"Lynas Rare Earths Ltd","exchange":"ASX (Australian Securities Exchange)","yahoo_url":"https://finance.yahoo.com/quote/LYC.AX","explanation":"Lynas is the largest ex-China rare-earth producer — mining at Mt Weld (WA) and processing in Malaysia, with a new US DoD-funded heavy-RE plant in Texas. Pure-play Western alternative to Chinese REE dominance."},"FCX":{"category":"ticker","full_name":"Freeport-McMoRan Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/FCX","explanation":"Freeport-McMoRan is the largest publicly traded US-listed copper major (~4.2 Bln lbs Cu in 2025) with anchor operations at Grasberg (Indonesia) and Arizona. Direct beneficiary of AI-datacenter and grid copper-intensity build-out."},"SCCO":{"category":"ticker","full_name":"Southern Copper Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/SCCO","explanation":"Southern Copper is a Grupo Mexico subsidiary with the lowest-cost integrated copper production in the world (Peru, Mexico, ~1.0 Mt Cu/yr). Highest copper-price leverage among the listed majors."},"TECK":{"category":"ticker","full_name":"Teck Resources Limited","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/TECK","explanation":"Teck Resources became a pure-play copper company after selling its coal business to Glencore in 2024. Key growth: QB2 in Chile and Highland Valley in Canada. Often discussed as M&A target by larger miners."},"BHP":{"category":"company","full_name":"BHP Group Limited","explanation":"World's largest diversified miner. See ticker BHP."},"IVN.TO":{"category":"ticker","full_name":"Ivanhoe Mines Ltd.","exchange":"Toronto Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/IVN.TO","explanation":"Ivanhoe Mines is the operator of Kamoa-Kakula in the DRC, one of the highest-grade large copper mines in the world. Heavy political-risk discount but the most-leveraged growth name on rising copper demand."},"PWR":{"category":"ticker","full_name":"Quanta Services, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PWR","explanation":"Quanta Services is the largest US electric-transmission and renewable-construction contractor — the labor that builds the substations, transmission lines, and gen-tie lines for datacenter campuses. Multi-year backlog at all-time highs."},"MYRG":{"category":"ticker","full_name":"MYR Group Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MYRG","explanation":"MYR Group is a smaller specialty T&D construction contractor focused on substations, transmission, and commercial/industrial electrical work. Pure-play on US grid build-out for AI load growth."},"PRIM":{"category":"ticker","full_name":"Primoris Services Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PRIM","explanation":"Primoris Services is a diversified utility, energy, and renewables construction firm; data-center adjacent through transmission, solar/storage, and gas-pipeline work for hyperscalers."},"CAT":{"category":"ticker","full_name":"Caterpillar Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CAT","explanation":"Caterpillar makes the diesel and natural-gas gensets, switchgear, and earthmoving equipment used to build and back up AI datacenters. Solar Turbines subsidiary supplies aeroderivative gas turbines (15-22 MW class) for behind-the-meter power."},"CMI":{"category":"ticker","full_name":"Cummins Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CMI","explanation":"Cummins is the #2 diesel/gas genset OEM behind Caterpillar; Power Generation segment is sold out into 2026 from hyperscaler standby and behind-the-meter orders. Accelera subsidiary covers green-hydrogen and electrolyzer work."},"BE":{"category":"ticker","full_name":"Bloom Energy Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/BE","explanation":"Bloom Energy makes solid-oxide fuel cells (SOFC) used as behind-the-meter on-site power for datacenters when grid interconnect is slow. AEP and AWS are named customers. Loss-making but cash-flow positive on aftermarket service."},"LIN":{"category":"ticker","full_name":"Linde plc","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/LIN","explanation":"Linde is the world's largest industrial-gas supplier. Most-direct AI-fab exposure of any gas major via on-site bulk N2/O2/H2 plants at TSMC Arizona, Samsung Texas, Intel Ohio. Long-duration take-or-pay contracts behind every fab build."},"APD":{"category":"ticker","full_name":"Air Products and Chemicals, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/APD","explanation":"Air Products is the #3 industrial-gas major, heavy in hydrogen and helium. Similar fab-gas exposure to Linde but smaller share of leading-edge logic/HBM sites; Mantle Ridge activist pressure (2024-25) to refocus capital."},"AIQUY":{"category":"ticker","full_name":"Air Liquide S.A. (ADR)","exchange":"OTC US","yahoo_url":"https://finance.yahoo.com/quote/AIQUY","explanation":"Air Liquide is the French #2 global industrial-gas major with leading position in Europe and Asia electronics; supplies most leading-edge fabs in Taiwan, Korea, and the EU. ADR of the Euronext Paris primary listing."},"AWK":{"category":"ticker","full_name":"American Water Works Company, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/AWK","explanation":"American Water is the largest US regulated water utility. Datacenter water consumption (evaporative cooling, fab UPW) is a growing political and rate-case driver, especially in Arizona, Virginia, Texas."},"WTRG":{"category":"ticker","full_name":"Essential Utilities, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/WTRG","explanation":"Essential Utilities is a regulated water and natural-gas utility (formerly Aqua America). Smaller than AWK but similar exposure to datacenter water demand in Pennsylvania, North Carolina, Ohio."},"XYL":{"category":"ticker","full_name":"Xylem Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/XYL","explanation":"Xylem makes pumps, treatment systems, and analytics for water/wastewater. Datacenter cooling-tower make-up water and UPW pre-treatment are growing niche markets. Acquired Evoqua (2023) to deepen industrial water position."},"PNR":{"category":"ticker","full_name":"Pentair plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PNR","explanation":"Pentair is a residential/commercial water-treatment and pool-equipment maker. Smallest datacenter water exposure of the four water names tracked; included as a sector proxy."},"MPWR":{"category":"ticker","full_name":"Monolithic Power Systems, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MPWR","explanation":"Monolithic Power Systems is the merchant leader in vertical-power-delivery and 48V VRMs that sit next to GPUs and CPUs on every AI server board. Historically the dominant NVIDIA on-board power partner; recently lost some share to Infineon."},"ADI":{"category":"ticker","full_name":"Analog Devices, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ADI","explanation":"Analog Devices is a top-tier analog/mixed-signal IC supplier — power, signal chain, isolation. AI exposure is via power management for servers, optical-module DSPs, and BMC/sensor ICs in datacenter infrastructure."},"TXN":{"category":"ticker","full_name":"Texas Instruments Incorporated","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/TXN","explanation":"Texas Instruments is the world's largest analog IC maker by units; power management, embedded processing, and signal chain. Indirect AI exposure: power-stage ICs, optical DSP companions, automotive-server power."},"ON":{"category":"ticker","full_name":"ON Semiconductor Corp.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ON","explanation":"onsemi makes silicon carbide (SiC) power modules, image sensors, and power management ICs. EV slowdown weighed on 2024-25, but AI-datacenter SiC for 48V/HVDC rectifiers is a growing tailwind."},"POWI":{"category":"ticker","full_name":"Power Integrations, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/POWI","explanation":"Power Integrations makes high-voltage power-conversion ICs (PowiGaN and SiC gate drivers). Niche but the cleanest GaN/SiC IP play; benefits from datacenter PSU efficiency requirements rising past 96%."},"VICR":{"category":"ticker","full_name":"Vicor Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/VICR","explanation":"Vicor designs and makes factorized-power-architecture modules (48V-to-PoL) used inside NVIDIA HGX baseboards. Small but the only public pure-play on the move to 48V vertical-power delivery for AI accelerators."},"NVTS":{"category":"ticker","full_name":"Navitas Semiconductor Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/NVTS","explanation":"Navitas Semiconductor is a fabless GaN/SiC power-IC startup; supplies GaNFast monolithic GaN ICs for AI datacenter PSUs and chargers. Tiny revenue, big multiple — speculative bet on GaN inflection."},"IFX.DE":{"category":"ticker","full_name":"Infineon Technologies AG","exchange":"Xetra (Frankfurt)","yahoo_url":"https://finance.yahoo.com/quote/IFX.DE","explanation":"Infineon Technologies is the world's largest power-semi supplier. OptiMOS and CoolGaN/CoolSiC product families feed AI server VRMs and PSUs. Took NVIDIA on-board VRM share from MPWR in 2024-25."},"AMKR":{"category":"ticker","full_name":"Amkor Technology, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMKR","explanation":"Amkor is the #2 OSAT (outsourced assembly and test). Flip-chip BGA and SiP for AI accelerators; building a TSMC-aligned advanced-packaging campus in Arizona. Direct CoWoS/HBM tailwind."},"ASX":{"category":"ticker","full_name":"ASE Technology Holding Co. Ltd (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ASX","explanation":"ASE Technology is the world's largest OSAT (assembly + test), parent of ASE and SPIL. LEAP advanced-packaging segment plus CoWoS-adjacent ATM (assembly/test/materials) services for AI accelerators."},"3037.TW":{"category":"ticker","full_name":"Unimicron Technology Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/3037.TW","explanation":"Unimicron is the leading ABF / FC-BGA substrate supplier for AI GPUs and CPUs, including NVIDIA and AMD packages plus CoWoS interposer carriers. Direct beneficiary of every CoWoS wafer."},"3189.TW":{"category":"ticker","full_name":"Kinsus Interconnect Technology Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/3189.TW","explanation":"Kinsus is a Taiwanese FC-BGA / ABF substrate maker (Pegatron-affiliated). Smaller than Unimicron but expanding AI capacity; supplies Intel, AMD, and various AI ASIC platforms."},"8046.TW":{"category":"ticker","full_name":"Nan Ya PCB Corporation","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/8046.TW","explanation":"Nan Ya PCB (Formosa Plastics Group) is the #3 Taiwanese ABF substrate supplier plus a top maker of multi-layer PCBs (HDI, HLC). Big exposure to NVIDIA AI motherboards and CoWoS substrate ramp."},"2344.TW":{"category":"ticker","full_name":"Winbond Electronics Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2344.TW","explanation":"Winbond Electronics is a Taiwanese specialty DRAM and NOR/NAND flash maker. Custom DRAM (CUBE) for AI peripherals; no HBM presence. Smaller and less AI-leveraged than the big-three DRAM majors."},"2408.TW":{"category":"ticker","full_name":"Nanya Technology Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2408.TW","explanation":"Nanya Technology is a Taiwanese commodity DDR4/DDR5 DRAM maker with no HBM exposure. Used in this study as a proxy for non-AI DRAM pricing."},"2449.TW":{"category":"ticker","full_name":"King Yuan Electronics Co., Ltd.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2449.TW","explanation":"King Yuan Electronics (KYEC) is a Taiwanese back-end test specialist for HBM/CoWoS and AI ASICs. Test capacity, not assembly — a niche but constrained step in AI accelerator production."},"2454.TW":{"category":"ticker","full_name":"MediaTek Inc.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2454.TW","explanation":"MediaTek is a Taiwanese fabless SoC giant (mobile, Wi-Fi, smart-edge). Designing AI accelerator ASICs for Google TPU partner-of-record program and edge-AI inference for automotive and CPE."},"6147.TWO":{"category":"ticker","full_name":"Chipbond Technology Corporation","exchange":"Taipei Exchange (TPEx)","yahoo_url":"https://finance.yahoo.com/quote/6147.TWO","explanation":"Chipbond is a Taiwanese gold-bump and COF (chip-on-film) back-end specialist for driver ICs and certain AI packaging steps. Niche but exposed to advanced-packaging volume growth."},"6239.TW":{"category":"ticker","full_name":"Powertech Technology Inc.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/6239.TW","explanation":"Powertech is a Taiwanese OSAT specializing in memory test, packaging, and DRAM/Flash module assembly. HBM test capacity is a growing differentiator."},"000660.KS":{"category":"ticker","full_name":"SK Hynix Inc.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/000660.KS","explanation":"SK Hynix is the #1 HBM supplier (~57% share in Q3 2025) and the lead NVIDIA HBM3E partner. Korean leader in DRAM technology and now the highest-margin memory maker in history thanks to AI-driven HBM mix."},"005930.KS":{"category":"ticker","full_name":"Samsung Electronics Co., Ltd.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/005930.KS","explanation":"Samsung Electronics is the world's largest memory maker (#1 DRAM and NAND) but lost the HBM lead to SK Hynix in 2023-25; now qualifying HBM3E 12-Hi for NVIDIA. Also runs Samsung Foundry, the #2 logic foundry (3nm GAA)."},"009150.KS":{"category":"ticker","full_name":"Samsung Electro-Mechanics Co., Ltd.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/009150.KS","explanation":"Samsung Electro-Mechanics (SEMCO) makes FC-BGA substrates, MLCCs, and camera modules. Substrate business is a direct beneficiary of AI accelerator package build-out alongside Ibiden and Unimicron."},"267260.KS":{"category":"ticker","full_name":"HD Hyundai Electric Co., Ltd.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/267260.KS","explanation":"HD Hyundai Electric is a Korean power transformer manufacturer (formerly Hyundai Heavy's electric division), one of the few firms with available capacity for US export of large transformers needed by AI datacenters."},"2802.T":{"category":"ticker","full_name":"Ajinomoto Co., Inc.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2802.T","explanation":"Ajinomoto is the Japanese MSG maker famous for being the sole-source supplier of ABF (Ajinomoto Build-up Film), the dielectric film inside every advanced FC-BGA substrate. The 'Fine-Techno' electronic-materials segment is a hidden monopoly on AI packaging."},"4062.T":{"category":"ticker","full_name":"Ibiden Co., Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/4062.T","explanation":"Ibiden is the dominant FC-BGA / ABF substrate supplier (~70-80% share of leading-edge AI substrates) for NVIDIA and Intel. Sold-out substrate capacity through 2027 per Oct-2025 analyst day."},"4063.T":{"category":"ticker","full_name":"Shin-Etsu Chemical Co., Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/4063.T","explanation":"Shin-Etsu Chemical is the world's #1 supplier of 300mm silicon wafers and the #1 photoresist maker; also dominant in PVC, semiconductor cleaning chemicals, and rare-earth magnets. Critical upstream supplier to every fab."},"6920.T":{"category":"ticker","full_name":"Lasertec Corporation","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/6920.T","explanation":"Lasertec has an effective monopoly on EUV photomask inspection equipment (ACTIS-A2/A1) — every EUV mask shop must buy from it. The pickiest tool in the EUV food chain; near-100% gross margins, lumpy revenue."},"7731.T":{"category":"ticker","full_name":"Nikon Corporation","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7731.T","explanation":"Nikon is a Japanese optics maker, historically #2 in ArF immersion lithography behind ASML. Lost EUV race; today supplies trailing-edge DUV scanners plus mask metrology and cameras."},"7735.T":{"category":"ticker","full_name":"SCREEN Holdings Co., Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7735.T","explanation":"SCREEN Holdings is the world's largest supplier of single-wafer cleaning equipment, plus thermal-process and inspection tools. ~70% global share of wet-cleaning is a recurring tailwind from every leading-edge wafer start."},"7751.T":{"category":"ticker","full_name":"Canon Inc.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7751.T","explanation":"Canon is a Japanese optics and printer giant; in semis, supplies KrF/ArF DUV scanners and the FPA-1200NZ2C nanoimprint lithography (NIL) tool used by Kioxia for 3D NAND — a long-shot EUV alternative."},"8035.T":{"category":"ticker","full_name":"Tokyo Electron Limited (TEL)","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/8035.T","explanation":"Tokyo Electron (TEL) is the world's #3 WFE vendor after AMAT/LRCX. Leader in track (resist coating), thermal CVD, clean, and dry-etch tools. Indispensable for every leading-edge fab; major EUV-resist co-development partner with ASML."},"ATS.VI":{"category":"ticker","full_name":"AT&S Austria Technologie & Systemtechnik AG","exchange":"Vienna Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/ATS.VI","explanation":"AT&S is the European leader in IC substrates (ABF and FC-BGA), building an Intel-co-funded site in Leoben and a Malaysia ramp. Smaller-share #4 after Ibiden/Unimicron/Semco; heavy capex drag during ramp."},"NOW":{"category":"ticker","full_name":"ServiceNow, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/NOW","explanation":"ServiceNow is the leading enterprise-workflow SaaS platform (IT, HR, ITSM). 'Now Assist' agentic AI features and Now Platform AI Agents are early monetization layers for enterprise LLM inference."},"DDOG":{"category":"ticker","full_name":"Datadog, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/DDOG","explanation":"Datadog is the leading cloud-observability platform; AI-monitoring products (LLM Observability) are an emerging revenue lever. Customer concentration in cloud-native AI-startup spenders makes it a sensitivity proxy for AI capex."},"SNOW":{"category":"ticker","full_name":"Snowflake Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/SNOW","explanation":"Snowflake is a cloud data-warehouse platform pushing AI Data Cloud with Cortex (LLM inference inside the warehouse) and Polaris (open table format). Consumption pricing exposes it directly to AI-query volume."},"MDB":{"category":"ticker","full_name":"MongoDB, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MDB","explanation":"MongoDB is the leading document database; Atlas Vector Search and Voyage AI (acquired 2024) push it into the RAG vector-store category alongside Pinecone and Weaviate. Direct beneficiary of LLM agentic workloads."},"PLTR":{"category":"ticker","full_name":"Palantir Technologies Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/PLTR","explanation":"Palantir Technologies sells AIP (Artificial Intelligence Platform) plus Foundry/Gotham to commercial and government customers. Most aggressive 'agentic AI orchestration layer' marketing among public software firms."},"APP":{"category":"ticker","full_name":"AppLovin Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/APP","explanation":"AppLovin is a mobile ad-tech firm whose Axon 2 ML/AI engine drove a multi-fold revenue and stock surge in 2024-25. Pure consumer-tech application of large-scale ML inference; not a model lab but an AI-driven business model."},"SOXX":{"category":"ticker","full_name":"iShares Semiconductor ETF","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/SOXX","explanation":"SOXX is an exchange-traded fund tracking ~30 US-listed semiconductor stocks (PHLX SOX-derived). Used in this study as a sector benchmark for the semis-heavy verticals."},"XLK":{"category":"ticker","full_name":"Technology Select Sector SPDR Fund","exchange":"NYSE Arca","yahoo_url":"https://finance.yahoo.com/quote/XLK","explanation":"XLK is an exchange-traded fund tracking the S&P 500 Technology sector (NVDA, MSFT, AAPL, AVGO concentrated). Used as broad tech benchmark."},"^GSPC":{"category":"index","full_name":"S&P 500 Index","exchange":"(index — not directly tradable)","yahoo_url":"https://finance.yahoo.com/quote/%5EGSPC","explanation":"The S&P 500 is the cap-weighted index of 500 large US stocks. Used in this study as the broad-market benchmark for beta, drawdown, and excess-return calculations."},"^NDX":{"category":"index","full_name":"NASDAQ-100 Index","exchange":"(index — not directly tradable)","yahoo_url":"https://finance.yahoo.com/quote/%5ENDX","explanation":"The NASDAQ-100 is the cap-weighted index of the 100 largest non-financial NASDAQ stocks, heavily skewed to mega-cap tech. Used here as a secondary benchmark closer to the study's tech-tilt."},"advanced-packaging":{"category":"vertical","full_name":"Advanced Packaging (OSAT, substrates, FOPLP, backend test)","explanation":"The vertical covering chip assembly steps that happen AFTER a wafer leaves the foundry: dicing, flip-chip bonding, 2.5D/3D stacking (CoWoS, SoIC), substrate attach, and final test. CoWoS bottleneck at TSMC plus the ABF substrate shortage at Ibiden/Unimicron are the two most-watched constraints on AI accelerator output."},"ai-accelerators":{"category":"vertical","full_name":"AI Accelerators (GPUs / ASICs / TPUs)","explanation":"The chips that actually run LLM matrix math: NVIDIA GPUs, AMD Instinct, Google TPU, AWS Trainium/Inferentia, Microsoft Maia, Meta MTIA, and Intel Gaudi. Demand is dictated by hyperscaler/lab capex; supply by foundry (TSMC), HBM (Hynix/Samsung/Micron), and CoWoS capacity."},"copper-rare-earth":{"category":"vertical","full_name":"Copper & Rare Earths","explanation":"Upstream metals tied to AI build-out: copper for transformers, busways, motors, and chip interconnect; rare-earth elements (NdPr, Dy, Tb) for permanent magnets in HVAC, EVs, wind, and motors that sit around data centers. Long lead times — a copper mine takes 15+ years from discovery to production."},"datacenter-cooling-thermal":{"category":"vertical","full_name":"Datacenter Cooling — Thermal Management","explanation":"Equipment that removes heat from AI servers: CRAH/CRAC air-handlers, chillers, coolant distribution units (CDUs), rear-door heat exchangers, cold plates, immersion tanks, and dry coolers. As GPU TDPs climbed past 1000W (Blackwell GB200), liquid cooling moved from niche to mandatory."},"datacenter-reits":{"category":"vertical","full_name":"Datacenter REITs (Colocation + Wholesale)","explanation":"Real Estate Investment Trusts that own and lease datacenter buildings. Retail/colo (Equinix) sells per-cage rack space; wholesale (Digital Realty) sells multi-MW shells to hyperscalers. AI workloads push leases longer (15+ years), denser (>30 kW/rack), and more power-constrained."},"eda-ip":{"category":"vertical","full_name":"EDA & Silicon IP","explanation":"Electronic Design Automation software (Synopsys, Cadence, Siemens EDA) plus pre-designed silicon-IP blocks (Arm CPU cores, SerDes, USB, PCIe) that every chip company licenses. Recurring subscription revenue largely insulated from semi cyclicality; AI-driven complexity raises seat count and tool count per design."},"electrical-equipment":{"category":"vertical","full_name":"Electrical Equipment (Datacenter Power Distribution)","explanation":"The medium-voltage and low-voltage gear inside a datacenter: switchgear, busways, uninterruptible power supplies (UPS), power distribution units (PDUs), transformers from the substation down to the rack. Constrained by transformer copper and grain-oriented electrical steel supply."},"foundry-logic":{"category":"vertical","full_name":"Foundry — Logic","explanation":"Pure-play wafer fabs that manufacture logic chips for fabless customers. Effectively a TSMC + Samsung Foundry + Intel Foundry triopoly at leading edge (N3, N2, 18A); GlobalFoundries and UMC fill specialty/mature nodes. The most strategic single chokepoint in AI inference."},"gas-turbines":{"category":"vertical","full_name":"Gas Turbines","explanation":"Heavy-duty gas turbines (HDGT, 100+ MW frames) and aeroderivatives (15-50 MW) used to firm up renewables and provide behind-the-meter datacenter power. Triopoly of GE Vernova / Siemens Energy / Mitsubishi Heavy; backlog effectively sold out into 2029-30."},"hbm-dram":{"category":"vertical","full_name":"HBM & DRAM","explanation":"High Bandwidth Memory (HBM) and conventional DRAM. HBM3E and HBM4 are the memory that sits next to AI accelerators on the same package, providing the >5 TB/s bandwidth modern LLMs need. Supplied by SK Hynix (~57%), Samsung, and Micron; capacity gated by TSV (through-silicon via) yield."},"hyperscalers-cloud":{"category":"vertical","full_name":"Hyperscalers & Cloud","explanation":"The mega-cloud companies that buy and operate most of the world's AI accelerators: Microsoft (Azure), Alphabet (Google Cloud), Amazon (AWS), Meta, plus tier-2 Oracle and emerging neoclouds CoreWeave / Nebius. Their combined capex sets the demand floor for every upstream vertical."},"ic-substrates":{"category":"vertical","full_name":"IC Substrates (ABF / FC-BGA / BT)","explanation":"The high-density laminate boards that sit between a chip and the printed circuit board. ABF (Ajinomoto Build-up Film) substrates are required for every high-end CPU/GPU/AI accelerator package. Capacity supplied by Ibiden, Unimicron, AT&S, Semco, Nan Ya PCB, Kinsus — sold out through 2027."},"industrial-gases-water":{"category":"vertical","full_name":"Industrial Gases & Water","explanation":"Bulk N2/O2/H2/He/Ar gases delivered on-site to fabs (Linde, Air Products, Air Liquide) plus ultra-pure-water (UPW) systems and datacenter cooling water (Xylem, Pentair, AWK). Long-term take-or-pay contracts make these effectively infrastructure annuities."},"lithography":{"category":"vertical","full_name":"Lithography","explanation":"Photolithography — printing the transistor patterns onto wafers. ASML has a global monopoly on EUV scanners (~$200M each, $380M+ for High-NA) that are required for sub-7nm nodes; Nikon and Canon serve trailing-edge DUV. Lasertec monopolizes EUV mask inspection."},"model-labs-software":{"category":"vertical","full_name":"Model Labs & AI Software","explanation":"Public software/AI names: NOW, DDOG, SNOW, MDB, PLTR, APP, ServiceNow-style enterprise platforms that resell or wrap LLM inference. The frontier model labs themselves (OpenAI, Anthropic, xAI) are private."},"networking-switching":{"category":"vertical","full_name":"Networking & Switching","explanation":"Datacenter switches and network ICs (Arista, Cisco, Broadcom Tomahawk silicon, NVIDIA Spectrum-X/InfiniBand). AI back-end fabrics need 800G/1.6T optics and very flat, lossless topologies — driving structural NIC and switch upgrades."},"nuclear-smr-uranium":{"category":"vertical","full_name":"Nuclear, SMRs & Uranium","explanation":"Existing US nuclear fleet (Constellation, Vistra, Talen, Duke), pre-revenue SMR developers (NuScale, Oklo, BWXT), HALEU enricher (Centrus Energy), and uranium miners (Cameco, Energy Fuels). All-time-high interest from hyperscalers seeking 24/7 carbon-free power for AI."},"power-semis-vrm":{"category":"vertical","full_name":"Power Semiconductors & VRMs","explanation":"Voltage regulator modules (VRMs) and power semis that sit between the rack PSU and the GPU die. As accelerators move to 48V vertical-power delivery (above 1000A at the socket), GaN/SiC content and merchant VRM specialists (MPS, Infineon, Vicor) gain share."},"power-transformers-grid":{"category":"vertical","full_name":"Power Transformers & Grid","explanation":"Large power transformers, GIS/AIS switchgear, HVDC converters, and the construction labor (Quanta, MYR Group, Primoris) needed to connect AI campuses to the grid. Multi-year shortage in large-power transformers (5-7 year lead times) is the binding constraint on US AI build-out."},"silicon-photonics-optics":{"category":"vertical","full_name":"Silicon Photonics & Optics","explanation":"Optical transceivers (800G, 1.6T), pluggables, co-packaged optics, and laser/InP component makers (Coherent, Lumentum, Fabrinet, AAOI, POET). Required everywhere a copper link can't keep up with the bandwidth (typically anything >3 m at >100G/lane)."},"utilities-merchant-power":{"category":"vertical","full_name":"Utilities & Merchant Power","explanation":"Regulated utilities (AEP, Duke, Dominion, PSEG) plus merchant generators (Vistra, NRG, Constellation, Talen). The on-the-meter side of the AI power demand — long-cycle, regulated, but seeing the highest load-growth forecasts in 30 years."},"wfe-deposition-etch":{"category":"vertical","full_name":"WFE — Deposition & Etch","explanation":"Wafer Fab Equipment outside lithography: deposition (CVD/PVD/ALD, Applied Materials), etch (Lam Research, TEL), implant (Axcelis), metrology (KLA, Onto). Capex follows fab build-cycles; HBM stack growth disproportionately benefits etch suppliers."},"EUV":{"category":"concept","full_name":"Extreme Ultraviolet Lithography","explanation":"EUV is the lithography technology that uses 13.5 nm wavelength light to print transistor patterns smaller than ArF immersion can manage. Required for everything 7 nm and below. ASML is the sole producer; each EUV scanner costs ~$200M and prints ~150-200 wafers per hour."},"DUV":{"category":"concept","full_name":"Deep Ultraviolet Lithography","explanation":"DUV uses 193 nm (ArF) or 248 nm (KrF) excimer lasers and is the workhorse for all trailing-edge and many mid-edge process layers. ASML, Nikon, and Canon all sell DUV scanners; immersion ArF is what stretches the technology to ~7 nm without EUV."},"ArF":{"category":"concept","full_name":"Argon Fluoride (193 nm) excimer laser lithography","explanation":"ArF is the 193 nm DUV light source used in immersion lithography; the workhorse for 7-28 nm patterning. ArFi (immersion) scanners place water between the lens and the wafer to bend light to smaller features."},"High-NA EUV":{"category":"concept","full_name":"High-numerical-aperture EUV (NA 0.55)","explanation":"The next generation of EUV scanners (ASML Twinscan EXE:5000/5200) with a larger 0.55 numerical aperture, enabling single-exposure printing at sub-2 nm half pitch. Each tool sells for ~$380-400M. Intel was first customer in 2024; TSMC adoption deferred."},"CoWoS":{"category":"concept","full_name":"Chip-on-Wafer-on-Substrate","explanation":"CoWoS is TSMC's flagship 2.5D advanced-packaging process: logic dies and HBM stacks are bonded onto a silicon (or now organic) interposer, then onto a substrate. CoWoS-S used silicon interposer; CoWoS-L (LSI bridges) and CoWoS-R (RDL) expand reticle size. The binding constraint on every modern AI accelerator."},"CoWoS-L":{"category":"concept","full_name":"CoWoS with Local Silicon Interconnect (LSI bridges)","explanation":"The newer generation of CoWoS that replaces a single huge silicon interposer with smaller LSI 'bridges' embedded in an RDL package. Cheaper, faster to scale, and the technology behind NVIDIA Blackwell-Ultra/Rubin and AMD MI400-class packages."},"SoIC":{"category":"concept","full_name":"System on Integrated Chips (TSMC 3D stacking)","explanation":"SoIC is TSMC's true 3D-stacking technology — chip-on-chip with sub-10µm pitch hybrid bonding (no microbumps). Enables 3D L2/L3 cache (AMD V-Cache), HBM4 base-die stacking, and future logic-on-logic. The next step after CoWoS for bandwidth scaling."},"FOPLP":{"category":"concept","full_name":"Fan-Out Panel-Level Packaging","explanation":"FOPLP extends fan-out wafer-level packaging to rectangular ~600×600 mm panels instead of 300 mm wafers, dramatically increasing throughput and reducing cost. Samsung, ASE, and Powertech are early adopters; TSMC plans pilot lines for sub-AI applications."},"HBM":{"category":"concept","full_name":"High Bandwidth Memory","explanation":"HBM is a stack of 8-16 DRAM dies bonded vertically with through-silicon vias (TSVs) and sitting alongside a GPU on the same package. Provides 5-10x the bandwidth of regular DDR5 (3-8 TB/s per stack) — essential because LLM inference is memory-bandwidth bound. Made by SK Hynix, Samsung, Micron."},"HBM3E":{"category":"concept","full_name":"HBM3 Extended (~9.2 Gbps/pin)","explanation":"The current production HBM generation used in NVIDIA Hopper H200/Blackwell B100/B200 and AMD MI300X/MI325X. Typical stack is 8-Hi or 12-Hi with 24-36 GB capacity and ~1.2 TB/s per stack. SK Hynix lead supplier; Micron in volume; Samsung qualifying."},"HBM4":{"category":"concept","full_name":"High Bandwidth Memory generation 4","explanation":"The next HBM generation (sampling 2025, volume 2026-27), targeting ~2 TB/s per stack and a wider 2048-bit interface. The base die moves to a logic process (paid to TSMC) for first time — fundamentally changing the supply chain. Used by NVIDIA Rubin and AMD MI400."},"DRAM":{"category":"concept","full_name":"Dynamic Random Access Memory","explanation":"The volatile system memory that holds data and code while a chip is running. Made by SK Hynix, Samsung, Micron, Nanya, Winbond on dedicated DRAM lines. HBM is one specialty branch of DRAM; commodity DDR4/DDR5 and LPDDR5 fill out the rest."},"TSV":{"category":"concept","full_name":"Through-Silicon Via","explanation":"A vertical electrical interconnect that goes through a silicon die, allowing stacked chips (HBM, 3D NAND) to communicate top-to-bottom. The yield and cost of TSV formation/fill is the gating factor in HBM stack count scaling."},"ABF substrate":{"category":"concept","full_name":"Ajinomoto Build-up Film substrate (FC-BGA)","explanation":"An IC substrate made by laminating layers of ABF — a dielectric film sole-sourced from Ajinomoto. ABF substrates are the high-density laminate boards that sit beneath every modern CPU/GPU/AI accelerator, providing fine-pitch wiring between die bumps and the motherboard."},"BT substrate":{"category":"concept","full_name":"Bismaleimide-Triazine substrate","explanation":"An older IC substrate type used for memory packages and lower-end chips. BT is cheaper but lower-performance than ABF; HBM stacks ride on BT substrates while the logic die uses ABF."},"FC-BGA":{"category":"concept","full_name":"Flip-Chip Ball Grid Array","explanation":"A packaging form factor where the chip die is flipped upside down and connected via solder bumps to the substrate (instead of wire bonding), then a grid of solder balls attaches to the PCB. All high-performance CPUs/GPUs/AI accelerators use FC-BGA with ABF substrates."},"OSAT":{"category":"concept","full_name":"Outsourced Assembly and Test","explanation":"Third-party back-end firms that take wafers from a foundry and turn them into packaged, tested chips — assembly, bonding, test, burn-in. ASE Technology, Amkor, Powertech, KYEC. CoWoS partly bypasses OSAT because TSMC keeps it in-house."},"WFE":{"category":"concept","full_name":"Wafer Fab Equipment","explanation":"The industrial machinery used inside semiconductor fabs to process wafers: lithography scanners, deposition tools, etch tools, implanters, metrology/inspection, cleaning. Dominated by AMAT, ASML, LRCX, KLAC, TEL — a ~$110B/yr equipment market."},"CVD":{"category":"concept","full_name":"Chemical Vapor Deposition","explanation":"A wafer process where gaseous precursors react on a hot wafer to deposit a thin film (oxide, nitride, tungsten, etc.). Workhorse step at every node; AMAT, LRCX, TEL all supply variants."},"PVD":{"category":"concept","full_name":"Physical Vapor Deposition","explanation":"A wafer process that sputters atoms from a metal target onto the wafer to deposit metal layers (Al, Cu, Ti, Ta). AMAT is the dominant PVD vendor."},"ALD":{"category":"concept","full_name":"Atomic Layer Deposition","explanation":"A precision deposition process that builds films one atomic layer at a time — required for ultra-thin gate dielectrics and high-aspect-ratio HBM/3D NAND fills. AMAT, LRCX, TEL, ASMI are the main suppliers."},"GAA":{"category":"concept","full_name":"Gate-All-Around (transistor architecture)","explanation":"The next transistor architecture after FinFET, where the gate completely surrounds the channel (a 'nanosheet'). Samsung 3 nm and TSMC N2 introduce GAA; necessary for sub-3 nm performance/leakage. Requires new etch + selective deposition steps."},"FinFET":{"category":"concept","full_name":"Fin Field-Effect Transistor","explanation":"The 3D transistor architecture used in every leading-edge node from ~22 nm through 3 nm, where the channel is a vertical 'fin' wrapped on three sides by the gate. Being replaced by GAA at 2 nm and below."},"VRM":{"category":"concept","full_name":"Voltage Regulator Module","explanation":"A small power-conversion board that steps down 12 V or 48 V to the ~0.8 V the chip die actually uses, and feeds 1000+ amps of current at very tight ripple. AI accelerators consume so much power per square millimeter that VRM design is now a critical chip-system co-design problem."},"GaN":{"category":"concept","full_name":"Gallium Nitride (wide-bandgap power semi)","explanation":"GaN is a wide-bandgap semiconductor that switches much faster than silicon at high voltages — ideal for compact, efficient power supplies. Used in 48V datacenter PSUs and high-density chargers. Makers: Navitas, Power Integrations, Infineon, EPC."},"SiC":{"category":"concept","full_name":"Silicon Carbide (wide-bandgap power semi)","explanation":"Silicon carbide is a wide-bandgap semiconductor used at higher voltages than GaN (>650 V) — EV traction, solar, datacenter HVDC. Wolfspeed, onsemi, STMicro, Infineon are leaders. Substrate supply (6-inch and 8-inch SiC wafers) is the binding constraint."},"PSU":{"category":"concept","full_name":"Power Supply Unit","explanation":"The rack- or server-level power supply that takes AC from the building (typically 415 V three-phase in datacenters) and converts it to 48 V or 12 V DC for the server. Hyperscale racks use 33-100 kW PSUs with 96-98% efficiency targets."},"PDU":{"category":"concept","full_name":"Power Distribution Unit","explanation":"A rack- or row-level distribution panel that splits power coming in from the building UPS/switchgear out to individual servers and racks. Vertiv, Eaton, Schneider, nVent are the main vendors."},"UPS":{"category":"concept","full_name":"Uninterruptible Power Supply","explanation":"Battery- or flywheel-backed power systems that bridge from grid failure to backup-generator start. Datacenter UPS systems run 1-5 MW per module; double-conversion and lithium-ion are the modern norms. Eaton, Schneider, Vertiv, ABB are the leaders."},"BESS":{"category":"concept","full_name":"Battery Energy Storage System","explanation":"Grid-scale or behind-the-meter battery installations (mostly lithium-iron-phosphate) used to firm renewables and arbitrage power prices. Increasingly co-located with AI datacenters to shave peak demand charges."},"HVDC":{"category":"concept","full_name":"High Voltage Direct Current","explanation":"DC transmission technology used for long-distance, high-capacity power links (subsea cables, point-to-point). Hitachi Energy, Siemens Energy, GE, ABB dominate the converter-station market. Datacenters explore HVDC rack distribution as efficiency gain."},"PPA":{"category":"concept","full_name":"Power Purchase Agreement","explanation":"A long-term (often 15-25 year) contract between a power generator and an offtaker (often a hyperscaler) at a fixed or indexed price. AI hyperscalers have signed PPAs covering nuclear restarts (Three Mile Island), new SMR builds, and gas-turbine campuses."},"IPP":{"category":"concept","full_name":"Independent Power Producer","explanation":"A non-utility company that owns and operates power plants and sells output into wholesale markets or via PPAs. Vistra, NRG, Constellation, Talen are the largest US merchant IPPs; AI demand is their biggest tailwind in decades."},"REIT":{"category":"concept","full_name":"Real Estate Investment Trust","explanation":"A US tax structure that requires distributing 90% of taxable income to shareholders in exchange for corporate-tax exemption. Datacenter REITs (DLR, EQIX, IRM) own buildings and lease them; they finance long-life infrastructure cheaply because of the structure."},"HALEU":{"category":"concept","full_name":"High-Assay Low-Enriched Uranium (5-20% U-235)","explanation":"Uranium fuel enriched between 5% and 20% U-235 (vs ~5% for conventional reactors). Required by most advanced SMR designs (Oklo, X-energy, TerraPower). Centrus Energy is the only US-licensed HALEU producer; supply is the binding constraint on commercial SMR deployment."},"IRA":{"category":"concept","full_name":"Inflation Reduction Act (US, 2022)","explanation":"The 2022 US federal law that introduced advanced-manufacturing and clean-energy tax credits, including 45X production credits for semis, magnets, batteries, and clean-energy components. Underwrites US fab capex (Micron, TSM Arizona, Samsung Texas) and rare-earth processing."},"CHIPS Act":{"category":"concept","full_name":"CHIPS and Science Act of 2022","explanation":"US federal law providing ~$53B of grants and ~$25B of tax credits for domestic semiconductor manufacturing and R&D. Funds TSMC Arizona, Samsung Texas, Intel Ohio/Arizona, Micron New York, GlobalFoundries NY/VT expansions."},"RPO":{"category":"concept","full_name":"Remaining Performance Obligation","explanation":"An accounting line under ASC 606 that disclose the dollar value of contracted but not-yet-recognized revenue. Hyperscalers (Microsoft Azure, Google Cloud, Oracle) use RPO to demonstrate the multi-year AI revenue pipeline. Useful as a leading indicator of cloud capex pull-through."},"TAM":{"category":"concept","full_name":"Total Addressable Market","explanation":"An estimate of the total annual revenue available to a product/service if every potential customer bought from one supplier. Used in this study (and in investor presentations broadly) to size each vertical."},"CAGR":{"category":"concept","full_name":"Compound Annual Growth Rate","explanation":"The constant year-over-year growth rate that would produce an observed end-point given a starting point and elapsed years. Formula: (end/start)^(1/years) - 1. Used in this study to summarize each stock's annualized return over the price window."},"z-score":{"category":"concept","full_name":"Z-score (standard score)","explanation":"The number of standard deviations a value sits above (positive) or below (negative) the mean of a reference distribution. Used here to normalize returns across stocks so they can be compared apples-to-apples regardless of volatility."},"beta":{"category":"concept","full_name":"Beta (market-relative volatility)","explanation":"The slope of a stock's returns regressed against a benchmark (S&P 500 here). Beta > 1 means the stock historically moves more than the market; beta < 1 means less. AI semis tend to run beta ~1.5-2.0; utilities ~0.5-0.8."},"Sharpe ratio":{"category":"concept","full_name":"Sharpe Ratio","explanation":"Average excess return over a risk-free rate divided by the standard deviation of returns. Higher is better — a measure of return per unit of volatility. Equity Sharpe ratios above ~1.0 are considered strong over multi-year windows."},"max drawdown":{"category":"concept","full_name":"Maximum Drawdown","explanation":"The largest peak-to-trough percentage decline observed in a price series over a given window. Used as a downside risk measure that captures path dependency that volatility alone misses."},"log returns":{"category":"concept","full_name":"Logarithmic returns","explanation":"Returns computed as ln(P_t / P_{t-1}) instead of (P_t - P_{t-1}) / P_{t-1}. Log returns are time-additive and approximately normal at short horizons, which is convenient for statistical analysis. Used in this study for return aggregation."},"adjusted close":{"category":"concept","full_name":"Adjusted Closing Price","explanation":"The daily closing price corrected for splits, stock dividends, and cash dividends so that returns computed from the series reflect total shareholder return. This study uses adjusted close from Yahoo Finance throughout."},"equal-weight index":{"category":"concept","full_name":"Equal-weighted index","explanation":"An index where every constituent has the same weight (1/N), rebalanced periodically — as opposed to a cap-weighted index where mega-caps dominate. Used here to construct vertical baskets so a single mega-cap (NVDA) doesn't drown out the smaller names."},"log-scale":{"category":"concept","full_name":"Logarithmic Scale","explanation":"A chart axis where equal distances represent equal multiplicative changes (10×, 100×) rather than equal additive changes. Used for long-horizon return charts so a stock that went up 10× and one that went up 100× are both visible."},"tercile":{"category":"concept","full_name":"Tercile (already in master glossary -- reproduced)","explanation":"Cuts a distribution into thirds. v1 sorted 22 z-score gaps into terciles labelled 'priced-in / fair / lagging.' Bottom and top thirds had only 7-8 verticals each, so a tiny shift in any input moved labels around -- 11 of 22 labels flipped when the AI-share prior moved 10 points. That instability is one reason v2 exists."},"IRR":{"category":"concept","full_name":"Internal Rate of Return","explanation":"The annualized discount rate that makes the net present value of a cash-flow stream equal to zero. Used to compare investment projects with irregular cash flows; in stock context often confused with CAGR (close for buy-and-hold)."},"MoC":{"category":"concept","full_name":"Map of Content (Zettelkasten navigation hub)","explanation":"A navigation note that groups other notes by theme; used inside this second-brain repository (not a finance term). Not to be confused with 'method of characteristics' or any financial usage."},"vertical":{"category":"concept","full_name":"Vertical (industry segment)","explanation":"In this study, a 'vertical' is one of 22 categorized industry segments that span the LLM inference supply chain end to end — from upstream (copper, uranium) through silicon (lithography, foundry, packaging) to deployment (cloud, software). Each vertical has its own data/verticals/*.json fact sheet."},"priced-in":{"category":"concept","full_name":"Priced-in (efficient-markets shorthand)","explanation":"A stock is 'priced in' for a future event when the consensus expectation is already reflected in its market price; further good news must exceed expectations for the price to rise. Used in this study to flag names where AI optimism is fully (or over-) discounted vs. those still lagging."},"800G":{"category":"concept","full_name":"800-gigabit Ethernet optical transceiver","explanation":"The current mainstream high-speed datacenter optical transceiver, used for AI cluster spine and leaf switching. Typical form factors are OSFP and QSFP-DD800; volume ramp drove Coherent, Lumentum, Fabrinet revenue in 2024-25."},"1.6T":{"category":"concept","full_name":"1.6-terabit Ethernet optical transceiver","explanation":"The next-generation datacenter optical transceiver (2× 800G), arriving in volume 2025-26. Required for the densest AI back-end fabrics, supports 200G/lane PAM4 SerDes from Marvell, Broadcom, Credo."},"NVLink":{"category":"concept","full_name":"NVIDIA NVLink (proprietary GPU-to-GPU interconnect)","explanation":"NVIDIA's proprietary high-bandwidth interconnect linking GPUs inside a server (NVLink) and across racks (NVLink Switch, NVL72 system). Provides ~900 GB/s per GPU in Blackwell — far more than PCIe — and locks GPU-to-GPU traffic into NVIDIA-only hardware."},"InfiniBand":{"category":"concept","full_name":"InfiniBand (high-performance network fabric)","explanation":"A high-bandwidth, low-latency interconnect originally for HPC, now used as NVIDIA's preferred AI back-end network (via the Mellanox acquisition). Competes with Ethernet/RoCE for scale-out AI fabrics. 800 Gb/s NDR is current generation."},"RoCE":{"category":"concept","full_name":"RDMA over Converged Ethernet","explanation":"A protocol that runs Remote Direct Memory Access (RDMA) over standard Ethernet, allowing AI clusters to use commodity Ethernet switches instead of InfiniBand. The basis for hyperscaler-favored AI networking via Broadcom Tomahawk and Arista Etherlink."},"DSP":{"category":"concept","full_name":"Digital Signal Processor (in optics, PAM4 DSP chip)","explanation":"In optical transceivers, the DSP is the silicon that encodes/decodes PAM4 modulation, compensates for fiber/electrical impairments, and drives the laser. Marvell, Broadcom, and Inphi (now Marvell) supply most 800G/1.6T DSPs."},"SerDes":{"category":"concept","full_name":"Serializer/Deserializer","explanation":"An analog/mixed-signal IP block that converts parallel chip data into a high-speed serial signal (and back) at 100-200 Gbps per lane. Critical for AI clusters; Broadcom, Marvell, Synopsys, Credo, Astera lead the merchant SerDes market."},"PAM4":{"category":"concept","full_name":"Four-Level Pulse Amplitude Modulation","explanation":"A modulation scheme that encodes 2 bits per symbol (vs 1 for NRZ), doubling bandwidth at a given baud rate. Used in 800G/1.6T optical transceivers and in modern Ethernet SerDes."},"CPO":{"category":"concept","full_name":"Co-Packaged Optics","explanation":"An emerging packaging approach that puts the optical engine inside the switch ASIC package, eliminating the pluggable transceiver. Targets multi-terabit switches with lower power per bit. Broadcom Bailly and NVIDIA NVL CPO are early commercial milestones."},"PCIe":{"category":"concept","full_name":"Peripheral Component Interconnect Express","explanation":"The standard host-side bus connecting CPUs to GPUs, NICs, SSDs in a server. Gen5 is current mainstream (~64 GB/s x16), Gen6 starts ramping in 2025-26. PCIe retimers (Astera, Broadcom) extend reach inside AI server boards."},"CXL":{"category":"concept","full_name":"Compute Express Link","explanation":"A cache-coherent interconnect built on top of PCIe physical layer, intended for memory expansion and disaggregation. Slow uptake in 2024-25 but a long-term lever for memory-tier expansion alongside AI accelerators. Astera Labs and Marvell make CXL switch silicon."},"TPU":{"category":"concept","full_name":"Tensor Processing Unit (Google)","explanation":"Google's family of in-house AI ASICs (currently v5p/v5e/v6 Trillium) for training and inference of Gemini and other models. Co-designed with Broadcom, fabbed at TSMC. Available to outside customers only via Google Cloud."},"Trainium":{"category":"concept","full_name":"AWS Trainium (Amazon AI training ASIC)","explanation":"Amazon's in-house AI training accelerator (Trainium2 in production, Trainium3 next), co-designed with Annapurna Labs and Marvell. Anthropic Project Rainier and AWS Bedrock are anchor customers."},"Inferentia":{"category":"concept","full_name":"AWS Inferentia (Amazon AI inference ASIC)","explanation":"Amazon's in-house inference accelerator family (Inferentia/Inferentia2). Cost-optimized for serving rather than training; available only inside AWS via Inf2 instances."},"Maia":{"category":"concept","full_name":"Microsoft Maia (Azure AI accelerator)","explanation":"Microsoft's first-generation custom AI accelerator (Maia 100) announced 2023; targets Azure OpenAI inference workloads. Co-designed and partly Marvell-implemented. Less mature than TPU/Trainium but ramping."},"MI300":{"category":"concept","full_name":"AMD Instinct MI300 series","explanation":"AMD's first competitive AI GPU line (MI300X 192 GB HBM3, MI325X, MI350) used by Microsoft Azure, Meta, Oracle for inference and selective training. Built on CDNA3 architecture with chiplet packaging on TSMC N5 + N6."},"Hopper":{"category":"concept","full_name":"NVIDIA Hopper architecture (H100/H200)","explanation":"NVIDIA's H100/H200 GPU generation (2022-24), the workhorse training silicon of the modern LLM boom. H100 has 80 GB HBM3; H200 upgraded to 141 GB HBM3E. Both use TSMC N4 and CoWoS-S packaging."},"Blackwell":{"category":"concept","full_name":"NVIDIA Blackwell architecture (B100/B200/GB200)","explanation":"NVIDIA's 2024-25 GPU generation — B100/B200 single-die-pair on TSMC N4P with CoWoS-L, 192 GB HBM3E. GB200 NVL72 rack pairs Blackwell with Grace Arm CPUs over NVLink5. Largest AI-product launch in tech history."},"Rubin":{"category":"concept","full_name":"NVIDIA Rubin architecture (next generation)","explanation":"NVIDIA's planned 2026-27 GPU generation — Rubin / Rubin Ultra — built on TSMC N3, with HBM4 and CoWoS-L. First generation expected to use TSMC SoIC for stacked logic. Announced at GTC 2024."},"AI Factory":{"category":"concept","full_name":"AI Factory (NVIDIA term)","explanation":"NVIDIA's marketing term for a fully-integrated AI training/inference datacenter — power, cooling, networking, compute, software stack. Used to describe deals like xAI Colossus, Stargate (Oracle/OpenAI), and large GW-scale builds."},"frontier model":{"category":"concept","full_name":"Frontier AI model","explanation":"A model at or near the state-of-the-art in capability — currently GPT-5/Claude Opus 4.x/Gemini 2.5 Pro class. Training requires the largest clusters (>50,000 GPUs) and the most advanced HBM/CoWoS supply."},"MoE":{"category":"concept","full_name":"Mixture of Experts (model architecture)","explanation":"A neural-network architecture where many smaller 'expert' sub-networks are routed to selectively per token, giving large total parameter counts but lower active compute per token. Powers most modern frontier LLMs (Mixtral, GPT-4, DeepSeek-V3, Gemma) and changes hardware demand toward more memory and less compute."},"RAG":{"category":"concept","full_name":"Retrieval-Augmented Generation","explanation":"A pattern where an LLM retrieves relevant documents from a vector store before generating a response, grounding outputs in source material. Drives demand for vector databases (Pinecone, MongoDB Atlas, Weaviate) and embedding inference."},"agentic":{"category":"concept","full_name":"Agentic AI (multi-step autonomous LLM use)","explanation":"AI systems where an LLM autonomously plans and executes multi-step tasks (browsing, coding, tool-calling). 5-100× more inference per user request than chat, making it the largest swing variable in 2026 inference TAM."},"inference":{"category":"concept","full_name":"Inference (model serving)","explanation":"The act of running a trained AI model to produce outputs (as opposed to training). Inference is the larger long-run market because every query incurs it, and it's more bandwidth- and latency-sensitive than compute-bound."},"training":{"category":"concept","full_name":"Training (model fitting)","explanation":"The compute-intensive process of fitting an AI model's parameters from data. Modern frontier model training runs cost $0.1-1B and require >50,000 GPUs running months on end. Driving most of the 2024-26 AI capex cycle."},"behind-the-meter":{"category":"concept","full_name":"Behind-the-Meter generation","explanation":"Power generation co-located with a customer (datacenter) and bypassing the public utility's distribution meter. Used to circumvent interconnect queues and lock in dedicated capacity. Examples: Talen/AWS Susquehanna, Crusoe gas-turbine campuses."},"FFA":{"category":"concept","full_name":"Forward Financial Agreement / Forward Capacity Auction","explanation":"A forward contract on electricity or capacity — in this study context, refers to PJM/ERCOT capacity-auction-style instruments that lock in $/MW-day payments years ahead. PJM 2025/26 auction clearing prices set records on AI datacenter demand."},"capacity auction":{"category":"concept","full_name":"Capacity Auction (PJM RPM)","explanation":"PJM Interconnection runs annual Reliability Pricing Model (RPM) capacity auctions that pay generators to be available three years forward. The 2025/26 auction cleared at record prices (~$270/MW-day) driven by retirements and AI-datacenter load."},"interconnect queue":{"category":"concept","full_name":"Transmission Interconnection Queue","explanation":"The backlog of generation and load projects waiting for grid-connection studies at regional transmission organizations (PJM, ERCOT, MISO, CAISO). Wait times of 4-7 years are the largest non-equipment bottleneck on AI build-out."},"Equinix IBX":{"category":"concept","full_name":"Equinix International Business Exchange","explanation":"Equinix's branding for a single datacenter facility — there are 270+ IBXs globally. Known as 'carrier hotels' because they host dense network interconnection between thousands of customers in one room."},"Lasertec":{"category":"company","full_name":"Lasertec Corporation","explanation":"Japanese maker of EUV photomask inspection systems (ACTIS) with effective monopoly in actinic-pattern inspection — every leading-edge fab must buy from Lasertec to qualify EUV masks. See ticker 6920.T."},"SCREEN Holdings":{"category":"company","full_name":"SCREEN Holdings Co., Ltd.","explanation":"Japanese wet-cleaning, thermal, and litho-track equipment vendor with ~70% share of single-wafer cleaning tools. Recurring demand from every wafer start. See ticker 7735.T."},"Ibiden":{"category":"company","full_name":"Ibiden Co., Ltd.","explanation":"Japanese ABF / FC-BGA substrate maker, ~70-80% share of leading-edge AI substrates. See ticker 4062.T."},"Ajinomoto":{"category":"company","full_name":"Ajinomoto Co., Inc.","explanation":"Japanese MSG maker and sole-source supplier of ABF (Ajinomoto Build-up Film) dielectric for advanced FC-BGA substrates. Hidden semi monopoly. See ticker 2802.T."},"Shinko":{"category":"company","full_name":"Shinko Electric Industries (private — being taken private by Dai Nippon Printing-led consortium)","explanation":"Japanese FC-BGA substrate maker, originally a Fujitsu subsidiary. Being taken private (announced 2023, closed 2025) by a JIC-led group. Direct competitor to Ibiden in AI substrates."},"AT&S":{"category":"company","full_name":"AT&S Austria Technologie & Systemtechnik AG","explanation":"Austrian IC-substrate and high-end PCB maker, #4 in ABF substrates. See ticker ATS.VI."},"Unimicron":{"category":"company","full_name":"Unimicron Technology Corp.","explanation":"Taiwanese ABF/FC-BGA substrate leader, key NVIDIA/AMD AI substrate supplier. See ticker 3037.TW."},"Kinsus":{"category":"company","full_name":"Kinsus Interconnect Technology Corp.","explanation":"Taiwanese FC-BGA substrate maker, Pegatron group. See ticker 3189.TW."},"Nan Ya PCB":{"category":"company","full_name":"Nan Ya Printed Circuit Board Corporation","explanation":"Taiwanese ABF substrate and PCB maker (Formosa Plastics Group). See ticker 8046.TW."},"Astera Labs":{"category":"company","full_name":"Astera Labs, Inc.","explanation":"PCIe/CXL retimer and Scorpio fabric-switch maker for AI servers. IPO'd 2024. See ticker ALAB."},"Credo":{"category":"company","full_name":"Credo Technology Group Holding Ltd","explanation":"Active electrical cable (AEC) and SerDes retimer designer for hyperscaler AI back-end. See ticker CRDO."},"Coherent":{"category":"company","full_name":"Coherent Corp.","explanation":"Optical-networking, lasers, and SiC substrates; formed by Coherent Inc + II-VI merger 2022. See ticker COHR."},"Lumentum":{"category":"company","full_name":"Lumentum Holdings Inc.","explanation":"Optical components and 800G/1.6T transceivers; spin from JDSU in 2015. See ticker LITE."},"Fabrinet":{"category":"company","full_name":"Fabrinet","explanation":"Contract optical-assembly partner to most merchant transceiver vendors. See ticker FN."},"Applied Optoelectronics":{"category":"company","full_name":"Applied Optoelectronics, Inc.","explanation":"Small-cap laser/transceiver maker ramping AI-datacenter 800G optics. See ticker AAOI."},"Vertiv":{"category":"company","full_name":"Vertiv Holdings Co","explanation":"Datacenter thermal-management pure play. See ticker VRT."},"Monolithic Power":{"category":"company","full_name":"Monolithic Power Systems, Inc.","explanation":"Merchant on-board VRM/power-IC leader, historically NVIDIA partner. See ticker MPWR."},"Vicor":{"category":"company","full_name":"Vicor Corporation","explanation":"Factorized-power-architecture modules for AI accelerator boards. See ticker VICR."},"Navitas":{"category":"company","full_name":"Navitas Semiconductor Corporation","explanation":"Fabless GaN power-IC startup; data-center PSUs and chargers. See ticker NVTS."},"Wolfspeed":{"category":"company","full_name":"Wolfspeed, Inc. (private as of 2026 Chapter 11 restructuring)","explanation":"US silicon-carbide (SiC) substrate and power-device maker; emerged from Chapter 11 in 2026 with PE/bank ownership after EV-related SiC capex overrun. Was previously public as WOLF."},"Constellation":{"category":"company","full_name":"Constellation Energy Corporation","explanation":"Largest US merchant nuclear operator. See ticker CEG."},"Vistra":{"category":"company","full_name":"Vistra Corp.","explanation":"Texas-anchored merchant generator with nuclear, gas, coal, batteries. See ticker VST."},"Talen Energy":{"category":"company","full_name":"Talen Energy Corporation","explanation":"Operator of Susquehanna nuclear plant; sold adjacent Cumulus datacenter to AWS. See ticker TLN."},"NuScale":{"category":"company","full_name":"NuScale Power Corporation","explanation":"Only US-NRC-approved SMR designer (77 MW VOYGR). See ticker SMR."},"Oklo":{"category":"company","full_name":"Oklo Inc.","explanation":"Sam Altman-chaired advanced-reactor startup. See ticker OKLO."},"Centrus Energy":{"category":"company","full_name":"Centrus Energy Corp.","explanation":"Only US-licensed HALEU producer for SMR fuel. See ticker LEU."},"BWX Technologies":{"category":"company","full_name":"BWX Technologies, Inc.","explanation":"US naval-nuclear and SMR component manufacturer. See ticker BWXT."},"Cameco":{"category":"company","full_name":"Cameco Corporation","explanation":"Largest publicly traded uranium miner and Westinghouse co-owner. See ticker CCJ."},"NexGen":{"category":"company","full_name":"NexGen Energy Ltd. (NXE) — referenced for context","explanation":"Canadian uranium developer building the Rook I project in Saskatchewan; pre-production. Not in this study's price manifest but a major future supply addition referenced in nuclear research."},"MP Materials":{"category":"company","full_name":"MP Materials Corp.","explanation":"Owner of Mountain Pass, the only operating US rare-earth mine. See ticker MP."},"Lynas":{"category":"company","full_name":"Lynas Rare Earths Ltd","explanation":"Largest ex-China rare-earth producer (Mt Weld + Malaysia). See ticker LYC.AX."},"Freeport-McMoRan":{"category":"company","full_name":"Freeport-McMoRan Inc.","explanation":"Largest US-listed copper major. See ticker FCX."},"Southern Copper":{"category":"company","full_name":"Southern Copper Corporation","explanation":"Grupo Mexico-controlled, lowest-cost integrated copper producer. See ticker SCCO."},"Teck Resources":{"category":"company","full_name":"Teck Resources Limited","explanation":"Pure-play copper miner after coal divestment. See ticker TECK."},"Ivanhoe":{"category":"company","full_name":"Ivanhoe Mines Ltd.","explanation":"Operator of Kamoa-Kakula high-grade copper mine in DRC. See ticker IVN.TO."},"Quanta Services":{"category":"company","full_name":"Quanta Services, Inc.","explanation":"Largest US electric-transmission and renewable-construction contractor. See ticker PWR."},"MYR Group":{"category":"company","full_name":"MYR Group Inc.","explanation":"Specialty US T&D construction firm. See ticker MYRG."},"Primoris":{"category":"company","full_name":"Primoris Services Corporation","explanation":"Diversified energy/utility construction firm. See ticker PRIM."},"GE Vernova":{"category":"company","full_name":"GE Vernova Inc.","explanation":"Spun-off GE energy/power-grid business. See ticker GEV."},"Siemens Energy":{"category":"company","full_name":"Siemens Energy AG","explanation":"European #2 heavy-duty gas turbine OEM. See ticker ENR.DE."},"Mitsubishi Heavy":{"category":"company","full_name":"Mitsubishi Heavy Industries, Ltd.","explanation":"Japanese conglomerate, #3 HDGT OEM. See ticker 7011.T."},"Hammond Power":{"category":"company","full_name":"Hammond Power Solutions Inc.","explanation":"Canadian dry-type transformer specialist. See ticker HPS-A.TO."},"Hitachi Energy":{"category":"company","full_name":"Hitachi Energy (subsidiary of Hitachi Ltd, formerly ABB Power Grids)","explanation":"World's #1 grid transformer and HVDC supplier; subsidiary of Hitachi (6501.T). The most-constrained capacity in global power supply."},"Hyundai Electric":{"category":"company","full_name":"HD Hyundai Electric Co., Ltd.","explanation":"Korean power transformer manufacturer. See ticker 267260.KS."},"Eaton":{"category":"company","full_name":"Eaton Corporation plc","explanation":"Global #1 in datacenter electrical infrastructure. See ticker ETN."},"Schneider Electric":{"category":"company","full_name":"Schneider Electric SE","explanation":"Co-leader with Eaton in DC power management. See ticker SU.PA."},"ABB":{"category":"company","full_name":"ABB Ltd","explanation":"Swiss-Swedish electrification and automation giant; primary listing is ABBN.SW. ADR is ABBNY."},"Hubbell":{"category":"company","full_name":"Hubbell Incorporated","explanation":"US electrical products and grid-mod gear. See ticker HUBB."},"nVent":{"category":"company","full_name":"nVent Electric plc","explanation":"Liquid-cooling CDUs, busways, electrical enclosures. See ticker NVT."},"Powell Industries":{"category":"company","full_name":"Powell Industries, Inc.","explanation":"Custom medium-voltage switchgear for AI datacenters and O&G. See ticker POWL."},"Rockwell":{"category":"company","full_name":"Rockwell Automation, Inc.","explanation":"US factory-automation leader. See ticker ROK."},"Equinix":{"category":"company","full_name":"Equinix, Inc.","explanation":"Global retail colocation and interconnection leader. See ticker EQIX."},"Digital Realty":{"category":"company","full_name":"Digital Realty Trust, Inc.","explanation":"Wholesale and hyperscale datacenter REIT. See ticker DLR."},"Iron Mountain":{"category":"company","full_name":"Iron Mountain Incorporated","explanation":"Records-storage to AI-datacenter pivot. See ticker IRM."},"Keppel DC REIT":{"category":"company","full_name":"Keppel DC REIT","explanation":"Largest pure-play Asian datacenter REIT. See ticker AJBU.SI."},"Linde":{"category":"company","full_name":"Linde plc","explanation":"World's #1 industrial-gas supplier. See ticker LIN."},"Air Products":{"category":"company","full_name":"Air Products and Chemicals, Inc.","explanation":"#3 industrial-gas major. See ticker APD."},"Air Liquide":{"category":"company","full_name":"Air Liquide S.A.","explanation":"French #2 global industrial gas major. ADR is AIQUY; primary listing AI.PA."},"American Water":{"category":"company","full_name":"American Water Works Company, Inc.","explanation":"Largest US regulated water utility. See ticker AWK."},"Essential Utilities":{"category":"company","full_name":"Essential Utilities, Inc.","explanation":"Regulated water + natural-gas utility (formerly Aqua America). See ticker WTRG."},"Xylem":{"category":"company","full_name":"Xylem Inc.","explanation":"Pumps, treatment, analytics for water. See ticker XYL."},"Pentair":{"category":"company","full_name":"Pentair plc","explanation":"Residential/commercial water treatment and pool equipment. See ticker PNR."},"Modine":{"category":"company","full_name":"Modine Manufacturing Company","explanation":"Airedale chillers, CDUs, immersion cooling. See ticker MOD."},"Carrier":{"category":"company","full_name":"Carrier Global Corporation","explanation":"HVAC OEM pivoting into datacenter cooling. See ticker CARR."},"Munters":{"category":"company","full_name":"Munters Group AB","explanation":"Swedish evaporative cooling and air treatment specialist. See ticker MTRS.ST."},"Johnson Controls":{"category":"company","full_name":"Johnson Controls International plc","explanation":"Building-controls and HVAC; Silent-Aire modular cooling. See ticker JCI."},"Trane":{"category":"company","full_name":"Trane Technologies plc","explanation":"Chiller and air-handling specialist. See ticker TT."},"Synopsys":{"category":"company","full_name":"Synopsys, Inc.","explanation":"#1 EDA vendor. See ticker SNPS."},"Cadence":{"category":"company","full_name":"Cadence Design Systems, Inc.","explanation":"#2 EDA vendor. See ticker CDNS."},"Arm":{"category":"company","full_name":"Arm Holdings plc","explanation":"CPU architecture licensor (Neoverse, Cortex). See ticker ARM."},"CoreWeave":{"category":"company","full_name":"CoreWeave, Inc.","explanation":"Largest pure-play GPU neocloud. See ticker CRWV."},"Nebius":{"category":"company","full_name":"Nebius Group N.V.","explanation":"European GPU neocloud spun out of Yandex international. See ticker NBIS."},"AppLovin":{"category":"company","full_name":"AppLovin Corporation","explanation":"Mobile ad-tech with ML/AI Axon engine. See ticker APP."},"Palantir":{"category":"company","full_name":"Palantir Technologies Inc.","explanation":"Government/commercial AI orchestration platform (AIP). See ticker PLTR."},"ServiceNow":{"category":"company","full_name":"ServiceNow, Inc.","explanation":"Enterprise-workflow SaaS with Now Assist AI. See ticker NOW."},"Datadog":{"category":"company","full_name":"Datadog, Inc.","explanation":"Cloud observability + LLM observability. See ticker DDOG."},"Snowflake":{"category":"company","full_name":"Snowflake Inc.","explanation":"Cloud data-warehouse with Cortex LLM inference. See ticker SNOW."},"MongoDB":{"category":"company","full_name":"MongoDB, Inc.","explanation":"Document database with Atlas Vector Search + Voyage AI. See ticker MDB."},"C3.ai":{"category":"company","full_name":"C3.ai, Inc. (AI)","explanation":"Enterprise-AI software vendor; mentioned for context but not in this study's price manifest. Public on NYSE under ticker AI."},"OpenAI":{"category":"company","full_name":"OpenAI","explanation":"Private AI lab behind ChatGPT, GPT-4, GPT-5; majority financial partner of Microsoft. Largest single buyer of frontier inference capacity in the world (Microsoft Azure, Oracle Stargate)."},"Anthropic":{"category":"company","full_name":"Anthropic, PBC","explanation":"Private AI lab behind the Claude model family; majority cloud partner of Amazon AWS (Project Rainier on Trainium). Second-largest frontier inference buyer after OpenAI."},"xAI":{"category":"company","full_name":"xAI Corp.","explanation":"Elon Musk's AI lab; trains the Grok model family on the Memphis 'Colossus' supercluster (200,000+ H100 GPUs)."},"DeepSeek":{"category":"company","full_name":"DeepSeek","explanation":"Chinese AI lab (spun out of High-Flyer hedge fund) that released open-weight DeepSeek-V3 / R1 in late 2024/2025, demonstrating frontier-grade reasoning at dramatically lower training cost. Major shock to the 'compute-equals-capability' narrative."},"Crusoe":{"category":"company","full_name":"Crusoe Energy Systems","explanation":"Private firm operating natural-gas-fueled AI datacenters (stranded-gas to start, behind-the-meter gas turbines now). Partner on Stargate Abilene and other multi-GW campuses; named GE Vernova / Solar Turbines customer."},"neocloud":{"category":"concept","full_name":"Neocloud (GPU-as-a-service operator)","explanation":"New-generation cloud providers focused only on AI GPU rental, financed via long-term take-or-pay contracts and debt against GPU collateral. CoreWeave, Nebius, Lambda, Crusoe Cloud. Generally lower margins than hyperscalers but higher growth."},"hyperscaler":{"category":"concept","full_name":"Hyperscaler","explanation":"A handful of cloud providers operating datacenter footprints measured in tens of GW: Microsoft Azure, Google Cloud, Amazon AWS, plus tier-2 Oracle, Meta (internal), Alibaba, ByteDance. Their capital allocation effectively drives every upstream vertical in this study."},"GW":{"category":"concept","full_name":"Gigawatt (1 GW = 1,000 MW)","explanation":"The unit of power capacity used to size AI campuses (1 GW datacenter ≈ all-time-large nuclear reactor output). Modern frontier training campuses (Microsoft Wisconsin, Meta Hyperion, xAI Memphis) target multi-GW total IT load."},"MW":{"category":"concept","full_name":"Megawatt (1 MW = 1,000 kW)","explanation":"Standard datacenter sizing unit. A traditional enterprise DC is 5-20 MW; modern AI training campuses are 100-1000+ MW. Cooling, transformer, and switchgear loads all scale linearly with MW."},"kW/rack":{"category":"concept","full_name":"Kilowatts per rack (datacenter density)","explanation":"Power density per server rack. Traditional enterprise: 5-10 kW. Hyperscale general: 15-30 kW. NVIDIA NVL72 Blackwell racks: 120-132 kW. >50 kW/rack forces liquid cooling."},"DLC":{"category":"concept","full_name":"Direct Liquid Cooling","explanation":"Cooling that runs liquid (water or dielectric) through cold-plates directly attached to chip packages, instead of relying solely on air. Standard for any rack above ~40 kW; required for NVIDIA Blackwell GB200 NVL72."},"CDU":{"category":"concept","full_name":"Coolant Distribution Unit","explanation":"A pumping and heat-exchanger appliance that interfaces between facility chilled water and the secondary cooling loop running into the IT racks. Sizes 100 kW to 2+ MW. Vertiv, Motivair, Modine, nVent, CoolIT are main vendors."},"PUE":{"category":"concept","full_name":"Power Usage Effectiveness","explanation":"Total datacenter power divided by IT (server) power. PUE = 1.0 is perfect (all power goes to compute); modern hyperscale runs 1.1-1.2. Lower PUE = less overhead for cooling and electrical losses."},"ERCOT":{"category":"concept","full_name":"Electric Reliability Council of Texas","explanation":"The grid operator for ~90% of Texas — an electrical island separate from the rest of the US. Fast permitting, deregulated retail, and abundant gas-power make ERCOT a top AI datacenter destination."},"PJM":{"category":"concept","full_name":"PJM Interconnection","explanation":"The regional transmission organization covering 13 mid-Atlantic and Midwest states. Hosts the world's largest concentration of AI datacenter load (Virginia 'Data Center Alley'). 2025/26 capacity auction set records."},"Solar Turbines":{"category":"company","full_name":"Solar Turbines (Caterpillar subsidiary)","explanation":"Aeroderivative gas-turbine manufacturer (15-22 MW Mars, Titan, Centaur) owned by Caterpillar. Behind-the-meter datacenter power supplier (Crusoe campuses, etc.). Not separately public."},"Westinghouse":{"category":"company","full_name":"Westinghouse Electric Company","explanation":"Private (owned by Cameco + Brookfield) supplier of large light-water reactor (AP1000) designs and nuclear-fuel services. Dominant Western large-reactor designer; key supplier for any new build."},"TerraPower":{"category":"company","full_name":"TerraPower","explanation":"Private Bill Gates-backed advanced-reactor developer building the Natrium sodium-cooled fast reactor in Wyoming. Pre-commercial; first-of-a-kind targeted late-2020s."},"X-energy":{"category":"company","full_name":"X-energy","explanation":"Private SMR developer with the Xe-100 high-temperature gas-cooled reactor design. Backed by Amazon ($500M Oct 2024). Targets co-located industrial/datacenter offtake."},"Annapurna Labs":{"category":"company","full_name":"Annapurna Labs (Amazon subsidiary)","explanation":"Israeli chip-design subsidiary acquired by Amazon in 2015. Designs Graviton (Arm CPU), Trainium (training), and Inferentia (inference) silicon. Not separately public."},"Brookfield":{"category":"company","full_name":"Brookfield Asset Management / Brookfield Corporation","explanation":"Canadian infrastructure-focused asset manager; major investor in Westinghouse, AI datacenter campuses (Compass Datacenters), and merchant power. Public via BAM and BN tickers (not in this study's manifest)."},"ASE":{"category":"company","full_name":"ASE Technology Holding (ASE Group)","explanation":"World's largest OSAT, parent of SPIL. See ticker ASX."},"Amkor":{"category":"company","full_name":"Amkor Technology, Inc.","explanation":"#2 OSAT, building Arizona advanced-packaging campus. See ticker AMKR."},"TEL":{"category":"company","full_name":"Tokyo Electron Limited","explanation":"Japanese WFE leader in track, deposition, etch. See ticker 8035.T."},"Applied Materials":{"category":"company","full_name":"Applied Materials, Inc.","explanation":"World's largest WFE vendor. See ticker AMAT."},"Lam Research":{"category":"company","full_name":"Lam Research Corporation","explanation":"Etch and deposition WFE leader. See ticker LRCX."},"KLA":{"category":"company","full_name":"KLA Corporation","explanation":"Process-control and metrology WFE leader. See ticker KLAC."},"Onto Innovation":{"category":"company","full_name":"Onto Innovation Inc.","explanation":"Advanced-packaging metrology and inspection. See ticker ONTO."},"Entegris":{"category":"company","full_name":"Entegris, Inc.","explanation":"Process materials, filtration, gas/liquid delivery for fabs. See ticker ENTG."},"Axcelis":{"category":"company","full_name":"Axcelis Technologies, Inc.","explanation":"Ion-implant WFE specialist. See ticker ACLS."},"Marvell":{"category":"company","full_name":"Marvell Technology, Inc.","explanation":"Custom AI ASICs and optical DSPs for hyperscalers. See ticker MRVL."},"Arista":{"category":"company","full_name":"Arista Networks, Inc.","explanation":"High-radix Ethernet switch leader for hyperscalers. See ticker ANET."},"Cisco":{"category":"company","full_name":"Cisco Systems, Inc.","explanation":"Incumbent enterprise networking; Silicon One AI silicon. See ticker CSCO."},"Broadcom":{"category":"company","full_name":"Broadcom Inc.","explanation":"Custom AI ASICs and merchant Ethernet switch silicon. See ticker AVGO."},"Supermicro":{"category":"company","full_name":"Super Micro Computer, Inc.","explanation":"Rack-scale GPU server systems integrator. See ticker SMCI."},"MediaTek":{"category":"company","full_name":"MediaTek Inc.","explanation":"Taiwanese fabless SoC giant; Google TPU partner. See ticker 2454.TW."},"KYEC":{"category":"company","full_name":"King Yuan Electronics Co., Ltd.","explanation":"Taiwanese back-end test specialist for HBM/CoWoS. See ticker 2449.TW."},"Powertech":{"category":"company","full_name":"Powertech Technology Inc.","explanation":"Taiwanese memory-OSAT. See ticker 6239.TW."},"Chipbond":{"category":"company","full_name":"Chipbond Technology Corporation","explanation":"Taiwanese gold-bump/COF back-end. See ticker 6147.TWO."},"Shin-Etsu":{"category":"company","full_name":"Shin-Etsu Chemical Co., Ltd.","explanation":"World #1 silicon wafer and photoresist supplier. See ticker 4063.T."},"Nikon":{"category":"company","full_name":"Nikon Corporation","explanation":"Japanese DUV scanner maker (#2 behind ASML at trailing-edge). See ticker 7731.T."},"Canon":{"category":"company","full_name":"Canon Inc.","explanation":"DUV scanners and nanoimprint lithography. See ticker 7751.T."},"SK Hynix":{"category":"company","full_name":"SK Hynix Inc.","explanation":"#1 HBM supplier. See ticker 000660.KS."},"Samsung Electronics":{"category":"company","full_name":"Samsung Electronics Co., Ltd.","explanation":"#1 memory maker, #2 foundry. See ticker 005930.KS."},"Samsung Electro-Mechanics":{"category":"company","full_name":"Samsung Electro-Mechanics Co., Ltd.","explanation":"FC-BGA substrates and MLCCs. See ticker 009150.KS."},"Micron":{"category":"company","full_name":"Micron Technology, Inc.","explanation":"Only US HBM/DRAM maker. See ticker MU."},"Winbond":{"category":"company","full_name":"Winbond Electronics Corp.","explanation":"Taiwanese specialty DRAM/flash. See ticker 2344.TW."},"Nanya":{"category":"company","full_name":"Nanya Technology Corp.","explanation":"Taiwanese commodity DRAM maker. See ticker 2408.TW."},"GlobalFoundries":{"category":"company","full_name":"GlobalFoundries Inc.","explanation":"US/Singapore mature/specialty foundry. See ticker GFS."},"Infineon":{"category":"company","full_name":"Infineon Technologies AG","explanation":"World's largest power-semi supplier. See ticker IFX.DE."},"onsemi":{"category":"company","full_name":"ON Semiconductor Corp. (onsemi)","explanation":"Silicon-carbide power modules, image sensors, PMICs. See ticker ON."},"Power Integrations":{"category":"company","full_name":"Power Integrations, Inc.","explanation":"High-voltage power-conversion ICs incl. GaN. See ticker POWI."},"Texas Instruments":{"category":"company","full_name":"Texas Instruments Incorporated","explanation":"World's largest analog IC maker. See ticker TXN."},"Analog Devices":{"category":"company","full_name":"Analog Devices, Inc.","explanation":"Analog/mixed-signal IC supplier. See ticker ADI."},"GE":{"category":"concept","full_name":"General Electric (now split into three companies)","explanation":"The legacy General Electric conglomerate split in 2024 into GE Aerospace (GE), GE Vernova (GEV — power/grid), and GE HealthCare (GEHC). 'GE' in AI-power context almost always means GE Vernova."},"Annapurna":{"category":"company","full_name":"Annapurna Labs","explanation":"See 'Annapurna Labs' — Amazon's silicon design subsidiary."},"Mellanox":{"category":"company","full_name":"Mellanox Technologies (now NVIDIA Networking)","explanation":"Israeli InfiniBand/Ethernet networking-IC firm acquired by NVIDIA for $7B in 2020. Forms the core of NVIDIA's networking business (Quantum, Spectrum-X, BlueField DPUs)."},"DPU":{"category":"concept","full_name":"Data Processing Unit","explanation":"A programmable network card that offloads infrastructure tasks (security, storage, networking) from the host CPU. NVIDIA BlueField, AMD Pensando, Marvell Octeon are the main lines."},"PowerCo":{"category":"concept","full_name":"PowerCo (datacenter power-as-a-service model)","explanation":"An emerging business model where a third party builds and owns behind-the-meter generation (gas turbines, batteries, eventually SMRs) and sells power to a co-located AI datacenter via PPA. Crusoe, Generate Capital, ExxonMobil have entered this model."},"Stargate":{"category":"concept","full_name":"Stargate (OpenAI / Oracle / SoftBank AI infrastructure JV)","explanation":"The $500B-class AI infrastructure joint venture announced January 2025, anchored by OpenAI, Oracle, SoftBank. Building multi-GW campuses (Abilene TX is first) for OpenAI inference and training. Largest single AI capex commitment in history."},"Colossus":{"category":"concept","full_name":"Colossus (xAI's Memphis training supercluster)","explanation":"xAI's Memphis, TN training cluster — initially 100,000 H100s, scaled to 200,000+ by 2025, with plans for 1M+. Famously stood up in ~6 months by colocating with behind-the-meter gas turbines."},"ArFi":{"category":"concept","full_name":"Argon Fluoride Immersion lithography","explanation":"DUV lithography using 193 nm ArF light with the wafer immersed under water, raising effective resolution. Workhorse for everything from 90 nm down to ~7 nm and still needed for multi-patterning at the most advanced nodes. ASML's NXT immersion scanners are the dominant tools; Nikon makes a small minority share."},"KrF":{"category":"concept","full_name":"Krypton Fluoride DUV lithography","explanation":"Older DUV light source at 248 nm wavelength, used for mature nodes ~250 nm down to ~90 nm. KrF scanners remain in heavy use for trailing-edge logic, memory periphery, analog, and packaging steps. ASML, Nikon and Canon all make KrF tools."},"High-NA":{"category":"concept","full_name":"High-Numerical-Aperture EUV","explanation":"Next-generation EUV lithography (ASML EXE:5000) with a larger numerical aperture (0.55 vs 0.33) that prints finer features in a single exposure. Each tool costs ~$380M and is critical for 2 nm and below. Volume ramps from 2026-2028; supply is extremely constrained."},"wafer":{"category":"concept","full_name":"Silicon wafer","explanation":"The thin circular disc of monocrystalline silicon (typically 300 mm diameter) on which chips are built. Hundreds of identical chip 'dies' are patterned per wafer and then sliced apart. Wafer starts per month is the standard fab capacity unit."},"mask":{"category":"concept","full_name":"Photomask","explanation":"A patterned quartz plate that acts as the stencil projected through a lithography scanner onto the wafer. EUV masks are reflective rather than transmissive and need an entirely new inspection ecosystem (Lasertec). One leading-edge chip can use 70+ mask layers."},"photomask":{"category":"concept","full_name":"Photomask (= mask)","explanation":"Same as a mask: the patterned plate that projects each lithography layer onto the wafer. Made by Toppan Photomasks, Photronics, DNP and a handful of in-house captive lines at TSMC, Intel, Samsung."},"NAND":{"category":"concept","full_name":"NAND Flash memory","explanation":"Non-volatile semiconductor memory used in SSDs and storage. Built in 3D-stacked layers (200+ today). Distinct from DRAM (which is volatile working memory). Samsung, Kioxia, SK Hynix, Micron, Western Digital are the makers."},"CoWoS-S":{"category":"concept","full_name":"CoWoS with Silicon interposer","explanation":"The original CoWoS flavor: a passive silicon interposer wires the logic die and HBM stacks together. Used on most current Hopper and Blackwell GPUs. CoWoS-S supply is the gating factor on AI accelerator output."},"FOWLP":{"category":"concept","full_name":"Fan-Out Wafer-Level Packaging","explanation":"Advanced packaging where dies are embedded into a reconstituted wafer with redistribution layers fanning the I/O out beyond the original die area. Cheaper than CoWoS but lower performance. Powering Apple SoCs and some networking ASICs."},"packaging":{"category":"concept","full_name":"Semiconductor packaging","explanation":"The back-end process of taking diced silicon chips, attaching them to a substrate (or interposer), wiring them up, encapsulating, and producing a finished part you can solder onto a board. Advanced packaging (CoWoS, SoIC, FOPLP) is now as critical as front-end lithography for AI accelerators."},"3D-stacking":{"category":"concept","full_name":"3D die stacking","explanation":"Bonding multiple chip dies vertically and connecting them with through-silicon-vias (TSVs) or hybrid bonding. Used for HBM memory stacks and for stacking logic-on-logic (TSMC SoIC, Intel Foveros). Increases density without needing smaller transistors."},"ASIC":{"category":"concept","full_name":"Application-Specific Integrated Circuit","explanation":"A chip designed for one specific workload (e.g., Bitcoin mining, a particular AI model). For LLMs, the hyperscaler ASICs (Google TPU, AWS Trainium, Meta MTIA, Microsoft Maia) are direct alternatives to NVIDIA GPUs and are projected to take meaningful share by 2027-2028."},"FPGA":{"category":"concept","full_name":"Field-Programmable Gate Array","explanation":"A chip whose internal logic can be reconfigured in software after manufacturing. Used for prototyping, networking, and some inference; lower performance per watt than ASICs but flexible. AMD (Xilinx) and Intel (Altera) dominate."},"SoC":{"category":"concept","full_name":"System-on-Chip","explanation":"A single chip integrating CPU, GPU, memory controllers, I/O and other blocks. Smartphones, game consoles and modern servers all use SoCs. AI accelerators are SoCs that bundle compute cores with HBM controllers, NVLink and SerDes."},"NPU":{"category":"concept","full_name":"Neural Processing Unit","explanation":"A specialized AI-inference block built into a CPU or SoC for low-power on-device inference. Apple Neural Engine, Qualcomm Hexagon, Intel/AMD AI NPUs are examples. Smaller and cheaper than data-center accelerators."},"IP block":{"category":"concept","full_name":"Semiconductor IP block","explanation":"A pre-designed and pre-verified piece of chip circuitry (CPU core, GPU, memory controller, USB PHY) licensed by chip designers from companies like Arm, Synopsys, Cadence and SiFive. Lets designers assemble complex SoCs without reinventing every block."},"RTL":{"category":"concept","full_name":"Register-Transfer Level","explanation":"The level of abstraction at which chip designers write hardware (in Verilog or VHDL) — describing flows of data between registers each clock cycle. EDA tools then translate RTL to a gate-level netlist and a physical layout."},"EDA":{"category":"concept","full_name":"Electronic Design Automation","explanation":"Software used to design, verify and lay out chips. Cadence, Synopsys and Siemens EDA are an effective oligopoly with deep moats — every new chip needs their tools. AI accelerator complexity is driving EDA spend up sharply."},"fabless":{"category":"concept","full_name":"Fabless semiconductor company","explanation":"A chip company that designs but does not manufacture chips, outsourcing fab to TSMC, Samsung Foundry or GlobalFoundries. NVIDIA, AMD, Broadcom, Marvell, MediaTek are fabless. Capital-light, but dependent on foundry capacity."},"foundry":{"category":"concept","full_name":"Semiconductor foundry","explanation":"A pure-play chip manufacturer that builds chips on contract for fabless customers. TSMC has ~60% market share and a near-monopoly on leading-edge (3 nm/2 nm). Samsung Foundry and Intel Foundry are distant competitors."},"IDM":{"category":"concept","full_name":"Integrated Device Manufacturer","explanation":"A chip company that both designs and manufactures its own chips in-house. Intel, Samsung Semiconductor, SK Hynix, Micron, Texas Instruments, STMicroelectronics, Infineon are classic IDMs. Capital-heavy but vertically integrated."},"AI accelerator":{"category":"concept","full_name":"AI accelerator chip","explanation":"Catch-all term for chips optimized for AI workloads — includes NVIDIA GPUs (Hopper, Blackwell, Rubin), AMD MI300/MI400, Google TPU, AWS Trainium/Inferentia, Microsoft Maia, Meta MTIA, Cerebras, Groq. The most economically valuable chip category of the decade."},"3.2T":{"category":"concept","full_name":"3.2 Tbps optical transceiver","explanation":"Generation after 1.6T pluggable optics; expected to ramp 2027-2028. May be the last generation before co-packaged optics (CPO) displaces pluggables for the highest-density links."},"pluggable optics":{"category":"concept","full_name":"Pluggable optical transceivers","explanation":"Small modules (QSFP-DD, OSFP form factors) you plug into a switch faceplate to convert electrical signals to light over fiber. Today's standard for datacenter networking; threatened long-term by co-packaged optics (CPO)."},"transceiver":{"category":"concept","full_name":"Optical transceiver","explanation":"A module that transmits (laser + driver) and receives (photodiode + amplifier) optical signals across a fiber link. Each AI rack now needs hundreds. Coherent, Lumentum, Innolight, Eoptolink are top suppliers."},"EML":{"category":"concept","full_name":"Electro-Absorption Modulated Laser","explanation":"A type of high-speed laser used inside high-end transceivers (800G, 1.6T). EMLs are a supply bottleneck — Coherent, Lumentum, and Mitsubishi Electric are key makers."},"retimer":{"category":"concept","full_name":"Retimer chip","explanation":"An analog signal-conditioning chip placed between SerDes endpoints (e.g., between a GPU and the PCIe/NVLink switch) to recover and resend the signal cleanly. Astera Labs and Marvell are leaders; demand exploded with PCIe Gen5/Gen6 in AI servers."},"AEC":{"category":"concept","full_name":"Active Electrical Cable","explanation":"A short copper cable (1-7 m) with active retimer chips in the connectors, used for short scale-up links inside a rack — cheaper and lower-power than optics. Credo and Marvell drive this market."},"Ethernet":{"category":"concept","full_name":"Ethernet (networking standard)","explanation":"The dominant data-network protocol; standards body IEEE. In AI, hyperscalers (Meta, Microsoft, Google) are increasingly choosing Ethernet (Arista, Cisco, Broadcom Tomahawk) over NVIDIA's proprietary InfiniBand for scale-out GPU clusters."},"scale-out":{"category":"concept","full_name":"Scale-out networking","explanation":"Connecting many separate server nodes across a datacenter into one large compute fabric — typically Ethernet or InfiniBand over optical links. Scale-out is the bulk of AI cluster bandwidth and the main demand driver for transceivers."},"scale-up":{"category":"concept","full_name":"Scale-up networking","explanation":"Tightly connecting GPUs within a single rack or pod with very high bandwidth (NVLink, UALink, Infinity Fabric). Scale-up bandwidth is what enables training huge models because all GPUs must share state at high speed."},"switch silicon":{"category":"concept","full_name":"Switch silicon","explanation":"The ASIC inside a datacenter switch that moves packets at line rate. Broadcom Tomahawk and Jericho families dominate Ethernet; NVIDIA Quantum dominates InfiniBand. Each AI cluster rebuild is a switch-silicon refresh cycle."},"point-of-load":{"category":"concept","full_name":"Point-of-load (PoL) converter","explanation":"A small DC-DC converter placed right next to a chip that converts a higher-voltage bus rail (12V or 48V) down to the sub-1V the chip actually needs. VRMs are point-of-load converters. Monolithic Power, Vicor, Infineon are leaders."},"immersion cooling":{"category":"concept","full_name":"Immersion cooling","explanation":"Submerging servers in a non-conductive liquid (single-phase oil or two-phase fluorocarbon) to absorb heat. More efficient than air at >50 kW/rack densities. Niche today but expected to grow as rack densities exceed 100 kW."},"direct liquid cooling":{"category":"concept","full_name":"Direct Liquid Cooling (DLC)","explanation":"Pumping cold liquid through a coldplate sitting directly on the GPU/CPU package, rejecting heat to a facility loop. Now mandatory at >40 kW/rack — Blackwell racks ship liquid-cooled by default. Vertiv, CoolIT, Boyd, Asetek are key suppliers."},"rear-door heat exchanger":{"category":"concept","full_name":"Rear-Door Heat Exchanger (RDHX)","explanation":"A liquid-fed radiator that fits onto the back of a server rack, removing heat as exhaust air passes through. A retrofit-friendly way to support 40-60 kW air-cooled racks without rebuilding the room. Vertiv, Motivair, Schneider, ColdLogik supply."},"busway":{"category":"concept","full_name":"Busway / Bus duct","explanation":"A prefabricated metal enclosure with copper bars inside that distributes power along a row of racks, instead of running individual cables. Faster to install, easier to reconfigure. nVent, Eaton, Schneider, Starline are major suppliers."},"switchgear":{"category":"concept","full_name":"Switchgear","explanation":"Heavy electrical equipment (breakers, disconnects, protective relays) that switches and protects power circuits inside a datacenter or substation. Multi-year lead times in 2025. Eaton, Schneider, ABB, Siemens Energy, Powell Industries dominate."},"transformer":{"category":"concept","full_name":"Electrical transformer","explanation":"Device that steps voltage up or down using magnetic coupling between two coils. Datacenters need large medium-voltage transformers (LPTs) for grid interconnection and many smaller ones inside. 2-4 year lead times in 2025 are a major build constraint."},"large power transformer":{"category":"concept","full_name":"Large Power Transformer (LPT)","explanation":"High-voltage transmission-class transformers (typically >100 MVA, 230 kV+). Used at substations connecting datacenters and utilities to the grid. Lead times exceeded 4 years in 2025 — a structural bottleneck for new AI builds."},"LPT":{"category":"concept","full_name":"Large Power Transformer","explanation":"Short for Large Power Transformer — the high-voltage grid-class transformers used at substations. Hitachi Energy, GE Vernova, Siemens Energy, Hyundai Electric, Mitsubishi Electric are the global manufacturers."},"gas turbine":{"category":"concept","full_name":"Gas turbine generator","explanation":"A jet-engine-derived or industrial-frame turbine that burns natural gas to spin a generator. Increasingly used for behind-the-meter power at AI datacenters because grid interconnections take years. GE Vernova, Siemens Energy, Mitsubishi Heavy, Solar Turbines (Caterpillar) make them."},"HDGT":{"category":"concept","full_name":"Heavy-Duty Gas Turbine","explanation":"Large industrial gas turbines (>100 MW class) used for utility power generation. GE Vernova's 9HA/7HA and Siemens Energy's SGT-9000HL are the flagship HDGT lines. Order books are full into 2030 thanks to AI datacenter demand."},"aeroderivative":{"category":"concept","full_name":"Aeroderivative gas turbine","explanation":"A smaller gas turbine (~30-100 MW) derived from a jet engine — faster start, easier to install on-site than an HDGT. GE LM2500/LM6000, Siemens SGT-A, and Solar Turbines Titan/Mars dominate. Favored for behind-the-meter datacenter power."},"peaker":{"category":"concept","full_name":"Peaker plant","explanation":"A power plant (often gas turbine) that runs only during peak demand hours, earning a high capacity payment plus high energy revenue when prices spike. AI datacenters are increasingly chewing into baseload, raising peaker economics."},"interconnection queue":{"category":"concept","full_name":"Grid interconnection queue","explanation":"The waitlist of new generation and large-load projects waiting for permission to connect to the transmission grid. Queues are now multi-year (PJM, MISO, ERCOT all backlogged), making behind-the-meter generation a popular workaround for new AI datacenters."},"stack":{"category":"concept","full_name":"Memory stack (HBM)","explanation":"An HBM 'stack' is 8-16 DRAM dies bonded vertically with TSVs into one package. Each modern AI accelerator carries 6-12 stacks. Stack count and per-stack capacity are the two main HBM growth axes."},"refresh":{"category":"concept","full_name":"Product refresh / refresh cycle","explanation":"A major hardware-generation update — e.g., Hopper → Blackwell → Rubin GPU refresh. Each refresh resets the supply-chain mix (more HBM, new packaging, new networking speeds) and pulls in capex from hyperscalers."},"bandwidth":{"category":"concept","full_name":"Memory / link bandwidth","explanation":"The amount of data per second that can move between chip and memory (HBM) or between chips (NVLink, Ethernet). LLM inference is bandwidth-bound: feeding the GPU's compute units fast enough is harder than the compute itself."},"latency":{"category":"concept","full_name":"Latency","explanation":"The time between asking for data and getting the first byte back. For LLM inference, end-to-end latency (time to first token, inter-token latency) drives user experience and infrastructure cost; lower latency commands premium pricing."},"ASP":{"category":"concept","full_name":"Average Selling Price","explanation":"Revenue per unit shipped — a key metric for memory and chip vendors. HBM ASPs have risen 2-3x since 2023 because demand outstrips supply; classic semis cycles are partly ASP cycles."},"super-cycle":{"category":"concept","full_name":"Capex super-cycle","explanation":"An extended multi-year period where demand and prices stay above trend, driving sustained over-investment. The AI 2023-2028 build-out is being called a super-cycle because hyperscaler capex roughly tripled in two years."},"total return":{"category":"concept","full_name":"Total return","explanation":"Capital appreciation plus reinvested dividends. The standard performance metric for stocks held over a multi-year window. A '3-year total return of 200%' means $100 invested grew to $300, including dividends."},"Sharpe":{"category":"concept","full_name":"Sharpe ratio","explanation":"Excess return per unit of volatility — (return − risk-free) ÷ standard deviation. >1 is good, >2 is rare, >3 is exceptional. Used to compare risk-adjusted performance across assets."},"market-cap-weighted":{"category":"concept","full_name":"Market-cap-weighted index","explanation":"An index where each constituent's weight is proportional to its market capitalization. The S&P 500, NASDAQ Composite, MSCI World are all market-cap-weighted. Bigger companies dominate the index's moves."},"alpha":{"category":"concept","full_name":"Alpha (excess return)","explanation":"The part of an investment's return that cannot be explained by market exposure — i.e., the return above what beta-times-market would predict. Hedge funds and active managers sell 'alpha'."},"excess return":{"category":"concept","full_name":"Excess return","explanation":"Return above a benchmark (often the S&P 500 or a risk-free rate). Same idea as alpha for simple cases. This study measures excess return as a vertical's gain minus the market's gain over the same window."},"market-detrended":{"category":"concept","full_name":"Market-detrended return","explanation":"A vertical's index divided by the S&P 500's index over the same window, rebased to 100. Equivalent to the return of a long-vertical / short-market dollar-neutral pair trade. Strips out the broad market move so AI-specific alpha is visible."},"dollar-neutral pair trade":{"category":"concept","full_name":"Dollar-neutral pair trade","explanation":"Going long $X of one asset and short $X of another so net market exposure is zero. The market-detrended series here equals the P&L of going long the vertical and short the S&P 500 in equal dollars."},"Section 232":{"category":"concept","full_name":"Section 232 (US trade law)","explanation":"Provision of the Trade Expansion Act of 1962 that lets the President impose tariffs on imports deemed a national-security risk. In 2025-2026 used for steel, aluminum, and semiconductors — directly affecting reshoring economics for fabs and electrical equipment."},"reshoring":{"category":"concept","full_name":"Reshoring","explanation":"Moving manufacturing back to the home country (US) from overseas. Driven by CHIPS Act, IRA, Section 232 tariffs, and geopolitical risk. Affects the AI supply chain by pulling fab capacity (TSMC Arizona, Samsung Texas, Intel Ohio) and electrical equipment build to North America."},"Mag7":{"category":"concept","full_name":"Magnificent Seven","explanation":"Apple, Microsoft, Alphabet, Amazon, NVIDIA, Meta, Tesla. The seven mega-cap US tech names that drove most of the S&P 500 returns in 2023-2025. Often used as a shorthand for AI-related mega-cap exposure, though Tesla is the odd one out (not a meaningful LLM supply-chain play)."},"Magnificent 7":{"category":"concept","full_name":"Magnificent 7","explanation":"Same as Mag7 — the seven mega-cap US tech names (Apple, Microsoft, Alphabet, Amazon, NVIDIA, Meta, Tesla) that dominated index returns in 2023-2025."},"Fed hiking cycle":{"category":"concept","full_name":"Fed hiking cycle","explanation":"The 2022-2023 period when the US Federal Reserve raised the policy rate from 0% to ~5.5% to fight inflation. Crushed long-duration assets — a key reason 2022 returns are low across this study's 5-year window."},"ChatGPT moment":{"category":"concept","full_name":"ChatGPT moment","explanation":"The November 2022 launch of ChatGPT, which sparked the mainstream AI capex boom. Most of the supply-chain alpha in this study dates from this inflection point."},"AI capex super-cycle":{"category":"concept","full_name":"AI capex super-cycle","explanation":"The 2023-2028+ wave of hyperscaler infrastructure spending — Microsoft, Google, Amazon, Meta and Oracle's combined capex is projected to roughly triple from ~$150B in 2023 to ~$450B+ by 2027. The thesis behind every vertical in this study."},"colocation":{"category":"concept","full_name":"Colocation datacenter","explanation":"A datacenter operator (Equinix, Digital Realty, CoreSite) leases space, power and cooling to many tenants who bring their own servers. Retail colo serves enterprises with small footprints; wholesale colo serves hyperscalers with megawatt blocks."},"wholesale":{"category":"concept","full_name":"Wholesale colocation","explanation":"Large-scale datacenter leasing — typically multi-megawatt to multi-hundred-megawatt deals signed by a single hyperscale tenant. Digital Realty, QTS, Aligned, Vantage are wholesale-heavy operators."},"model lab":{"category":"concept","full_name":"Frontier model lab","explanation":"A research-driven company that trains state-of-the-art LLMs (OpenAI, Anthropic, Google DeepMind, xAI, Meta AI, Mistral, DeepSeek). They are the main demand source for AI accelerators, datacenter power, and HBM."},"Niger coup":{"category":"concept","full_name":"Niger coup (2023)","explanation":"July 2023 military coup in Niger that disrupted French/European uranium supply (Orano's Arlit mine). One of several geopolitical events that tightened global uranium markets and pushed spot prices above $100/lb in early 2024."},"Cobre Panama":{"category":"concept","full_name":"Cobre Panamá copper mine","explanation":"First Quantum Minerals' large open-pit copper mine in Panama, shut by court order in late 2023 after public protests. Removed ~350 kt/yr of copper supply (about 1.5% of global mined output) — a key reason copper prices ran in 2024-2025."},"Grasberg":{"category":"concept","full_name":"Grasberg mine","explanation":"Freeport-McMoRan's giant copper-gold mine in Indonesia — among the world's largest. Production cuts and underground transition issues at Grasberg are routinely cited as global copper supply risk."},"Kamoa":{"category":"concept","full_name":"Kamoa-Kakula copper complex","explanation":"Ivanhoe Mines / Zijin Mining's high-grade copper project in the DRC. Ramping toward ~600 kt/yr — one of the few major new copper supply additions this decade. DRC political risk is a recurring concern."},"China stimulus":{"category":"concept","full_name":"China stimulus","explanation":"Chinese government fiscal and monetary measures (especially the September 2024 package) aimed at reviving property and consumption. Drives industrial-metal demand (copper, aluminum) and shifts the global commodity cycle."},"Russia sanctions":{"category":"concept","full_name":"Russia sanctions","explanation":"Western sanctions imposed after the 2022 invasion of Ukraine — affect Russian uranium (Centrus, Cameco enrichment), titanium, palladium and natural gas exports. Pushed Western utilities to re-source enriched uranium domestically (Centrus, Urenco)."},"Pentagon support":{"category":"concept","full_name":"Pentagon / DoD support","explanation":"US Department of Defense and Defense Production Act funding for critical-minerals and supply-chain projects — MP Materials' Mountain Pass (rare earths), Lynas's Texas heavy-rare-earth plant, Constellium's titanium, and others have received Pentagon contracts."},"energy transition":{"category":"concept","full_name":"Energy transition","explanation":"The decades-long shift from fossil fuels to electrified, low-carbon energy — solar, wind, nuclear, storage, electrification of transport and industry. AI datacenter load is straining the same grid the transition is trying to decarbonize."},"Lasertec Corporation":{"category":"company","full_name":"Lasertec Corporation","explanation":"Japanese maker of EUV photomask inspection systems (ACTIS) with effective monopoly in actinic-pattern inspection — every leading-edge fab must buy from Lasertec to qualify EUV masks. Ticker 6920.T."},"Shinko Electric":{"category":"company","full_name":"Shinko Electric Industries","explanation":"Japanese maker of advanced semiconductor packaging substrates (FC-BGA) — a critical input for high-end CPUs/GPUs. Being acquired by a JIC-led consortium (closing 2026). Ticker 6967.T."},"Credo Technology":{"category":"company","full_name":"Credo Technology Group","explanation":"Mixed-signal semiconductor company specializing in Active Electrical Cables (AECs), retimers and SerDes IP for AI clusters. Ticker CRDO."},"Constellation Energy":{"category":"company","full_name":"Constellation Energy","explanation":"Largest US owner of nuclear plants. Signed a 20-year PPA with Microsoft in 2024 to restart Three Mile Island Unit 1 (Crane Clean Energy Center) to power AI datacenters. Ticker CEG."},"NuScale Power":{"category":"company","full_name":"NuScale Power","explanation":"US small-modular-reactor (SMR) developer — first NRC-certified SMR design (77 MW VOYGR). Targeting hyperscaler offtake. Ticker SMR."},"Oklo Inc.":{"category":"company","full_name":"Oklo Inc.","explanation":"US advanced-reactor developer building 'Aurora' microreactors (15-100 MW, sodium-cooled fast reactor). Targeting behind-the-meter datacenter offtake. CEO Jacob DeWitte; Sam Altman previously chairman. Ticker OKLO."},"Hitachi":{"category":"company","full_name":"Hitachi Ltd.","explanation":"Japanese industrial conglomerate; parent of Hitachi Energy (power transformers, HVDC, grid automation). Major beneficiary of grid build-out for AI datacenters. Ticker 6501.T."},"Rockwell Automation":{"category":"company","full_name":"Rockwell Automation","explanation":"US industrial automation company (Allen-Bradley PLCs, FactoryTalk software). Picks up datacenter and electrical-equipment factory automation work as reshoring expands. Ticker ROK."},"GDS Holdings":{"category":"company","full_name":"GDS Holdings","explanation":"Largest carrier-neutral wholesale colocation operator in China; rapid expansion in SE Asia (DayOne) for hyperscale and AI workloads. Ticker GDS."},"VNET Group":{"category":"company","full_name":"VNET Group","explanation":"Chinese carrier-neutral colocation and cloud operator — Tier-2 player vs GDS but pivoting to wholesale AI datacenters. Ticker VNET."},"American Water Works":{"category":"company","full_name":"American Water Works","explanation":"Largest US publicly-traded water and wastewater utility, serving ~14M customers. Datacenter water consumption (evaporative cooling) is a regulatory and ESG flashpoint. Ticker AWK."},"Trane Technologies":{"category":"company","full_name":"Trane Technologies","explanation":"US HVAC and thermal management company — chillers, cooling towers, CDUs for datacenters. Ticker TT."},"Cadence Design Systems":{"category":"company","full_name":"Cadence Design Systems","explanation":"One of two dominant EDA toolchain vendors (with Synopsys). Software used to design every advanced chip. Ticker CDNS."},"Arm Holdings":{"category":"company","full_name":"Arm Holdings","explanation":"Dominant CPU IP licensor — Arm cores are in every smartphone, increasingly in datacenter (AWS Graviton, NVIDIA Grace). IPO'd September 2023. Ticker ARM."},"Nebius Group":{"category":"company","full_name":"Nebius Group","explanation":"Dutch-listed neocloud spun out of the former Yandex business; building European GPU clusters and selling capacity to AI labs. Ticker NBIS."},"D1":{"category":"axis","full_name":"D1 -- Already-rallied penalty","explanation":"Inverts 5-year total return so a vertical that has already had a big run gets a low score. 10 means barely moved over five years; 0 means up several-hundred percent. Pure price-momentum penalty, no fundamentals enter. Used to fade names where the AI story is already in the tape."},"D2":{"category":"axis","full_name":"D2 -- Premise-implied TAM headroom","explanation":"How far each vertical's implied 2035 AI revenue sits above its current AI revenue, log-scaled and rank-percentiled across the 22 verticals. Only forward-revenue axis in the matrix. High = lots of room to grow into the premise; low = already monetised at the level the premise implies."},"D3":{"category":"axis","full_name":"D3 -- Supply elasticity / bottleneck severity","explanation":"How long it takes to add one more unit of supply. Short lead times mean elastic supply (low score). Long lead times mean inelastic supply, more pricing power, and a moat that buys time (high score). Examples: EUV scanners ~18 months, copper mines 5-15 years, SMRs 5-10 years, large transformers 18-48 months."},"D4":{"category":"axis","full_name":"D4 -- Value-capture intensity","explanation":"Gross margin times moat width -- where the dollar lands inside the value chain. Software duopolies (EDA, hyperscalers) score high. Capex-heavy, fragmented industries (utilities, SMR construction) score low even when supply is tight."},"D5":{"category":"axis","full_name":"D5 -- Substitution risk","explanation":"Probability the dominant solution gets displaced inside 10 years. CPO over pluggable optics, ASICs over general-purpose GPUs, SMR over gas peakers, liquid cooling over air. Scored 0-10 from sell-side reads and TRL; soft axis, hardest to defend rigorously."},"D6":{"category":"axis","full_name":"D6 -- Capex x cycle position","explanation":"Capex divided by forward revenue, modulated by where the vertical sits in its build-out cycle. Early-cycle, high-capex names get a premium (still spending into demand). Late-cycle gets penalised. Correlates lightly with D3 supply elasticity (r = 0.37)."},"D7":{"category":"axis","full_name":"D7 -- Geopolitical exposure","explanation":"Share of revenue, supply, and customer base sitting inside US-friendly jurisdictions. Higher = safer in a Taiwan-strait / export-control shock scenario. Penalises Taiwan/Korea/China-concentrated names (substrates, HBM) and rewards CHIPS-funded or DOE-backed names."},"D8":{"category":"axis","full_name":"D8 -- Jevons elasticity","explanation":"Demand mirror of D3. If inference cost falls 10x, does demand for this vertical's output expand more, less, or barely? Software / model-labs sit at 10 (cheaper tokens, more usage). Commodity inputs like copper sit at 0 (a watt of grid is a watt of grid, doesn't 10x when inference is cheap)."},"Z-score":{"category":"concept","full_name":"Z-score","explanation":"(x - mean) / standard deviation. Centers a variable on zero and scales it by spread so different metrics are comparable. The v1 ranking z-scored 3-year returns and AI-share-today before subtracting them. Cheap but unstable on small samples (n=22 here)."},"BEA":{"category":"concept","full_name":"Bureau of Economic Analysis","explanation":"US Department of Commerce statistical agency. Publishes GDP, the Digital Economy Satellite Account, and industry breakdowns. Used here as the baseline for the 3x premise because it's a government current-state measurement, not a consultancy projection -- avoids double-counting forward growth."},"BEA Digital Economy":{"category":"concept","full_name":"BEA Digital Economy Satellite Account","explanation":"BEA's measurement of the US digital economy (e-commerce, cloud, telecom, digital media, software). December 2023 release pinned 2022 US digital economy at 10.0% of GDP, $2.6 trillion. This article uses the $2.6T figure as the baseline that gets multiplied by 3x then scaled by a 20% vendor capture rate."},"capture rate":{"category":"concept","full_name":"Vendor capture rate","explanation":"Share of an industry's total economic value that flows to vendors (suppliers, equipment makers, software providers) rather than to end customers or labour. Historical IT vendor capture sits at 15-25% (Bain $990B / McKinsey $2.6-4.4T = ~28%; global software vs BEA digital = ~26%). I used 20% blended."},"premise gap":{"category":"concept","full_name":"Premise gap","explanation":"The dollar difference between a vertical's premise-implied 2035 AI revenue and its current AI revenue. Log-transformed (premise_gap_log) before rank-percentiling so multi-decade catch-up scales don't dominate. Becomes the D2 axis score."},"premise_gap_log":{"category":"concept","full_name":"premise_gap_log","explanation":"log10(implied 2035 AI revenue / current AI revenue) per vertical. Used as the D2 input so a 100x catch-up doesn't crush a 10x catch-up in linear space. After log, scores get rank-percentiled across the 22 verticals."},"log gap":{"category":"concept","full_name":"Log gap","explanation":"Shorthand for premise_gap_log. log10(implied future revenue / current revenue). Compresses long-tail catch-up multiples so D2 ordering reflects rank, not raw magnitude."},"composite score":{"category":"concept","full_name":"Composite score","explanation":"Unweighted mean of the eight axis scores (D1..D8) per vertical. 0-10 scale. Two sanity-check tilts are computed alongside it: premise-tilt (D2 doubled) and contrarian-tilt (D1 doubled). Treated as an aggregate, not an oracle -- the per-axis card view in this post is more honest."},"leave-one-out":{"category":"concept","full_name":"Leave-one-out sensitivity","explanation":"Recompute the composite eight times, each time dropping one of D1..D8. Record the range of ranks each vertical sees across the eight runs. A robust vertical moves at most 3-4 places; a fragile one swings 8+ places (datacenter-reits, lithography)."},"fragility":{"category":"concept","full_name":"Single-axis fragility","explanation":"How much a vertical's composite rank depends on one axis. Quantified via leave-one-out: drop each axis in turn and watch the rank move. A high range (eight or more rank places) means the thesis is essentially one bet; a low range (three or four places) means the thesis is diversified across the matrix."},"sensitivity analysis":{"category":"concept","full_name":"Sensitivity analysis","explanation":"Perturb the inputs, observe how outputs change. In this article: leave-one-out drops on axes, tilt scenarios that double D1 or D2, and the open-work multiplier check (2x vs 3x vs 5x premise). The point is to surface which findings survive small changes versus which collapse."},"hyperscalers":{"category":"concept","full_name":"Hyperscalers","explanation":"The handful of cloud platforms operating millions-of-servers-scale infrastructure: AWS, Azure, Google Cloud, Meta, and (by some counts) Oracle Cloud, Alibaba, Tencent. They buy the bulk of AI accelerators, set datacenter design conventions, and increasingly co-design custom silicon (TPU, MTIA, Trainium, Maia)."},"DOE LPO":{"category":"concept","full_name":"DOE Loan Programs Office","explanation":"US Department of Energy office that issues loan guarantees for advanced energy projects, including the first commercial SMR deployments. Backed multi-billion-dollar lifelines for NuScale, X-energy, and uranium fuel-cycle projects. Critical political backstop for the nuclear-SMR thesis."},"CDS":{"category":"concept","full_name":"Credit Default Swap","explanation":"Insurance against a corporate or sovereign bond defaulting. Single-name CDS spreads are a market-implied probability of default, useful as a real-time substitution-risk proxy (would be a harder, more tradable input for D5 than literature-review TRL scores)."},"TRL":{"category":"concept","full_name":"Technology Readiness Level","explanation":"NASA / DoD 1-9 scale measuring how mature a technology is. TRL 1 = idea on paper; TRL 9 = flight-proven, in commercial use. Used here as one input to D5 substitution risk -- a TRL 4-5 challenger replacing a TRL 9 incumbent inside 10 years is unlikely; TRL 7-8 versus TRL 9 is plausible."},"Spearman":{"category":"concept","full_name":"Spearman rank correlation","explanation":"Correlation coefficient computed on ranks instead of raw values. Robust to outliers and nonlinear-but-monotonic relationships. Range -1 to +1. Used here to test axis orthogonality: the strongest pair (D3 supply vs D8 Jevons) hits r = -0.642, below the 0.7 merge threshold."},"Spearman r":{"category":"concept","full_name":"Spearman rank correlation coefficient","explanation":"The number returned by a Spearman test. Same -1..+1 scale as Pearson, but on ranks. Reported with confidence intervals -- at n=22, even |r| = 0.6 has wide CIs, which is one of the v2 caveats."},"premise-tilt":{"category":"concept","full_name":"Premise-tilt scenario","explanation":"Composite recomputed with D2 (premise-implied TAM headroom) weighted at 2x. Rewards supply-constrained verticals with large unpriced forward demand. Surfaces gainers like power-transformers-grid (+4 ranks), power-semis-vrm (+3), hbm-dram (+2)."},"contrarian-tilt":{"category":"concept","full_name":"Contrarian-tilt scenario","explanation":"Composite recomputed with D1 (already-rallied penalty) weighted at 2x. Surfaces verticals that haven't moved -- lithography (+4), power-semis-vrm (+3), datacenter-reits (+2). Penalises the post-rally names (nuclear-SMR-uranium drops 4)."},"Jevons elasticity":{"category":"concept","full_name":"Jevons elasticity (D8)","explanation":"How much demand expands when the unit cost of inference falls. From W. S. Jevons' 19th-century coal-efficiency paradox: making coal use more efficient grew total coal demand. Applied here: cheaper tokens make software and hyperscaler demand expand non-linearly; commodity inputs (copper, grid power) don't follow the curve."},"Jevons":{"category":"concept","full_name":"Jevons paradox","explanation":"W. S. Jevons (1865): efficiency gains in a resource often increase aggregate consumption rather than reduce it. Applied to LLM inference: 10x cheaper tokens grows total token demand by more than 10x for elastic verticals (software, hyperscalers) and barely at all for inelastic ones (commodity inputs)."},"ABF":{"category":"concept","full_name":"ABF substrate (Ajinomoto Build-up Film)","explanation":"Resin film used as the dielectric layer in high-end IC substrates. Made exclusively by Ajinomoto (yes, the MSG company). The substrate sits between the chip die and the PCB. Demand surge from AI packaging has made FC-BGA + ABF a known supply pinch point alongside CoWoS and HBM."},"BT":{"category":"concept","full_name":"BT substrate (Bismaleimide Triazine)","explanation":"Lower-cost IC substrate material than ABF, used in memory packages, mobile SoCs, and lower-pin-count parts. Made by Mitsubishi Gas Chemical and a few others. Less of a bottleneck than ABF for AI packaging, but BT supply does flow to HBM-adjacent parts."}}</script>
<script>
(function(){
  var dataEl = document.getElementById('eight-axes-glossary');
  if (!dataEl) return;
  var GL = {};
  try { GL = JSON.parse(dataEl.textContent || '{}'); } catch (e) { return; }
  var tip = document.getElementById('eight-axes-glotip');
  if (!tip) return;
  function escapeHtml(s){
    return (s||'').replace(/[&<>"]/g,function(c){return ({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[c];});
  }
  function renderEntry(key, entry){
    var html = '<div class="eight-axes-glotip-cat">' + escapeHtml(entry.category||'') +
               (entry.exchange ? ' &middot; ' + escapeHtml(entry.exchange) : '') + '</div>';
    html += '<' + 'h4 class="eight-axes-glotip-h">' + escapeHtml(entry.full_name || key) +
            ' <span class="eight-axes-glotip-key">(' + escapeHtml(key) + ')</span></' + 'h4>';
    if (entry.explanation) html += '<div class="eight-axes-glotip-expl">' + escapeHtml(entry.explanation) + '</div>';
    if (entry.yahoo_url) {
      html += '<div class="eight-axes-glotip-link"><a href="' + escapeHtml(entry.yahoo_url) + '" target="_blank" rel="noopener">Yahoo Finance &rarr;</a></div>';
    }
    return html;
  }
  function positionTip(evt){
    tip.style.display = 'block';
    tip.classList.add('is-on');
    var vw = window.innerWidth, vh = window.innerHeight;
    var minW = 320, maxW = 420;
    var avail = Math.max(minW, Math.min(maxW, vw - 24));
    tip.style.maxWidth = avail + 'px';
    tip.style.width = 'auto';
    var tipW = tip.offsetWidth, tipH = tip.offsetHeight;
    var left, top;
    if (evt.clientX + 14 + tipW <= vw - 8) {
      left = evt.clientX + 14;
    } else if (evt.clientX - 14 - tipW >= 8) {
      left = evt.clientX - tipW - 14;
    } else {
      left = Math.max(8, Math.min(vw - tipW - 8, evt.clientX - tipW/2));
    }
    top = evt.clientY + 14;
    if (top + tipH > vh - 8) top = Math.max(8, evt.clientY - tipH - 14);
    if (top < 8) top = 8;
    tip.style.left = left + 'px';
    tip.style.top  = top  + 'px';
  }
  function show(html, evt){
    tip.innerHTML = html;
    positionTip(evt);
  }
  function hide(){
    tip.classList.remove('is-on');
    tip.style.display = 'none';
  }
  document.addEventListener('mouseover', function(e){
    var el = e.target.closest && e.target.closest('.eight-axes-glo');
    if (!el) return;
    var k = el.getAttribute('data-key');
    var entry = GL[k];
    if (!entry) return;
    show(renderEntry(k, entry), e);
  });
  document.addEventListener('mouseout', function(e){
    var to = e.relatedTarget;
    if (to && to.closest && (to.closest('.eight-axes-glo') || to.closest('#eight-axes-glotip'))) return;
    hide();
  });
  document.addEventListener('pointerdown', function(e){
    if (e.target.closest && e.target.closest('#eight-axes-glotip')) return;
    hide();
  });
})();
</script>
<!-- EIGHT_AXES_GLOSSARY_END -->



<script id="eight-axes-v2-data" type="application/json">{"defaults":{"m":3.0,"c":0.2,"B_usd_bn":2600},"ranges":{"m":{"min":0.25,"max":7.5,"lo95":0.5,"hi95":5,"default":3},"c":{"min":0.05,"max":0.525,"lo95":0.1,"hi95":0.35,"default":0.2},"B":{"min":1000,"max":6000,"lo95":2000,"hi95":4000,"default":2600}},"dim_keys":["d1_rallied","d2_headroom","d3_supply_elasticity","d4_value_capture","d5_substitution","d6_capex","d7_geopolitics","d8_jevons"],"dim_short":["D1","D2","D3","D4","D5","D6","D7","D8"],"dim_labels":["D1 Already rallied","D2 Premise headroom","D3 Supply elasticity","D4 Value capture","D5 Substitution","D6 Capex cycle","D7 Geopolitics","D8 Jevons demand"],"verticals":[{"slug":"hyperscalers-cloud","name":"Hyperscalers & Cloud","color":"#1f77b4","allocation_share":0.183028,"today_ai_revenue_usd_bn":146.64999999999998,"vertical_revenue_2025_usd_bn":419,"premise_gap_log_v1":0.6663,"d1_score":9.0476,"d3_score":0.731686,"d4_score":7.72,"d5_score":7.5,"d6_score":7.2766,"d7_score":8.0,"d8_score":10.0,"m_elasticity":2.0,"c_layer":0.282,"d2_score_v1":5.4762,"leave_one_out_deltas":[1.0,0.0,0.0,4.0,0.0,2.0,0.0,4.0],"v1_legacy_rank":8},{"slug":"copper-rare-earth","name":"Copper & Rare Earths","color":"#ff7f0e","allocation_share":0.027886,"today_ai_revenue_usd_bn":11.200000000000001,"vertical_revenue_2025_usd_bn":280.0,"premise_gap_log_v1":1.3569,"d1_score":8.5714,"d3_score":10.0,"d4_score":3.09,"d5_score":8.75,"d6_score":4.0606,"d7_score":10.0,"d8_score":0.0,"m_elasticity":0.5,"c_layer":0.143,"d2_score_v1":10.0,"leave_one_out_deltas":[2.0,2.0,2.0,-1.0,0.0,-1.0,0.0,-1.0],"v1_legacy_rank":16},{"slug":"industrial-gases-water","name":"Industrial Gases & Water (fab inputs + DC cooling/humidification)","color":"#2ca02c","allocation_share":0.020137,"today_ai_revenue_usd_bn":10.799999999999999,"vertical_revenue_2025_usd_bn":120,"premise_gap_log_v1":1.0677,"d1_score":10.0,"d3_score":6.829323,"d4_score":4.66,"d5_score":10.0,"d6_score":3.6701,"d7_score":10.0,"d8_score":0.0,"m_elasticity":0.5,"c_layer":0.19,"d2_score_v1":8.5714,"leave_one_out_deltas":[2.0,0.0,-1.0,0.0,1.0,-1.0,0.0,-1.0],"v1_legacy_rank":6},{"slug":"utilities-merchant-power","name":"Utilities & Merchant Power","color":"#d62728","allocation_share":0.065196,"today_ai_revenue_usd_bn":33.6,"vertical_revenue_2025_usd_bn":420.0,"premise_gap_log_v1":1.1076,"d1_score":6.1905,"d3_score":8.536627,"d4_score":1.47,"d5_score":8.75,"d6_score":5.8907,"d7_score":10.0,"d8_score":2.5,"m_elasticity":0.875,"c_layer":0.094,"d2_score_v1":9.2857,"leave_one_out_deltas":[-1.0,1.0,1.0,-2.0,-1.0,0.0,1.0,-1.0],"v1_legacy_rank":17},{"slug":"nuclear-smr-uranium","name":"Nuclear — SMR & Uranium","color":"#9467bd","allocation_share":0.031046,"today_ai_revenue_usd_bn":16.0,"vertical_revenue_2025_usd_bn":200,"premise_gap_log_v1":1.1076,"d1_score":1.4286,"d3_score":9.512245,"d4_score":0.0,"d5_score":10.0,"d6_score":5.8907,"d7_score":10.0,"d8_score":2.5,"m_elasticity":0.875,"c_layer":0.05,"d2_score_v1":9.2857,"leave_one_out_deltas":[-4.0,3.0,4.0,-1.0,2.0,0.0,3.0,-1.0],"v1_legacy_rank":21},{"slug":"foundry-logic","name":"Foundry — Logic","color":"#8c564b","allocation_share":0.108782,"today_ai_revenue_usd_bn":98.30999999999999,"vertical_revenue_2025_usd_bn":169.5,"premise_gap_log_v1":0.5459,"d1_score":7.1429,"d3_score":8.048765,"d4_score":5.06,"d5_score":8.75,"d6_score":5.2814,"d7_score":6.0,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.202,"d2_score_v1":0.9524,"leave_one_out_deltas":[2.0,-4.0,5.0,1.0,2.0,1.0,1.0,1.0],"v1_legacy_rank":4},{"slug":"datacenter-reits","name":"Datacenter REITs (Colocation + Wholesale)","color":"#e377c2","allocation_share":0.062823,"today_ai_revenue_usd_bn":53.550000000000004,"vertical_revenue_2025_usd_bn":119,"premise_gap_log_v1":0.6044,"d1_score":9.5238,"d3_score":6.829323,"d4_score":4.52,"d5_score":3.75,"d6_score":10.0,"d7_score":4.6666,"d8_score":2.5,"m_elasticity":0.875,"c_layer":0.186,"d2_score_v1":4.0476,"leave_one_out_deltas":[6.0,-1.0,3.0,-1.0,-2.0,8.0,-1.0,-1.0],"v1_legacy_rank":2},{"slug":"hbm-dram","name":"HBM & DRAM","color":"#7f7f7f","allocation_share":0.014807,"today_ai_revenue_usd_bn":11.4,"vertical_revenue_2025_usd_bn":38.0,"premise_gap_log_v1":0.7062,"d1_score":1.9048,"d3_score":5.609774,"d4_score":5.26,"d5_score":10.0,"d6_score":8.3949,"d7_score":2.6666,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.208,"d2_score_v1":6.6667,"leave_one_out_deltas":[-2.0,2.0,0.0,1.0,3.0,3.0,-4.0,1.0],"v1_legacy_rank":19},{"slug":"model-labs-software","name":"Inference-Consuming Software / App Layer","color":"#bcbd22","allocation_share":0.074259,"today_ai_revenue_usd_bn":59.49999999999999,"vertical_revenue_2025_usd_bn":170,"premise_gap_log_v1":0.6663,"d1_score":6.6667,"d3_score":0.0,"d4_score":4.18,"d5_score":3.75,"d6_score":4.6153,"d7_score":10.0,"d8_score":10.0,"m_elasticity":2.0,"c_layer":0.175,"d2_score_v1":5.4762,"leave_one_out_deltas":[1.0,0.0,-6.0,-1.0,-3.0,0.0,1.0,6.0],"v1_legacy_rank":13},{"slug":"power-semis-vrm","name":"Power Semiconductors — VRM / Vertical Power Delivery","color":"#17becf","allocation_share":0.022923,"today_ai_revenue_usd_bn":16.214000000000002,"vertical_revenue_2025_usd_bn":73.7,"premise_gap_log_v1":0.791,"d1_score":8.0952,"d3_score":1.951235,"d4_score":4.08,"d5_score":6.25,"d6_score":3.0436,"d7_score":10.0,"d8_score":2.5,"m_elasticity":0.875,"c_layer":0.172,"d2_score_v1":7.619,"leave_one_out_deltas":[4.0,4.0,-3.0,0.0,-1.0,-2.0,1.0,-2.0],"v1_legacy_rank":14},{"slug":"eda-ip","name":"EDA & Silicon IP","color":"#aec7e8","allocation_share":0.011192,"today_ai_revenue_usd_bn":9.54,"vertical_revenue_2025_usd_bn":21.2,"premise_gap_log_v1":0.6044,"d1_score":4.7619,"d3_score":0.0,"d4_score":10.0,"d5_score":8.75,"d6_score":0.0,"d7_score":10.0,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.35,"d2_score_v1":4.0476,"leave_one_out_deltas":[0.0,0.0,-5.0,3.0,3.0,-5.0,1.0,2.0],"v1_legacy_rank":12},{"slug":"electrical-equipment","name":"Electrical Equipment (Datacenter Power Distribution)","color":"#ffbb78","allocation_share":0.006472,"today_ai_revenue_usd_bn":4.32,"vertical_revenue_2025_usd_bn":24.0,"premise_gap_log_v1":0.849,"d1_score":2.8571,"d3_score":4.146402,"d4_score":3.1,"d5_score":6.25,"d6_score":4.7138,"d7_score":10.0,"d8_score":2.5,"m_elasticity":0.875,"c_layer":0.143,"d2_score_v1":8.0952,"leave_one_out_deltas":[-3.0,5.0,0.0,-1.0,0.0,0.0,1.0,-2.0],"v1_legacy_rank":18},{"slug":"gas-turbines","name":"Gas Turbines","color":"#98df8a","allocation_share":0.018599,"today_ai_revenue_usd_bn":16.61,"vertical_revenue_2025_usd_bn":30.2,"premise_gap_log_v1":0.5578,"d1_score":4.2857,"d3_score":9.024382,"d4_score":4.1,"d5_score":3.75,"d6_score":4.7453,"d7_score":10.0,"d8_score":2.5,"m_elasticity":0.875,"c_layer":0.173,"d2_score_v1":2.381,"leave_one_out_deltas":[-1.0,-1.0,4.0,0.0,-3.0,1.0,3.0,-2.0],"v1_legacy_rank":11},{"slug":"lithography","name":"Lithography","color":"#ff9896","allocation_share":0.021119,"today_ai_revenue_usd_bn":19.88,"vertical_revenue_2025_usd_bn":28.4,"premise_gap_log_v1":0.5051,"d1_score":7.619,"d3_score":4.146402,"d4_score":9.48,"d5_score":8.75,"d6_score":2.6127,"d7_score":2.3334,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.334,"d2_score_v1":0.4762,"leave_one_out_deltas":[2.0,-7.0,0.0,4.0,3.0,-4.0,-5.0,0.0],"v1_legacy_rank":1},{"slug":"power-transformers-grid","name":"Power Transformers & Grid","color":"#c5b0d5","allocation_share":0.00955,"today_ai_revenue_usd_bn":7.0,"vertical_revenue_2025_usd_bn":28.0,"premise_gap_log_v1":0.7553,"d1_score":0.0,"d3_score":7.56101,"d4_score":1.88,"d5_score":6.25,"d6_score":4.7884,"d7_score":10.0,"d8_score":2.5,"m_elasticity":0.875,"c_layer":0.106,"d2_score_v1":7.1429,"leave_one_out_deltas":[-8.0,3.0,1.0,-3.0,-2.0,1.0,2.0,-3.0],"v1_legacy_rank":20},{"slug":"networking-switching","name":"Networking — Switching, Retimers, DPUs","color":"#c49c94","allocation_share":0.020324,"today_ai_revenue_usd_bn":18.150000000000002,"vertical_revenue_2025_usd_bn":33.0,"premise_gap_log_v1":0.5578,"d1_score":5.2381,"d3_score":1.219549,"d4_score":6.3,"d5_score":6.25,"d6_score":2.3085,"d7_score":10.0,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.239,"d2_score_v1":2.381,"leave_one_out_deltas":[-1.0,-3.0,-3.0,0.0,0.0,-3.0,3.0,0.0],"v1_legacy_rank":9},{"slug":"wfe-deposition-etch","name":"WFE: Deposition, Etch, Implant, Metrology","color":"#f7b6d2","allocation_share":0.071257,"today_ai_revenue_usd_bn":63.635000000000005,"vertical_revenue_2025_usd_bn":115.7,"premise_gap_log_v1":0.5578,"d1_score":5.7143,"d3_score":1.951235,"d4_score":4.7,"d5_score":8.75,"d6_score":2.5598,"d7_score":5.4286,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.191,"d2_score_v1":2.381,"leave_one_out_deltas":[2.0,-1.0,-2.0,0.0,2.0,0.0,-2.0,0.0],"v1_legacy_rank":5},{"slug":"ai-accelerators","name":"AI Accelerators (GPUs/ASICs/TPUs)","color":"#c7c7c7","allocation_share":0.173539,"today_ai_revenue_usd_bn":170.0,"vertical_revenue_2025_usd_bn":200,"premise_gap_log_v1":0.4653,"d1_score":3.3333,"d3_score":5.121912,"d4_score":5.9,"d5_score":1.25,"d6_score":4.5414,"d7_score":9.5714,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.227,"d2_score_v1":0.0,"leave_one_out_deltas":[-1.0,-3.0,1.0,2.0,-3.0,0.0,2.0,1.0],"v1_legacy_rank":3},{"slug":"datacenter-cooling-thermal","name":"Datacenter Cooling — Thermal Management","color":"#dbdb8d","allocation_share":0.007083,"today_ai_revenue_usd_bn":6.325,"vertical_revenue_2025_usd_bn":11.5,"premise_gap_log_v1":0.5578,"d1_score":2.381,"d3_score":2.926853,"d4_score":1.23,"d5_score":7.5,"d6_score":4.7659,"d7_score":10.0,"d8_score":2.5,"m_elasticity":0.875,"c_layer":0.087,"d2_score_v1":2.381,"leave_one_out_deltas":[-1.0,0.0,-1.0,-4.0,1.0,0.0,2.0,-1.0],"v1_legacy_rank":7},{"slug":"advanced-packaging","name":"Advanced Packaging (OSAT, substrates, FOPLP, backend test)","color":"#9edae5","allocation_share":0.021841,"today_ai_revenue_usd_bn":17.5,"vertical_revenue_2025_usd_bn":50.0,"premise_gap_log_v1":0.6663,"d1_score":3.8095,"d3_score":4.146402,"d4_score":2.35,"d5_score":3.75,"d6_score":7.0401,"d7_score":1.4286,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.121,"d2_score_v1":5.4762,"leave_one_out_deltas":[0.0,0.0,0.0,-1.0,-2.0,0.0,-6.0,0.0],"v1_legacy_rank":15},{"slug":"ic-substrates","name":"IC Substrates (ABF / FC-BGA / BT)","color":"#393b79","allocation_share":0.008736,"today_ai_revenue_usd_bn":7.0,"vertical_revenue_2025_usd_bn":20.0,"premise_gap_log_v1":0.6663,"d1_score":0.9524,"d3_score":6.09753,"d4_score":1.82,"d5_score":5.0,"d6_score":5.6524,"d7_score":0.0,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.105,"d2_score_v1":5.4762,"leave_one_out_deltas":[0.0,0.0,0.0,0.0,0.0,0.0,-3.0,0.0],"v1_legacy_rank":10},{"slug":"silicon-photonics-optics","name":"Silicon Photonics & Datacom Optics","color":"#637939","allocation_share":0.0194,"today_ai_revenue_usd_bn":17.325000000000003,"vertical_revenue_2025_usd_bn":31.5,"premise_gap_log_v1":0.5578,"d1_score":0.4762,"d3_score":2.926853,"d4_score":1.29,"d5_score":0.0,"d6_score":5.4278,"d7_score":6.6666,"d8_score":5.0,"m_elasticity":1.25,"c_layer":0.089,"d2_score_v1":2.381,"leave_one_out_deltas":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"v1_legacy_rank":22}]}</script>

<script>
(function () {
  if (window.eightAxesV2) { return; } // idempotent

  var rawEl = document.getElementById('eight-axes-v2-data');
  var data;
  try {
    data = JSON.parse(rawEl.textContent);
  } catch (err) {
    console.error('[eight-axes-v2] failed to parse embedded JSON', err);
    return;
  }

  var DIM_KEYS = ['d1_score', 'd2_score', 'd3_score', 'd4_score', 'd5_score', 'd6_score', 'd7_score', 'd8_score'];

  // ---- Formatters --------------------------------------------------------
  var fmt = {
    dollars: function (usdBn) {
      if (usdBn == null || isNaN(usdBn)) return '';
      var abs = Math.abs(usdBn);
      if (abs >= 1000) {
        return '$' + (usdBn / 1000).toFixed(2) + 'T';
      }
      if (abs >= 100) {
        return '$' + usdBn.toFixed(1) + 'B';
      }
      if (abs >= 10) {
        return '$' + usdBn.toFixed(1) + 'B';
      }
      return '$' + usdBn.toFixed(2) + 'B';
    },
    pct: function (c) {
      if (c == null || isNaN(c)) return '';
      return (c * 100).toFixed(1) + '%';
    },
    mult: function (m) {
      if (m == null || isNaN(m)) return '';
      return m.toFixed(2) + '×';
    },
    int: function (x) {
      if (x == null || isNaN(x)) return '';
      return Math.round(x).toLocaleString('en-US');
    }
  };

  // ---- Helpers -----------------------------------------------------------
  // Average-rank tiebreak (scipy rankdata method='average'); ranks ascending,
  // returned 1-indexed. Equal values share the average rank index.
  function avgRankAsc(values) {
    var n = values.length;
    var idx = values.map(function (v, i) { return i; });
    idx.sort(function (a, b) { return values[a] - values[b]; });
    var ranks = new Array(n);
    var i = 0;
    while (i < n) {
      var j = i;
      while (j + 1 < n && values[idx[j + 1]] === values[idx[i]]) { j++; }
      var avg = (i + j) / 2 + 1; // 1-indexed average position
      for (var k = i; k <= j; k++) { ranks[idx[k]] = avg; }
      i = j + 1;
    }
    return ranks;
  }

  // ---- Compute -----------------------------------------------------------
  function compute(state) {
    var m = state.m, c = state.c, B = state.B;
    var verticals = data.verticals;
    var n = verticals.length;
    var EPS = 1e-6;

    // Methodology v2.1: per-vertical heterogeneity via m_elasticity (D8-derived)
    // and c_layer (D4-derived). Raw weights mix global c with per-vertical c_layer
    // and raise global m to a per-vertical elasticity, then renormalize so the
    // sum of implied dollars across all verticals equals the headline pool B*m*c.
    var implied = new Array(n);
    var gapRatio = new Array(n);
    var gapLog = new Array(n);
    var hasWarn = false;

    var raw = new Array(n);
    var rawSum = 0;
    for (var i = 0; i < n; i++) {
      var v = verticals[i];
      var cLayer = (v.c_layer != null) ? v.c_layer : c;
      var mEl = (v.m_elasticity != null) ? v.m_elasticity : 1.0;
      var cBlend = 0.5 * c + 0.5 * cLayer;
      var r = v.allocation_share * B * cBlend * Math.pow(m, mEl);
      raw[i] = r;
      rawSum += r;
    }
    var poolTotal = B * m * c;
    var norm = (rawSum > 0) ? (poolTotal / rawSum) : 0;
    for (var i = 0; i < n; i++) {
      var v = verticals[i];
      var imp = raw[i] * norm;
      implied[i] = imp;
      var today = Math.max(v.today_ai_revenue_usd_bn, EPS);
      var ratio = Math.max(imp / today, EPS);
      gapRatio[i] = ratio;
      gapLog[i] = Math.log(ratio); // natural log
      if (ratio < 1.0) { hasWarn = true; }
    }

    // Round to 3 decimals before ranking so floating-point noise does not
    // create spurious non-ties (matches v1 scipy.rankdata behaviour on the
    // rounded gap-log values stored as premise_gap_log_v1; verified 22/22).
    var gapLogForRank = gapLog.map(function (x) { return Math.round(x * 1000) / 1000; });
    var ranks = avgRankAsc(gapLogForRank); // 1..n
    var d2 = new Array(n);
    for (var i2 = 0; i2 < n; i2++) {
      d2[i2] = 10 * (ranks[i2] - 1) / (n - 1);
    }

    var perVertical = new Array(n);
    var compEqual = new Array(n);
    var compPremise = new Array(n);
    var compContrarian = new Array(n);

    for (var i3 = 0; i3 < n; i3++) {
      var v = verticals[i3];
      var s = {
        d1_score: v.d1_score,
        d2_score: d2[i3],
        d3_score: v.d3_score,
        d4_score: v.d4_score,
        d5_score: v.d5_score,
        d6_score: v.d6_score,
        d7_score: v.d7_score,
        d8_score: v.d8_score
      };
      var sum = s.d1_score + s.d2_score + s.d3_score + s.d4_score
              + s.d5_score + s.d6_score + s.d7_score + s.d8_score;
      var eq = sum / 8;
      var pr = (2 * s.d2_score + s.d1_score + s.d3_score + s.d4_score
              + s.d5_score + s.d6_score + s.d7_score + s.d8_score) / 9;
      var ct = (2 * s.d1_score + s.d2_score + s.d3_score + s.d4_score
              + s.d5_score + s.d6_score + s.d7_score + s.d8_score) / 9;
      compEqual[i3] = eq;
      compPremise[i3] = pr;
      compContrarian[i3] = ct;
      perVertical[i3] = {
        slug: v.slug,
        name: v.name,
        color: v.color,
        implied_2035_usd_bn: implied[i3],
        gap_ratio: gapRatio[i3],
        gap_log: gapLog[i3],
        d2_score: d2[i3],
        scores8: [
          s.d1_score, s.d2_score, s.d3_score, s.d4_score,
          s.d5_score, s.d6_score, s.d7_score, s.d8_score
        ],
        composite_equal: eq,
        composite_premise: pr,
        composite_contrarian: ct,
        rank_equal: 0,
        rank_premise: 0,
        rank_contrarian: 0,
        delta_premise: 0,
        delta_contrarian: 0,
        v1_legacy_delta: null,
        _v1_legacy_rank: (v.v1_legacy_rank != null) ? v.v1_legacy_rank : null
      };
    }

    // Rank desc; tiebreak alphabetical by slug.
    function rankDesc(values) {
      var order = perVertical.map(function (_, i) { return i; });
      order.sort(function (a, b) {
        if (values[b] !== values[a]) return values[b] - values[a];
        return perVertical[a].slug < perVertical[b].slug ? -1 : 1;
      });
      var r = new Array(perVertical.length);
      for (var k = 0; k < order.length; k++) {
        r[order[k]] = k + 1;
      }
      return r;
    }

    var rankEq = rankDesc(compEqual);
    var rankPr = rankDesc(compPremise);
    var rankCt = rankDesc(compContrarian);

    for (var i4 = 0; i4 < n; i4++) {
      perVertical[i4].rank_equal = rankEq[i4];
      perVertical[i4].rank_premise = rankPr[i4];
      perVertical[i4].rank_contrarian = rankCt[i4];
      perVertical[i4].delta_premise = rankEq[i4] - rankPr[i4];
      perVertical[i4].delta_contrarian = rankEq[i4] - rankCt[i4];
      if (perVertical[i4]._v1_legacy_rank != null) {
        perVertical[i4].v1_legacy_delta = perVertical[i4]._v1_legacy_rank - rankEq[i4];
      }
    }

    var top3 = perVertical.slice().sort(function (a, b) {
      return b.implied_2035_usd_bn - a.implied_2035_usd_bn;
    }).slice(0, 3);

    var d2TopIdx = 0, d2BotIdx = 0;
    for (var i5 = 1; i5 < n; i5++) {
      if (perVertical[i5].d2_score > perVertical[d2TopIdx].d2_score) d2TopIdx = i5;
      if (perVertical[i5].d2_score < perVertical[d2BotIdx].d2_score) d2BotIdx = i5;
    }

    return {
      state: { m: m, c: c, B: B },
      pool_usd_bn: B * m * c,
      uplift_usd_bn: B * m,
      bottom_d2_warning: hasWarn,
      per_vertical: perVertical,
      top3_by_implied: top3,
      d2_top: perVertical[d2TopIdx].slug,
      d2_bottom: perVertical[d2BotIdx].slug
    };
  }

  // ---- State + pub/sub ---------------------------------------------------
  var state = {
    m: data.defaults.m,
    c: data.defaults.c,
    B: data.defaults.B_usd_bn
  };

  function set(partial) {
    if (partial && typeof partial === 'object') {
      for (var k in partial) {
        if (Object.prototype.hasOwnProperty.call(partial, k)) {
          state[k] = partial[k];
        }
      }
    }
    dispatch();
  }

  function dispatch() {
    var detail = compute(state);
    document.dispatchEvent(new CustomEvent('eight-axes-v2:state', { detail: detail }));
  }

  function subscribe(fn) {
    var rafHandle = null;
    var latest = null;
    function handler(e) {
      latest = e.detail;
      if (rafHandle != null) return;
      rafHandle = requestAnimationFrame(function () {
        rafHandle = null;
        try { fn(latest); } catch (err) { console.error('[eight-axes-v2] subscriber error', err); }
      });
    }
    document.addEventListener('eight-axes-v2:state', handler);
    return function () {
      document.removeEventListener('eight-axes-v2:state', handler);
      if (rafHandle != null) {
        cancelAnimationFrame(rafHandle);
        rafHandle = null;
      }
    };
  }

  // ---- Built-in subscriber: walk [data-axes-v2] -------------------------
  function paint(detail) {
    var nodes = document.querySelectorAll('[data-axes-v2]');
    for (var i = 0; i < nodes.length; i++) {
      var el = nodes[i];
      var key = el.getAttribute('data-axes-v2');
      var text = null;
      switch (key) {
        case 'pool':
          text = fmt.dollars(detail.pool_usd_bn); break;
        case 'uplift':
          text = fmt.dollars(detail.uplift_usd_bn); break;
        case 'm_display':
          text = fmt.mult(detail.state.m); break;
        case 'm_pretty':
          // human-readable "3x"-style without trailing decimals when integer
          var mv = detail.state.m;
          text = (Math.abs(mv - Math.round(mv)) < 1e-6)
            ? (Math.round(mv) + '×')
            : (mv.toFixed(2) + '×');
          break;
        case 'c_display':
          text = fmt.pct(detail.state.c); break;
        case 'B_display':
          text = fmt.dollars(detail.state.B); break;
        case 'top3_name': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var v = detail.top3_by_implied[rank - 1];
          if (v) {
            // Preserve any inner glossary span — only update the inner glossary
            // span's textContent if present; else replace own textContent.
            var glo = el.querySelector('.eight-axes-glo');
            if (glo) {
              glo.textContent = v.slug;
              glo.setAttribute('data-key', v.slug);
              text = null; // skip outer assignment
            } else {
              text = v.name;
            }
          }
          break;
        }
        case 'top3_revenue': {
          var rank2 = parseInt(el.getAttribute('data-rank') || '1', 10);
          var v2 = detail.top3_by_implied[rank2 - 1];
          if (v2) {
            // Preserve inner <strong> bold if present
            var strong = el.querySelector('strong');
            var s = fmt.dollars(v2.implied_2035_usd_bn);
            if (strong) { strong.textContent = s; text = null; }
            else { text = s; }
          }
          break;
        }

        // ---- Wave 5 keys -------------------------------------------------------

        case 'd2_top_slug': {
          var glo = el.querySelector('.eight-axes-glo');
          if (glo) {
            glo.textContent = detail.d2_top;
            glo.setAttribute('data-key', detail.d2_top);
            text = null;
          } else { text = detail.d2_top; }
          break;
        }
        case 'd2_bottom_slug': {
          var glo = el.querySelector('.eight-axes-glo');
          if (glo) {
            glo.textContent = detail.d2_bottom;
            glo.setAttribute('data-key', detail.d2_bottom);
            text = null;
          } else { text = detail.d2_bottom; }
          break;
        }

        case 'pick_top_name': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var sorted = detail.per_vertical.slice().sort(function (a, b) { return a.rank_equal - b.rank_equal; });
          var v = sorted[rank - 1];
          if (v) {
            var glo = el.querySelector('.eight-axes-glo');
            if (glo) {
              glo.textContent = v.slug;
              glo.setAttribute('data-key', v.slug);
              text = null;
            } else { text = v.slug; }
          }
          break;
        }
        case 'pick_top_score': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var sorted = detail.per_vertical.slice().sort(function (a, b) { return a.rank_equal - b.rank_equal; });
          var v = sorted[rank - 1];
          if (v) { text = v.composite_equal.toFixed(2); }
          break;
        }
        case 'pick_bot_name': {
          var rank = parseInt(el.getAttribute('data-rank') || '18', 10);
          var sorted = detail.per_vertical.slice().sort(function (a, b) { return a.rank_equal - b.rank_equal; });
          var v = sorted[rank - 1];
          if (v) {
            var glo = el.querySelector('.eight-axes-glo');
            if (glo) {
              glo.textContent = v.slug;
              glo.setAttribute('data-key', v.slug);
              text = null;
            } else { text = v.slug; }
          }
          break;
        }
        case 'pick_bot_score': {
          var rank = parseInt(el.getAttribute('data-rank') || '18', 10);
          var sorted = detail.per_vertical.slice().sort(function (a, b) { return a.rank_equal - b.rank_equal; });
          var v = sorted[rank - 1];
          if (v) { text = v.composite_equal.toFixed(2); }
          break;
        }

        case 'tilt_premise_gainer_name': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var gainers = detail.per_vertical.slice()
            .filter(function (v) { return v.delta_premise > 0; })
            .sort(function (a, b) { return b.delta_premise - a.delta_premise; });
          var v = gainers[rank - 1];
          if (v) {
            var glo = el.querySelector('.eight-axes-glo');
            if (glo) {
              glo.textContent = v.slug;
              glo.setAttribute('data-key', v.slug);
              text = null;
            } else { text = v.slug; }
          }
          break;
        }
        case 'tilt_premise_gainer_chip': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var gainers = detail.per_vertical.slice()
            .filter(function (v) { return v.delta_premise > 0; })
            .sort(function (a, b) { return b.delta_premise - a.delta_premise; });
          var v = gainers[rank - 1];
          if (v) { text = '+' + Math.round(v.delta_premise); }
          break;
        }
        case 'tilt_premise_loser_name': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var losers = detail.per_vertical.slice()
            .filter(function (v) { return v.delta_premise < 0; })
            .sort(function (a, b) { return a.delta_premise - b.delta_premise; });
          var v = losers[rank - 1];
          if (v) {
            var glo = el.querySelector('.eight-axes-glo');
            if (glo) {
              glo.textContent = v.slug;
              glo.setAttribute('data-key', v.slug);
              text = null;
            } else { text = v.slug; }
          }
          break;
        }
        case 'tilt_premise_loser_chip': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var losers = detail.per_vertical.slice()
            .filter(function (v) { return v.delta_premise < 0; })
            .sort(function (a, b) { return a.delta_premise - b.delta_premise; });
          var v = losers[rank - 1];
          if (v) { text = '-' + Math.round(Math.abs(v.delta_premise)); }
          break;
        }

        case 'tilt_contrarian_gainer_name': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var gainers = detail.per_vertical.slice()
            .filter(function (v) { return v.delta_contrarian > 0; })
            .sort(function (a, b) { return b.delta_contrarian - a.delta_contrarian; });
          var v = gainers[rank - 1];
          if (v) {
            var glo = el.querySelector('.eight-axes-glo');
            if (glo) {
              glo.textContent = v.slug;
              glo.setAttribute('data-key', v.slug);
              text = null;
            } else { text = v.slug; }
          }
          break;
        }
        case 'tilt_contrarian_gainer_chip': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var gainers = detail.per_vertical.slice()
            .filter(function (v) { return v.delta_contrarian > 0; })
            .sort(function (a, b) { return b.delta_contrarian - a.delta_contrarian; });
          var v = gainers[rank - 1];
          if (v) { text = '+' + Math.round(v.delta_contrarian); }
          break;
        }
        case 'tilt_contrarian_loser_name': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var losers = detail.per_vertical.slice()
            .filter(function (v) { return v.delta_contrarian < 0; })
            .sort(function (a, b) { return a.delta_contrarian - b.delta_contrarian; });
          var v = losers[rank - 1];
          if (v) {
            var glo = el.querySelector('.eight-axes-glo');
            if (glo) {
              glo.textContent = v.slug;
              glo.setAttribute('data-key', v.slug);
              text = null;
            } else { text = v.slug; }
          }
          break;
        }
        case 'tilt_contrarian_loser_chip': {
          var rank = parseInt(el.getAttribute('data-rank') || '1', 10);
          var losers = detail.per_vertical.slice()
            .filter(function (v) { return v.delta_contrarian < 0; })
            .sort(function (a, b) { return a.delta_contrarian - b.delta_contrarian; });
          var v = losers[rank - 1];
          if (v) { text = '-' + Math.round(Math.abs(v.delta_contrarian)); }
          break;
        }

        case 'nuclear_v1_delta': {
          var nuc = detail.per_vertical.find(function (v) { return v.slug === 'nuclear-smr-uranium'; });
          if (nuc && nuc.v1_legacy_delta != null) {
            var d = Math.round(nuc.v1_legacy_delta);
            text = (d >= 0 ? '+' : '') + d;
          }
          break;
        }
        case 'nuclear_v2_rank': {
          var nuc = detail.per_vertical.find(function (v) { return v.slug === 'nuclear-smr-uranium'; });
          if (nuc) { text = '#' + nuc.rank_equal; }
          break;
        }

        default:
          // Unknown key: leave alone for other waves to claim.
          break;
      }
      if (text != null) {
        el.textContent = text;
      }
    }
    // Warn-flag class on body + inline banner inside slider card
    if (document.body) {
      var sliderCard = document.querySelector('.eight-axes-v2-slider-card');
      if (detail.bottom_d2_warning) {
        document.body.classList.add('is-warn');
        if (sliderCard && !sliderCard.querySelector('.eight-axes-v2-warn-banner')) {
          var banner = document.createElement('div');
          banner.className = 'eight-axes-v2-warn-banner';
          banner.textContent = '⚠ Some verticals’ today-revenue already exceeds their implied 2035 share — premise is below their break-even.';
          sliderCard.appendChild(banner);
        }
      } else {
        document.body.classList.remove('is-warn');
        if (sliderCard) {
          var existingBanner = sliderCard.querySelector('.eight-axes-v2-warn-banner');
          if (existingBanner) existingBanner.parentNode.removeChild(existingBanner);
        }
      }
    }
  }

  // ---- Leave-One-Out helper ----------------------------------------------
  // leaveOneOut(perVerticalArray) -> { slug: deltas[8] }
  // deltas[k] = rank_equal_dropping_dim_k - rank_equal_full (positive = rank worsens).
  // Dropping dim k: composite_without_k = (sum(scores8) - scores8[k]) / 7, ranked desc.
  function leaveOneOut(perVertical) {
    var nv = perVertical.length;
    var slugs = perVertical.map(function (v) { return v.slug; });
    var result = {};
    for (var k = 0; k < 8; k++) {
      // Recompute composite for all verticals with dim k dropped
      var compWithout = new Array(nv);
      for (var i = 0; i < nv; i++) {
        var s = perVertical[i].scores8;
        var tot = 0;
        for (var d = 0; d < 8; d++) { tot += s[d]; }
        compWithout[i] = (tot - s[k]) / 7;
      }
      // Rank desc, tiebreak alphabetical by slug
      var order = perVertical.map(function (_, i) { return i; });
      order.sort(function (a, b) {
        if (compWithout[b] !== compWithout[a]) return compWithout[b] - compWithout[a];
        return slugs[a] < slugs[b] ? -1 : 1;
      });
      var rankWithout = new Array(nv);
      for (var r = 0; r < order.length; r++) { rankWithout[order[r]] = r + 1; }
      // Accumulate per-slug delta for dim k
      for (var j = 0; j < nv; j++) {
        var slug = slugs[j];
        if (!result[slug]) { result[slug] = new Array(8).fill(0); }
        result[slug][k] = rankWithout[j] - perVertical[j].rank_equal;
      }
    }
    return result;
  }

  // ---- Public API --------------------------------------------------------
  window.eightAxesV2 = {
    state: state,
    data: data,
    compute: compute,
    leaveOneOut: leaveOneOut,
    set: set,
    subscribe: subscribe,
    fmt: fmt
  };

  // Methodology v2.1 sanity log: per-vertical elasticity + capture blend.
  // The new methodology intentionally diverges from v1 d2_score_v1 values at
  // defaults, so we no longer assert "match within 0.5"; instead we log a
  // one-line summary so the change is visible in the console.
  (function logMethodologyV21() {
    var detail = compute({ m: data.defaults.m, c: data.defaults.c, B: data.defaults.B_usd_bn });
    var poolT = (detail.pool_usd_bn / 1000);
    var top3 = detail.top3_by_implied.map(function (v) {
      return v.slug + ' $' + v.implied_2035_usd_bn.toFixed(1) + 'B';
    });
    var rank1 = detail.per_vertical.slice().sort(function (a, b) {
      return a.rank_equal - b.rank_equal;
    })[0];
    console.log(
      '[eight-axes-v2] methodology v2.1 (per-vertical elasticity + capture blend)\n' +
      '  pool at defaults: $' + poolT.toFixed(2) + 'T\n' +
      '  top-3 by implied: [' + top3.join(', ') + ']\n' +
      '  rank #1 at defaults: ' + (rank1 ? rank1.slug : 'n/a')
    );
  })();

  // Subscribe built-in painter and dispatch initial state.
  subscribe(paint);

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', dispatch, { once: true });
  } else {
    dispatch();
  }
})();
</script>


<div class="eight-axes-tldr eight-axes-tldr--3up">
  <div class="eight-axes-hero-stat">
    <div class="eight-axes-hero-num"><span data-axes-v2="pool">$1.56T</span></div>
    <div class="eight-axes-hero-label">Estimated vendor revenue pool by ~2035 (multiplier &middot; mean capture &middot; BEA baseline). Per-vertical implied dollars derived from per-vertical elasticity and capture; see methodology below. Currently <span data-axes-v2="m_pretty">3&times;</span> &middot; <span data-axes-v2="c_display">20.0%</span> &middot; <span data-axes-v2="B_display">$2.6T</span>.</div>
  </div>
  <div class="eight-axes-hero-stat">
    <div class="eight-axes-hero-num"><span data-axes-v2="m_display">3.00&times;</span></div>
    <div class="eight-axes-hero-label">Premise: AI's GDP uplift vs the prior compute wave</div>
  </div>
  <div class="eight-axes-hero-stat">
    <div class="eight-axes-hero-num">22</div>
    <div class="eight-axes-hero-label">Verticals scored, from chips to power to cooling</div>
  </div>
</div>
</div>

<details class="eight-axes-more">
<summary>Why v2 exists (v1 retro)</summary>
<div class="eight-axes-more-body">

    <p><a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a> combined three numbers: 3-year <span class="eight-axes-glo" data-key="total return">total return</span>, NVDA <span class="eight-axes-glo" data-key="beta">beta</span>, current AI-revenue share. <span class="eight-axes-glo" data-key="Z-score">Z-score</span> two, subtract, call the result a “gap,” sort 22 verticals into <span class="eight-axes-glo" data-key="priced-in">priced-in</span> / fair / lagging. Three critique passes broke it: the <span class="eight-axes-glo" data-key="beta">beta</span> term added nothing, <span class="eight-axes-glo" data-key="tercile">tercile</span> cutoffs flipped on n=22, and 11 of 22 labels swapped sides when the AI-share prior shifted 10 points. <!-- source: analysis/critique_methodology.md, analysis/_notes_ranking.md --></p>

    <p>v1 also had no long-run pool. It could not separate “already monetised” from “yet to be monetised” because it never anchored the pie. v2 pins a fixed economic premise, scores each <span class="eight-axes-glo" data-key="vertical">vertical</span> on 8 orthogonal axes, and treats the composite as an aggregate, not an oracle.</p>

  </div>
</details>

<style>
.eight-axes-v2-slider-card {
  background: #ecfeff;
  border-left: 4px solid #0891b2;
  border-radius: 4px;
  padding: 16px 20px;
  margin: 20px 0 24px;
}
.eight-axes-v2-slider-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.eight-axes-v2-slider-card-title {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 11.5px;
  font-weight: 700;
  color: #0891b2;
}
.eight-axes-v2-slider-card-hint {
  font-size: 11.5px;
  color: #92560a;
  font-style: italic;
}
.eight-axes-v2-slider {
  display: grid;
  grid-template-columns: 200px 90px 1fr;
  column-gap: 16px;
  row-gap: 4px;
  align-items: center;
  padding: 10px 0;
  border-top: 1px solid #f1d9a8;
}
.eight-axes-v2-slider:first-of-type { border-top: 0; }
.eight-axes-v2-slider-label {
  font-size: 13.5px;
  color: #1a1a1a;
  cursor: pointer;
  user-select: none;
}
.eight-axes-v2-slider-label code {
  background: rgba(180, 83, 9, 0.08);
  padding: 0 4px;
  border-radius: 3px;
  font-size: 12px;
}
.eight-axes-v2-slider-value {
  font-size: 16px;
  font-weight: 700;
  color: #0891b2;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.eight-axes-v2-slider-track-wrap {
  position: relative;
  padding: 14px 0 22px;
}
.eight-axes-v2-slider-track {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 4px;
  background: #f1d9a8;
  border-radius: 2px;
  outline: none;
  margin: 0;
  position: relative;
  z-index: 2;
}
.eight-axes-v2-slider-track::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px; height: 16px; border-radius: 50%;
  background: #d97706;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.25);
  cursor: pointer;
}
.eight-axes-v2-slider-track::-moz-range-thumb {
  width: 16px; height: 16px; border-radius: 50%;
  background: #d97706;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.25);
  cursor: pointer;
}
.eight-axes-v2-slider-ticks {
  position: absolute;
  left: 0; right: 0;
  top: 6px;
  height: 8px;
  pointer-events: none;
  z-index: 1;
}
.eight-axes-v2-slider-ticks .tick {
  position: absolute;
  top: 2px;
  width: 1px;
  height: 4px;
  background: #c8c8be;
  transform: translateX(-50%);
}
.eight-axes-v2-slider-ticks .tick-lo95,
.eight-axes-v2-slider-ticks .tick-hi95 {
  background: #666;
  width: 1px;
  height: 6px;
  top: 0;
}
.eight-axes-v2-slider-ticks .tick-default {
  background: transparent;
  width: 0; height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid #0891b2;
  top: -6px;
}
.eight-axes-v2-slider-ticklabels {
  position: absolute;
  left: 0; right: 0;
  top: 24px;
  height: 14px;
  pointer-events: none;
  font-size: 11px;
  color: #666;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}
.eight-axes-v2-slider-ticklabels span {
  position: absolute;
  transform: translateX(-50%);
}
.eight-axes-v2-slider-ticklabels .default { font-weight: 700; color: #0891b2; }
.eight-axes-v2-slider-ticklabels .lo95,
.eight-axes-v2-slider-ticklabels .hi95 { color: #333; }
.eight-axes-v2-slider-ticklabels .minlbl,
.eight-axes-v2-slider-ticklabels .maxlbl { color: #888; }
.eight-axes-v2-slider-help {
  grid-column: 1 / -1;
  font-size: 12px;
  color: #6b4710;
  margin-top: 6px;
  line-height: 1.4;
}
@media (max-width: 540px) {
  .eight-axes-v2-slider {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }
  .eight-axes-v2-slider-label,
  .eight-axes-v2-slider-value {
    text-align: left;
  }
  .eight-axes-v2-slider-track-wrap { padding: 12px 0 22px; }
}
</style>

<div class="eight-axes-v2-slider-card">
  <div class="eight-axes-v2-slider-card-head">
    <div class="eight-axes-v2-slider-card-title">Premises (drag to recompute)</div>
    <div class="eight-axes-v2-slider-card-hint">every number on this page is recomputed live</div>
  </div>

  <div class="eight-axes-v2-slider" data-key="m">
    <div class="eight-axes-v2-slider-label" data-default="3">Multiplier <code>m</code></div>
    <div class="eight-axes-v2-slider-value" data-axes-v2="m_display">3.00×</div>
    <div class="eight-axes-v2-slider-track-wrap">
      <input type="range" min="0.25" max="7.5" step="0.05" value="3" class="eight-axes-v2-slider-track" aria-label="Multiplier m" />
      <div class="eight-axes-v2-slider-ticks">
        <span class="tick tick-min" style="left: 0%"></span>
        <span class="tick tick-lo95" style="left: 3.4482758620689653%"></span>
        <span class="tick tick-default" style="left: 37.93103448275862%"></span>
        <span class="tick tick-hi95" style="left: 65.51724137931035%"></span>
        <span class="tick tick-max" style="left: 100%"></span>
      </div>
      <div class="eight-axes-v2-slider-ticklabels">
        <span class="minlbl" style="left: 0%">0.25</span>
        <span class="lo95" style="left: 3.4482758620689653%">0.5</span>
        <span class="default" style="left: 37.93103448275862%">3</span>
        <span class="hi95" style="left: 65.51724137931035%">5</span>
        <span class="maxlbl" style="left: 100%">7.5</span>
      </div>
    </div>
    <div class="eight-axes-v2-slider-help">Academic median &asymp;1.5&times;. Article default 3&times;. McKinsey/PwC bull cases push to 5&times;.</div>
  </div>

  <div class="eight-axes-v2-slider" data-key="c">
    <div class="eight-axes-v2-slider-label" data-default="0.2">Vendor capture <code>c</code></div>
    <div class="eight-axes-v2-slider-value" data-axes-v2="c_display">20.0%</div>
    <div class="eight-axes-v2-slider-track-wrap">
      <input type="range" min="0.05" max="0.525" step="0.005" value="0.2" class="eight-axes-v2-slider-track" aria-label="Vendor capture c" />
      <div class="eight-axes-v2-slider-ticks">
        <span class="tick tick-min" style="left: 0%"></span>
        <span class="tick tick-lo95" style="left: 10.526315789473685%"></span>
        <span class="tick tick-default" style="left: 31.57894736842105%"></span>
        <span class="tick tick-hi95" style="left: 63.1578947368421%"></span>
        <span class="tick tick-max" style="left: 100%"></span>
      </div>
      <div class="eight-axes-v2-slider-ticklabels">
        <span class="minlbl" style="left: 0%">5%</span>
        <span class="lo95" style="left: 10.526315789473685%">10%</span>
        <span class="default" style="left: 31.57894736842105%">20%</span>
        <span class="hi95" style="left: 63.1578947368421%">35%</span>
        <span class="maxlbl" style="left: 100%">52.5%</span>
      </div>
    </div>
    <div class="eight-axes-v2-slider-help">Vendor capture of AI GDP uplift. Historical IT range 10&ndash;35%.</div>
  </div>

  <div class="eight-axes-v2-slider" data-key="B">
    <div class="eight-axes-v2-slider-label" data-default="2600">Baseline <code>B</code></div>
    <div class="eight-axes-v2-slider-value" data-axes-v2="B_display">$2.6T</div>
    <div class="eight-axes-v2-slider-track-wrap">
      <input type="range" min="1000" max="6000" step="50" value="2600" class="eight-axes-v2-slider-track" aria-label="Baseline B in USD bn" />
      <div class="eight-axes-v2-slider-ticks">
        <span class="tick tick-min" style="left: 0%"></span>
        <span class="tick tick-lo95" style="left: 20.0%"></span>
        <span class="tick tick-default" style="left: 32.0%"></span>
        <span class="tick tick-hi95" style="left: 60.0%"></span>
        <span class="tick tick-max" style="left: 100%"></span>
      </div>
      <div class="eight-axes-v2-slider-ticklabels">
        <span class="minlbl" style="left: 0%">$1.0T</span>
        <span class="lo95" style="left: 20.0%">$2.0T</span>
        <span class="default" style="left: 32.0%">$2.6T</span>
        <span class="hi95" style="left: 60.0%">$4.0T</span>
        <span class="maxlbl" style="left: 100%">$6.0T</span>
      </div>
    </div>
    <div class="eight-axes-v2-slider-help">US digital economy baseline (BEA 2022 = $2.6T). Developed-world ICT-TFP frontier ex EM is ~$2&ndash;4T.</div>
  </div>
</div>

<script>
(function () {
  function wire() {
    if (!window.eightAxesV2) {
      // engine not yet ready — wait for next tick
      return setTimeout(wire, 16);
    }
    var rows = document.querySelectorAll('.eight-axes-v2-slider');
    rows.forEach(function (row) {
      var key = row.getAttribute('data-key');
      var input = row.querySelector('input[type="range"]');
      var label = row.querySelector('.eight-axes-v2-slider-label');
      if (!input || !key) return;

      var step = parseFloat(input.step) || 1;

      function pushValue(v) {
        var partial = {};
        partial[key] = v;
        window.eightAxesV2.set(partial);
      }

      input.addEventListener('input', function () {
        pushValue(parseFloat(input.value));
      });

      // Shift+Arrow = 10x step
      input.addEventListener('keydown', function (e) {
        if (!e.shiftKey) return;
        var k = e.key;
        if (k !== 'ArrowLeft' && k !== 'ArrowRight' && k !== 'ArrowUp' && k !== 'ArrowDown') return;
        e.preventDefault();
        var cur = parseFloat(input.value);
        var min = parseFloat(input.min);
        var max = parseFloat(input.max);
        var delta = step * 10 * ((k === 'ArrowLeft' || k === 'ArrowDown') ? -1 : 1);
        var next = Math.min(max, Math.max(min, cur + delta));
        input.value = next;
        pushValue(next);
      });

      // Double-click label resets to default
      if (label) {
        label.addEventListener('dblclick', function () {
          var def = parseFloat(label.getAttribute('data-default'));
          if (isNaN(def)) return;
          input.value = def;
          pushValue(def);
        });
      }
    });
  }
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', wire, { once: true });
  } else {
    wire();
  }
})();
</script>

<h2 id="ais-economic-uplift-will-be-3x-regular-computing">AI’s economic uplift will be 3x regular computing</h2>

<div class="eight-axes-premise-axiom">
  <div class="eight-axes-premise-label">Premise</div>
  <div class="eight-axes-premise-statement">
    AI's impact will be <strong data-axes-v2="m_display">3.00&times;</strong> the total impact of all prior computing on the developed-world productivity frontier (1950s onward, ex emerging-market industrialization catch-up). Everything else here follows from that.
  </div>
  <p class="eight-axes-premise-axiom-note">The slider's m-multiplier is applied with per-vertical elasticity e_i (sourced from each vertical's D8 Jevons score: model-labs and hyperscalers ~2.0, commodities ~0.5). Capture rate c is blended 50/50 with a layer-specific c_layer_i (D4-sourced: software/EDA ~35%, commodities ~5%). Drag the sliders &mdash; picks actually shift, not just the dollars.</p>
</div>

<p class="eight-axes-lede"><span class="eight-axes-glo" data-key="BEA">BEA</span> pins the US digital economy at <span class="eight-axes-hero-inline"><span data-axes-v2="B_display">$2.6T</span></span>. For a global supply chain that's a US-only proxy &mdash; global ICT-driven frontier productivity, ex EM catch-up, lands in roughly the same <span class="eight-axes-hero-inline">$2-4T/yr</span> range (<a href="https://scholar.harvard.edu/files/jorgenson/files/jorgenson_ho_stiroh_jep_spring2008.pdf">Jorgenson-Stiroh ICT-TFP attribution</a>; <a href="https://www.oecd.org/economy/the-global-productivity-slowdown-technology-divergence-and-public-policy-a-firm-level-perspective.htm">OECD frontier productivity</a>). Apply <span data-axes-v2="m_display">3&times;</span>, <span data-axes-v2="c_display">20.0%</span> vendor capture, and the implied annual vendor pool at maturity (~2035) is <span class="eight-axes-hero-inline"><span data-axes-v2="pool">$1.56T</span></span>, split across 22 verticals.</p>

<details class="eight-axes-more">
<summary>How we got there</summary>
<div class="eight-axes-more-body">

    <p><strong>Restated for the math.</strong> Every $1 of cyber-physical <span class="eight-axes-glo" data-key="TAM">TAM</span> implies $3 of AI-stack <span class="eight-axes-glo" data-key="TAM">TAM</span> over the next 5-10 years. The headline axiom above is the same claim, framed as the article’s load-bearing assumption.</p>

    <p><strong>Baseline.</strong> <span class="eight-axes-glo" data-key="BEA Digital Economy">BEA Digital Economy</span> Satellite Account: US digital economy at <strong>10.0% of GDP, <span class="eight-axes-hero-inline"><span data-axes-v2="B_display">$2.6T</span></span> in 2022</strong>. <!-- source: phase1_premise.md citing apps.bea.gov SCB Dec 2023 --> I pick <span class="eight-axes-glo" data-key="BEA">BEA</span> over McKinsey/Goldman because it’s a government current-state number, not a consultancy projection. Stacking 3x on top of a projection would double-count.</p>

    <p><span class="eight-axes-glo" data-key="BEA Digital Economy">BEA Digital Economy</span> is a <em>stock</em> (current sector size), not a <em>flow</em> (counterfactual uplift). ICT-TFP flow estimates (Oliner-Sichel, Jorgenson-Stiroh) land in the same ~$2.5T/yr range. GDP-B welfare-inclusive measures (Brynjolfsson NBER w25695) suggest ~$4.5T. I pick <span class="eight-axes-glo" data-key="BEA">BEA</span> for traceability, not for it being the highest-fidelity measure. (Critique A.)</p>

    <p><strong>Multiplier and capture.</strong> <span data-axes-v2="m_display">3</span> × <span data-axes-v2="B_display">$2.6T</span> = <span class="eight-axes-hero-inline"><span data-axes-v2="uplift">$7.8T</span></span> annual AI GDP uplift at maturity (~2035). Vendor capture in historical IT runs 15-25% (Bain $990B / McKinsey $2.6-4.4T ≈ 28%; global software vs <span class="eight-axes-glo" data-key="BEA">BEA</span> digital ≈ 26%). The slider’s c sets the flat anchor for a per-vertical heterogeneous blend; default <span data-axes-v2="c_display">20.0%</span> reproduces the article’s headline pool of <span data-axes-v2="pool">$1.56T</span> when paired with article defaults for m and B. <!-- source: phase1_premise.md §3 --></p>

    <p>The 3x is the consensus-of-consultancies upper-tercile, not a median forecast. Defensible 90% confidence range is roughly 0.5x (Acemoglu, OECD pessimistic case) to 5x (PwC, McKinsey value-creation framings). Picking 3x isn’t conservative. At 1x the pool shrinks to ~$500B; at 5x, ~$2.6T. The composite ranking is approximately scale-invariant – the picks don’t change, but the absolute headroom claims do. (Critique B.)</p>

    <div class="eight-axes-callout-info">
<strong>Per-vertical allocation (v2 methodology).</strong> Pool = B &times; m &times; c (headline, unchanged). Per-vertical dollars use heterogeneous elasticity + capture, then renormalize to the pool:

<pre style="background: transparent; border: 0; margin: 8px 0 0; font-size: 12.5px;">e_i        = 0.5 + 1.5 × (d8_score_i / 10)         # m-elasticity per vertical
c_layer_i  = 0.05 + 0.30 × (d4_score_i / 10)        # layer-specific capture (D4)
c_blend_i  = 0.5 × c + 0.5 × c_layer_i              # flat-vs-layer 50/50 blend
raw_i      = share_i × B × c_blend_i × m^e_i        # raw per-vertical
implied_i  = raw_i / Σraw × (B × m × c)             # renormalize to headline pool</pre>
</div>

    <div class="eight-axes-callout-caveat">
Why this design: at m=<span data-axes-v2="m_pretty">3&times;</span>, c=<span data-axes-v2="c_display">20.0%</span>, B=<span data-axes-v2="B_display">$2.6T</span> the headline pool matches the article's <span data-axes-v2="pool">$1.56T</span>. But per-vertical dollars now shift heterogeneously as you drag &mdash; high-elasticity verticals (model-labs, hyperscalers) absorb pool growth disproportionately as m rises; commodity verticals (copper, gases) lose ground. Ranks now actually move. This is more honest than the v1 flat capture / unit elasticity, while still anchored on the article's defaults.
</div>

    <p><strong>Top 3 by implied 2035 AI revenue:</strong></p>

    <table class="eight-axes-mini-table">
<thead><tr><th>Rank</th><th>Vertical</th><th>Implied 2035 AI revenue</th></tr></thead>
<tbody>
<tr><td>1</td><td><span data-axes-v2="top3_name" data-rank="1"><span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></span></td><td><span data-axes-v2="top3_revenue" data-rank="1"><strong>$609.8B</strong></span></td></tr>
<tr><td>2</td><td><span data-axes-v2="top3_name" data-rank="2"><span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span></span></td><td><span data-axes-v2="top3_revenue" data-rank="2"><strong>$224.7B</strong></span></td></tr>
<tr><td>3</td><td><span data-axes-v2="top3_name" data-rank="3"><span class="eight-axes-glo" data-key="model-labs-software">model-labs-software</span></span></td><td><span data-axes-v2="top3_revenue" data-rank="3"><strong>$192.5B</strong></span></td></tr>
</tbody>
</table>

    <!-- source: phase1_allocations.csv -->

    <p>Biggest pool is not best bet. “Pool size” and “remaining upside” are different questions.</p>

  </div>
</details>

<div class="eight-axes-callout-caveat">
<strong>Five honest caveats on the premise stack (internal critique).</strong>
<ul style="margin: 6px 0 0 18px; padding: 0;">
<li><strong>3&times; upper-tercile</strong> (range 0.5&times; to 5&times;; currently <span data-axes-v2="m_display">3&times;</span>). The slider's m is applied with per-vertical elasticity e_i &isin; [0.5, 2.0], sourced from each vertical's D8 score. Most academic economists sit well below 3&times;.</li>
<li><strong>Capture rate is heterogeneous</strong>: c_i = 0.5 &times; c + 0.5 &times; c_layer_i, where c_layer_i &isin; [0.05, 0.35] is derived from each vertical's D4 score (EDA/software ~0.35, commodities ~0.05). The slider's c (currently <span data-axes-v2="c_display">20.0%</span>) sets the flat anchor; the blend produces 5&ndash;50&times; layer variation as observed in industry.</li>
<li><strong>$2.6T US-only is a proxy for global ICT-frontier uplift.</strong> A naive global digital-economy baseline (~$16T) overstates because it includes emerging-market industrialization, which came from labor reallocation, not computers. The right baseline (developed-world ICT-TFP frontier ex EM catch-up) is roughly $2&ndash;4T/yr (currently <span data-axes-v2="B_display">$2.6T</span>), putting our <span data-axes-v2="pool">$1.56T</span> pool inside the right order of magnitude.</li>
<li><strong>Annual maturity at 2035</strong> vs cumulative NPV -- this is a rate, not a present value. No discount rate stated. The current annual pool is <span data-axes-v2="pool">$1.56T</span>.</li>
<li><strong>Reference P/S = 3.0</strong> (S&amp;P median). Vertical-specific multiples (6x software, 1.5x utility) would change the gap. At <span data-axes-v2="m_pretty">3&times;</span> uplift on <span data-axes-v2="B_display">$2.6T</span>, gross AI revenue is <span data-axes-v2="uplift">$7.8T</span>.</li>
</ul>
The composite ranking is robust to these caveats -- picks don't change much under reasonable variation. The headline DOLLAR figures should be read as order-of-magnitude, not point estimates.
</div>

<h2 id="eight-axes-the-v1-ranking-ignored">Eight axes the <a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a> ranking ignored</h2>

<p class="eight-axes-lede">Each <span class="eight-axes-glo" data-key="vertical">vertical</span> gets eight 0-10 scores, one per dimension. The strongest pair (<span class="eight-axes-glo" data-key="D3">D3</span> supply elasticity vs <span class="eight-axes-glo" data-key="D8">D8</span> <span class="eight-axes-glo" data-key="Jevons">Jevons</span> demand) hits <span class="eight-axes-hero-inline">|r| = 0.642</span>, below the 0.7 merge threshold. All eight survive.</p>

<dl class="eight-axes-axis-grid">
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D1">D1</span></span> Already-rallied penalty</dt>
    <dd class="eight-axes-axis-what">5-year <span class="eight-axes-glo" data-key="total return">total return</span>, inverted. 10 = least rallied. A 200% rally on the same story leaves less juice.</dd>
    <dd class="eight-axes-axis-extreme">Top: nuclear-SMR (priced for the rally) | Bottom: <span class="eight-axes-glo" data-key="lithography">lithography</span> (post-EUV run)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D2">D2</span></span> Premise-implied <span class="eight-axes-glo" data-key="TAM">TAM</span> headroom</dt>
    <dd class="eight-axes-axis-what">Premise-implied 2035 AI revenue (§1) minus today, <span class="eight-axes-glo" data-key="log-scale">log-scaled</span> and rank-percentiled. Only forward-revenue axis.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span data-axes-v2="d2_top_slug"><span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span></span> (<span class="eight-axes-glo" data-key="premise_gap_log">premise_gap_log</span> = 1.36) | Bottom: <span data-axes-v2="d2_bottom_slug"><span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span></span> (already monetised)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D3">D3</span></span> Supply elasticity / bottleneck severity</dt>
    <dd class="eight-axes-axis-what">Lead times to add a unit. Long = inelastic = pricing power. <span class="eight-axes-glo" data-key="EUV">EUV</span> ~18 mo. <span class="eight-axes-glo" data-key="CoWoS">CoWoS</span> 12-24. Copper 5-15 yr. <span class="eight-axes-glo" data-key="SMR">SMRs</span> 5-10. Transformers 18-48 mo.</dd>
    <dd class="eight-axes-axis-extreme">Top: nuclear-SMR 9.51 / <span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span> | Bottom: <span class="eight-axes-glo" data-key="model-labs-software">model-labs-software</span> (instant scale)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D4">D4</span></span> Value-capture intensity</dt>
    <dd class="eight-axes-axis-what">Gross margin × moat width. Where the dollar lands inside the value chain.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span class="eight-axes-glo" data-key="eda-ip">eda-ip</span> 9.48 (80%+ GM duopoly) | Bottom: nuclear-SMR 0 (capex-heavy, fragmented)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D5">D5</span></span> Substitution risk</dt>
    <dd class="eight-axes-axis-what">Probability the dominant solution gets displaced in 10 years. <span class="eight-axes-glo" data-key="CPO">CPO</span> over pluggable; ASICs over <span class="eight-axes-glo" data-key="GPU">GPUs</span>; <span class="eight-axes-glo" data-key="SMR">SMR</span> over gas peakers; liquid over air.</dd>
    <dd class="eight-axes-axis-extreme">Top: nuclear-SMR 10 (no baseload substitute) | Bottom: <span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span> 1.25 (rack-level <span class="eight-axes-glo" data-key="ASIC">ASIC</span> risk)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D6">D6</span></span> Capex × cycle position</dt>
    <dd class="eight-axes-axis-what">Capex / forward revenue × cycle stage. Early-cycle premium, late-cycle penalised. <span class="eight-axes-glo" data-key="D3">D3</span> correlation r = 0.37.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span class="eight-axes-glo" data-key="datacenter-reits">datacenter-reits</span> 10 | Bottom: <span class="eight-axes-glo" data-key="eda-ip">eda-ip</span> 0</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D7">D7</span></span> Geopolitical exposure</dt>
    <dd class="eight-axes-axis-what">Revenue / supply / customer exposure to friendly jurisdictions. Higher = safer.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span> 10 (<span class="eight-axes-glo" data-key="CHIPS Act">CHIPS-funded</span> caveat) | Bottom: <span class="eight-axes-glo" data-key="ic-substrates">ic-substrates</span> 0 (JP/TW/KR + PRC)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D8">D8</span></span> <span class="eight-axes-glo" data-key="Jevons elasticity">Jevons elasticity</span></dt>
    <dd class="eight-axes-axis-what">10x inference-cost drop -- demand elastic (high) or flat (low)? Demand mirror of <span class="eight-axes-glo" data-key="D3">D3</span>.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span>, <span class="eight-axes-glo" data-key="model-labs-software">model-labs-software</span> 10 | Bottom: <span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span> 0</dd>
  </div>
</dl>

<details class="eight-axes-more">
<summary>How we got there</summary>
<div class="eight-axes-more-body">

    <table>
      <tbody>
        <tr>
          <td>Eight axes, 0-10, higher = more remaining upside. Phase 3 orthogonality at</td>
          <td><span class="eight-axes-glo" data-key="Spearman r">Spearman r</span></td>
          <td>&gt; 0.7; strongest pair (<code class="language-plaintext highlighter-rouge">d3_supply_elasticity</code> × <code class="language-plaintext highlighter-rouge">d8_jevons</code>) <strong>r = -0.642</strong>, below the bar. <!-- source: surviving_dimensions.md --></td>
        </tr>
      </tbody>
    </table>

    <p>The eight carve the question: price (<span class="eight-axes-glo" data-key="D1">D1</span>), forward revenue (<span class="eight-axes-glo" data-key="D2">D2</span>), supply (<span class="eight-axes-glo" data-key="D3">D3</span>), profitability (<span class="eight-axes-glo" data-key="D4">D4</span>), tech trajectory (<span class="eight-axes-glo" data-key="D5">D5</span>), capex (<span class="eight-axes-glo" data-key="D6">D6</span>), jurisdiction (<span class="eight-axes-glo" data-key="D7">D7</span>), demand elasticity (<span class="eight-axes-glo" data-key="D8">D8</span>).</p>

  </div>
</details>

<div class="eight-axes-root">
<div class="eight-axes-root eight-axes-radar-root">

<style>
.eight-axes-root { font-family: -apple-system, "Segoe UI", Inter, Helvetica, Arial, sans-serif; color: #1a1a1a; }
.eight-axes-card { background: #fdfdfa; border: 1px solid #e6e6dd; border-radius: 6px; padding: 16px; margin: 14px 0; }
.eight-axes-controls { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 10px; font-size: 13px; }
.eight-axes-controls label { display: inline-flex; align-items: center; gap: 6px; }
.eight-axes-controls select { font-size: 13px; padding: 3px 6px; border: 1px solid #c8c8be; border-radius: 4px; background: #fff; }
.eight-axes-radar-main { display: flex; flex-wrap: wrap; gap: 18px; align-items: flex-start; }
.eight-axes-radar-svg-wrap { flex: 1 1 380px; min-width: 320px; max-width: 520px; }
.eight-axes-radar-legend { flex: 0 1 260px; font-size: 12.5px; line-height: 1.45; }
.eight-axes-radar-legend table { border-collapse: collapse; width: 100%; }
.eight-axes-radar-legend td { padding: 2px 6px 2px 0; vertical-align: top; }
.eight-axes-radar-legend td.k { color: #555; white-space: nowrap; }
.eight-axes-radar-legend td.v { font-variant-numeric: tabular-nums; text-align: right; }
.eight-axes-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: middle; }
.eight-axes-mini-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-top: 18px; }
.eight-axes-mini-card { margin: 0; padding: 6px; border: 1px solid #ececdd; border-radius: 4px; background: #fff; text-align: center; }
.eight-axes-mini-card figcaption { font-size: 11px; color: #1a1a1a; margin-bottom: 2px; line-height: 1.25; }
.eight-axes-mini-rank { color: #999; font-variant-numeric: tabular-nums; }
.eight-axes-mini-name { font-weight: 600; }
.eight-axes-mini-svg { width: 100%; height: auto; display: block; }
.eight-axes-mini-score { font-size: 10.5px; color: #555; margin-top: 2px; font-variant-numeric: tabular-nums; }
.eight-axes-section-h { font-size: 13px; font-weight: 600; color: #555; margin: 14px 0 4px 0; }
</style>

<div class="eight-axes-card">
  <div class="eight-axes-controls">
    <label>Vertical: <select id="eight-axes-sel-a"></select></label>
    <label><input type="checkbox" id="eight-axes-overlay" /> overlay second <span class="eight-axes-glo" data-key="vertical">vertical</span></label>
    <label>Compare: <select id="eight-axes-sel-b"></select></label>
  </div>
  <div class="eight-axes-radar-main">
    <div class="eight-axes-radar-svg-wrap"><svg id="eight-axes-radar-big" viewBox="0 0 460 440" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;"></svg></div>
    <div class="eight-axes-radar-legend"><div id="eight-axes-radar-legend-body"></div></div>
  </div>
</div>

<div class="eight-axes-section-h">All 22 verticals at a glance (sorted by composite_equal rank)</div>
<div class="eight-axes-mini-grid" id="eight-axes-mini-grid"></div>

<script>
(function(){
  // ---- Retry init if engine not yet ready -----------------------------------
  var MAX_RETRIES = 10;
  var retries = 0;
  function init() {
    if (!window.eightAxesV2) {
      if (retries < MAX_RETRIES) {
        retries++;
        setTimeout(init, 50);
      } else {
        console.error('[radar-v2] window.eightAxesV2 not available after retries');
      }
      return;
    }
    setup();
  }

  function setup() {
    var eng = window.eightAxesV2;
    var data = eng.data;
    var dims = data.dim_short;
    var dimLabels = data.dim_labels;
    var verticals = data.verticals; // raw bundle verticals (for slug/name/color)

    var svg = document.getElementById('eight-axes-radar-big');
    var sel1 = document.getElementById('eight-axes-sel-a');
    var sel2 = document.getElementById('eight-axes-sel-b');
    var overlayChk = document.getElementById('eight-axes-overlay');
    var legendBody = document.getElementById('eight-axes-radar-legend-body');
    var miniGrid = document.getElementById('eight-axes-mini-grid');

    var W = 460, H = 440;
    var cx = W/2, cy = H/2 + 4, R = 160;
    var n = dims.length;

    // Last received per_vertical array (cached for dropdown-change handler)
    var lastPerVertical = null;

    // rAF coalescing
    var pending = false;
    var pendingDetail = null;

    // ---- Helpers -------------------------------------------------------------
    function escapeHtml(s){
      return (s||'').replace(/[&<>"]/g, function(c){
        return ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'})[c];
      });
    }

    function angles(){
      return Array.from({length:n}, function(_,i){ return -Math.PI/2 + 2*Math.PI*i/n; });
    }

    function polyPoints(scores8){
      var ang = angles();
      return ang.map(function(a, i){
        var r = R*(scores8[i]/10);
        return (cx+r*Math.cos(a)).toFixed(2)+','+(cy+r*Math.sin(a)).toFixed(2);
      }).join(' ');
    }

    function miniPolyPoints(scores8){
      var mcx = 90, mcy = 90, mR = 68;
      var ang = angles();
      return ang.map(function(a, i){
        var r = mR*(scores8[i]/10);
        return (mcx+r*Math.cos(a)).toFixed(2)+','+(mcy+r*Math.sin(a)).toFixed(2);
      }).join(' ');
    }

    // ---- Build SVG background (grid + spokes + labels) once -----------------
    function buildSvgBackground(){
      var ang = angles();
      var parts = [];
      [2,4,6,8,10].forEach(function(lvl){
        var pts = ang.map(function(a){
          var r=R*(lvl/10);
          return (cx+r*Math.cos(a)).toFixed(2)+','+(cy+r*Math.sin(a)).toFixed(2);
        }).join(' ');
        parts.push('<polygon points="'+pts+'" fill="none" stroke="#d8d8c8" stroke-width="0.7"/>');
        parts.push('<text x="'+(cx+2)+'" y="'+(cy - R*(lvl/10)+3)+'" font-size="9" fill="#999">'+lvl+'</text>');
      });
      ang.forEach(function(a, i){
        var x2=cx+R*Math.cos(a), y2=cy+R*Math.sin(a);
        parts.push('<line x1="'+cx+'" y1="'+cy+'" x2="'+x2.toFixed(2)+'" y2="'+y2.toFixed(2)+'" stroke="#d8d8c8" stroke-width="0.7"/>');
        var lx = cx + (R+18)*Math.cos(a), ly = cy + (R+18)*Math.sin(a);
        parts.push('<text x="'+lx.toFixed(2)+'" y="'+ly.toFixed(2)+'" text-anchor="middle" dominant-baseline="middle" font-size="12" fill="#333" font-weight="600">'+dims[i]+'</text>');
        var lx2 = cx + (R+34)*Math.cos(a), ly2 = cy + (R+34)*Math.sin(a);
        var short = dimLabels[i].replace(/^D\d+ /,'');
        parts.push('<text x="'+lx2.toFixed(2)+'" y="'+ly2.toFixed(2)+'" text-anchor="middle" dominant-baseline="middle" font-size="9.5" fill="#888">'+short+'</text>');
      });
      return parts.join('');
    }

    // ---- Build mini-card SVG background (grid + spokes + dim labels) --------
    function buildMiniBackground(){
      var mcx = 90, mcy = 90, mR = 68;
      var ang = angles();
      var parts = [];
      [2,4,6,8,10].forEach(function(lvl){
        var pts = ang.map(function(a){
          var r=mR*(lvl/10);
          return (mcx+r*Math.cos(a)).toFixed(2)+','+(mcy+r*Math.sin(a)).toFixed(2);
        }).join(' ');
        parts.push('<polygon points="'+pts+'" fill="none" stroke="#dcdcd2" stroke-width="0.6"/>');
      });
      ang.forEach(function(a){
        var x2=mcx+mR*Math.cos(a), y2=mcy+mR*Math.sin(a);
        parts.push('<line x1="'+mcx+'" y1="'+mcy+'" x2="'+x2.toFixed(2)+'" y2="'+y2.toFixed(2)+'" stroke="#dcdcd2" stroke-width="0.6"/>');
      });
      ang.forEach(function(a,i){
        var tx = mcx + (mR+11)*Math.cos(a), ty = mcy + (mR+11)*Math.sin(a);
        parts.push('<text x="'+tx.toFixed(2)+'" y="'+ty.toFixed(2)+'" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">'+dims[i]+'</text>');
      });
      return parts.join('');
    }

    var miniBg = buildMiniBackground();

    // ---- Build main SVG: static background + two named polygon nodes --------
    // The polygon points/colors are mutated on every state event; no innerHTML rebuild.
    var bgHtml = buildSvgBackground();
    svg.innerHTML = bgHtml
      + '<polygon id="r2-poly-a" points="" fill="" fill-opacity="0.22" stroke="" stroke-width="2" stroke-linejoin="round"/>'
      + '<polygon id="r2-poly-b" points="" fill="" fill-opacity="0.22" stroke="" stroke-width="2" stroke-linejoin="round" style="display:none"/>';

    var polyA = document.getElementById('r2-poly-a');
    var polyB = document.getElementById('r2-poly-b');

    // ---- Build dropdowns from raw verticals (placeholder rank text) ---------
    function buildOptions(sel, selectedIdx) {
      sel.innerHTML = '';
      verticals.forEach(function(v, i) {
        var opt = document.createElement('option');
        opt.value = String(i);
        opt.textContent = v.name + ' (rank ?)';
        if (i === selectedIdx) opt.selected = true;
        sel.appendChild(opt);
      });
    }
    buildOptions(sel1, 0);
    buildOptions(sel2, 1);

    // ---- Build mini-grid card DOM skeletons (once) --------------------------
    function buildMiniGrid() {
      verticals.forEach(function(v) {
        var fig = document.createElement('figure');
        fig.className = 'eight-axes-mini-card';
        fig.setAttribute('data-slug', v.slug);
        fig.innerHTML =
          '<figcaption>'
          + '<span class="eight-axes-mini-rank">#?</span> '
          + '<span class="eight-axes-mini-name">' + escapeHtml(v.name) + '</span>'
          + '</figcaption>'
          + '<svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg">'
          + miniBg
          + '<polygon class="mini-data-poly" points="" fill="' + escapeHtml(v.color) + '" fill-opacity="0.25" stroke="' + escapeHtml(v.color) + '" stroke-width="1.4" stroke-linejoin="round"/>'
          + '</svg>'
          + '<div class="eight-axes-mini-score">composite —</div>';
        miniGrid.appendChild(fig);
      });
    }
    buildMiniGrid();

    // ---- Legend HTML --------------------------------------------------------
    function legend(items){
      var html = '<table><thead><tr><th></th>';
      items.forEach(function(it){
        html += '<th><span class="eight-axes-swatch" style="background:'+it.color+'"></span>'+escapeHtml(it.name)+'</th>';
      });
      html += '</tr></thead><tbody>';
      for (var k=0; k<dims.length; k++){
        html += '<tr><td class="k">'+dims[k]+' '+escapeHtml(dimLabels[k].replace(/^D\d+ /,''))+'</td>';
        items.forEach(function(it){ html += '<td class="v">'+it.scores8[k].toFixed(2)+'</td>'; });
        html += '</tr>';
      }
      html += '<tr><td class="k"><b>composite</b></td>';
      items.forEach(function(it){ html += '<td class="v"><b>'+it.composite_equal.toFixed(2)+'</b></td>'; });
      html += '</tr></tbody></table>';
      return html;
    }

    // ---- Redraw: mutate DOM nodes from a per_vertical array -----------------
    function redraw(pv) {
      var ia = parseInt(sel1.value, 10);
      var ib = parseInt(sel2.value, 10);
      var overlay = overlayChk.checked;

      // pv is ordered identically to raw verticals (index == dropdown value)
      var va = pv[ia];
      var vb = pv[ib];

      // Polygon A: mutate points + color attributes
      polyA.setAttribute('points', polyPoints(va.scores8));
      polyA.setAttribute('fill', va.color);
      polyA.setAttribute('stroke', va.color);

      // Polygon B: mutate or hide
      if (overlay && ib !== ia) {
        polyB.setAttribute('points', polyPoints(vb.scores8));
        polyB.setAttribute('fill', vb.color);
        polyB.setAttribute('stroke', vb.color);
        polyB.style.display = '';
      } else {
        polyB.style.display = 'none';
      }

      // Legend
      var items = [va];
      if (overlay && ib !== ia) items.push(vb);
      legendBody.innerHTML = legend(items);

      // Dropdown option labels: update textContent to include current (rank N)
      for (var i = 0; i < pv.length; i++) {
        var label = pv[i].name + ' (rank ' + pv[i].rank_equal + ')';
        if (sel1.options[i]) sel1.options[i].textContent = label;
        if (sel2.options[i]) sel2.options[i].textContent = label;
      }

      // sel2 disabled state
      sel2.disabled = !overlay;

      // Mini-grid: update each card's rank badge textContent, mini polygon
      // points attribute, composite score textContent; then reorder cards in
      // DOM by rank_equal ascending using appendChild (moves node to end).
      var slugToCard = {};
      var cards = miniGrid.querySelectorAll('.eight-axes-mini-card');
      for (var j = 0; j < cards.length; j++) {
        slugToCard[cards[j].getAttribute('data-slug')] = cards[j];
      }

      var sorted = pv.slice().sort(function(a, b){ return a.rank_equal - b.rank_equal; });

      sorted.forEach(function(v) {
        var card = slugToCard[v.slug];
        if (!card) return;

        // Rank badge textContent
        var rankEl = card.querySelector('.eight-axes-mini-rank');
        if (rankEl) rankEl.textContent = '#' + v.rank_equal;

        // Mini polygon points attribute
        var miniPoly = card.querySelector('.mini-data-poly');
        if (miniPoly) miniPoly.setAttribute('points', miniPolyPoints(v.scores8));

        // Composite score label textContent
        var scoreEl = card.querySelector('.eight-axes-mini-score');
        if (scoreEl) scoreEl.textContent = 'composite ' + v.composite_equal.toFixed(2);

        // Reorder: appendChild moves the node to end of grid (rank order)
        miniGrid.appendChild(card);
      });
    }

    // ---- rAF-coalesced state event handler ----------------------------------
    function scheduleRedraw(detail) {
      pendingDetail = detail;
      if (!pending) {
        pending = true;
        requestAnimationFrame(function() {
          pending = false;
          var d = pendingDetail;
          if (d) {
            lastPerVertical = d.per_vertical;
            redraw(lastPerVertical);
          }
        });
      }
    }

    // ---- Subscribe to engine state events -----------------------------------
    document.addEventListener('eight-axes-v2:state', function(e) {
      scheduleRedraw(e.detail);
    });

    // ---- Dropdown / overlay change handlers (use cached lastPerVertical) ----
    function onDropdownChange() {
      if (lastPerVertical) redraw(lastPerVertical);
    }
    sel1.addEventListener('change', onDropdownChange);
    sel2.addEventListener('change', onDropdownChange);
    overlayChk.addEventListener('change', onDropdownChange);

    // ---- Pull initial state synchronously -----------------------------------
    // In case DOMContentLoaded has already fired (engine already dispatched),
    // compute current state immediately rather than waiting for next event.
    var initial = eng.compute(eng.state);
    if (initial && initial.per_vertical) {
      lastPerVertical = initial.per_vertical;
      redraw(lastPerVertical);
    }
  }

  // Kick off — defer if DOM not yet ready OR engine not yet defined
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', init, { once: true });
  } else {
    init();
  }
})();
</script>

</div>

</div>

<h2 id="equal-weight-rank-top-to-bottom">Equal-weight rank, top to bottom</h2>

<p class="eight-axes-lede">Unweighted mean of the eight scores. Top of the table: infrastructure picks-and-shovels (<span data-axes-v2="pick_top_name" data-rank="1"><span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></span> <span class="eight-axes-hero-inline"><span data-axes-v2="pick_top_score" data-rank="1">6.97</span></span>, <span data-axes-v2="pick_top_name" data-rank="2"><span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span></span> <span data-axes-v2="pick_top_score" data-rank="2">6.81</span>, <span data-axes-v2="pick_top_name" data-rank="3"><span class="eight-axes-glo" data-key="industrial-gases-water">industrial-gases-water</span></span> <span data-axes-v2="pick_top_score" data-rank="3">6.72</span>). Bottom: already-priced AI silicon plus speculative optics. Only <span class="eight-axes-hero-inline"><span class="eight-axes-glo" data-key="power-semis-vrm">power-semis-vrm</span></span> gains rank under both <span class="eight-axes-glo" data-key="premise-tilt">premise-tilt</span> and <span class="eight-axes-glo" data-key="contrarian-tilt">contrarian-tilt</span> -- the cleanest asymmetric pick in the matrix.</p>

<p class="eight-axes-strip-label"><strong>Top-5, equal weight</strong></p>

<div class="eight-axes-pick-strip">
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#1</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_top_name" data-rank="1"><span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_top_score" data-rank="1">6.97</span></div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#2</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_top_name" data-rank="2"><span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_top_score" data-rank="2">6.81</span></div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#3</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_top_name" data-rank="3"><span class="eight-axes-glo" data-key="industrial-gases-water">industrial-gases-water</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_top_score" data-rank="3">6.72</span></div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#4</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_top_name" data-rank="4"><span class="eight-axes-glo" data-key="utilities-merchant-power">utilities-merchant-power</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_top_score" data-rank="4">6.58</span></div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#5</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_top_name" data-rank="5"><span class="eight-axes-glo" data-key="nuclear-smr-uranium">nuclear-smr-uranium</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_top_score" data-rank="5">6.08</span></div>
  </div>
</div>

<p class="eight-axes-strip-label"><strong>Bottom-5</strong></p>

<div class="eight-axes-pick-strip eight-axes-pick-strip--bottom">
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#18</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_bot_name" data-rank="18"><span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_bot_score" data-rank="18">4.34</span></div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#19</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_bot_name" data-rank="19"><span class="eight-axes-glo" data-key="datacenter-cooling-thermal">datacenter-cooling-thermal</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_bot_score" data-rank="19">4.21</span></div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#20</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_bot_name" data-rank="20"><span class="eight-axes-glo" data-key="advanced-packaging">advanced-packaging</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_bot_score" data-rank="20">4.13</span></div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#21</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_bot_name" data-rank="21"><span class="eight-axes-glo" data-key="ic-substrates">ic-substrates</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_bot_score" data-rank="21">3.75</span></div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#22</div>
    <div class="eight-axes-pick-name"><span data-axes-v2="pick_bot_name" data-rank="22"><span class="eight-axes-glo" data-key="silicon-photonics-optics">silicon-photonics-optics</span></span></div>
    <div class="eight-axes-pick-score"><span data-axes-v2="pick_bot_score" data-rank="22">3.02</span></div>
  </div>
</div>

<details class="eight-axes-more">
<summary>How we got there + tilt-shift sanity checks</summary>
<div class="eight-axes-more-body">

    <p>Equal-weight composite: unweighted mean of the eight scores. Top: <strong>infrastructure picks-and-shovels</strong> (power, water, copper, hyperscale platforms). Bottom: <strong>already-priced AI silicon</strong> plus speculative optics. Headline: under an explicit premise and 8-axis scoring, the unsexy physical-input layers outrank the silicon layers everyone bought for 36 months.</p>

    <p><strong>Premise-tilt (<span class="eight-axes-glo" data-key="D2">D2</span> ×2).</strong> Rewards supply-constrained names with unpriced forward demand.</p>

    <div class="eight-axes-tilt-grid">
  <div class="eight-axes-tilt-col">
    <div class="eight-axes-tilt-col-title">Gainers</div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_gainer_name" data-rank="1"><span class="eight-axes-glo" data-key="power-transformers-grid">power-transformers-grid</span></span><span data-axes-v2="tilt_premise_gainer_chip" data-rank="1" class="eight-axes-rank-chip eight-axes-rank-chip--up">+4</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_gainer_name" data-rank="2"><span class="eight-axes-glo" data-key="power-semis-vrm">power-semis-vrm</span></span><span data-axes-v2="tilt_premise_gainer_chip" data-rank="2" class="eight-axes-rank-chip eight-axes-rank-chip--up">+3</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_gainer_name" data-rank="3"><span class="eight-axes-glo" data-key="hbm-dram">hbm-dram</span></span><span data-axes-v2="tilt_premise_gainer_chip" data-rank="3" class="eight-axes-rank-chip eight-axes-rank-chip--up">+2</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_gainer_name" data-rank="4"><span class="eight-axes-glo" data-key="electrical-equipment">electrical-equipment</span></span><span data-axes-v2="tilt_premise_gainer_chip" data-rank="4" class="eight-axes-rank-chip eight-axes-rank-chip--up">+2</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_gainer_name" data-rank="5"><span class="eight-axes-glo" data-key="advanced-packaging">advanced-packaging</span></span><span data-axes-v2="tilt_premise_gainer_chip" data-rank="5" class="eight-axes-rank-chip eight-axes-rank-chip--up">+2</span></div>
  </div>
  <div class="eight-axes-tilt-col">
    <div class="eight-axes-tilt-col-title">Losers (extended consensus longs)</div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_loser_name" data-rank="1"><span class="eight-axes-glo" data-key="foundry-logic">foundry-logic</span></span><span data-axes-v2="tilt_premise_loser_chip" data-rank="1" class="eight-axes-rank-chip eight-axes-rank-chip--down">-6</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_loser_name" data-rank="2"><span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></span><span data-axes-v2="tilt_premise_loser_chip" data-rank="2" class="eight-axes-rank-chip eight-axes-rank-chip--down">-3</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_loser_name" data-rank="3"><span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span></span><span data-axes-v2="tilt_premise_loser_chip" data-rank="3" class="eight-axes-rank-chip eight-axes-rank-chip--down">-3</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_loser_name" data-rank="4"><span class="eight-axes-glo" data-key="datacenter-reits">datacenter-reits</span></span><span data-axes-v2="tilt_premise_loser_chip" data-rank="4" class="eight-axes-rank-chip eight-axes-rank-chip--down">-2</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_premise_loser_name" data-rank="5"><span class="eight-axes-glo" data-key="lithography">lithography</span></span><span data-axes-v2="tilt_premise_loser_chip" data-rank="5" class="eight-axes-rank-chip eight-axes-rank-chip--down">-2</span></div>
  </div>
</div>

    <p><strong>Contrarian-tilt (<span class="eight-axes-glo" data-key="D1">D1</span> ×2).</strong> Surfaces names that haven’t moved.</p>

    <div class="eight-axes-tilt-grid">
  <div class="eight-axes-tilt-col">
    <div class="eight-axes-tilt-col-title">Gainers</div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_gainer_name" data-rank="1"><span class="eight-axes-glo" data-key="lithography">lithography</span></span><span data-axes-v2="tilt_contrarian_gainer_chip" data-rank="1" class="eight-axes-rank-chip eight-axes-rank-chip--up">+4</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_gainer_name" data-rank="2"><span class="eight-axes-glo" data-key="power-semis-vrm">power-semis-vrm</span></span><span data-axes-v2="tilt_contrarian_gainer_chip" data-rank="2" class="eight-axes-rank-chip eight-axes-rank-chip--up">+3</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_gainer_name" data-rank="3"><span class="eight-axes-glo" data-key="datacenter-reits">datacenter-reits</span></span><span data-axes-v2="tilt_contrarian_gainer_chip" data-rank="3" class="eight-axes-rank-chip eight-axes-rank-chip--up">+2</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_gainer_name" data-rank="4"><span class="eight-axes-glo" data-key="model-labs-software">model-labs-software</span></span><span data-axes-v2="tilt_contrarian_gainer_chip" data-rank="4" class="eight-axes-rank-chip eight-axes-rank-chip--up">+1</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_gainer_name" data-rank="5"><span class="eight-axes-glo" data-key="industrial-gases-water">industrial-gases-water</span></span><span data-axes-v2="tilt_contrarian_gainer_chip" data-rank="5" class="eight-axes-rank-chip eight-axes-rank-chip--up">+1</span></div>
  </div>
  <div class="eight-axes-tilt-col">
    <div class="eight-axes-tilt-col-title">Losers</div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_loser_name" data-rank="1"><span class="eight-axes-glo" data-key="nuclear-smr-uranium">nuclear-smr-uranium</span></span><span data-axes-v2="tilt_contrarian_loser_chip" data-rank="1" class="eight-axes-rank-chip eight-axes-rank-chip--down">-4</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_loser_name" data-rank="2"><span class="eight-axes-glo" data-key="hbm-dram">hbm-dram</span></span><span data-axes-v2="tilt_contrarian_loser_chip" data-rank="2" class="eight-axes-rank-chip eight-axes-rank-chip--down">-3</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_loser_name" data-rank="3"><span class="eight-axes-glo" data-key="power-transformers-grid">power-transformers-grid</span></span><span data-axes-v2="tilt_contrarian_loser_chip" data-rank="3" class="eight-axes-rank-chip eight-axes-rank-chip--down">-2</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_loser_name" data-rank="4"><span class="eight-axes-glo" data-key="electrical-equipment">electrical-equipment</span></span><span data-axes-v2="tilt_contrarian_loser_chip" data-rank="4" class="eight-axes-rank-chip eight-axes-rank-chip--down">-2</span></div>
    <div class="eight-axes-tilt-row"><span data-axes-v2="tilt_contrarian_loser_name" data-rank="5"><span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span></span><span data-axes-v2="tilt_contrarian_loser_chip" data-rank="5" class="eight-axes-rank-chip eight-axes-rank-chip--down">-1</span></div>
  </div>
</div>
    <!-- source: composite_notes.md -->

    <p>The asymmetric pick: <strong><code class="language-plaintext highlighter-rouge">power-semis-vrm</code></strong> gains under BOTH tilts. Supply constrained, unpriced, stocks haven’t run. Rare combination. Board-power / <span class="eight-axes-glo" data-key="VRM">VRM</span> (MPS, Vicor, Infineon PMIC) is the cleanest setup.</p>

  </div>
</details>

<div class="eight-axes-root">
<div class="eight-axes-root eight-axes-composite-root">

<style>
.eight-axes-table-wrap { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; margin: 14px 0; }
table.eight-axes-sortable { width: 100%; border-collapse: collapse; font-size: 12.5px; min-width: max-content; font-family: -apple-system,"Segoe UI",Inter,Helvetica,Arial,sans-serif; }
table.eight-axes-sortable th, table.eight-axes-sortable td { padding: 6px 9px; border-bottom: 1px solid #e8e8de; text-align: right; font-variant-numeric: tabular-nums; }
table.eight-axes-sortable th:first-child, table.eight-axes-sortable td:first-child { text-align: left; }
table.eight-axes-sortable th { background: #f5f5ee; cursor: pointer; user-select: none; position: sticky; top: 0; }
table.eight-axes-sortable th.eight-axes-sorted-asc::after { content: " \25B2"; font-size: 10px; color: #888; }
table.eight-axes-sortable th.eight-axes-sorted-desc::after { content: " \25BC"; font-size: 10px; color: #888; }
table.eight-axes-sortable tr.eight-axes-row-top { background: #e6f4ea; }
table.eight-axes-sortable tr.eight-axes-row-mid { background: #fafaf5; }
table.eight-axes-sortable tr.eight-axes-row-bot { background: #fbeaea; }
table.eight-axes-sortable tr:hover { filter: brightness(0.97); }
.eight-axes-delta-up { color: #1f7a36; font-weight: 600; }
.eight-axes-delta-down { color: #a02323; font-weight: 600; }
.eight-axes-delta-flat { color: #999; }
.eight-axes-legend-tercile { font-size: 12px; color: #555; margin: 8px 0; }
.eight-axes-legend-tercile span { display:inline-block; width:12px; height:12px; vertical-align:middle; margin-right:5px; border-radius:2px; border:1px solid #c8c8be; }
/* Fixed column widths to prevent layout shift on redraw */
table.eight-axes-sortable th:nth-child(1), table.eight-axes-sortable td:nth-child(1) { min-width: 200px; }
table.eight-axes-sortable th:nth-child(2), table.eight-axes-sortable td:nth-child(2) { min-width: 70px; }
table.eight-axes-sortable th:nth-child(3), table.eight-axes-sortable td:nth-child(3) { min-width: 55px; }
table.eight-axes-sortable th:nth-child(4), table.eight-axes-sortable td:nth-child(4) { min-width: 70px; }
table.eight-axes-sortable th:nth-child(5), table.eight-axes-sortable td:nth-child(5) { min-width: 55px; }
table.eight-axes-sortable th:nth-child(6), table.eight-axes-sortable td:nth-child(6) { min-width: 80px; }
table.eight-axes-sortable th:nth-child(7), table.eight-axes-sortable td:nth-child(7) { min-width: 60px; }
table.eight-axes-sortable th:nth-child(8), table.eight-axes-sortable td:nth-child(8) { min-width: 80px; }
table.eight-axes-sortable th:nth-child(9), table.eight-axes-sortable td:nth-child(9) { min-width: 80px; }
</style>

<div class="eight-axes-legend-tercile">
  Row shading by composite_equal <span class="eight-axes-glo" data-key="tercile">tercile</span>:
  <span style="background:#e6f4ea"></span> top
  <span style="background:#fafaf5"></span> middle
  <span style="background:#fbeaea"></span> bottom.
  Click any column header to sort. Δ columns: green ▲ = rank improves under that weighting; red ▼ = rank worsens.
</div>
<div class="eight-axes-table-wrap">
<table class="eight-axes-sortable" id="eight-axes-composite-table-v2">
<thead><tr>
<th><span class="eight-axes-glo" data-key="vertical">vertical</span></th>
<th>composite<br />equal</th>
<th>rank<br />equal</th>
<th>composite<br />premise</th>
<th>rank<br />premise</th>
<th>composite<br />contrarian</th>
<th>rank<br />contrarian</th>
<th>Δ premise<br />vs equal</th>
<th>Δ contrarian<br />vs equal</th>
</tr></thead>
<tbody id="eight-axes-composite-tbody-v2"></tbody>
</table>
</div>

<script>
(function () {
  var table = document.getElementById('eight-axes-composite-table-v2');
  var tbody = document.getElementById('eight-axes-composite-tbody-v2');
  var ths = table.querySelectorAll('thead th');

  // ---- Sort state (closure variable; survives state changes) ---------------
  var sortCol = 2;   // 0-indexed column; default rank_equal (col 2)
  var sortAsc = true; // rank_equal ascending (1 = best) matches default order

  // ---- Delta chip HTML -----------------------------------------------------
  function deltaChip(delta) {
    // Engine: delta = rank_equal - rank_tilt
    // Positive delta → rank_equal > rank_tilt → rank improved (lower number) under tilt
    // Negative delta → rank worsened under tilt
    if (delta === 0) {
      return '<span class="eight-axes-delta-flat" data-v="0">0</span>';
    } else if (delta > 0) {
      return '<span class="eight-axes-delta-up" data-v="' + delta + '">▲ ' + delta + '</span>';
    } else {
      return '<span class="eight-axes-delta-down" data-v="' + delta + '">▼ ' + (-delta) + '</span>';
    }
  }

  // Apply delta chip in place — replaces span class + text rather than innerHTML
  function applyDeltaChip(span, delta) {
    span.setAttribute('data-v', delta);
    if (delta === 0) {
      span.className = 'eight-axes-delta-flat';
      span.textContent = '0';
    } else if (delta > 0) {
      span.className = 'eight-axes-delta-up';
      span.textContent = '▲ ' + delta;
    } else {
      span.className = 'eight-axes-delta-down';
      span.textContent = '▼ ' + (-delta);
    }
  }

  // ---- Stable row map (slug -> <tr>) for in-place mutation -----------------
  var rowMap = {};
  var built = false;

  // ---- Tercile class -------------------------------------------------------
  function tercileClass(rank, total) {
    // rank is 1-indexed rank_equal (1 = best composite_equal)
    // top tercile: ranks 1..floor(n/3); bottom tercile: last floor(n/3); mid: rest
    var third = Math.floor(total / 3);
    if (rank <= third) return 'eight-axes-row-top';
    if (rank > total - third) return 'eight-axes-row-bot';
    return 'eight-axes-row-mid';
  }

  // ---- Numeric sort value from a cell (mirrors v1 logic) ------------------
  function cellSortVal(tr, colIdx) {
    var cell = tr.cells[colIdx];
    if (!cell) return NaN;
    // Check direct data-v on cell
    var dv = cell.getAttribute('data-v');
    if (dv === null) {
      // Check child with data-v (delta chip span)
      var child = cell.querySelector('[data-v]');
      if (child) dv = child.getAttribute('data-v');
    }
    if (dv !== null) {
      var n = parseFloat(dv);
      if (!isNaN(n)) return n;
    }
    // Fall back to text
    var t = cell.innerText || cell.textContent || '';
    return parseFloat(t);
  }

  // ---- Initial one-time tbody build (HTML string, runs once) ---------------
  function initialBuild(perVertical) {
    var html = '';
    for (var i = 0; i < perVertical.length; i++) {
      var v = perVertical[i];
      html += '<tr data-slug="' + v.slug + '">';
      html += '<td></td>';
      html += '<td></td>';
      html += '<td></td>';
      html += '<td></td>';
      html += '<td></td>';
      html += '<td></td>';
      html += '<td></td>';
      html += '<td><span></span></td>';
      html += '<td><span></span></td>';
      html += '</tr>';
    }
    tbody.innerHTML = html;
    // Cache slug -> <tr> map
    rowMap = {};
    var trs = tbody.querySelectorAll('tr');
    for (var j = 0; j < trs.length; j++) {
      rowMap[trs[j].getAttribute('data-slug')] = trs[j];
    }
    built = true;
  }

  // ---- Mutate existing rows in place + reorder by sort ---------------------
  function rebuild(perVertical) {
    var n = perVertical.length;

    if (!built) initialBuild(perVertical);

    // Sort a copy of the array to determine display order
    var sorted = perVertical.slice().sort(function (a, b) {
      var fields = [
        'name',              // 0
        'composite_equal',   // 1
        'rank_equal',        // 2
        'composite_premise', // 3
        'rank_premise',      // 4
        'composite_contrarian', // 5
        'rank_contrarian',   // 6
        'delta_premise',     // 7
        'delta_contrarian'   // 8
      ];
      var field = fields[sortCol];
      var av = a[field], bv = b[field];
      if (typeof av === 'string' && typeof bv === 'string') {
        var cmp = av.toLowerCase() < bv.toLowerCase() ? -1 : av.toLowerCase() > bv.toLowerCase() ? 1 : 0;
        return sortAsc ? cmp : -cmp;
      }
      if (!isNaN(av) && !isNaN(bv)) {
        return sortAsc ? av - bv : bv - av;
      }
      return 0;
    });

    // Mutate each row's cells + tercile class + append in sorted order
    for (var i = 0; i < sorted.length; i++) {
      var v = sorted[i];
      var tr = rowMap[v.slug];
      if (!tr) continue;
      var rowClass = tercileClass(v.rank_equal, n);
      // Toggle the three tercile classes
      tr.classList.remove('eight-axes-row-top', 'eight-axes-row-mid', 'eight-axes-row-bot');
      tr.classList.add(rowClass);

      var cells = tr.cells;
      // Col 0: name
      if (cells[0].textContent !== v.name) cells[0].textContent = v.name;
      // Col 1: composite_equal
      cells[1].setAttribute('data-v', v.composite_equal);
      cells[1].textContent = v.composite_equal.toFixed(2);
      // Col 2: rank_equal
      cells[2].setAttribute('data-v', v.rank_equal);
      cells[2].textContent = v.rank_equal;
      // Col 3: composite_premise
      cells[3].setAttribute('data-v', v.composite_premise);
      cells[3].textContent = v.composite_premise.toFixed(2);
      // Col 4: rank_premise
      cells[4].setAttribute('data-v', v.rank_premise);
      cells[4].textContent = v.rank_premise;
      // Col 5: composite_contrarian
      cells[5].setAttribute('data-v', v.composite_contrarian);
      cells[5].textContent = v.composite_contrarian.toFixed(2);
      // Col 6: rank_contrarian
      cells[6].setAttribute('data-v', v.rank_contrarian);
      cells[6].textContent = v.rank_contrarian;
      // Col 7: delta_premise chip (mutate inner span, no innerHTML)
      var span7 = cells[7].firstChild;
      if (span7) applyDeltaChip(span7, v.delta_premise);
      // Col 8: delta_contrarian chip
      var span8 = cells[8].firstChild;
      if (span8) applyDeltaChip(span8, v.delta_contrarian);

      // Append in sorted order — cheap noop if already last
      tbody.appendChild(tr);
    }
  }

  // HTML escape helper
  function _esc(s) {
    return String(s)
      .replace(/&/g, '&amp;')
      .replace(/</g, '&lt;')
      .replace(/>/g, '&gt;')
      .replace(/"/g, '&quot;');
  }

  // ---- Update sort indicator on headers ------------------------------------
  function updateHeaders() {
    ths.forEach(function (th, i) {
      th.classList.remove('eight-axes-sorted-asc', 'eight-axes-sorted-desc');
      if (i === sortCol) {
        th.classList.add(sortAsc ? 'eight-axes-sorted-asc' : 'eight-axes-sorted-desc');
      }
    });
  }

  // ---- Click-to-sort wired to headers (permanent; not re-added on redraw) --
  var lastPerVertical = null;

  ths.forEach(function (th, i) {
    th.addEventListener('click', function () {
      if (sortCol === i) {
        sortAsc = !sortAsc;
      } else {
        sortCol = i;
        // Numeric columns default descending (higher score first);
        // name column defaults ascending; rank columns default ascending.
        var ascDefaults = [true, false, true, false, true, false, true, false, false];
        sortAsc = (ascDefaults[i] !== undefined) ? ascDefaults[i] : false;
      }
      updateHeaders();
      if (lastPerVertical) rebuild(lastPerVertical);
    });
  });

  // ---- rAF-coalesced redraw ------------------------------------------------
  var rafHandle = null;
  var pendingDetail = null;

  function scheduleRedraw(detail) {
    pendingDetail = detail;
    if (rafHandle != null) return;
    rafHandle = requestAnimationFrame(function () {
      rafHandle = null;
      var d = pendingDetail;
      pendingDetail = null;
      lastPerVertical = d.per_vertical;
      rebuild(d.per_vertical);
      updateHeaders();
    });
  }

  // ---- Subscribe to engine state events ------------------------------------
  document.addEventListener('eight-axes-v2:state', function (e) {
    scheduleRedraw(e.detail);
  });

  // ---- Initial render: avoid race by calling compute synchronously ----------
  // Fire after DOM is ready to ensure engine has initialised.
  function initialRender() {
    if (window.eightAxesV2 && typeof window.eightAxesV2.compute === 'function') {
      var detail = window.eightAxesV2.compute(window.eightAxesV2.state);
      lastPerVertical = detail.per_vertical;
      rebuild(detail.per_vertical);
      updateHeaders();
    }
    // If engine not yet present the state event will fire shortly and trigger scheduleRedraw.
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initialRender, { once: true });
  } else {
    initialRender();
  }
})();
</script>

</div>

</div>

<div class="eight-axes-root">
<div class="eight-axes-root eight-axes-scatter-root">

<style>
.eight-axes-scatter-root { font-family: -apple-system,"Segoe UI",Inter,Helvetica,Arial,sans-serif; position: relative; }
.eight-axes-scatter-wrap { background:#fff; border:1px solid #e6e6dd; border-radius:6px; padding:12px; margin:14px 0; }
.eight-axes-scatter-wrap svg { width:100%; height:auto; display:block; }
.eight-axes-scatter-dot { transition: stroke-width 80ms ease, r 80ms ease; cursor: default; }
.eight-axes-scatter-dot:hover, .eight-axes-scatter-dot.is-hover { stroke:#000; stroke-width:1.6; }
.eight-axes-scatter-tip { position:absolute; pointer-events:none; background:#1a1a1a; color:#fff; padding:6px 9px; border-radius:4px; font-size:11.5px; line-height:1.4; opacity:0; transition:opacity 120ms; z-index:10; max-width:240px; }
.eight-axes-scatter-tip.is-on { opacity: 0.96; }
.eight-axes-scatter-tip b { color:#fff; }
.eight-axes-scatter-caption { font-size:11.5px; color:#666; margin-top:6px; }
</style>

<div class="eight-axes-scatter-wrap" id="eight-axes-scatter-v2-wrap">
<svg viewBox="0 0 720 460" xmlns="http://www.w3.org/2000/svg" id="eight-axes-scatter-v2-svg">
  <!-- static grid, axes, labels — never touched by JS -->
  <rect x="60" y="28" width="630" height="376" fill="#fdfdfa" stroke="#d8d8c8" />
  <line x1="186.0" y1="28" x2="186.0" y2="404" stroke="#ececdd" stroke-width="0.7" />
  <line x1="60" y1="328.8" x2="690" y2="328.8" stroke="#ececdd" stroke-width="0.7" />
  <line x1="312.0" y1="28" x2="312.0" y2="404" stroke="#ececdd" stroke-width="0.7" />
  <line x1="60" y1="253.6" x2="690" y2="253.6" stroke="#ececdd" stroke-width="0.7" />
  <line x1="438.0" y1="28" x2="438.0" y2="404" stroke="#ececdd" stroke-width="0.7" />
  <line x1="60" y1="178.4" x2="690" y2="178.4" stroke="#ececdd" stroke-width="0.7" />
  <line x1="564.0" y1="28" x2="564.0" y2="404" stroke="#ececdd" stroke-width="0.7" />
  <line x1="60" y1="103.2" x2="690" y2="103.2" stroke="#ececdd" stroke-width="0.7" />
  <text x="60.0" y="418" text-anchor="middle" font-size="11" fill="#555">0</text>
  <text x="52" y="404.0" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">0</text>
  <text x="186.0" y="418" text-anchor="middle" font-size="11" fill="#555">2</text>
  <text x="52" y="328.8" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">2</text>
  <text x="312.0" y="418" text-anchor="middle" font-size="11" fill="#555">4</text>
  <text x="52" y="253.6" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">4</text>
  <text x="438.0" y="418" text-anchor="middle" font-size="11" fill="#555">6</text>
  <text x="52" y="178.4" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">6</text>
  <text x="564.0" y="418" text-anchor="middle" font-size="11" fill="#555">8</text>
  <text x="52" y="103.2" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">8</text>
  <text x="690.0" y="418" text-anchor="middle" font-size="11" fill="#555">10</text>
  <text x="52" y="28.0" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">10</text>
  <text x="375.0" y="444" text-anchor="middle" font-size="12" fill="#333" font-weight="600">D2 premise-implied TAM headroom  &#x2192;  more upside</text>
  <text x="18" y="216.0" text-anchor="middle" font-size="12" fill="#333" font-weight="600" transform="rotate(-90 18 216.0)">D3 supply elasticity (inelastic)  &#x2192;  pricing power</text>
  <text x="684.0" y="42" text-anchor="end" font-size="10.5" fill="#999" font-style="italic">top-right = biggest headroom + tightest supply</text>
  <!-- circles injected by JS at first render, mutated on every state event -->
  <g id="eight-axes-scatter-v2-dots"></g>
  <defs>
    <linearGradient id="eight-axes-v2-grad" x1="0" x2="1" y1="0" y2="0">
      <stop offset="0%" stop-color="#440154" />
      <stop offset="25%" stop-color="#3a528b" />
      <stop offset="50%" stop-color="#20908c" />
      <stop offset="75%" stop-color="#5ec961" />
      <stop offset="100%" stop-color="#fde724" />
    </linearGradient>
  </defs>
  <rect x="560" y="52" width="120" height="8" fill="url(#eight-axes-v2-grad)" stroke="#999" stroke-width="0.5" />
  <text x="560" y="48" font-size="10" fill="#555">composite_equal</text>
  <text x="560" y="74" font-size="10" fill="#555">3.0</text>
  <text x="680" y="74" font-size="10" fill="#555" text-anchor="end">7.0</text>
</svg>
<div class="eight-axes-scatter-tip" id="eight-axes-scatter-v2-tip"></div>
<div class="eight-axes-scatter-caption">Each dot is one <span class="eight-axes-glo" data-key="vertical">vertical</span>. X = <span class="eight-axes-glo" data-key="D2">D2</span> (premise-implied <span class="eight-axes-glo" data-key="TAM">TAM</span> headroom). Y = <span class="eight-axes-glo" data-key="D3">D3</span> (supply elasticity / how inelastic supply is). Dot color = composite_equal score. Dot size = <span class="eight-axes-glo" data-key="vertical">vertical</span> revenue 2025 (<span class="eight-axes-glo" data-key="log-scale">log-scaled</span>). Top-right quadrant = largest headroom paired with tightest supply = most asymmetric setups.</div>
</div>

<script>
(function () {
  var NS = 'http://www.w3.org/2000/svg';
  var wrap = document.getElementById('eight-axes-scatter-v2-wrap');
  var dotsG = document.getElementById('eight-axes-scatter-v2-dots');
  var tip = document.getElementById('eight-axes-scatter-v2-tip');
  if (!wrap || !dotsG || !tip) return;

  // ---- Coordinate helpers (confirmed from v1 SVG: viewBox 0 0 720 460,
  //      plot area x 60..690, y 28..404, score domain 0..10) ---------------
  function scX(d2) { return 60 + d2 * 63; }          // 0→60, 10→690
  function scY(d3) { return 404 - d3 * 37.6; }       // 0→404, 10→28

  // ---- Radius: log scale on revenue (formula derived from v1 circles) -----
  //   r = 6.37 + 2.588 * ln(rev_bn), clamped [8, 24]
  function scR(revBn) {
    var r = 6.37 + 2.588 * Math.log(Math.max(revBn, 0.1));
    return Math.min(24, Math.max(8, r));
  }

  // ---- Viridis-like color ramp on composite_equal (legend 3.0..7.0) -------
  //   stops: 0%=#440154  25%=#3a528b  50%=#20908c  75%=#5ec961  100%=#fde724
  var STOPS = [
    [0x44, 0x01, 0x54],
    [0x3a, 0x52, 0x8b],
    [0x20, 0x90, 0x8c],
    [0x5e, 0xc9, 0x61],
    [0xfd, 0xe7, 0x24]
  ];
  function viridis(comp) {
    // map composite_equal from [3,7] → [0,1], clamp
    var t = Math.min(1, Math.max(0, (comp - 3) / 4));
    var seg = t * (STOPS.length - 1);
    var lo = Math.floor(seg);
    var hi = Math.min(lo + 1, STOPS.length - 1);
    var f = seg - lo;
    var r = Math.round(STOPS[lo][0] + f * (STOPS[hi][0] - STOPS[lo][0]));
    var g = Math.round(STOPS[lo][1] + f * (STOPS[hi][1] - STOPS[lo][1]));
    var b = Math.round(STOPS[lo][2] + f * (STOPS[hi][2] - STOPS[lo][2]));
    return 'rgb(' + r + ',' + g + ',' + b + ')';
  }

  // ---- Tooltip placement --------------------------------------------------
  function showTip(ev, circle) {
    var rect = wrap.getBoundingClientRect();
    var x = ev.clientX - rect.left + 12;
    var y = ev.clientY - rect.top + 12;
    var maxX = wrap.clientWidth - tip.offsetWidth - 8;
    if (x > maxX) x = maxX;
    tip.style.left = x + 'px';
    tip.style.top = y + 'px';
    tip.innerHTML = circle._tipHtml;
    tip.classList.add('is-on');
  }

  // ---- Stable slug→circle map, built once on first render ----------------
  var circleMap = {};  // slug -> SVGCircleElement
  var firstRender = true;

  // ---- Revenue map: slug -> revenue_2025_usd_bn, built from engine data ---
  var revenueMap = {};  // populated on first state event

  // ---- rAF throttle -------------------------------------------------------
  var rafPending = false;
  var pendingDetail = null;

  function scheduleUpdate(detail) {
    pendingDetail = detail;
    if (rafPending) return;
    rafPending = true;
    requestAnimationFrame(function () {
      rafPending = false;
      applyDetail(pendingDetail);
    });
  }

  // ---- Build revenue map from engine (called once) ------------------------
  function ensureRevMap() {
    if (Object.keys(revenueMap).length > 0) return;
    if (!window.eightAxesV2 || !window.eightAxesV2.data) return;
    var verts = window.eightAxesV2.data.verticals;
    for (var i = 0; i < verts.length; i++) {
      revenueMap[verts[i].slug] = verts[i].vertical_revenue_2025_usd_bn;
    }
  }

  // ---- Core update logic --------------------------------------------------
  function applyDetail(detail) {
    ensureRevMap();
    var pvList = detail.per_vertical;

    if (firstRender) {
      firstRender = false;
      // Create exactly one circle per vertical, in slug order
      for (var i = 0; i < pvList.length; i++) {
        var pv = pvList[i];
        var c = document.createElementNS(NS, 'circle');
        c.setAttribute('class', 'eight-axes-scatter-dot');
        c.setAttribute('data-slug', pv.slug);
        c.setAttribute('fill-opacity', '0.72');
        c.setAttribute('stroke', '#1a1a1a');
        c.setAttribute('stroke-width', '0.6');
        // Tooltip stored on element so mousemove always reads latest value
        c._tipHtml = '';
        // Wire hover events once
        (function (circle) {
          circle.addEventListener('mouseenter', function (ev) {
            showTip(ev, circle);
            circle.classList.add('is-hover');
          });
          circle.addEventListener('mousemove', function (ev) {
            showTip(ev, circle);
          });
          circle.addEventListener('mouseleave', function () {
            tip.classList.remove('is-on');
            circle.classList.remove('is-hover');
          });
        })(c);
        dotsG.appendChild(c);
        circleMap[pv.slug] = c;
      }
    }

    // Mutate existing circles in place
    for (var j = 0; j < pvList.length; j++) {
      var pv = pvList[j];
      var circle = circleMap[pv.slug];
      if (!circle) continue;

      var d2 = pv.scores8[1];  // index 1 = d2_score
      var d3 = pv.scores8[2];  // index 2 = d3_score
      var comp = pv.composite_equal;
      var rev = revenueMap[pv.slug] || 10;
      var implied = pv.implied_2035_usd_bn;
      var rankEq = pv.rank_equal;

      var cx = scX(d2);
      var cy = scY(d3);
      var r  = scR(rev);
      var fill = viridis(comp);

      circle.setAttribute('cx', cx.toFixed(2));
      circle.setAttribute('cy', cy.toFixed(2));
      circle.setAttribute('r',  r.toFixed(2));
      circle.setAttribute('fill', fill);

      // Format implied 2035 revenue
      var impliedFmt;
      if (window.eightAxesV2 && window.eightAxesV2.fmt) {
        impliedFmt = window.eightAxesV2.fmt.dollars(implied);
      } else {
        impliedFmt = '$' + (implied >= 1000
          ? (implied / 1000).toFixed(2) + 'T'
          : implied.toFixed(0) + 'B');
      }

      // Rebuild tooltip text (innerHTML stored on element, read on hover)
      circle._tipHtml =
        '<b>' + pv.name + '</b>' +
        '<br>Rank #' + rankEq + ' (equal-weight)' +
        '<br>D2 headroom: ' + d2.toFixed(2) +
        '<br>D3 supply elasticity: ' + d3.toFixed(2) +
        '<br>composite_equal: ' + comp.toFixed(2) +
        '<br>implied 2035 revenue: ' + impliedFmt +
        '<br>vertical revenue 2025: $' + rev + 'B';

      // Also update SVG <title> for accessibility / native tooltip fallback
      var titleEl = circle.querySelector('title');
      if (!titleEl) {
        titleEl = document.createElementNS(NS, 'title');
        circle.appendChild(titleEl);
      }
      titleEl.textContent =
        pv.slug +
        ' — D2=' + d2.toFixed(2) +
        ', D3=' + d3.toFixed(2) +
        ', composite=' + comp.toFixed(2) +
        ', implied 2035=' + impliedFmt +
        ', rank_equal=#' + rankEq;
    }
  }

  // ---- Subscribe to engine events -----------------------------------------
  document.addEventListener('eight-axes-v2:state', function (e) {
    scheduleUpdate(e.detail);
  });

  // ---- Fire immediately if engine already ran (detail not cached, so
  //      trigger a fresh dispatch by calling set with no changes) ------------
  if (window.eightAxesV2) {
    window.eightAxesV2.set({});
  }
  // If engine hasn't loaded yet it will dispatch on DOMContentLoaded and
  // the listener above will catch it.
})();
</script>

</div>

</div>

<h2 id="nuclearsmr-jumped-16-places-vs-v1">Nuclear/<span class="eight-axes-glo" data-key="SMR">SMR</span> jumped 16 places vs <a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a></h2>

<div class="eight-axes-hero-stat eight-axes-hero-stat--inline">
  <div class="eight-axes-hero-num"><span data-axes-v2="nuclear_v1_delta">+16</span></div>
  <div class="eight-axes-hero-label"><span class="eight-axes-glo" data-key="nuclear-smr-uranium">nuclear-smr-uranium</span>: v1 #21 ‒&gt; v2 <span data-axes-v2="nuclear_v2_rank">#5</span></div>
</div>

<p class="eight-axes-lede"><a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a> saw a 4.2x rally and called it "<span class="eight-axes-glo" data-key="priced-in">priced_in</span>". v2 reads four more axes -- supply, substitution, geopolitics, headroom -- all pointing the same way.</p>

<details class="eight-axes-more">
<summary>How we got there</summary>
<div class="eight-axes-more-body">

    <div class="eight-axes-callout-info">
<a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a> read 3 signals (return, <span class="eight-axes-glo" data-key="beta">beta</span>, AI-share) and stopped. v2 reads 8.
</div>

    <p>v1 ranked <span class="eight-axes-glo" data-key="nuclear-smr-uranium">nuclear-smr-uranium</span> <strong>#21 of 22, “<span class="eight-axes-glo" data-key="priced-in">priced_in</span>“</strong>: 4.2x 3-year return, 4% AI-share-today, no substrate. v2 keeps the rally penalty but adds four axes that all favour <span class="eight-axes-glo" data-key="SMR">SMR</span>:</p>

    <table class="eight-axes-mini-table">
<thead><tr><th>Axis</th><th>Score</th><th>What it measures</th></tr></thead>
<tbody>
<tr><td><span class="eight-axes-glo" data-key="D2">D2</span> headroom</td><td>9.29</td><td>Premise-implied 2035 <span class="eight-axes-glo" data-key="TAM">TAM</span> minus today</td></tr>
<tr><td><span class="eight-axes-glo" data-key="D3">D3</span> supply</td><td>9.51</td><td>5-10 yr permitting, most inelastic</td></tr>
<tr><td><span class="eight-axes-glo" data-key="D5">D5</span> substitution</td><td>10</td><td>No baseload alternative inside 10 yrs</td></tr>
<tr><td><span class="eight-axes-glo" data-key="D7">D7</span> geopolitics</td><td>10</td><td>US/Allied uranium plus <span class="eight-axes-glo" data-key="DOE LPO">DOE LPO</span></td></tr>
</tbody>
</table>

    <p>Under <span class="eight-axes-glo" data-key="contrarian-tilt">contrarian-tilt</span> (<span class="eight-axes-glo" data-key="D1">D1</span> doubled) the rank drops to <strong>#9</strong>. Asymmetric, not unconditional – a forward-supply-curve bet, not a momentum bet. <!-- source: comparison of analysis/ranking.csv to composite.csv --></p>

  </div>
</details>

<h2 id="where-this-is-still-wrong">Where this is still wrong</h2>

<p class="eight-axes-lede">Eight axes beats three numbers, but it isn't the truth. Premise-level weaknesses listed in the five caveats above (<span data-axes-v2="m_pretty">3&times;</span> upper-tercile, <span data-axes-v2="c_display">20.0%</span> blended capture, <span data-axes-v2="B_display">$2.6T</span> US-only baseline, annual-vs-NPV horizon, flat P/S). Method-level weaknesses below: <span class="eight-axes-glo" data-key="fragility">fragility</span> on top-decile names, a judgement-call allocation split, substitution risk scored from notes not markets, and n=22.</p>

<div class="eight-axes-callout-caveat">
<strong>Single-dimension <span class="eight-axes-glo" data-key="fragility">fragility</span>.</strong> Top-decile names hinging on one axis. <code>datacenter-reits</code> swings 8 ranks under <span class="eight-axes-glo" data-key="leave-one-out">leave-one-out</span>: drop <span class="eight-axes-glo" data-key="D2">D2</span> and the thesis collapses. <code>power-transformers-grid</code> ranges 7-18. <code>lithography</code> 7-18. <code>model-labs-software</code> 3-15. Not diversified theses. Position-size accordingly. <!-- source: composite_notes.md -->
</div>

<div class="eight-axes-root">
<div class="eight-axes-root eight-axes-sens-root">

<style>
.eight-axes-sens-root { font-family: -apple-system,"Segoe UI",Inter,Helvetica,Arial,sans-serif; }
.eight-axes-sens-legend { font-size: 12px; color: #555; margin: 8px 0 10px 0; }
.eight-axes-sens-legend span.sw { display:inline-block; width:11px; height:11px; vertical-align:middle; margin-right:5px; border-radius:2px; }
.eight-axes-sens-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.eight-axes-sens-card { margin: 0; padding: 6px 6px 4px 6px; border: 1px solid #ececdd; border-radius: 4px; background: #fff; }
.eight-axes-sens-card figcaption { font-size: 11.5px; line-height: 1.3; margin-bottom: 4px; display:flex; justify-content:space-between; align-items:baseline; gap:6px; }
.eight-axes-sens-rank { color: #999; font-variant-numeric: tabular-nums; }
.eight-axes-sens-name { font-weight: 600; flex: 1 1 auto; }
.eight-axes-sens-fragility { font-size: 10.5px; color: #666; font-variant-numeric: tabular-nums; white-space: nowrap; }
.eight-axes-sens-svg { width:100%; height:auto; display:block; }
.eight-axes-sens-controls { font-size: 12.5px; margin: 4px 0 8px 0; }
.eight-axes-sens-controls button { font: inherit; padding: 3px 8px; margin-right: 6px; border: 1px solid #c8c8be; background: #f5f5ee; border-radius: 4px; cursor: pointer; }
.eight-axes-sens-controls button.is-active { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
</style>

<div class="eight-axes-sens-legend">
  Each panel = one <span class="eight-axes-glo" data-key="vertical">vertical</span>. Bars show rank &Delta; when that dimension is dropped from the equal-weight composite.
  <span class="sw" style="background:#a02323"></span>red &rarr; rank worsens when dropped (<span class="eight-axes-glo" data-key="vertical">vertical</span> depended on this dim)
  <span class="sw" style="background:#1f7a36"></span>green &larr; rank improves when dropped (dim was dragging the <span class="eight-axes-glo" data-key="vertical">vertical</span> down).
  &Sigma;|&Delta;| = total <span class="eight-axes-glo" data-key="fragility">fragility</span> (sum of absolute rank shifts).
</div>
<div class="eight-axes-sens-controls">
  Sort:
  <button id="eight-axes-sens-btn-rank" class="is-active">by composite rank</button>
  <button id="eight-axes-sens-btn-frag">by <span class="eight-axes-glo" data-key="fragility">fragility</span> (&Sigma;|&Delta;|)</button>
</div>
<div class="eight-axes-sens-grid" id="eight-axes-sens-grid"></div>

<script>
(function () {
  var grid    = document.getElementById('eight-axes-sens-grid');
  var btnRank = document.getElementById('eight-axes-sens-btn-rank');
  var btnFrag = document.getElementById('eight-axes-sens-btn-frag');
  if (!grid || !btnRank || !btnFrag) return;

  // SVG geometry constants (identical to the static v1 render)
  var SVG_CX    = 114.0;  // x of the zero-axis centre line
  var SVG_SCALE = 9.75;   // px per 1 rank-delta unit
  var SVG_BAR_H = 13.12;  // bar height (px)
  // Row centre y values for D1..D8
  var ROW_Y = [15.4, 34.1, 52.9, 71.6, 90.4, 109.1, 127.9, 146.6];
  var DIM_LABELS = ['D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8'];
  var COL_POS = '#a02323'; // rank worsens  (delta > 0)
  var COL_NEG = '#1f7a36'; // rank improves (delta < 0)

  // Current sort mode: 'rank' | 'frag'
  var sortMode = 'rank';

  // ---- SVG builder ---------------------------------------------------------
  function buildSVG(deltas) {
    var p = [
      '<svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg">',
      '<line x1="' + SVG_CX + '" y1="6" x2="' + SVG_CX + '" y2="156" stroke="#999" stroke-width="0.6"/>'
    ];
    for (var k = 0; k < 8; k++) {
      var d  = deltas[k];
      var cy = ROW_Y[k];
      var ty = cy - SVG_BAR_H / 2; // bar top y
      var lbl = DIM_LABELS[k];
      p.push('<text x="32" y="' + cy + '" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">' + lbl + '</text>');
      if (d === 0) {
        p.push('<line x1="' + (SVG_CX - 2) + '" y1="' + cy + '" x2="' + (SVG_CX + 2) + '" y2="' + cy + '" stroke="#aaa" stroke-width="1"/>');
      } else if (d > 0) {
        var w = d * SVG_SCALE;
        p.push(
          '<rect x="' + SVG_CX.toFixed(2) + '" y="' + ty.toFixed(2) + '" width="' + w.toFixed(2) + '" height="' + SVG_BAR_H + '" fill="' + COL_POS + '" fill-opacity="0.85">',
          '<title>' + lbl + ' dropped: rank Δ +' + d + '</title>',
          '</rect>',
          '<text x="' + (SVG_CX + w + 2).toFixed(2) + '" y="' + cy + '" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+' + d + '</text>'
        );
      } else {
        var w2 = (-d) * SVG_SCALE;
        var bx = SVG_CX - w2;
        p.push(
          '<rect x="' + bx.toFixed(2) + '" y="' + ty.toFixed(2) + '" width="' + w2.toFixed(2) + '" height="' + SVG_BAR_H + '" fill="' + COL_NEG + '" fill-opacity="0.85">',
          '<title>' + lbl + ' dropped: rank Δ ' + d + '</title>',
          '</rect>',
          '<text x="' + (bx - 2).toFixed(2) + '" y="' + cy + '" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">' + d + '</text>'
        );
      }
    }
    p.push('</svg>');
    return p.join('');
  }

  // ---- HTML escape helper --------------------------------------------------
  function esc(s) {
    return String(s).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
  }

  // ---- Build all panels from scratch (first call) --------------------------
  function buildPanels(perVertical, looMap) {
    var sorted = perVertical.slice().sort(function (a, b) { return a.rank_equal - b.rank_equal; });
    var html = '';
    for (var i = 0; i < sorted.length; i++) {
      var v      = sorted[i];
      var deltas = looMap[v.slug] || new Array(8).fill(0);
      var frag   = deltas.reduce(function (s, d) { return s + Math.abs(d); }, 0);
      html += '<figure class="eight-axes-sens-card" data-slug="' + esc(v.slug) + '" data-rank="' + v.rank_equal + '" data-fragility="' + frag + '">';
      html += '<figcaption>';
      html += '<span class="eight-axes-sens-rank">#' + v.rank_equal + '</span> ';
      html += '<span class="eight-axes-sens-name">' + esc(v.name) + '</span> ';
      html += '<span class="eight-axes-sens-fragility">Σ|Δ|=' + frag + '</span>';
      html += '</figcaption>';
      html += buildSVG(deltas);
      html += '</figure>';
    }
    grid.innerHTML = html;
  }

  // ---- Update existing panels in place (subsequent calls) ------------------
  function updatePanels(perVertical, looMap) {
    // Build a slug->pv lookup for O(1) access
    var pvBySlug = {};
    for (var j = 0; j < perVertical.length; j++) {
      pvBySlug[perVertical[j].slug] = perVertical[j];
    }
    var cards = grid.querySelectorAll('.eight-axes-sens-card');
    for (var i = 0; i < cards.length; i++) {
      var card   = cards[i];
      var slug   = card.getAttribute('data-slug');
      var pv     = pvBySlug[slug];
      if (!pv) continue;
      var deltas = looMap[slug] || new Array(8).fill(0);
      var frag   = deltas.reduce(function (s, d) { return s + Math.abs(d); }, 0);

      // Update data attributes (used for sort)
      card.setAttribute('data-rank',      pv.rank_equal);
      card.setAttribute('data-fragility', frag);

      // Update caption
      var rankEl = card.querySelector('.eight-axes-sens-rank');
      var fragEl = card.querySelector('.eight-axes-sens-fragility');
      if (rankEl) rankEl.textContent = '#' + pv.rank_equal;
      if (fragEl) fragEl.textContent = 'Σ|Δ|=' + frag;

      // Swap SVG
      var oldSvg = card.querySelector('svg');
      if (oldSvg) {
        var tmp = document.createElement('div');
        tmp.innerHTML = buildSVG(deltas);
        card.replaceChild(tmp.firstChild, oldSvg);
      }
    }
  }

  // ---- Re-order grid cards according to sortMode --------------------------
  function applySort() {
    var cards = Array.prototype.slice.call(grid.children);
    if (sortMode === 'frag') {
      cards.sort(function (a, b) {
        return parseFloat(b.getAttribute('data-fragility')) - parseFloat(a.getAttribute('data-fragility'));
      });
    } else {
      cards.sort(function (a, b) {
        return parseFloat(a.getAttribute('data-rank')) - parseFloat(b.getAttribute('data-rank'));
      });
    }
    cards.forEach(function (c) { grid.appendChild(c); });
  }

  // ---- Sort-toggle buttons ------------------------------------------------
  btnRank.addEventListener('click', function () {
    sortMode = 'rank';
    applySort();
    btnRank.classList.add('is-active');
    btnFrag.classList.remove('is-active');
  });
  btnFrag.addEventListener('click', function () {
    sortMode = 'frag';
    applySort();
    btnFrag.classList.add('is-active');
    btnRank.classList.remove('is-active');
  });

  // ---- Engine state handler (called inside rAF by eightAxesV2.subscribe) --
  var initialized = false;
  function onState(detail) {
    var pv     = detail.per_vertical;
    // leaveOneOut: 22 verticals x 8 dims x 22 sorts — cheap, ~0.5ms
    var looMap = window.eightAxesV2.leaveOneOut(pv);
    if (!initialized) {
      buildPanels(pv, looMap);
      initialized = true;
    } else {
      updatePanels(pv, looMap);
    }
    applySort();
  }

  // Attach subscriber once the engine is available
  function attach() {
    if (window.eightAxesV2 && typeof window.eightAxesV2.subscribe === 'function') {
      window.eightAxesV2.subscribe(onState);
    } else {
      // Engine not yet initialised; listen for the first dispatched event, then
      // hand off to the proper rAF-coalescing subscriber.
      document.addEventListener('eight-axes-v2:state', function bootstrap(e) {
        document.removeEventListener('eight-axes-v2:state', bootstrap);
        window.eightAxesV2.subscribe(onState);
        onState(e.detail); // process the event we just caught
      }, { once: true });
    }
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', attach, { once: true });
  } else {
    attach();
  }
})();
</script>

</div>

</div>

<div class="eight-axes-callout-caveat">
<strong>Premise stack now has heterogeneity.</strong> v2 (interactive) extends the article's flat-capture/unit-elasticity methodology with two per-vertical channels: m-elasticity (D8-sourced) and layer-specific capture (D4-sourced, 50/50 blended with the slider's c). Ranks shift when you drag m or c. B remains a uniform size knob. Open work: replacing the 50/50 blend with a true uniformity slider; deriving e_i and c_layer_i from market data rather than from-axis-proxies. State at write time: m=<span data-axes-v2="m_pretty">3&times;</span>, c=<span data-axes-v2="c_display">20.0%</span>, B=<span data-axes-v2="B_display">$2.6T</span>.
</div>

<div class="eight-axes-callout-caveat">
<strong>Allocation is a choice.</strong> 50/50 between current-AI-revenue and sqrt(AI-share) × size: reasonable, not first-principles. 70/30 tilts to monetised silicon; 30/70 to physical. Sqrt avoids double-penalising commodities; linear or cube root would re-order. Pool unchanged at <span data-axes-v2="pool">$1.56T</span>.
</div>

<div class="eight-axes-callout-caveat">
<strong>Substitution risk is literature-review.</strong> <span class="eight-axes-glo" data-key="D5">D5</span> is the softest axis. Per-vertical 0-1 probability from sell-side notes + <span class="eight-axes-glo" data-key="TRL">TRL</span>. Defensible, not tradable. <span class="eight-axes-glo" data-key="CDS">CDS</span> / options skew / single-name vol would be better.
</div>

<div class="eight-axes-callout-caveat">
<strong>n = 22 is small.</strong> <span class="eight-axes-glo" data-key="Spearman">Spearman</span> CIs are wide. Orthogonality claim: "no pair &gt; r = 0.7 at this n," not "independent in expectation." 50-80 verticals (software sub-segments + downstream) would test harder.
</div>

<details class="eight-axes-more">
<summary>Robust longs (smallest <span class="eight-axes-glo" data-key="leave-one-out">leave-one-out</span> ranges)</summary>
<div class="eight-axes-more-body">

    <p><code class="language-plaintext highlighter-rouge">copper-rare-earth</code> (3), <code class="language-plaintext highlighter-rouge">industrial-gases-water</code> (3), <code class="language-plaintext highlighter-rouge">utilities-merchant-power</code> (3), <code class="language-plaintext highlighter-rouge">wfe-deposition-etch</code> (4), <code class="language-plaintext highlighter-rouge">hyperscalers-cloud</code> (4). Three are top-5.</p>

    <p>The matrix is a sketch of where picks-and-shovels sit when the rally is held to an explicit premise. More honest than <a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a>. Not a buy list.</p>

    <p class="eight-axes-robust-note" style="margin-top: 8px; font-size: 12px; color: #777;">(Leave-one-out ranges are computed at default premise. Live LOO redraws above; ranges shown here are the v1 defaults.)</p>

  </div>
</details>

<h2 id="references--further-reading">References &amp; further reading</h2>

<div class="eight-axes-refs">

  <p><strong>Predecessor</strong></p>

  <ul>
    <li><a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/">Earlier framing: 3-input gap-metric ranking (v1)</a> <span class="eight-axes-ref-ctx">— v1 ranking this post rebuilds: 3-yr return, NVDA <span class="eight-axes-glo" data-key="beta">beta</span>, AI-revenue share, <span class="eight-axes-glo" data-key="z-score">z-scored</span> into a “gap”.</span></li>
  </ul>

  <p><strong>Contrarian critiques (internal reviews)</strong></p>

  <p>Each premise input was challenged by a dedicated internal review; findings folded into the caveat callout above. Notes are in the repo, not published.</p>

  <ul>
    <li><em>Critique A — baseline.</em> <span class="eight-axes-ref-ctx"><span class="eight-axes-glo" data-key="BEA">BEA</span> = stock not flow; ICT-TFP ~$2.5T/yr; GDP-B ~$4.5T. Current slider B = <span data-axes-v2="B_display">$2.6T</span>.</span></li>
    <li><em>Critique B — multiplier.</em> <span class="eight-axes-ref-ctx">90% CI [0.5x, 5x], median ~1.5x. 3x sits at the 80th percentile. Current slider m = <span data-axes-v2="m_pretty">3×</span>.</span></li>
    <li><em>Critique C — <span class="eight-axes-glo" data-key="capture rate">capture rate</span>.</em> <span class="eight-axes-ref-ctx">Range [10%, 35%]; <span class="eight-axes-glo" data-key="EDA">EDA</span> / <span class="eight-axes-glo" data-key="hyperscalers">hyperscalers</span> ~35%, mid-stack 15-20%, commodities 5-8%. Current slider c = <span data-axes-v2="c_display">20.0%</span>.</span></li>
    <li><em>Critique D — US vs global.</em> <span class="eight-axes-ref-ctx">Hybrid: $2.6T US for US vendors, ~$16T global for foreign. Global pool ~$9.6T. Current implied pool: <span data-axes-v2="pool">$1.56T</span>.</span></li>
    <li><em>Critique E — time horizon.</em> <span class="eight-axes-ref-ctx">Annual maturity, not NPV. No discount rate stated. Current uplift: <span data-axes-v2="uplift">$7.8T</span>.</span></li>
  </ul>

  <p><strong>Premise (the 3x baseline)</strong></p>

  <ul>
    <li><a href="https://apps.bea.gov/scb/issues/2023/12-december/1223-digital-economy.htm"><span class="eight-axes-glo" data-key="BEA Digital Economy">BEA Digital Economy</span> Satellite Account, SCB Dec 2023</a> <span class="eight-axes-ref-ctx">— US digital economy 10.0% of GDP, <span data-axes-v2="B_display">$2.6T</span> in 2022. The baseline.</span> (<a href="https://www.bea.gov/sites/default/files/2023-12/digital-economy-infographic-2022.pdf">infographic PDF</a>)</li>
    <li><a href="https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/the-economic-potential-of-generative-ai-the-next-productivity-frontier">McKinsey — “The economic potential of generative AI”</a> <span class="eight-axes-ref-ctx">— $2.6-4.4T annual gen-AI value, 63 use cases. Capture-rate endpoint #1. (Slider c = <span data-axes-v2="c_display">20.0%</span>.)</span></li>
    <li><a href="https://www.bain.com/about/media-center/press-releases/2024/market-for-ai-products-and-services-could-reach-up-to--$990-billion-by-2027-finds-bain--companys-5th-annual-global-technology-report/">Bain Global Technology Report (2024)</a> <span class="eight-axes-ref-ctx">— $990B AI products and services by 2027. Capture-rate endpoint #2. (Implied pool: <span data-axes-v2="pool">$1.56T</span>.)</span></li>
    <li><a href="https://www.goldmansachs.com/insights/articles/generative-ai-could-raise-global-gdp-by-7-percent">Goldman Sachs — Briggs / Kodnani, “Generative AI could raise global GDP by 7%”</a> <span class="eight-axes-ref-ctx">— 7% / ~$7T global GDP uplift over 10 years. <span data-axes-v2="m_pretty">3×</span> cross-check.</span></li>
    <li><a href="https://hai.stanford.edu/ai-index/2025-ai-index-report/economy">Stanford AI Index 2025 — economy chapter</a> <span class="eight-axes-ref-ctx">— $252.3B 2024 corporate AI investment; $33.9B private gen-AI. (Total at-maturity uplift: <span data-axes-v2="uplift">$7.8T</span>.)</span></li>
    <li><a href="https://www.wipo.int/en/web/global-innovation-index/w/blogs/2025/global-software-spending">WIPO — global software industry $675B in 2024</a> <span class="eight-axes-ref-ctx">— software vs <span class="eight-axes-glo" data-key="BEA">BEA</span> digital ratio ~26% historical capture. (Slider c = <span data-axes-v2="c_display">20.0%</span>.)</span></li>
  </ul>

  <p><strong>Per-dimension data sources</strong></p>

  <ul>
    <li><span class="eight-axes-glo" data-key="D1">D1</span>: per-vertical 5-yr total returns via <a href="https://finance.yahoo.com/">yfinance / Yahoo Finance</a>, equal-weight per <code class="language-plaintext highlighter-rouge">data/verticals/*.json</code>.</li>
    <li><span class="eight-axes-glo" data-key="D2">D2</span>: derived from <code class="language-plaintext highlighter-rouge">phase1_allocations.csv</code> (external inputs under “Premise” above).</li>
    <li><span class="eight-axes-glo" data-key="D3">D3</span>: <a href="https://siliconanalysts.com/analysis/foundry-allocation-status-q1-2026">Silicon Analysts — TSMC <span class="eight-axes-glo" data-key="CoWoS">CoWoS</span> Q1 2026</a>; <a href="https://www.mobileworldlive.com/ai-cloud/feature-can-asml-catch-up-with-a-record-e39b-backlog/">MobileWorldLive — ASML <span class="eight-axes-glo" data-key="EUV">EUV</span> €39B backlog</a>; <a href="https://www.iea.org/reports/building-the-future-transmission-grid/executive-summary">IEA — Future Transmission Grid</a>; <a href="https://eepower.com/tech-insights/transformer-supply-chain-woes-persist-as-energy-demand-grows/">eepower — <span class="eight-axes-glo" data-key="transformer">transformer</span> supply</a>; <a href="https://www.utilitydive.com/news/ge-vernova-gas-turbine-investor/807662/">Utility Dive — <span class="eight-axes-glo" data-key="GE">GE</span> Vernova 80GW gas-turbine backlog</a>; <a href="https://smrintel.com/smr-nrc-approval-tracker/"><span class="eight-axes-glo" data-key="SMR">SMR</span> Intel — NRC tracker</a>; <a href="https://www.miningvisuals.com/post/copper-mines-average-time-from-discovery-to-production-is-17-9-years">Mining Visuals — 17.9-yr copper discovery-to-production</a>; <a href="https://introl.com/blog/ai-memory-supercycle-hbm-2026">Introl — <span class="eight-axes-glo" data-key="HBM">HBM</span> 2026 supercycle</a>; <a href="https://www.carbon-direct.com/press/carbon-direct-releases-new-analysis-of-power-grid-interconnection-queues-pjm-ercot">Carbon Direct — interconnection queues</a>.</li>
    <li><span class="eight-axes-glo" data-key="D4">D4</span>: <a href="https://www.sec.gov/edgar.shtml">SEC EDGAR</a> 10-K/Q gross margins via yfinance (US); Yahoo per-ticker for non-US.</li>
    <li><span class="eight-axes-glo" data-key="D5">D5</span>: SemiAnalysis cluster reads, <a href="https://www.idtechex.com/">IDTechEx <span class="eight-axes-glo" data-key="CPO">CPO</span> 2026-2036</a>, Menlo Ventures LLM survey, Stordis UEC 1.0.</li>
    <li><span class="eight-axes-glo" data-key="D6">D6</span>: <a href="https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&amp;CIK=MSFT&amp;type=10-K">MSFT 10-K</a>; <a href="https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&amp;CIK=TSM&amp;type=10-K">TSM 10-K</a>. Capex/sales + cycle stage.</li>
    <li><span class="eight-axes-glo" data-key="D7">D7</span>: <a href="https://www.commerce.gov/news/press-releases">US Commerce <span class="eight-axes-glo" data-key="CHIPS Act">CHIPS</span> preliminary terms</a> (Intel, TSMC, Samsung, Micron, GF); <a href="https://www.bis.doc.gov/index.php/policy-guidance/advanced-computing-and-semiconductor-manufacturing">BIS Oct-2022 / Oct-2023 export controls</a>; <a href="https://www.iea.org/reports/electricity-2024">IEA Electricity 2024</a>; company IR (Linde, Coherent, Arista, Vertiv).</li>
    <li><span class="eight-axes-glo" data-key="D8">D8</span>: <a href="https://a16z.com/the-economic-case-for-generative-ai/">a16z — Economic Case for Generative AI</a>; SemiAnalysis “AI Datacenter Energy Dilemma” / “Power Crisis”; <a href="https://www.rand.org/">RAND — AI’s Power Requirements</a>.</li>
  </ul>

</div>]]></content><author><name>Ronald Luc</name></author><category term="Research" /><category term="Investing" /><category term="AI" /><category term="Semiconductors" /><category term="Research" /><summary type="html"><![CDATA[Interactive: drag three premises (multiplier, capture, baseline) and watch 22 verticals re-rank as per-vertical elasticity (D8) and layer-specific capture (D4) propagate through the composite.]]></summary></entry><entry><title type="html">Eight axes for the LLM supply chain</title><link href="https://ronaldluc.com/research/eight-axes-for-the-llm-supply-chain/" rel="alternate" type="text/html" title="Eight axes for the LLM supply chain" /><published>2026-05-26T14:30:00+00:00</published><updated>2026-05-26T14:30:00+00:00</updated><id>https://ronaldluc.com/research/eight-axes-for-the-llm-supply-chain</id><content type="html" xml:base="https://ronaldluc.com/research/eight-axes-for-the-llm-supply-chain/"><![CDATA[<div class="eight-axes-root">

<style>
/* TL;DR strip */
.eight-axes-tldr {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin: 18px 0 28px;
}
.eight-axes-tldr.eight-axes-tldr--3up { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 720px) {
  .eight-axes-tldr { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
  .eight-axes-tldr.eight-axes-tldr--3up { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
}
/* v1 hyperlink — preserves "v1" reading flow while flagging it as a cross-post link */
a.eight-axes-v1-link {
  color: #1d4d8a;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 2px;
  font-weight: 600;
}
a.eight-axes-v1-link:hover { background: rgba(29,77,138,0.08); text-decoration-style: solid; }
.eight-axes-hero-stat {
  background: #fdfdfa;
  border: 1px solid #e0e0d4;
  border-left: 4px solid #1d4d8a;
  border-radius: 4px;
  padding: 12px 14px;
}
.eight-axes-hero-num {
  font-size: 28px; font-weight: 800; line-height: 1.1;
  color: #1d4d8a;
  font-feature-settings: "tnum";
}
.eight-axes-hero-label {
  font-size: 12px; color: #555; margin-top: 6px; line-height: 1.35;
}
.eight-axes-hero-stat--inline { display: inline-flex; gap: 10px; align-items: baseline; padding: 8px 12px; }
.eight-axes-hero-stat--inline .eight-axes-hero-num { font-size: 22px; }

/* Lede + collapsible */
.eight-axes-lede {
  font-size: 15.5px; line-height: 1.55; margin: 6px 0 10px;
  color: #1a1a1a;
}
details.eight-axes-more {
  border: 1px solid #e6e6dd;
  border-radius: 4px;
  background: #fafaf4;
  padding: 8px 14px;
  margin: 8px 0 22px;
}
details.eight-axes-more > summary {
  cursor: pointer; font-weight: 600; font-size: 13.5px;
  color: #555; list-style: none;
}
details.eight-axes-more > summary::-webkit-details-marker { display: none; }
details.eight-axes-more > summary::before {
  content: "\25B6"; display: inline-block; margin-right: 8px;
  font-size: 10px; color: #888; transition: transform .12s ease;
}
details.eight-axes-more[open] > summary::before { transform: rotate(90deg); }
.eight-axes-more-body { padding-top: 8px; font-size: 14.5px; line-height: 1.6; }

/* Callouts */
.eight-axes-callout-premise,
.eight-axes-callout-info,
.eight-axes-callout-caveat {
  border-left: 4px solid;
  border-radius: 0 4px 4px 0;
  padding: 10px 14px;
  margin: 12px 0;
  font-size: 14px;
  line-height: 1.55;
}
.eight-axes-callout-premise { background: #eef4fc; border-color: #1d4d8a; }
.eight-axes-callout-info    { background: #f3f3ed; border-color: #888;   }
.eight-axes-callout-caveat  { background: #fdf6e3; border-color: #b58900; }

/* Premise-as-axiom: large, explicit thesis statement above the lede */
.eight-axes-premise-axiom {
  margin: 24px 0 28px;
  padding: 28px 32px;
  background: linear-gradient(135deg, #fafbfc 0%, #f1f4f9 100%);
  border-left: 4px solid #2563eb;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.eight-axes-premise-label {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 12px;
  font-weight: 700;
  color: #2563eb;
  margin-bottom: 12px;
}
.eight-axes-premise-statement {
  font-size: 22px;
  line-height: 1.4;
  font-weight: 500;
  color: #0f172a;
}
.eight-axes-premise-statement strong {
  color: #2563eb;
  font-weight: 700;
  font-size: 28px;
}
@media (max-width: 640px) {
  .eight-axes-premise-axiom { padding: 18px 20px; }
  .eight-axes-premise-statement { font-size: 18px; }
  .eight-axes-premise-statement strong { font-size: 22px; }
}

/* Mini-table (counter-intuitive section, axis breakdown) */
table.eight-axes-mini-table {
  width: 100%;
  border-collapse: collapse;
  margin: 10px 0 12px;
  font-size: 13px;
  font-feature-settings: "tnum";
}
table.eight-axes-mini-table th,
table.eight-axes-mini-table td {
  border-bottom: 1px solid #e6e6dd;
  padding: 6px 10px;
  text-align: left;
  vertical-align: top;
}
table.eight-axes-mini-table th {
  background: #f3f3ed;
  font-weight: 700;
  font-size: 12px;
  color: #444;
}
table.eight-axes-mini-table td:nth-child(2) {
  font-weight: 700;
  color: #1d4d8a;
  white-space: nowrap;
  width: 70px;
}
table.eight-axes-mini-table td:nth-child(1) {
  white-space: nowrap;
  width: 130px;
}

/* 8-axis grid */
.eight-axes-axis-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px; margin: 14px 0; padding: 0;
}
.eight-axes-axis-card {
  background: #fff; border: 1px solid #e0e0d4; border-radius: 4px;
  padding: 10px 12px;
}
.eight-axes-axis-card dt {
  font-weight: 700; font-size: 14px; margin-bottom: 4px;
}
.eight-axes-axis-id {
  display: inline-block; min-width: 26px; padding: 1px 6px;
  background: #1d4d8a; color: #fff; border-radius: 3px;
  font-size: 12px; margin-right: 6px; font-feature-settings: "tnum";
}
.eight-axes-axis-what    { font-size: 13px; color: #222; margin: 0 0 4px; }
.eight-axes-axis-extreme { font-size: 12px; color: #666; margin: 0; font-feature-settings: "tnum"; }

/* Top-5 / Bottom-5 strip */
.eight-axes-pick-strip {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: 8px; margin: 12px 0;
}
@media (max-width: 720px) {
  .eight-axes-pick-strip { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
}
.eight-axes-pick {
  background: #fff; border: 1px solid #e0e0d4; border-top: 3px solid #1d4d8a;
  border-radius: 3px; padding: 8px 10px;
}
.eight-axes-pick-rank  { font-size: 11px; color: #888; font-weight: 700; }
.eight-axes-pick-name  { font-size: 13px; font-weight: 600; color: #1a1a1a; word-break: break-word; }
.eight-axes-pick-score { font-size: 18px; font-weight: 800; color: #1d4d8a; margin-top: 4px; font-feature-settings: "tnum"; }
.eight-axes-pick-strip--bottom .eight-axes-pick { border-top-color: #a02323; }
.eight-axes-pick-strip--bottom .eight-axes-pick-score { color: #a02323; }

/* Tilt grids (gainers / losers) */
.eight-axes-tilt-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 12px 0;
}
.eight-axes-tilt-col { background: #fafaf4; border: 1px solid #e6e6dd; border-radius: 4px; padding: 10px; }
.eight-axes-tilt-col h4,
.eight-axes-tilt-col-title { margin: 0 0 6px; font-size: 13px; font-weight: 700; color: #1a1a1a; }
.eight-axes-strip-label { margin: 14px 0 4px; font-size: 13px; color: #444; text-transform: uppercase; letter-spacing: .04em; }
.eight-axes-tilt-row { display: flex; justify-content: space-between; padding: 3px 0; font-size: 13px; }
.eight-axes-rank-chip {
  display: inline-block; min-width: 36px; padding: 1px 6px; border-radius: 3px;
  font-weight: 700; font-feature-settings: "tnum"; text-align: center;
}
.eight-axes-rank-chip--up   { background: #dff5e2; color: #1f7a36; }
.eight-axes-rank-chip--down { background: #fbe2e2; color: #a02323; }

/* Inline hero-stat (number to flag in prose) */
.eight-axes-hero-inline {
  font-weight: 800; color: #1d4d8a; font-feature-settings: "tnum";
}

/* Glossary tooltip (ported from .lis-glo / #lis-glotip) */
.eight-axes-root .eight-axes-glo, .eight-axes-glo {
  border-bottom: 1px dotted #999; cursor: help;
}
.eight-axes-root .eight-axes-glo:hover, .eight-axes-glo:hover { background: rgba(29,77,138,0.06); }
#eight-axes-glotip {
  position: fixed; z-index: 9999;
  min-width: 320px; max-width: 420px; max-height: 60vh;
  overflow-y: auto;
  background: #fff; border: 1px solid #bbb;
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
  padding: 12px 14px; border-radius: 4px;
  font-size: 14px; line-height: 1.45;
  display: none; opacity: 0;
  transition: opacity 120ms;
  pointer-events: none;
  color: #1a1a1a;
  font-family: -apple-system, "Segoe UI", "Inter", Helvetica, Arial, sans-serif;
}
#eight-axes-glotip.is-on { opacity: 1; }
#eight-axes-glotip .eight-axes-glotip-cat {
  color: #666; font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em;
}
#eight-axes-glotip h4.eight-axes-glotip-h { margin: 0 0 4px 0; font-size: 14px; }
#eight-axes-glotip .eight-axes-glotip-key { color: #888; font-weight: 400; }
#eight-axes-glotip .eight-axes-glotip-expl { margin: 6px 0; font-size: 13px; color: #222; }
#eight-axes-glotip .eight-axes-glotip-link a { color: #1d4d8a; font-weight: 600; text-decoration: none; }
#eight-axes-glotip .eight-axes-glotip-link a:hover { text-decoration: underline; }
@media (max-width: 640px) {
  .eight-axes-root .eight-axes-glo, .eight-axes-glo { border-bottom: none; }
  #eight-axes-glotip { display: none !important; }
}

/* References list */
.eight-axes-refs { font-size: 14px; line-height: 1.55; }
.eight-axes-refs li { margin: 4px 0; }
.eight-axes-refs .eight-axes-ref-ctx { color: #555; font-size: 13px; }

/* Print: expand all details */
@media print {
  details.eight-axes-more, details.eight-axes-more[open] { border: none; background: transparent; }
  details.eight-axes-more > summary { display: none; }
  details.eight-axes-more > .eight-axes-more-body { display: block !important; }
}
</style>

<!-- EIGHT_AXES_GLOSSARY_BEGIN -->
<div id="eight-axes-glotip" role="tooltip"></div>
<script type="application/json" id="eight-axes-glossary">{"NVDA":{"category":"ticker","full_name":"NVIDIA Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/NVDA","explanation":"NVIDIA is the dominant designer of GPUs used to train and serve large language models. Its CUDA software stack plus the Hopper (H100/H200) and Blackwell (B100/B200/GB200) accelerator lines power roughly 90%+ of frontier-scale AI training in 2025-26. Data-center revenue is now ~88% of company sales, almost entirely from hyperscalers, neoclouds, and frontier AI labs."},"AMD":{"category":"ticker","full_name":"Advanced Micro Devices, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMD","explanation":"AMD is the only credible merchant alternative to NVIDIA for AI accelerators with its Instinct MI300/MI325/MI350 GPU line, plus EPYC server CPUs that pair with most AI hosts. It also makes Xilinx FPGAs and embedded chips after the 2022 acquisition. Data-center is now its largest segment and the swing driver of revenue growth."},"AVGO":{"category":"ticker","full_name":"Broadcom Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AVGO","explanation":"Broadcom co-designs custom AI ASICs (XPUs) for hyperscalers — Google TPU, Meta MTIA, OpenAI custom silicon — and is the dominant supplier of high-radix AI Ethernet switch silicon (Tomahawk, Jericho) and Sienna SerDes that power most non-NVLink scale-out networks. Acquired VMware in 2023 to add infrastructure software. AI-related semis are now $20B+ annualized."},"INTC":{"category":"ticker","full_name":"Intel Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/INTC","explanation":"Intel is the historic leader in x86 server/client CPUs and is building Intel Foundry (18A/14A) as the only credible non-Asian leading-edge logic alternative to TSMC. Microsoft is a named 18A design win; Gaudi accelerators remain a distant third in AI training silicon. Margins are heavily depressed during the foundry build-out."},"TSM":{"category":"ticker","full_name":"Taiwan Semiconductor Manufacturing Company (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/TSM","explanation":"TSMC is the dominant pure-play foundry with ~70% of global foundry revenue and an effective monopoly on leading-edge N3 and N2 production used in every major AI accelerator (NVIDIA, AMD, Broadcom, Google TPU, AWS Trainium, Apple). It also runs the CoWoS advanced-packaging line that physically integrates GPU dies with HBM stacks."},"GFS":{"category":"ticker","full_name":"GlobalFoundries Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/GFS","explanation":"GlobalFoundries is a US/Singapore foundry focused on mature and specialty nodes (12LP+, 22FDX, RF SOI, photonics) — not leading-edge. Its LLM relevance is indirect: silicon photonics, power management ICs, and trailing-edge logic that surround AI accelerators. Major customer concentrations in AMD, Qualcomm, and US defense."},"UMC":{"category":"ticker","full_name":"United Microelectronics Corporation (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/UMC","explanation":"UMC is the #4 pure-play foundry, focused on 28nm and trailing-edge nodes used for analog, display drivers, and microcontrollers around AI systems. Not a leading-edge AI play but benefits from secondary demand for legacy logic in datacenter peripherals."},"ASML":{"category":"ticker","full_name":"ASML Holding N.V.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ASML","explanation":"ASML is the sole maker of EUV (extreme-ultraviolet) lithography scanners required to print sub-7nm transistors used in every AI accelerator. Each EUV tool costs ~$200M ($380M+ for High-NA), making it a single point of failure for leading-edge supply. ~50% gross margins and 2026-29 backlog effectively sold out."},"AMAT":{"category":"ticker","full_name":"Applied Materials, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMAT","explanation":"Applied Materials is the world's largest wafer-fab equipment (WFE) vendor, dominant in deposition (CVD/PVD/ALD), epi, ion implant, and metrology. Critical for HBM stacking, advanced packaging, and the high-aspect-ratio etch/deposition steps that enable 3D DRAM and gate-all-around transistors at N2."},"LRCX":{"category":"ticker","full_name":"Lam Research Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/LRCX","explanation":"Lam Research dominates wafer etch and deposition equipment, especially the high-aspect-ratio etch tools required for 3D NAND, HBM through-silicon vias, and advanced packaging. It is the most leveraged WFE name to HBM stack-count growth (HBM3E 12-Hi to HBM4 16-Hi)."},"KLAC":{"category":"ticker","full_name":"KLA Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/KLAC","explanation":"KLA holds an ~80% share of process-control and yield-management inspection/metrology equipment, the tools that find tiny defects on wafers and photomasks. Its share grows at every node because more inspection passes are needed; advanced-packaging metrology is a high-growth subsegment."},"ACLS":{"category":"ticker","full_name":"Axcelis Technologies, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ACLS","explanation":"Axcelis is a focused ion-implant specialist, especially strong in high-energy and high-current implanters used by image sensors, memory, and silicon carbide power devices. It is the smallest of the major WFE pure plays and most exposed to power-semi and memory capex."},"ENTG":{"category":"ticker","full_name":"Entegris, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ENTG","explanation":"Entegris supplies process chemicals, filtration, gas/liquid delivery, and advanced materials consumables to every leading-edge fab. Revenue scales with wafer starts, not just equipment shipments, so it captures the recurring HBM/AI logic ramp without the cyclicality of WFE."},"ONTO":{"category":"ticker","full_name":"Onto Innovation Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ONTO","explanation":"Onto Innovation is a niche metrology/inspection vendor specializing in advanced-packaging measurement — bump/pillar inspection, hybrid-bonding metrology, and panel-level lithography. Direct leverage to CoWoS, HBM, and FOPLP capacity build-outs."},"MU":{"category":"ticker","full_name":"Micron Technology, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MU","explanation":"Micron is the only US-headquartered HBM/DRAM maker. HBM3E is in volume production for NVIDIA Blackwell and AMD MI300; HBM4 sampling in 2025-26. Currently ~24% of HBM market share with goal of reaching parity with the two Korean leaders by 2027."},"FN":{"category":"ticker","full_name":"Fabrinet","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/FN","explanation":"Fabrinet is the contract optical-assembly partner to most of the merchant optics industry; it assembles the 800G/1.6T transceivers and DSP modules sold by Coherent, Lumentum, Cisco, and others. Direct pure-play exposure to AI back-end network buildouts."},"COHR":{"category":"ticker","full_name":"Coherent Corp.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/COHR","explanation":"Coherent (formerly II-VI) is a top-tier optical transceiver maker (800G/1.6T) and the leading supplier of pump lasers, ROADMs, and SiC substrates. Optical-networking is its largest segment and the main growth driver for AI cluster interconnect."},"LITE":{"category":"ticker","full_name":"Lumentum Holdings Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/LITE","explanation":"Lumentum makes lasers, indium-phosphide chips, and 800G/1.6T DR/FR transceivers used in datacenter optical links between switches and accelerator nodes. Cloud & Networking is now >70% of revenue."},"CIEN":{"category":"ticker","full_name":"Ciena Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CIEN","explanation":"Ciena is the leading long-haul/metro coherent-optical systems vendor (WaveLogic DSPs); its WaveLogic 6 lands in DCI links between AI campuses. Most exposed to inter-datacenter (DCI) AI traffic rather than intra-cluster."},"AAOI":{"category":"ticker","full_name":"Applied Optoelectronics, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AAOI","explanation":"Applied Optoelectronics makes lasers and AOC/transceiver modules; historically dominant in cable broadband but now ramping 800G AI-datacenter optics for Microsoft. High volatility, small cap."},"ALAB":{"category":"ticker","full_name":"Astera Labs, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ALAB","explanation":"Astera Labs makes 'connectivity ICs' — PCIe/CXL retimers, smart cable modules, and the Scorpio fabric switch — that link CPUs, GPUs, and memory inside AI servers. IPO'd 2024; one of the purest AI-only public plays."},"CRDO":{"category":"ticker","full_name":"Credo Technology Group Holding Ltd","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CRDO","explanation":"Credo designs Active Electrical Cables (AECs) and SerDes-based retimer chips that move signals reliably between AI server racks at 100G+ per lane. Major Microsoft and Amazon design wins; ~80% revenue concentration in a handful of hyperscaler customers."},"POET":{"category":"ticker","full_name":"POET Technologies Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/POET","explanation":"POET Technologies is a small-cap developing the Optical Interposer — a silicon-photonics platform that integrates lasers and electronic ICs in one package. Pre-revenue speculative bet on co-packaged optics (CPO) replacing pluggable transceivers."},"ANET":{"category":"ticker","full_name":"Arista Networks, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ANET","explanation":"Arista is the leading high-radix Ethernet switch vendor (7000/7800 series, Etherlink AI-fabric line) for hyperscaler datacenters. Microsoft and Meta are major customers; benefits directly from AI back-end network (Ethernet/UEC) buildouts."},"CSCO":{"category":"ticker","full_name":"Cisco Systems, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CSCO","explanation":"Cisco is the incumbent enterprise networking vendor, now pushing Silicon One (its merchant switch silicon) and Nexus HyperFabric AI-pod switches. Less leveraged to AI than Arista because enterprise/campus is its core, but a significant beneficiary of AI factory build-outs."},"HPE":{"category":"ticker","full_name":"Hewlett Packard Enterprise Co.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/HPE","explanation":"HPE sells AI-server systems (ProLiant, Cray supercomputers) and acquired Juniper Networks in 2025 to add a credible switching portfolio. Its Cray division builds liquid-cooled HPC/AI clusters for national labs and the largest enterprises."},"SMCI":{"category":"ticker","full_name":"Super Micro Computer, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/SMCI","explanation":"Supermicro builds rack-scale GPU server systems faster than HPE/Dell, often first to market with each NVIDIA generation. Direct-liquid-cooled (DLC) Blackwell racks are now ~70% of its order book; ongoing accounting/audit issues created 2024-25 volatility."},"MRVL":{"category":"ticker","full_name":"Marvell Technology, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MRVL","explanation":"Marvell designs custom AI accelerator ASICs (Trainium2 with AWS, Maia helper silicon with Microsoft, Axion with Google) plus PAM4 DSPs that go inside every 800G/1.6T optical transceiver. Data-center is >70% of revenue."},"SNPS":{"category":"ticker","full_name":"Synopsys, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/SNPS","explanation":"Synopsys is the #1 EDA vendor (~31% share) — the software used to design every chip — plus DesignWare silicon IP. The July 2025 Ansys acquisition added multi-physics simulation, important for advanced-packaging thermal/mechanical co-design. Recurring-revenue model insulated from semi cyclicality."},"CDNS":{"category":"ticker","full_name":"Cadence Design Systems, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CDNS","explanation":"Cadence is the #2 EDA vendor (~30% share), known for digital implementation (Innovus), Palladium emulation/Protium prototyping (critical for AI chip verification), and the Tensilica DSP IP. AI-driven verification load is a structural tailwind."},"ARM":{"category":"ticker","full_name":"Arm Holdings plc (ADR)","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ARM","explanation":"Arm Holdings licenses the CPU architecture (Neoverse for servers, Cortex for everything else) that powers Apple silicon, AWS Graviton, NVIDIA Grace, and most mobile SoCs. It collects per-chip royalties so it rides the AI volume curve without semi-cycle capex risk."},"MSFT":{"category":"ticker","full_name":"Microsoft Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MSFT","explanation":"Microsoft is the #2 hyperscaler (Azure) and the largest single LLM-inference operator via its OpenAI partnership and Azure AI Foundry. AI annualized run rate ~$37B (Q2 FY26); also designs its own Maia AI accelerator and Cobalt Arm CPU."},"GOOGL":{"category":"ticker","full_name":"Alphabet Inc. (Class A)","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/GOOGL","explanation":"Alphabet runs Google Cloud (#3 hyperscaler) and is the only player with a fully vertically integrated AI stack: in-house TPU accelerators (designed with Broadcom), Gemini foundation models, and an inference cloud. ~$155B RPO backlog at Q4 2025."},"AMZN":{"category":"ticker","full_name":"Amazon.com, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMZN","explanation":"Amazon runs AWS, the #1 cloud at ~$142B annualized. Inferentia (inference) and Trainium (training) are its in-house accelerators co-designed with Annapurna/Marvell. Heavy spender on Anthropic and on Project Rainier — multi-GW Trainium clusters."},"META":{"category":"ticker","full_name":"Meta Platforms, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/META","explanation":"Meta is the largest non-cloud AI capex spender, training Llama models on multi-GW campuses (Hyperion, Prometheus). MTIA is its custom inference ASIC co-designed with Broadcom. Capex guided to $60-65B in 2025, mostly AI."},"ORCL":{"category":"ticker","full_name":"Oracle Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ORCL","explanation":"Oracle is a tier-2 hyperscaler (OCI) that has signed unusually large multi-year AI training deals — most notably the September 2025 ~$300B OpenAI contract that lifted RPO above $450B. Highly leveraged to AI capex via long-duration take-or-pay contracts."},"BABA":{"category":"ticker","full_name":"Alibaba Group Holding Ltd (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/BABA","explanation":"Alibaba runs Aliyun, China's largest cloud, and develops Qwen open-weight LLMs. Domestic AI inference plus Hanguang custom ASIC (T-Head). Subject to US semi-export restrictions limiting access to NVIDIA H200/Blackwell."},"CRWV":{"category":"ticker","full_name":"CoreWeave, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CRWV","explanation":"CoreWeave is the largest GPU-only neocloud, pioneer of the 'AI infrastructure REIT' model: long-term take-or-pay GPU rental contracts financed via debt against NVIDIA collateral. IPO'd March 2025. Microsoft, NVIDIA, and OpenAI are anchor customers."},"NBIS":{"category":"ticker","full_name":"Nebius Group N.V.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/NBIS","explanation":"Nebius is the European GPU neocloud spun out of Yandex's international business in 2024. Pure-play AI infrastructure provider with NVIDIA Hopper/Blackwell capacity in Finland, France, US. Smaller and earlier-stage than CoreWeave."},"VNET":{"category":"ticker","full_name":"VNET Group, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/VNET","explanation":"VNET (formerly 21Vianet) is a Chinese carrier-neutral colocation operator scaling wholesale AI datacenter capacity for Tencent and ByteDance. Listed in the US despite operations being entirely in China."},"GDS":{"category":"ticker","full_name":"GDS Holdings Limited (ADR)","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/GDS","explanation":"GDS is China's largest carrier-neutral datacenter operator. Spun off DayOne in 2024 for its international (SEA + Hong Kong) AI datacenter footprint. Tier-1 Chinese cloud and ByteDance are anchor customers."},"EQIX":{"category":"ticker","full_name":"Equinix, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/EQIX","explanation":"Equinix is the global retail colocation and interconnection leader with 270+ IBX facilities. The xScale joint venture and AI Solutions retail product target hyperscale AI workloads. Slower AI growth than DLR due to retail mix."},"DLR":{"category":"ticker","full_name":"Digital Realty Trust, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/DLR","explanation":"Digital Realty is the prototypical wholesale and hyperscale datacenter REIT — the landlord that builds shells and powered shells for hyperscaler AI training clusters. ~3 GW IT capacity, more leveraged to AI than Equinix."},"IRM":{"category":"ticker","full_name":"Iron Mountain Incorporated","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/IRM","explanation":"Iron Mountain is the records-storage incumbent now scaling Iron Mountain Data Centers (IMDC) as an AI-adjacent growth vehicle. Smaller but fastest-growing datacenter REIT; ~$1B+ AI-linked development pipeline."},"AJBU.SI":{"category":"ticker","full_name":"Keppel DC REIT","exchange":"SGX (Singapore Exchange)","yahoo_url":"https://finance.yahoo.com/quote/AJBU.SI","explanation":"Keppel DC REIT is the largest pure-play Asian datacenter REIT, listed in Singapore. ~25 facilities across Asia and Europe; benefits from Southeast Asia AI inference demand and sovereign-cloud build-outs."},"NVT":{"category":"ticker","full_name":"nVent Electric plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/NVT","explanation":"nVent (spin from Pentair) is a leading provider of liquid-cooling distribution units (CDUs), bus bars, and electrical enclosures for AI racks. Acquired Trachte in 2024 to add modular enclosures. Datacenter is the fastest-growing end-market."},"VRT":{"category":"ticker","full_name":"Vertiv Holdings Co","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/VRT","explanation":"Vertiv is the broadest pure-play AI thermal-management vendor: CRAH/CRAC, chillers, coolant distribution units (CDUs), rear-door heat exchangers, and immersion cooling. Acquired PurgeRite (Dec 2025) and CoolTera (2023). Closest public name to an 'AI cooling pure play'."},"MOD":{"category":"ticker","full_name":"Modine Manufacturing Company","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/MOD","explanation":"Modine bought Airedale chillers in 2023 and now sells TurboChill air-cooled chillers, 1 MW CDUs, and immersion-cooling tanks. Data-center is now ~25% of sales and the highest-margin segment."},"CARR":{"category":"ticker","full_name":"Carrier Global Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CARR","explanation":"Carrier is the legacy HVAC OEM that has pivoted hard into data-center cooling (Carrier Quantum Leap). Smaller AI share than Vertiv/Modine but benefits from broad chiller and air-handling refresh in datacenters."},"TT":{"category":"ticker","full_name":"Trane Technologies plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/TT","explanation":"Trane is a chiller and air-handling specialist with significant data-center exposure via its commercial HVAC business. Less pure-play than Vertiv but benefits from the mega-datacenter cooling capex cycle."},"JCI":{"category":"ticker","full_name":"Johnson Controls International plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/JCI","explanation":"Johnson Controls is a building-controls and HVAC conglomerate; Silent-Aire (acquired 2021) made it the leading modular cooling provider to hyperscaler campuses (Microsoft, AWS). Sold its residential HVAC business in 2024 to focus on commercial/datacenter."},"GNRC":{"category":"ticker","full_name":"Generac Holdings Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/GNRC","explanation":"Generac is the leading US residential standby-generator maker, expanding into Industrial natural-gas gensets and BESS for behind-the-meter AI datacenter power. Data-center is small but a fast-growing call option."},"ETN":{"category":"ticker","full_name":"Eaton Corporation plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ETN","explanation":"Eaton is the global #1 in datacenter electrical infrastructure: switchgear, busways, UPS, PDUs, transformers. Data-center + Distributed IT was ~21% of FY25 sales with Q4 orders up ~200%. Most-leveraged pure-play to AI campus electrification."},"SU.PA":{"category":"ticker","full_name":"Schneider Electric SE","exchange":"Euronext Paris","yahoo_url":"https://finance.yahoo.com/quote/SU.PA","explanation":"Schneider Electric is co-leader with Eaton in datacenter power management — UPS, PDUs, EcoStruxure software, prefab modular DCs. Data center & networks was ~30% of orders in FY25, the single largest end-market."},"ABBNY":{"category":"ticker","full_name":"ABB Ltd (ADR)","exchange":"OTC US (NYSE)","yahoo_url":"https://finance.yahoo.com/quote/ABBNY","explanation":"ABB is a Swiss-Swedish electrification, robotics, and motion specialist; HiPerGuard medium-voltage UPS and Smissline busway target AI datacenters. Heavy industrial automation cushion makes it less AI-pure than ETN/SU.PA."},"HUBB":{"category":"ticker","full_name":"Hubbell Incorporated","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/HUBB","explanation":"Hubbell makes electrical products (transformers, conduit, lighting) and grid-modernization gear (meters, capacitors). Power-Systems segment ramped on transmission and substation orders driven by datacenter load growth."},"POWL":{"category":"ticker","full_name":"Powell Industries, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/POWL","explanation":"Powell Industries is a small-cap maker of custom medium-voltage switchgear and packaged power systems — directly leveraged to AI datacenter and oil & gas substation construction. Massive multiple expansion on AI-power thesis since 2023."},"ROK":{"category":"ticker","full_name":"Rockwell Automation, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ROK","explanation":"Rockwell is the US leader in factory automation (PLCs, drives, SCADA) — not a direct AI play, included as an electrification and reshoring proxy. AI-datacenter exposure is indirect via construction automation."},"GEV":{"category":"ticker","full_name":"GE Vernova Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/GEV","explanation":"GE Vernova (spun from GE in April 2024) is the #1 heavy-duty gas turbine OEM (7HA/9HA F- and H-class) plus aeroderivatives (LM2500/6000/9000). 80 GW gas turbine backlog into 2029; named supplier to Crusoe, Chevron/Engine No.1, and Microsoft AI campuses."},"ENR.DE":{"category":"ticker","full_name":"Siemens Energy AG","exchange":"Xetra (Frankfurt)","yahoo_url":"https://finance.yahoo.com/quote/ENR.DE","explanation":"Siemens Energy is the #2 heavy-duty gas turbine OEM (SGT5/SGT6 F/H-class) plus aeroderivative SGT-A (formerly Rolls-Royce). Gas-services parts of book sold out into 2030; Siemens Gamesa wind unit a long-running drag now turning."},"SIEGY":{"category":"ticker","full_name":"Siemens AG (ADR)","exchange":"OTC US","yahoo_url":"https://finance.yahoo.com/quote/SIEGY","explanation":"Siemens AG is the German industrial conglomerate (digital industries, smart infrastructure, mobility) — not to be confused with separately listed Siemens Energy. Indirect AI exposure via factory automation and data-center building technology."},"7011.T":{"category":"ticker","full_name":"Mitsubishi Heavy Industries, Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7011.T","explanation":"Mitsubishi Heavy Industries (MHI) is the #3 global heavy-duty gas turbine OEM (M501JAC/M701JAC) and a major nuclear plant builder. Highest TIT (turbine inlet temperature) ratings among the big three; significant Asian datacenter exposure."},"HPS-A.TO":{"category":"ticker","full_name":"Hammond Power Solutions Inc.","exchange":"Toronto Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/HPS-A.TO","explanation":"Hammond Power Solutions is a Canadian dry-type and cast-resin transformer specialist — the #1 North American merchant transformer pure-play. Direct beneficiary of the transformer shortage caused by datacenter and grid build-outs."},"MTRS.ST":{"category":"ticker","full_name":"Munters Group AB","exchange":"Nasdaq Stockholm","yahoo_url":"https://finance.yahoo.com/quote/MTRS.ST","explanation":"Munters is a Swedish specialist in evaporative cooling and air treatment. Data-center cooling (FoodTech and DataCenter segments) is the highest-growth driver as hyperscalers adopt adiabatic/indirect-evaporative AHUs."},"6501.T":{"category":"ticker","full_name":"Hitachi, Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/6501.T","explanation":"Hitachi is a Japanese industrial conglomerate; Hitachi Energy (formerly ABB Power Grids, acquired 2020) is the world's #1 grid transformer and HVDC equipment maker — the most-constrained capacity in the global energy supply chain."},"CEG":{"category":"ticker","full_name":"Constellation Energy Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CEG","explanation":"Constellation Energy is the largest US nuclear fleet operator (~22 GW). The September 2024 deal to restart Three Mile Island Unit 1 for Microsoft AI offtake made it the poster child for nuclear-for-AI PPAs. Highly leveraged to merchant power prices and PPA premiums."},"VST":{"category":"ticker","full_name":"Vistra Corp.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/VST","explanation":"Vistra is a Texas-anchored merchant generator with nuclear (Comanche Peak), coal, gas, and a growing battery fleet. Acquired Energy Harbor in 2024 to add 4 GW of nuclear. Massive multiple expansion on AI offtake thesis."},"TLN":{"category":"ticker","full_name":"Talen Energy Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/TLN","explanation":"Talen Energy is the operator of the Susquehanna nuclear plant in PA. In March 2024 it sold the adjacent Cumulus AI datacenter campus to AWS with a behind-the-meter PPA — the first hyperscaler-nuclear co-location deal. Re-emerged from Chapter 11 in 2023."},"NRG":{"category":"ticker","full_name":"NRG Energy, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/NRG","explanation":"NRG Energy is a Texas-centric merchant power and retail electricity provider. Less nuclear exposure than VST/CEG; benefits from ERCOT load growth from Texas AI datacenters."},"AEP":{"category":"ticker","full_name":"American Electric Power Company, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AEP","explanation":"AEP is one of the largest US regulated electric utilities, serving 11 states across PJM and SPP. Most disclosed datacenter load-growth pipeline of any utility (~20 GW); central to PJM transmission queue politics."},"DUK":{"category":"ticker","full_name":"Duke Energy Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/DUK","explanation":"Duke Energy is a large regulated utility (NC, SC, FL, IN) with significant nuclear capacity and surging data-center load in the Carolinas — Google, Microsoft, Amazon campuses. Major capex plan for new gas + nuclear."},"D":{"category":"ticker","full_name":"Dominion Energy, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/D","explanation":"Dominion Energy serves Virginia, where ~70% of global internet traffic transits and 'Data Center Alley' (Loudoun County) sits. Most concentrated single-state AI datacenter exposure; constrained by transmission interconnect queue."},"PEG":{"category":"ticker","full_name":"Public Service Enterprise Group Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PEG","explanation":"PSEG is a New Jersey-anchored utility with nuclear (Salem/Hope Creek) exposure and a heavily regulated rate-based capex plan. Less direct datacenter load growth than D/AEP, but a high-quality nuclear yield play."},"BWXT":{"category":"ticker","full_name":"BWX Technologies, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/BWXT","explanation":"BWX Technologies makes nuclear reactor components (US Navy submarines/carriers, large-reactor steam generators) and is the prime contractor for HALEU fuel production and SMR pressure vessels. Cornerstone US nuclear industrial base."},"SMR":{"category":"concept","full_name":"Small Modular Reactor","explanation":"Compact nuclear reactors (<300 MW) designed to be factory-built in modules and shipped to site, instead of stick-built like traditional plants. Targeting hyperscaler behind-the-meter offtake. NuScale, Oklo, BWXT, X-energy, Holtec, Rolls-Royce SMR are the leading designs."},"OKLO":{"category":"ticker","full_name":"Oklo Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/OKLO","explanation":"Oklo is a Sam Altman-chaired advanced-reactor startup developing the 75 MW Aurora fast-spectrum SMR fueled by HALEU. Pre-revenue, no commercial reactor yet; SPAC-listed 2024 and trades as the most speculative pure-play AI-nuclear name."},"LEU":{"category":"ticker","full_name":"Centrus Energy Corp.","exchange":"NYSE American","yahoo_url":"https://finance.yahoo.com/quote/LEU","explanation":"Centrus Energy is the only US-licensed HALEU (High-Assay Low-Enriched Uranium) producer; HALEU is the fuel SMRs need but cannot easily get because Russia previously dominated supply. Tiny pure-play option on US nuclear supply-chain reshoring."},"CCJ":{"category":"ticker","full_name":"Cameco Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CCJ","explanation":"Cameco is the largest publicly traded uranium miner (Cigar Lake, McArthur River) and co-owns Westinghouse (with Brookfield) which is the dominant Western large-reactor designer/services firm. Largest non-state uranium player."},"UUUU":{"category":"ticker","full_name":"Energy Fuels Inc.","exchange":"NYSE American","yahoo_url":"https://finance.yahoo.com/quote/UUUU","explanation":"Energy Fuels operates the only conventional uranium mill in the US (White Mesa, Utah) plus heavy-mineral-sand rare-earth processing. Tiny diversified bet on US uranium + REE supply-chain reshoring."},"MP":{"category":"ticker","full_name":"MP Materials Corp.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/MP","explanation":"MP Materials owns Mountain Pass — the only operating US rare-earth mine — and is vertically integrating into NdPr separation and magnet manufacturing in Texas. Strategic supplier for permanent magnets used in datacenter motors, wind, EVs."},"LYC.AX":{"category":"ticker","full_name":"Lynas Rare Earths Ltd","exchange":"ASX (Australian Securities Exchange)","yahoo_url":"https://finance.yahoo.com/quote/LYC.AX","explanation":"Lynas is the largest ex-China rare-earth producer — mining at Mt Weld (WA) and processing in Malaysia, with a new US DoD-funded heavy-RE plant in Texas. Pure-play Western alternative to Chinese REE dominance."},"FCX":{"category":"ticker","full_name":"Freeport-McMoRan Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/FCX","explanation":"Freeport-McMoRan is the largest publicly traded US-listed copper major (~4.2 Bln lbs Cu in 2025) with anchor operations at Grasberg (Indonesia) and Arizona. Direct beneficiary of AI-datacenter and grid copper-intensity build-out."},"SCCO":{"category":"ticker","full_name":"Southern Copper Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/SCCO","explanation":"Southern Copper is a Grupo Mexico subsidiary with the lowest-cost integrated copper production in the world (Peru, Mexico, ~1.0 Mt Cu/yr). Highest copper-price leverage among the listed majors."},"TECK":{"category":"ticker","full_name":"Teck Resources Limited","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/TECK","explanation":"Teck Resources became a pure-play copper company after selling its coal business to Glencore in 2024. Key growth: QB2 in Chile and Highland Valley in Canada. Often discussed as M&A target by larger miners."},"BHP":{"category":"company","full_name":"BHP Group Limited","explanation":"World's largest diversified miner. See ticker BHP."},"IVN.TO":{"category":"ticker","full_name":"Ivanhoe Mines Ltd.","exchange":"Toronto Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/IVN.TO","explanation":"Ivanhoe Mines is the operator of Kamoa-Kakula in the DRC, one of the highest-grade large copper mines in the world. Heavy political-risk discount but the most-leveraged growth name on rising copper demand."},"PWR":{"category":"ticker","full_name":"Quanta Services, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PWR","explanation":"Quanta Services is the largest US electric-transmission and renewable-construction contractor — the labor that builds the substations, transmission lines, and gen-tie lines for datacenter campuses. Multi-year backlog at all-time highs."},"MYRG":{"category":"ticker","full_name":"MYR Group Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MYRG","explanation":"MYR Group is a smaller specialty T&D construction contractor focused on substations, transmission, and commercial/industrial electrical work. Pure-play on US grid build-out for AI load growth."},"PRIM":{"category":"ticker","full_name":"Primoris Services Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PRIM","explanation":"Primoris Services is a diversified utility, energy, and renewables construction firm; data-center adjacent through transmission, solar/storage, and gas-pipeline work for hyperscalers."},"CAT":{"category":"ticker","full_name":"Caterpillar Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CAT","explanation":"Caterpillar makes the diesel and natural-gas gensets, switchgear, and earthmoving equipment used to build and back up AI datacenters. Solar Turbines subsidiary supplies aeroderivative gas turbines (15-22 MW class) for behind-the-meter power."},"CMI":{"category":"ticker","full_name":"Cummins Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CMI","explanation":"Cummins is the #2 diesel/gas genset OEM behind Caterpillar; Power Generation segment is sold out into 2026 from hyperscaler standby and behind-the-meter orders. Accelera subsidiary covers green-hydrogen and electrolyzer work."},"BE":{"category":"ticker","full_name":"Bloom Energy Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/BE","explanation":"Bloom Energy makes solid-oxide fuel cells (SOFC) used as behind-the-meter on-site power for datacenters when grid interconnect is slow. AEP and AWS are named customers. Loss-making but cash-flow positive on aftermarket service."},"LIN":{"category":"ticker","full_name":"Linde plc","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/LIN","explanation":"Linde is the world's largest industrial-gas supplier. Most-direct AI-fab exposure of any gas major via on-site bulk N2/O2/H2 plants at TSMC Arizona, Samsung Texas, Intel Ohio. Long-duration take-or-pay contracts behind every fab build."},"APD":{"category":"ticker","full_name":"Air Products and Chemicals, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/APD","explanation":"Air Products is the #3 industrial-gas major, heavy in hydrogen and helium. Similar fab-gas exposure to Linde but smaller share of leading-edge logic/HBM sites; Mantle Ridge activist pressure (2024-25) to refocus capital."},"AIQUY":{"category":"ticker","full_name":"Air Liquide S.A. (ADR)","exchange":"OTC US","yahoo_url":"https://finance.yahoo.com/quote/AIQUY","explanation":"Air Liquide is the French #2 global industrial-gas major with leading position in Europe and Asia electronics; supplies most leading-edge fabs in Taiwan, Korea, and the EU. ADR of the Euronext Paris primary listing."},"AWK":{"category":"ticker","full_name":"American Water Works Company, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/AWK","explanation":"American Water is the largest US regulated water utility. Datacenter water consumption (evaporative cooling, fab UPW) is a growing political and rate-case driver, especially in Arizona, Virginia, Texas."},"WTRG":{"category":"ticker","full_name":"Essential Utilities, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/WTRG","explanation":"Essential Utilities is a regulated water and natural-gas utility (formerly Aqua America). Smaller than AWK but similar exposure to datacenter water demand in Pennsylvania, North Carolina, Ohio."},"XYL":{"category":"ticker","full_name":"Xylem Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/XYL","explanation":"Xylem makes pumps, treatment systems, and analytics for water/wastewater. Datacenter cooling-tower make-up water and UPW pre-treatment are growing niche markets. Acquired Evoqua (2023) to deepen industrial water position."},"PNR":{"category":"ticker","full_name":"Pentair plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PNR","explanation":"Pentair is a residential/commercial water-treatment and pool-equipment maker. Smallest datacenter water exposure of the four water names tracked; included as a sector proxy."},"MPWR":{"category":"ticker","full_name":"Monolithic Power Systems, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MPWR","explanation":"Monolithic Power Systems is the merchant leader in vertical-power-delivery and 48V VRMs that sit next to GPUs and CPUs on every AI server board. Historically the dominant NVIDIA on-board power partner; recently lost some share to Infineon."},"ADI":{"category":"ticker","full_name":"Analog Devices, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ADI","explanation":"Analog Devices is a top-tier analog/mixed-signal IC supplier — power, signal chain, isolation. AI exposure is via power management for servers, optical-module DSPs, and BMC/sensor ICs in datacenter infrastructure."},"TXN":{"category":"ticker","full_name":"Texas Instruments Incorporated","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/TXN","explanation":"Texas Instruments is the world's largest analog IC maker by units; power management, embedded processing, and signal chain. Indirect AI exposure: power-stage ICs, optical DSP companions, automotive-server power."},"ON":{"category":"ticker","full_name":"ON Semiconductor Corp.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ON","explanation":"onsemi makes silicon carbide (SiC) power modules, image sensors, and power management ICs. EV slowdown weighed on 2024-25, but AI-datacenter SiC for 48V/HVDC rectifiers is a growing tailwind."},"POWI":{"category":"ticker","full_name":"Power Integrations, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/POWI","explanation":"Power Integrations makes high-voltage power-conversion ICs (PowiGaN and SiC gate drivers). Niche but the cleanest GaN/SiC IP play; benefits from datacenter PSU efficiency requirements rising past 96%."},"VICR":{"category":"ticker","full_name":"Vicor Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/VICR","explanation":"Vicor designs and makes factorized-power-architecture modules (48V-to-PoL) used inside NVIDIA HGX baseboards. Small but the only public pure-play on the move to 48V vertical-power delivery for AI accelerators."},"NVTS":{"category":"ticker","full_name":"Navitas Semiconductor Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/NVTS","explanation":"Navitas Semiconductor is a fabless GaN/SiC power-IC startup; supplies GaNFast monolithic GaN ICs for AI datacenter PSUs and chargers. Tiny revenue, big multiple — speculative bet on GaN inflection."},"IFX.DE":{"category":"ticker","full_name":"Infineon Technologies AG","exchange":"Xetra (Frankfurt)","yahoo_url":"https://finance.yahoo.com/quote/IFX.DE","explanation":"Infineon Technologies is the world's largest power-semi supplier. OptiMOS and CoolGaN/CoolSiC product families feed AI server VRMs and PSUs. Took NVIDIA on-board VRM share from MPWR in 2024-25."},"AMKR":{"category":"ticker","full_name":"Amkor Technology, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMKR","explanation":"Amkor is the #2 OSAT (outsourced assembly and test). Flip-chip BGA and SiP for AI accelerators; building a TSMC-aligned advanced-packaging campus in Arizona. Direct CoWoS/HBM tailwind."},"ASX":{"category":"ticker","full_name":"ASE Technology Holding Co. Ltd (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ASX","explanation":"ASE Technology is the world's largest OSAT (assembly + test), parent of ASE and SPIL. LEAP advanced-packaging segment plus CoWoS-adjacent ATM (assembly/test/materials) services for AI accelerators."},"3037.TW":{"category":"ticker","full_name":"Unimicron Technology Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/3037.TW","explanation":"Unimicron is the leading ABF / FC-BGA substrate supplier for AI GPUs and CPUs, including NVIDIA and AMD packages plus CoWoS interposer carriers. Direct beneficiary of every CoWoS wafer."},"3189.TW":{"category":"ticker","full_name":"Kinsus Interconnect Technology Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/3189.TW","explanation":"Kinsus is a Taiwanese FC-BGA / ABF substrate maker (Pegatron-affiliated). Smaller than Unimicron but expanding AI capacity; supplies Intel, AMD, and various AI ASIC platforms."},"8046.TW":{"category":"ticker","full_name":"Nan Ya PCB Corporation","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/8046.TW","explanation":"Nan Ya PCB (Formosa Plastics Group) is the #3 Taiwanese ABF substrate supplier plus a top maker of multi-layer PCBs (HDI, HLC). Big exposure to NVIDIA AI motherboards and CoWoS substrate ramp."},"2344.TW":{"category":"ticker","full_name":"Winbond Electronics Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2344.TW","explanation":"Winbond Electronics is a Taiwanese specialty DRAM and NOR/NAND flash maker. Custom DRAM (CUBE) for AI peripherals; no HBM presence. Smaller and less AI-leveraged than the big-three DRAM majors."},"2408.TW":{"category":"ticker","full_name":"Nanya Technology Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2408.TW","explanation":"Nanya Technology is a Taiwanese commodity DDR4/DDR5 DRAM maker with no HBM exposure. Used in this study as a proxy for non-AI DRAM pricing."},"2449.TW":{"category":"ticker","full_name":"King Yuan Electronics Co., Ltd.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2449.TW","explanation":"King Yuan Electronics (KYEC) is a Taiwanese back-end test specialist for HBM/CoWoS and AI ASICs. Test capacity, not assembly — a niche but constrained step in AI accelerator production."},"2454.TW":{"category":"ticker","full_name":"MediaTek Inc.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2454.TW","explanation":"MediaTek is a Taiwanese fabless SoC giant (mobile, Wi-Fi, smart-edge). Designing AI accelerator ASICs for Google TPU partner-of-record program and edge-AI inference for automotive and CPE."},"6147.TWO":{"category":"ticker","full_name":"Chipbond Technology Corporation","exchange":"Taipei Exchange (TPEx)","yahoo_url":"https://finance.yahoo.com/quote/6147.TWO","explanation":"Chipbond is a Taiwanese gold-bump and COF (chip-on-film) back-end specialist for driver ICs and certain AI packaging steps. Niche but exposed to advanced-packaging volume growth."},"6239.TW":{"category":"ticker","full_name":"Powertech Technology Inc.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/6239.TW","explanation":"Powertech is a Taiwanese OSAT specializing in memory test, packaging, and DRAM/Flash module assembly. HBM test capacity is a growing differentiator."},"000660.KS":{"category":"ticker","full_name":"SK Hynix Inc.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/000660.KS","explanation":"SK Hynix is the #1 HBM supplier (~57% share in Q3 2025) and the lead NVIDIA HBM3E partner. Korean leader in DRAM technology and now the highest-margin memory maker in history thanks to AI-driven HBM mix."},"005930.KS":{"category":"ticker","full_name":"Samsung Electronics Co., Ltd.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/005930.KS","explanation":"Samsung Electronics is the world's largest memory maker (#1 DRAM and NAND) but lost the HBM lead to SK Hynix in 2023-25; now qualifying HBM3E 12-Hi for NVIDIA. Also runs Samsung Foundry, the #2 logic foundry (3nm GAA)."},"009150.KS":{"category":"ticker","full_name":"Samsung Electro-Mechanics Co., Ltd.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/009150.KS","explanation":"Samsung Electro-Mechanics (SEMCO) makes FC-BGA substrates, MLCCs, and camera modules. Substrate business is a direct beneficiary of AI accelerator package build-out alongside Ibiden and Unimicron."},"267260.KS":{"category":"ticker","full_name":"HD Hyundai Electric Co., Ltd.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/267260.KS","explanation":"HD Hyundai Electric is a Korean power transformer manufacturer (formerly Hyundai Heavy's electric division), one of the few firms with available capacity for US export of large transformers needed by AI datacenters."},"2802.T":{"category":"ticker","full_name":"Ajinomoto Co., Inc.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2802.T","explanation":"Ajinomoto is the Japanese MSG maker famous for being the sole-source supplier of ABF (Ajinomoto Build-up Film), the dielectric film inside every advanced FC-BGA substrate. The 'Fine-Techno' electronic-materials segment is a hidden monopoly on AI packaging."},"4062.T":{"category":"ticker","full_name":"Ibiden Co., Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/4062.T","explanation":"Ibiden is the dominant FC-BGA / ABF substrate supplier (~70-80% share of leading-edge AI substrates) for NVIDIA and Intel. Sold-out substrate capacity through 2027 per Oct-2025 analyst day."},"4063.T":{"category":"ticker","full_name":"Shin-Etsu Chemical Co., Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/4063.T","explanation":"Shin-Etsu Chemical is the world's #1 supplier of 300mm silicon wafers and the #1 photoresist maker; also dominant in PVC, semiconductor cleaning chemicals, and rare-earth magnets. Critical upstream supplier to every fab."},"6920.T":{"category":"ticker","full_name":"Lasertec Corporation","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/6920.T","explanation":"Lasertec has an effective monopoly on EUV photomask inspection equipment (ACTIS-A2/A1) — every EUV mask shop must buy from it. The pickiest tool in the EUV food chain; near-100% gross margins, lumpy revenue."},"7731.T":{"category":"ticker","full_name":"Nikon Corporation","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7731.T","explanation":"Nikon is a Japanese optics maker, historically #2 in ArF immersion lithography behind ASML. Lost EUV race; today supplies trailing-edge DUV scanners plus mask metrology and cameras."},"7735.T":{"category":"ticker","full_name":"SCREEN Holdings Co., Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7735.T","explanation":"SCREEN Holdings is the world's largest supplier of single-wafer cleaning equipment, plus thermal-process and inspection tools. ~70% global share of wet-cleaning is a recurring tailwind from every leading-edge wafer start."},"7751.T":{"category":"ticker","full_name":"Canon Inc.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7751.T","explanation":"Canon is a Japanese optics and printer giant; in semis, supplies KrF/ArF DUV scanners and the FPA-1200NZ2C nanoimprint lithography (NIL) tool used by Kioxia for 3D NAND — a long-shot EUV alternative."},"8035.T":{"category":"ticker","full_name":"Tokyo Electron Limited (TEL)","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/8035.T","explanation":"Tokyo Electron (TEL) is the world's #3 WFE vendor after AMAT/LRCX. Leader in track (resist coating), thermal CVD, clean, and dry-etch tools. Indispensable for every leading-edge fab; major EUV-resist co-development partner with ASML."},"ATS.VI":{"category":"ticker","full_name":"AT&S Austria Technologie & Systemtechnik AG","exchange":"Vienna Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/ATS.VI","explanation":"AT&S is the European leader in IC substrates (ABF and FC-BGA), building an Intel-co-funded site in Leoben and a Malaysia ramp. Smaller-share #4 after Ibiden/Unimicron/Semco; heavy capex drag during ramp."},"NOW":{"category":"ticker","full_name":"ServiceNow, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/NOW","explanation":"ServiceNow is the leading enterprise-workflow SaaS platform (IT, HR, ITSM). 'Now Assist' agentic AI features and Now Platform AI Agents are early monetization layers for enterprise LLM inference."},"DDOG":{"category":"ticker","full_name":"Datadog, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/DDOG","explanation":"Datadog is the leading cloud-observability platform; AI-monitoring products (LLM Observability) are an emerging revenue lever. Customer concentration in cloud-native AI-startup spenders makes it a sensitivity proxy for AI capex."},"SNOW":{"category":"ticker","full_name":"Snowflake Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/SNOW","explanation":"Snowflake is a cloud data-warehouse platform pushing AI Data Cloud with Cortex (LLM inference inside the warehouse) and Polaris (open table format). Consumption pricing exposes it directly to AI-query volume."},"MDB":{"category":"ticker","full_name":"MongoDB, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MDB","explanation":"MongoDB is the leading document database; Atlas Vector Search and Voyage AI (acquired 2024) push it into the RAG vector-store category alongside Pinecone and Weaviate. Direct beneficiary of LLM agentic workloads."},"PLTR":{"category":"ticker","full_name":"Palantir Technologies Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/PLTR","explanation":"Palantir Technologies sells AIP (Artificial Intelligence Platform) plus Foundry/Gotham to commercial and government customers. Most aggressive 'agentic AI orchestration layer' marketing among public software firms."},"APP":{"category":"ticker","full_name":"AppLovin Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/APP","explanation":"AppLovin is a mobile ad-tech firm whose Axon 2 ML/AI engine drove a multi-fold revenue and stock surge in 2024-25. Pure consumer-tech application of large-scale ML inference; not a model lab but an AI-driven business model."},"SOXX":{"category":"ticker","full_name":"iShares Semiconductor ETF","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/SOXX","explanation":"SOXX is an exchange-traded fund tracking ~30 US-listed semiconductor stocks (PHLX SOX-derived). Used in this study as a sector benchmark for the semis-heavy verticals."},"XLK":{"category":"ticker","full_name":"Technology Select Sector SPDR Fund","exchange":"NYSE Arca","yahoo_url":"https://finance.yahoo.com/quote/XLK","explanation":"XLK is an exchange-traded fund tracking the S&P 500 Technology sector (NVDA, MSFT, AAPL, AVGO concentrated). Used as broad tech benchmark."},"^GSPC":{"category":"index","full_name":"S&P 500 Index","exchange":"(index — not directly tradable)","yahoo_url":"https://finance.yahoo.com/quote/%5EGSPC","explanation":"The S&P 500 is the cap-weighted index of 500 large US stocks. Used in this study as the broad-market benchmark for beta, drawdown, and excess-return calculations."},"^NDX":{"category":"index","full_name":"NASDAQ-100 Index","exchange":"(index — not directly tradable)","yahoo_url":"https://finance.yahoo.com/quote/%5ENDX","explanation":"The NASDAQ-100 is the cap-weighted index of the 100 largest non-financial NASDAQ stocks, heavily skewed to mega-cap tech. Used here as a secondary benchmark closer to the study's tech-tilt."},"advanced-packaging":{"category":"vertical","full_name":"Advanced Packaging (OSAT, substrates, FOPLP, backend test)","explanation":"The vertical covering chip assembly steps that happen AFTER a wafer leaves the foundry: dicing, flip-chip bonding, 2.5D/3D stacking (CoWoS, SoIC), substrate attach, and final test. CoWoS bottleneck at TSMC plus the ABF substrate shortage at Ibiden/Unimicron are the two most-watched constraints on AI accelerator output."},"ai-accelerators":{"category":"vertical","full_name":"AI Accelerators (GPUs / ASICs / TPUs)","explanation":"The chips that actually run LLM matrix math: NVIDIA GPUs, AMD Instinct, Google TPU, AWS Trainium/Inferentia, Microsoft Maia, Meta MTIA, and Intel Gaudi. Demand is dictated by hyperscaler/lab capex; supply by foundry (TSMC), HBM (Hynix/Samsung/Micron), and CoWoS capacity."},"copper-rare-earth":{"category":"vertical","full_name":"Copper & Rare Earths","explanation":"Upstream metals tied to AI build-out: copper for transformers, busways, motors, and chip interconnect; rare-earth elements (NdPr, Dy, Tb) for permanent magnets in HVAC, EVs, wind, and motors that sit around data centers. Long lead times — a copper mine takes 15+ years from discovery to production."},"datacenter-cooling-thermal":{"category":"vertical","full_name":"Datacenter Cooling — Thermal Management","explanation":"Equipment that removes heat from AI servers: CRAH/CRAC air-handlers, chillers, coolant distribution units (CDUs), rear-door heat exchangers, cold plates, immersion tanks, and dry coolers. As GPU TDPs climbed past 1000W (Blackwell GB200), liquid cooling moved from niche to mandatory."},"datacenter-reits":{"category":"vertical","full_name":"Datacenter REITs (Colocation + Wholesale)","explanation":"Real Estate Investment Trusts that own and lease datacenter buildings. Retail/colo (Equinix) sells per-cage rack space; wholesale (Digital Realty) sells multi-MW shells to hyperscalers. AI workloads push leases longer (15+ years), denser (>30 kW/rack), and more power-constrained."},"eda-ip":{"category":"vertical","full_name":"EDA & Silicon IP","explanation":"Electronic Design Automation software (Synopsys, Cadence, Siemens EDA) plus pre-designed silicon-IP blocks (Arm CPU cores, SerDes, USB, PCIe) that every chip company licenses. Recurring subscription revenue largely insulated from semi cyclicality; AI-driven complexity raises seat count and tool count per design."},"electrical-equipment":{"category":"vertical","full_name":"Electrical Equipment (Datacenter Power Distribution)","explanation":"The medium-voltage and low-voltage gear inside a datacenter: switchgear, busways, uninterruptible power supplies (UPS), power distribution units (PDUs), transformers from the substation down to the rack. Constrained by transformer copper and grain-oriented electrical steel supply."},"foundry-logic":{"category":"vertical","full_name":"Foundry — Logic","explanation":"Pure-play wafer fabs that manufacture logic chips for fabless customers. Effectively a TSMC + Samsung Foundry + Intel Foundry triopoly at leading edge (N3, N2, 18A); GlobalFoundries and UMC fill specialty/mature nodes. The most strategic single chokepoint in AI inference."},"gas-turbines":{"category":"vertical","full_name":"Gas Turbines","explanation":"Heavy-duty gas turbines (HDGT, 100+ MW frames) and aeroderivatives (15-50 MW) used to firm up renewables and provide behind-the-meter datacenter power. Triopoly of GE Vernova / Siemens Energy / Mitsubishi Heavy; backlog effectively sold out into 2029-30."},"hbm-dram":{"category":"vertical","full_name":"HBM & DRAM","explanation":"High Bandwidth Memory (HBM) and conventional DRAM. HBM3E and HBM4 are the memory that sits next to AI accelerators on the same package, providing the >5 TB/s bandwidth modern LLMs need. Supplied by SK Hynix (~57%), Samsung, and Micron; capacity gated by TSV (through-silicon via) yield."},"hyperscalers-cloud":{"category":"vertical","full_name":"Hyperscalers & Cloud","explanation":"The mega-cloud companies that buy and operate most of the world's AI accelerators: Microsoft (Azure), Alphabet (Google Cloud), Amazon (AWS), Meta, plus tier-2 Oracle and emerging neoclouds CoreWeave / Nebius. Their combined capex sets the demand floor for every upstream vertical."},"ic-substrates":{"category":"vertical","full_name":"IC Substrates (ABF / FC-BGA / BT)","explanation":"The high-density laminate boards that sit between a chip and the printed circuit board. ABF (Ajinomoto Build-up Film) substrates are required for every high-end CPU/GPU/AI accelerator package. Capacity supplied by Ibiden, Unimicron, AT&S, Semco, Nan Ya PCB, Kinsus — sold out through 2027."},"industrial-gases-water":{"category":"vertical","full_name":"Industrial Gases & Water","explanation":"Bulk N2/O2/H2/He/Ar gases delivered on-site to fabs (Linde, Air Products, Air Liquide) plus ultra-pure-water (UPW) systems and datacenter cooling water (Xylem, Pentair, AWK). Long-term take-or-pay contracts make these effectively infrastructure annuities."},"lithography":{"category":"vertical","full_name":"Lithography","explanation":"Photolithography — printing the transistor patterns onto wafers. ASML has a global monopoly on EUV scanners (~$200M each, $380M+ for High-NA) that are required for sub-7nm nodes; Nikon and Canon serve trailing-edge DUV. Lasertec monopolizes EUV mask inspection."},"model-labs-software":{"category":"vertical","full_name":"Model Labs & AI Software","explanation":"Public software/AI names: NOW, DDOG, SNOW, MDB, PLTR, APP, ServiceNow-style enterprise platforms that resell or wrap LLM inference. The frontier model labs themselves (OpenAI, Anthropic, xAI) are private."},"networking-switching":{"category":"vertical","full_name":"Networking & Switching","explanation":"Datacenter switches and network ICs (Arista, Cisco, Broadcom Tomahawk silicon, NVIDIA Spectrum-X/InfiniBand). AI back-end fabrics need 800G/1.6T optics and very flat, lossless topologies — driving structural NIC and switch upgrades."},"nuclear-smr-uranium":{"category":"vertical","full_name":"Nuclear, SMRs & Uranium","explanation":"Existing US nuclear fleet (Constellation, Vistra, Talen, Duke), pre-revenue SMR developers (NuScale, Oklo, BWXT), HALEU enricher (Centrus Energy), and uranium miners (Cameco, Energy Fuels). All-time-high interest from hyperscalers seeking 24/7 carbon-free power for AI."},"power-semis-vrm":{"category":"vertical","full_name":"Power Semiconductors & VRMs","explanation":"Voltage regulator modules (VRMs) and power semis that sit between the rack PSU and the GPU die. As accelerators move to 48V vertical-power delivery (above 1000A at the socket), GaN/SiC content and merchant VRM specialists (MPS, Infineon, Vicor) gain share."},"power-transformers-grid":{"category":"vertical","full_name":"Power Transformers & Grid","explanation":"Large power transformers, GIS/AIS switchgear, HVDC converters, and the construction labor (Quanta, MYR Group, Primoris) needed to connect AI campuses to the grid. Multi-year shortage in large-power transformers (5-7 year lead times) is the binding constraint on US AI build-out."},"silicon-photonics-optics":{"category":"vertical","full_name":"Silicon Photonics & Optics","explanation":"Optical transceivers (800G, 1.6T), pluggables, co-packaged optics, and laser/InP component makers (Coherent, Lumentum, Fabrinet, AAOI, POET). Required everywhere a copper link can't keep up with the bandwidth (typically anything >3 m at >100G/lane)."},"utilities-merchant-power":{"category":"vertical","full_name":"Utilities & Merchant Power","explanation":"Regulated utilities (AEP, Duke, Dominion, PSEG) plus merchant generators (Vistra, NRG, Constellation, Talen). The on-the-meter side of the AI power demand — long-cycle, regulated, but seeing the highest load-growth forecasts in 30 years."},"wfe-deposition-etch":{"category":"vertical","full_name":"WFE — Deposition & Etch","explanation":"Wafer Fab Equipment outside lithography: deposition (CVD/PVD/ALD, Applied Materials), etch (Lam Research, TEL), implant (Axcelis), metrology (KLA, Onto). Capex follows fab build-cycles; HBM stack growth disproportionately benefits etch suppliers."},"EUV":{"category":"concept","full_name":"Extreme Ultraviolet Lithography","explanation":"EUV is the lithography technology that uses 13.5 nm wavelength light to print transistor patterns smaller than ArF immersion can manage. Required for everything 7 nm and below. ASML is the sole producer; each EUV scanner costs ~$200M and prints ~150-200 wafers per hour."},"DUV":{"category":"concept","full_name":"Deep Ultraviolet Lithography","explanation":"DUV uses 193 nm (ArF) or 248 nm (KrF) excimer lasers and is the workhorse for all trailing-edge and many mid-edge process layers. ASML, Nikon, and Canon all sell DUV scanners; immersion ArF is what stretches the technology to ~7 nm without EUV."},"ArF":{"category":"concept","full_name":"Argon Fluoride (193 nm) excimer laser lithography","explanation":"ArF is the 193 nm DUV light source used in immersion lithography; the workhorse for 7-28 nm patterning. ArFi (immersion) scanners place water between the lens and the wafer to bend light to smaller features."},"High-NA EUV":{"category":"concept","full_name":"High-numerical-aperture EUV (NA 0.55)","explanation":"The next generation of EUV scanners (ASML Twinscan EXE:5000/5200) with a larger 0.55 numerical aperture, enabling single-exposure printing at sub-2 nm half pitch. Each tool sells for ~$380-400M. Intel was first customer in 2024; TSMC adoption deferred."},"CoWoS":{"category":"concept","full_name":"Chip-on-Wafer-on-Substrate","explanation":"CoWoS is TSMC's flagship 2.5D advanced-packaging process: logic dies and HBM stacks are bonded onto a silicon (or now organic) interposer, then onto a substrate. CoWoS-S used silicon interposer; CoWoS-L (LSI bridges) and CoWoS-R (RDL) expand reticle size. The binding constraint on every modern AI accelerator."},"CoWoS-L":{"category":"concept","full_name":"CoWoS with Local Silicon Interconnect (LSI bridges)","explanation":"The newer generation of CoWoS that replaces a single huge silicon interposer with smaller LSI 'bridges' embedded in an RDL package. Cheaper, faster to scale, and the technology behind NVIDIA Blackwell-Ultra/Rubin and AMD MI400-class packages."},"SoIC":{"category":"concept","full_name":"System on Integrated Chips (TSMC 3D stacking)","explanation":"SoIC is TSMC's true 3D-stacking technology — chip-on-chip with sub-10µm pitch hybrid bonding (no microbumps). Enables 3D L2/L3 cache (AMD V-Cache), HBM4 base-die stacking, and future logic-on-logic. The next step after CoWoS for bandwidth scaling."},"FOPLP":{"category":"concept","full_name":"Fan-Out Panel-Level Packaging","explanation":"FOPLP extends fan-out wafer-level packaging to rectangular ~600×600 mm panels instead of 300 mm wafers, dramatically increasing throughput and reducing cost. Samsung, ASE, and Powertech are early adopters; TSMC plans pilot lines for sub-AI applications."},"HBM":{"category":"concept","full_name":"High Bandwidth Memory","explanation":"HBM is a stack of 8-16 DRAM dies bonded vertically with through-silicon vias (TSVs) and sitting alongside a GPU on the same package. Provides 5-10x the bandwidth of regular DDR5 (3-8 TB/s per stack) — essential because LLM inference is memory-bandwidth bound. Made by SK Hynix, Samsung, Micron."},"HBM3E":{"category":"concept","full_name":"HBM3 Extended (~9.2 Gbps/pin)","explanation":"The current production HBM generation used in NVIDIA Hopper H200/Blackwell B100/B200 and AMD MI300X/MI325X. Typical stack is 8-Hi or 12-Hi with 24-36 GB capacity and ~1.2 TB/s per stack. SK Hynix lead supplier; Micron in volume; Samsung qualifying."},"HBM4":{"category":"concept","full_name":"High Bandwidth Memory generation 4","explanation":"The next HBM generation (sampling 2025, volume 2026-27), targeting ~2 TB/s per stack and a wider 2048-bit interface. The base die moves to a logic process (paid to TSMC) for first time — fundamentally changing the supply chain. Used by NVIDIA Rubin and AMD MI400."},"DRAM":{"category":"concept","full_name":"Dynamic Random Access Memory","explanation":"The volatile system memory that holds data and code while a chip is running. Made by SK Hynix, Samsung, Micron, Nanya, Winbond on dedicated DRAM lines. HBM is one specialty branch of DRAM; commodity DDR4/DDR5 and LPDDR5 fill out the rest."},"TSV":{"category":"concept","full_name":"Through-Silicon Via","explanation":"A vertical electrical interconnect that goes through a silicon die, allowing stacked chips (HBM, 3D NAND) to communicate top-to-bottom. The yield and cost of TSV formation/fill is the gating factor in HBM stack count scaling."},"ABF substrate":{"category":"concept","full_name":"Ajinomoto Build-up Film substrate (FC-BGA)","explanation":"An IC substrate made by laminating layers of ABF — a dielectric film sole-sourced from Ajinomoto. ABF substrates are the high-density laminate boards that sit beneath every modern CPU/GPU/AI accelerator, providing fine-pitch wiring between die bumps and the motherboard."},"BT substrate":{"category":"concept","full_name":"Bismaleimide-Triazine substrate","explanation":"An older IC substrate type used for memory packages and lower-end chips. BT is cheaper but lower-performance than ABF; HBM stacks ride on BT substrates while the logic die uses ABF."},"FC-BGA":{"category":"concept","full_name":"Flip-Chip Ball Grid Array","explanation":"A packaging form factor where the chip die is flipped upside down and connected via solder bumps to the substrate (instead of wire bonding), then a grid of solder balls attaches to the PCB. All high-performance CPUs/GPUs/AI accelerators use FC-BGA with ABF substrates."},"OSAT":{"category":"concept","full_name":"Outsourced Assembly and Test","explanation":"Third-party back-end firms that take wafers from a foundry and turn them into packaged, tested chips — assembly, bonding, test, burn-in. ASE Technology, Amkor, Powertech, KYEC. CoWoS partly bypasses OSAT because TSMC keeps it in-house."},"WFE":{"category":"concept","full_name":"Wafer Fab Equipment","explanation":"The industrial machinery used inside semiconductor fabs to process wafers: lithography scanners, deposition tools, etch tools, implanters, metrology/inspection, cleaning. Dominated by AMAT, ASML, LRCX, KLAC, TEL — a ~$110B/yr equipment market."},"CVD":{"category":"concept","full_name":"Chemical Vapor Deposition","explanation":"A wafer process where gaseous precursors react on a hot wafer to deposit a thin film (oxide, nitride, tungsten, etc.). Workhorse step at every node; AMAT, LRCX, TEL all supply variants."},"PVD":{"category":"concept","full_name":"Physical Vapor Deposition","explanation":"A wafer process that sputters atoms from a metal target onto the wafer to deposit metal layers (Al, Cu, Ti, Ta). AMAT is the dominant PVD vendor."},"ALD":{"category":"concept","full_name":"Atomic Layer Deposition","explanation":"A precision deposition process that builds films one atomic layer at a time — required for ultra-thin gate dielectrics and high-aspect-ratio HBM/3D NAND fills. AMAT, LRCX, TEL, ASMI are the main suppliers."},"GAA":{"category":"concept","full_name":"Gate-All-Around (transistor architecture)","explanation":"The next transistor architecture after FinFET, where the gate completely surrounds the channel (a 'nanosheet'). Samsung 3 nm and TSMC N2 introduce GAA; necessary for sub-3 nm performance/leakage. Requires new etch + selective deposition steps."},"FinFET":{"category":"concept","full_name":"Fin Field-Effect Transistor","explanation":"The 3D transistor architecture used in every leading-edge node from ~22 nm through 3 nm, where the channel is a vertical 'fin' wrapped on three sides by the gate. Being replaced by GAA at 2 nm and below."},"VRM":{"category":"concept","full_name":"Voltage Regulator Module","explanation":"A small power-conversion board that steps down 12 V or 48 V to the ~0.8 V the chip die actually uses, and feeds 1000+ amps of current at very tight ripple. AI accelerators consume so much power per square millimeter that VRM design is now a critical chip-system co-design problem."},"GaN":{"category":"concept","full_name":"Gallium Nitride (wide-bandgap power semi)","explanation":"GaN is a wide-bandgap semiconductor that switches much faster than silicon at high voltages — ideal for compact, efficient power supplies. Used in 48V datacenter PSUs and high-density chargers. Makers: Navitas, Power Integrations, Infineon, EPC."},"SiC":{"category":"concept","full_name":"Silicon Carbide (wide-bandgap power semi)","explanation":"Silicon carbide is a wide-bandgap semiconductor used at higher voltages than GaN (>650 V) — EV traction, solar, datacenter HVDC. Wolfspeed, onsemi, STMicro, Infineon are leaders. Substrate supply (6-inch and 8-inch SiC wafers) is the binding constraint."},"PSU":{"category":"concept","full_name":"Power Supply Unit","explanation":"The rack- or server-level power supply that takes AC from the building (typically 415 V three-phase in datacenters) and converts it to 48 V or 12 V DC for the server. Hyperscale racks use 33-100 kW PSUs with 96-98% efficiency targets."},"PDU":{"category":"concept","full_name":"Power Distribution Unit","explanation":"A rack- or row-level distribution panel that splits power coming in from the building UPS/switchgear out to individual servers and racks. Vertiv, Eaton, Schneider, nVent are the main vendors."},"UPS":{"category":"concept","full_name":"Uninterruptible Power Supply","explanation":"Battery- or flywheel-backed power systems that bridge from grid failure to backup-generator start. Datacenter UPS systems run 1-5 MW per module; double-conversion and lithium-ion are the modern norms. Eaton, Schneider, Vertiv, ABB are the leaders."},"BESS":{"category":"concept","full_name":"Battery Energy Storage System","explanation":"Grid-scale or behind-the-meter battery installations (mostly lithium-iron-phosphate) used to firm renewables and arbitrage power prices. Increasingly co-located with AI datacenters to shave peak demand charges."},"HVDC":{"category":"concept","full_name":"High Voltage Direct Current","explanation":"DC transmission technology used for long-distance, high-capacity power links (subsea cables, point-to-point). Hitachi Energy, Siemens Energy, GE, ABB dominate the converter-station market. Datacenters explore HVDC rack distribution as efficiency gain."},"PPA":{"category":"concept","full_name":"Power Purchase Agreement","explanation":"A long-term (often 15-25 year) contract between a power generator and an offtaker (often a hyperscaler) at a fixed or indexed price. AI hyperscalers have signed PPAs covering nuclear restarts (Three Mile Island), new SMR builds, and gas-turbine campuses."},"IPP":{"category":"concept","full_name":"Independent Power Producer","explanation":"A non-utility company that owns and operates power plants and sells output into wholesale markets or via PPAs. Vistra, NRG, Constellation, Talen are the largest US merchant IPPs; AI demand is their biggest tailwind in decades."},"REIT":{"category":"concept","full_name":"Real Estate Investment Trust","explanation":"A US tax structure that requires distributing 90% of taxable income to shareholders in exchange for corporate-tax exemption. Datacenter REITs (DLR, EQIX, IRM) own buildings and lease them; they finance long-life infrastructure cheaply because of the structure."},"HALEU":{"category":"concept","full_name":"High-Assay Low-Enriched Uranium (5-20% U-235)","explanation":"Uranium fuel enriched between 5% and 20% U-235 (vs ~5% for conventional reactors). Required by most advanced SMR designs (Oklo, X-energy, TerraPower). Centrus Energy is the only US-licensed HALEU producer; supply is the binding constraint on commercial SMR deployment."},"IRA":{"category":"concept","full_name":"Inflation Reduction Act (US, 2022)","explanation":"The 2022 US federal law that introduced advanced-manufacturing and clean-energy tax credits, including 45X production credits for semis, magnets, batteries, and clean-energy components. Underwrites US fab capex (Micron, TSM Arizona, Samsung Texas) and rare-earth processing."},"CHIPS Act":{"category":"concept","full_name":"CHIPS and Science Act of 2022","explanation":"US federal law providing ~$53B of grants and ~$25B of tax credits for domestic semiconductor manufacturing and R&D. Funds TSMC Arizona, Samsung Texas, Intel Ohio/Arizona, Micron New York, GlobalFoundries NY/VT expansions."},"RPO":{"category":"concept","full_name":"Remaining Performance Obligation","explanation":"An accounting line under ASC 606 that disclose the dollar value of contracted but not-yet-recognized revenue. Hyperscalers (Microsoft Azure, Google Cloud, Oracle) use RPO to demonstrate the multi-year AI revenue pipeline. Useful as a leading indicator of cloud capex pull-through."},"TAM":{"category":"concept","full_name":"Total Addressable Market","explanation":"An estimate of the total annual revenue available to a product/service if every potential customer bought from one supplier. Used in this study (and in investor presentations broadly) to size each vertical."},"CAGR":{"category":"concept","full_name":"Compound Annual Growth Rate","explanation":"The constant year-over-year growth rate that would produce an observed end-point given a starting point and elapsed years. Formula: (end/start)^(1/years) - 1. Used in this study to summarize each stock's annualized return over the price window."},"z-score":{"category":"concept","full_name":"Z-score (standard score)","explanation":"The number of standard deviations a value sits above (positive) or below (negative) the mean of a reference distribution. Used here to normalize returns across stocks so they can be compared apples-to-apples regardless of volatility."},"beta":{"category":"concept","full_name":"Beta (market-relative volatility)","explanation":"The slope of a stock's returns regressed against a benchmark (S&P 500 here). Beta > 1 means the stock historically moves more than the market; beta < 1 means less. AI semis tend to run beta ~1.5-2.0; utilities ~0.5-0.8."},"Sharpe ratio":{"category":"concept","full_name":"Sharpe Ratio","explanation":"Average excess return over a risk-free rate divided by the standard deviation of returns. Higher is better — a measure of return per unit of volatility. Equity Sharpe ratios above ~1.0 are considered strong over multi-year windows."},"max drawdown":{"category":"concept","full_name":"Maximum Drawdown","explanation":"The largest peak-to-trough percentage decline observed in a price series over a given window. Used as a downside risk measure that captures path dependency that volatility alone misses."},"log returns":{"category":"concept","full_name":"Logarithmic returns","explanation":"Returns computed as ln(P_t / P_{t-1}) instead of (P_t - P_{t-1}) / P_{t-1}. Log returns are time-additive and approximately normal at short horizons, which is convenient for statistical analysis. Used in this study for return aggregation."},"adjusted close":{"category":"concept","full_name":"Adjusted Closing Price","explanation":"The daily closing price corrected for splits, stock dividends, and cash dividends so that returns computed from the series reflect total shareholder return. This study uses adjusted close from Yahoo Finance throughout."},"equal-weight index":{"category":"concept","full_name":"Equal-weighted index","explanation":"An index where every constituent has the same weight (1/N), rebalanced periodically — as opposed to a cap-weighted index where mega-caps dominate. Used here to construct vertical baskets so a single mega-cap (NVDA) doesn't drown out the smaller names."},"log-scale":{"category":"concept","full_name":"Logarithmic Scale","explanation":"A chart axis where equal distances represent equal multiplicative changes (10×, 100×) rather than equal additive changes. Used for long-horizon return charts so a stock that went up 10× and one that went up 100× are both visible."},"tercile":{"category":"concept","full_name":"Tercile (already in master glossary -- reproduced)","explanation":"Cuts a distribution into thirds. v1 sorted 22 z-score gaps into terciles labelled 'priced-in / fair / lagging.' Bottom and top thirds had only 7-8 verticals each, so a tiny shift in any input moved labels around -- 11 of 22 labels flipped when the AI-share prior moved 10 points. That instability is one reason v2 exists."},"IRR":{"category":"concept","full_name":"Internal Rate of Return","explanation":"The annualized discount rate that makes the net present value of a cash-flow stream equal to zero. Used to compare investment projects with irregular cash flows; in stock context often confused with CAGR (close for buy-and-hold)."},"MoC":{"category":"concept","full_name":"Map of Content (Zettelkasten navigation hub)","explanation":"A navigation note that groups other notes by theme; used inside this second-brain repository (not a finance term). Not to be confused with 'method of characteristics' or any financial usage."},"vertical":{"category":"concept","full_name":"Vertical (industry segment)","explanation":"In this study, a 'vertical' is one of 22 categorized industry segments that span the LLM inference supply chain end to end — from upstream (copper, uranium) through silicon (lithography, foundry, packaging) to deployment (cloud, software). Each vertical has its own data/verticals/*.json fact sheet."},"priced-in":{"category":"concept","full_name":"Priced-in (efficient-markets shorthand)","explanation":"A stock is 'priced in' for a future event when the consensus expectation is already reflected in its market price; further good news must exceed expectations for the price to rise. Used in this study to flag names where AI optimism is fully (or over-) discounted vs. those still lagging."},"800G":{"category":"concept","full_name":"800-gigabit Ethernet optical transceiver","explanation":"The current mainstream high-speed datacenter optical transceiver, used for AI cluster spine and leaf switching. Typical form factors are OSFP and QSFP-DD800; volume ramp drove Coherent, Lumentum, Fabrinet revenue in 2024-25."},"1.6T":{"category":"concept","full_name":"1.6-terabit Ethernet optical transceiver","explanation":"The next-generation datacenter optical transceiver (2× 800G), arriving in volume 2025-26. Required for the densest AI back-end fabrics, supports 200G/lane PAM4 SerDes from Marvell, Broadcom, Credo."},"NVLink":{"category":"concept","full_name":"NVIDIA NVLink (proprietary GPU-to-GPU interconnect)","explanation":"NVIDIA's proprietary high-bandwidth interconnect linking GPUs inside a server (NVLink) and across racks (NVLink Switch, NVL72 system). Provides ~900 GB/s per GPU in Blackwell — far more than PCIe — and locks GPU-to-GPU traffic into NVIDIA-only hardware."},"InfiniBand":{"category":"concept","full_name":"InfiniBand (high-performance network fabric)","explanation":"A high-bandwidth, low-latency interconnect originally for HPC, now used as NVIDIA's preferred AI back-end network (via the Mellanox acquisition). Competes with Ethernet/RoCE for scale-out AI fabrics. 800 Gb/s NDR is current generation."},"RoCE":{"category":"concept","full_name":"RDMA over Converged Ethernet","explanation":"A protocol that runs Remote Direct Memory Access (RDMA) over standard Ethernet, allowing AI clusters to use commodity Ethernet switches instead of InfiniBand. The basis for hyperscaler-favored AI networking via Broadcom Tomahawk and Arista Etherlink."},"DSP":{"category":"concept","full_name":"Digital Signal Processor (in optics, PAM4 DSP chip)","explanation":"In optical transceivers, the DSP is the silicon that encodes/decodes PAM4 modulation, compensates for fiber/electrical impairments, and drives the laser. Marvell, Broadcom, and Inphi (now Marvell) supply most 800G/1.6T DSPs."},"SerDes":{"category":"concept","full_name":"Serializer/Deserializer","explanation":"An analog/mixed-signal IP block that converts parallel chip data into a high-speed serial signal (and back) at 100-200 Gbps per lane. Critical for AI clusters; Broadcom, Marvell, Synopsys, Credo, Astera lead the merchant SerDes market."},"PAM4":{"category":"concept","full_name":"Four-Level Pulse Amplitude Modulation","explanation":"A modulation scheme that encodes 2 bits per symbol (vs 1 for NRZ), doubling bandwidth at a given baud rate. Used in 800G/1.6T optical transceivers and in modern Ethernet SerDes."},"CPO":{"category":"concept","full_name":"Co-Packaged Optics","explanation":"An emerging packaging approach that puts the optical engine inside the switch ASIC package, eliminating the pluggable transceiver. Targets multi-terabit switches with lower power per bit. Broadcom Bailly and NVIDIA NVL CPO are early commercial milestones."},"PCIe":{"category":"concept","full_name":"Peripheral Component Interconnect Express","explanation":"The standard host-side bus connecting CPUs to GPUs, NICs, SSDs in a server. Gen5 is current mainstream (~64 GB/s x16), Gen6 starts ramping in 2025-26. PCIe retimers (Astera, Broadcom) extend reach inside AI server boards."},"CXL":{"category":"concept","full_name":"Compute Express Link","explanation":"A cache-coherent interconnect built on top of PCIe physical layer, intended for memory expansion and disaggregation. Slow uptake in 2024-25 but a long-term lever for memory-tier expansion alongside AI accelerators. Astera Labs and Marvell make CXL switch silicon."},"TPU":{"category":"concept","full_name":"Tensor Processing Unit (Google)","explanation":"Google's family of in-house AI ASICs (currently v5p/v5e/v6 Trillium) for training and inference of Gemini and other models. Co-designed with Broadcom, fabbed at TSMC. Available to outside customers only via Google Cloud."},"Trainium":{"category":"concept","full_name":"AWS Trainium (Amazon AI training ASIC)","explanation":"Amazon's in-house AI training accelerator (Trainium2 in production, Trainium3 next), co-designed with Annapurna Labs and Marvell. Anthropic Project Rainier and AWS Bedrock are anchor customers."},"Inferentia":{"category":"concept","full_name":"AWS Inferentia (Amazon AI inference ASIC)","explanation":"Amazon's in-house inference accelerator family (Inferentia/Inferentia2). Cost-optimized for serving rather than training; available only inside AWS via Inf2 instances."},"Maia":{"category":"concept","full_name":"Microsoft Maia (Azure AI accelerator)","explanation":"Microsoft's first-generation custom AI accelerator (Maia 100) announced 2023; targets Azure OpenAI inference workloads. Co-designed and partly Marvell-implemented. Less mature than TPU/Trainium but ramping."},"MI300":{"category":"concept","full_name":"AMD Instinct MI300 series","explanation":"AMD's first competitive AI GPU line (MI300X 192 GB HBM3, MI325X, MI350) used by Microsoft Azure, Meta, Oracle for inference and selective training. Built on CDNA3 architecture with chiplet packaging on TSMC N5 + N6."},"Hopper":{"category":"concept","full_name":"NVIDIA Hopper architecture (H100/H200)","explanation":"NVIDIA's H100/H200 GPU generation (2022-24), the workhorse training silicon of the modern LLM boom. H100 has 80 GB HBM3; H200 upgraded to 141 GB HBM3E. Both use TSMC N4 and CoWoS-S packaging."},"Blackwell":{"category":"concept","full_name":"NVIDIA Blackwell architecture (B100/B200/GB200)","explanation":"NVIDIA's 2024-25 GPU generation — B100/B200 single-die-pair on TSMC N4P with CoWoS-L, 192 GB HBM3E. GB200 NVL72 rack pairs Blackwell with Grace Arm CPUs over NVLink5. Largest AI-product launch in tech history."},"Rubin":{"category":"concept","full_name":"NVIDIA Rubin architecture (next generation)","explanation":"NVIDIA's planned 2026-27 GPU generation — Rubin / Rubin Ultra — built on TSMC N3, with HBM4 and CoWoS-L. First generation expected to use TSMC SoIC for stacked logic. Announced at GTC 2024."},"AI Factory":{"category":"concept","full_name":"AI Factory (NVIDIA term)","explanation":"NVIDIA's marketing term for a fully-integrated AI training/inference datacenter — power, cooling, networking, compute, software stack. Used to describe deals like xAI Colossus, Stargate (Oracle/OpenAI), and large GW-scale builds."},"frontier model":{"category":"concept","full_name":"Frontier AI model","explanation":"A model at or near the state-of-the-art in capability — currently GPT-5/Claude Opus 4.x/Gemini 2.5 Pro class. Training requires the largest clusters (>50,000 GPUs) and the most advanced HBM/CoWoS supply."},"MoE":{"category":"concept","full_name":"Mixture of Experts (model architecture)","explanation":"A neural-network architecture where many smaller 'expert' sub-networks are routed to selectively per token, giving large total parameter counts but lower active compute per token. Powers most modern frontier LLMs (Mixtral, GPT-4, DeepSeek-V3, Gemma) and changes hardware demand toward more memory and less compute."},"RAG":{"category":"concept","full_name":"Retrieval-Augmented Generation","explanation":"A pattern where an LLM retrieves relevant documents from a vector store before generating a response, grounding outputs in source material. Drives demand for vector databases (Pinecone, MongoDB Atlas, Weaviate) and embedding inference."},"agentic":{"category":"concept","full_name":"Agentic AI (multi-step autonomous LLM use)","explanation":"AI systems where an LLM autonomously plans and executes multi-step tasks (browsing, coding, tool-calling). 5-100× more inference per user request than chat, making it the largest swing variable in 2026 inference TAM."},"inference":{"category":"concept","full_name":"Inference (model serving)","explanation":"The act of running a trained AI model to produce outputs (as opposed to training). Inference is the larger long-run market because every query incurs it, and it's more bandwidth- and latency-sensitive than compute-bound."},"training":{"category":"concept","full_name":"Training (model fitting)","explanation":"The compute-intensive process of fitting an AI model's parameters from data. Modern frontier model training runs cost $0.1-1B and require >50,000 GPUs running months on end. Driving most of the 2024-26 AI capex cycle."},"behind-the-meter":{"category":"concept","full_name":"Behind-the-Meter generation","explanation":"Power generation co-located with a customer (datacenter) and bypassing the public utility's distribution meter. Used to circumvent interconnect queues and lock in dedicated capacity. Examples: Talen/AWS Susquehanna, Crusoe gas-turbine campuses."},"FFA":{"category":"concept","full_name":"Forward Financial Agreement / Forward Capacity Auction","explanation":"A forward contract on electricity or capacity — in this study context, refers to PJM/ERCOT capacity-auction-style instruments that lock in $/MW-day payments years ahead. PJM 2025/26 auction clearing prices set records on AI datacenter demand."},"capacity auction":{"category":"concept","full_name":"Capacity Auction (PJM RPM)","explanation":"PJM Interconnection runs annual Reliability Pricing Model (RPM) capacity auctions that pay generators to be available three years forward. The 2025/26 auction cleared at record prices (~$270/MW-day) driven by retirements and AI-datacenter load."},"interconnect queue":{"category":"concept","full_name":"Transmission Interconnection Queue","explanation":"The backlog of generation and load projects waiting for grid-connection studies at regional transmission organizations (PJM, ERCOT, MISO, CAISO). Wait times of 4-7 years are the largest non-equipment bottleneck on AI build-out."},"Equinix IBX":{"category":"concept","full_name":"Equinix International Business Exchange","explanation":"Equinix's branding for a single datacenter facility — there are 270+ IBXs globally. Known as 'carrier hotels' because they host dense network interconnection between thousands of customers in one room."},"Lasertec":{"category":"company","full_name":"Lasertec Corporation","explanation":"Japanese maker of EUV photomask inspection systems (ACTIS) with effective monopoly in actinic-pattern inspection — every leading-edge fab must buy from Lasertec to qualify EUV masks. See ticker 6920.T."},"SCREEN Holdings":{"category":"company","full_name":"SCREEN Holdings Co., Ltd.","explanation":"Japanese wet-cleaning, thermal, and litho-track equipment vendor with ~70% share of single-wafer cleaning tools. Recurring demand from every wafer start. See ticker 7735.T."},"Ibiden":{"category":"company","full_name":"Ibiden Co., Ltd.","explanation":"Japanese ABF / FC-BGA substrate maker, ~70-80% share of leading-edge AI substrates. See ticker 4062.T."},"Ajinomoto":{"category":"company","full_name":"Ajinomoto Co., Inc.","explanation":"Japanese MSG maker and sole-source supplier of ABF (Ajinomoto Build-up Film) dielectric for advanced FC-BGA substrates. Hidden semi monopoly. See ticker 2802.T."},"Shinko":{"category":"company","full_name":"Shinko Electric Industries (private — being taken private by Dai Nippon Printing-led consortium)","explanation":"Japanese FC-BGA substrate maker, originally a Fujitsu subsidiary. Being taken private (announced 2023, closed 2025) by a JIC-led group. Direct competitor to Ibiden in AI substrates."},"AT&S":{"category":"company","full_name":"AT&S Austria Technologie & Systemtechnik AG","explanation":"Austrian IC-substrate and high-end PCB maker, #4 in ABF substrates. See ticker ATS.VI."},"Unimicron":{"category":"company","full_name":"Unimicron Technology Corp.","explanation":"Taiwanese ABF/FC-BGA substrate leader, key NVIDIA/AMD AI substrate supplier. See ticker 3037.TW."},"Kinsus":{"category":"company","full_name":"Kinsus Interconnect Technology Corp.","explanation":"Taiwanese FC-BGA substrate maker, Pegatron group. See ticker 3189.TW."},"Nan Ya PCB":{"category":"company","full_name":"Nan Ya Printed Circuit Board Corporation","explanation":"Taiwanese ABF substrate and PCB maker (Formosa Plastics Group). See ticker 8046.TW."},"Astera Labs":{"category":"company","full_name":"Astera Labs, Inc.","explanation":"PCIe/CXL retimer and Scorpio fabric-switch maker for AI servers. IPO'd 2024. See ticker ALAB."},"Credo":{"category":"company","full_name":"Credo Technology Group Holding Ltd","explanation":"Active electrical cable (AEC) and SerDes retimer designer for hyperscaler AI back-end. See ticker CRDO."},"Coherent":{"category":"company","full_name":"Coherent Corp.","explanation":"Optical-networking, lasers, and SiC substrates; formed by Coherent Inc + II-VI merger 2022. See ticker COHR."},"Lumentum":{"category":"company","full_name":"Lumentum Holdings Inc.","explanation":"Optical components and 800G/1.6T transceivers; spin from JDSU in 2015. See ticker LITE."},"Fabrinet":{"category":"company","full_name":"Fabrinet","explanation":"Contract optical-assembly partner to most merchant transceiver vendors. See ticker FN."},"Applied Optoelectronics":{"category":"company","full_name":"Applied Optoelectronics, Inc.","explanation":"Small-cap laser/transceiver maker ramping AI-datacenter 800G optics. See ticker AAOI."},"Vertiv":{"category":"company","full_name":"Vertiv Holdings Co","explanation":"Datacenter thermal-management pure play. See ticker VRT."},"Monolithic Power":{"category":"company","full_name":"Monolithic Power Systems, Inc.","explanation":"Merchant on-board VRM/power-IC leader, historically NVIDIA partner. See ticker MPWR."},"Vicor":{"category":"company","full_name":"Vicor Corporation","explanation":"Factorized-power-architecture modules for AI accelerator boards. See ticker VICR."},"Navitas":{"category":"company","full_name":"Navitas Semiconductor Corporation","explanation":"Fabless GaN power-IC startup; data-center PSUs and chargers. See ticker NVTS."},"Wolfspeed":{"category":"company","full_name":"Wolfspeed, Inc. (private as of 2026 Chapter 11 restructuring)","explanation":"US silicon-carbide (SiC) substrate and power-device maker; emerged from Chapter 11 in 2026 with PE/bank ownership after EV-related SiC capex overrun. Was previously public as WOLF."},"Constellation":{"category":"company","full_name":"Constellation Energy Corporation","explanation":"Largest US merchant nuclear operator. See ticker CEG."},"Vistra":{"category":"company","full_name":"Vistra Corp.","explanation":"Texas-anchored merchant generator with nuclear, gas, coal, batteries. See ticker VST."},"Talen Energy":{"category":"company","full_name":"Talen Energy Corporation","explanation":"Operator of Susquehanna nuclear plant; sold adjacent Cumulus datacenter to AWS. See ticker TLN."},"NuScale":{"category":"company","full_name":"NuScale Power Corporation","explanation":"Only US-NRC-approved SMR designer (77 MW VOYGR). See ticker SMR."},"Oklo":{"category":"company","full_name":"Oklo Inc.","explanation":"Sam Altman-chaired advanced-reactor startup. See ticker OKLO."},"Centrus Energy":{"category":"company","full_name":"Centrus Energy Corp.","explanation":"Only US-licensed HALEU producer for SMR fuel. See ticker LEU."},"BWX Technologies":{"category":"company","full_name":"BWX Technologies, Inc.","explanation":"US naval-nuclear and SMR component manufacturer. See ticker BWXT."},"Cameco":{"category":"company","full_name":"Cameco Corporation","explanation":"Largest publicly traded uranium miner and Westinghouse co-owner. See ticker CCJ."},"NexGen":{"category":"company","full_name":"NexGen Energy Ltd. (NXE) — referenced for context","explanation":"Canadian uranium developer building the Rook I project in Saskatchewan; pre-production. Not in this study's price manifest but a major future supply addition referenced in nuclear research."},"MP Materials":{"category":"company","full_name":"MP Materials Corp.","explanation":"Owner of Mountain Pass, the only operating US rare-earth mine. See ticker MP."},"Lynas":{"category":"company","full_name":"Lynas Rare Earths Ltd","explanation":"Largest ex-China rare-earth producer (Mt Weld + Malaysia). See ticker LYC.AX."},"Freeport-McMoRan":{"category":"company","full_name":"Freeport-McMoRan Inc.","explanation":"Largest US-listed copper major. See ticker FCX."},"Southern Copper":{"category":"company","full_name":"Southern Copper Corporation","explanation":"Grupo Mexico-controlled, lowest-cost integrated copper producer. See ticker SCCO."},"Teck Resources":{"category":"company","full_name":"Teck Resources Limited","explanation":"Pure-play copper miner after coal divestment. See ticker TECK."},"Ivanhoe":{"category":"company","full_name":"Ivanhoe Mines Ltd.","explanation":"Operator of Kamoa-Kakula high-grade copper mine in DRC. See ticker IVN.TO."},"Quanta Services":{"category":"company","full_name":"Quanta Services, Inc.","explanation":"Largest US electric-transmission and renewable-construction contractor. See ticker PWR."},"MYR Group":{"category":"company","full_name":"MYR Group Inc.","explanation":"Specialty US T&D construction firm. See ticker MYRG."},"Primoris":{"category":"company","full_name":"Primoris Services Corporation","explanation":"Diversified energy/utility construction firm. See ticker PRIM."},"GE Vernova":{"category":"company","full_name":"GE Vernova Inc.","explanation":"Spun-off GE energy/power-grid business. See ticker GEV."},"Siemens Energy":{"category":"company","full_name":"Siemens Energy AG","explanation":"European #2 heavy-duty gas turbine OEM. See ticker ENR.DE."},"Mitsubishi Heavy":{"category":"company","full_name":"Mitsubishi Heavy Industries, Ltd.","explanation":"Japanese conglomerate, #3 HDGT OEM. See ticker 7011.T."},"Hammond Power":{"category":"company","full_name":"Hammond Power Solutions Inc.","explanation":"Canadian dry-type transformer specialist. See ticker HPS-A.TO."},"Hitachi Energy":{"category":"company","full_name":"Hitachi Energy (subsidiary of Hitachi Ltd, formerly ABB Power Grids)","explanation":"World's #1 grid transformer and HVDC supplier; subsidiary of Hitachi (6501.T). The most-constrained capacity in global power supply."},"Hyundai Electric":{"category":"company","full_name":"HD Hyundai Electric Co., Ltd.","explanation":"Korean power transformer manufacturer. See ticker 267260.KS."},"Eaton":{"category":"company","full_name":"Eaton Corporation plc","explanation":"Global #1 in datacenter electrical infrastructure. See ticker ETN."},"Schneider Electric":{"category":"company","full_name":"Schneider Electric SE","explanation":"Co-leader with Eaton in DC power management. See ticker SU.PA."},"ABB":{"category":"company","full_name":"ABB Ltd","explanation":"Swiss-Swedish electrification and automation giant; primary listing is ABBN.SW. ADR is ABBNY."},"Hubbell":{"category":"company","full_name":"Hubbell Incorporated","explanation":"US electrical products and grid-mod gear. See ticker HUBB."},"nVent":{"category":"company","full_name":"nVent Electric plc","explanation":"Liquid-cooling CDUs, busways, electrical enclosures. See ticker NVT."},"Powell Industries":{"category":"company","full_name":"Powell Industries, Inc.","explanation":"Custom medium-voltage switchgear for AI datacenters and O&G. See ticker POWL."},"Rockwell":{"category":"company","full_name":"Rockwell Automation, Inc.","explanation":"US factory-automation leader. See ticker ROK."},"Equinix":{"category":"company","full_name":"Equinix, Inc.","explanation":"Global retail colocation and interconnection leader. See ticker EQIX."},"Digital Realty":{"category":"company","full_name":"Digital Realty Trust, Inc.","explanation":"Wholesale and hyperscale datacenter REIT. See ticker DLR."},"Iron Mountain":{"category":"company","full_name":"Iron Mountain Incorporated","explanation":"Records-storage to AI-datacenter pivot. See ticker IRM."},"Keppel DC REIT":{"category":"company","full_name":"Keppel DC REIT","explanation":"Largest pure-play Asian datacenter REIT. See ticker AJBU.SI."},"Linde":{"category":"company","full_name":"Linde plc","explanation":"World's #1 industrial-gas supplier. See ticker LIN."},"Air Products":{"category":"company","full_name":"Air Products and Chemicals, Inc.","explanation":"#3 industrial-gas major. See ticker APD."},"Air Liquide":{"category":"company","full_name":"Air Liquide S.A.","explanation":"French #2 global industrial gas major. ADR is AIQUY; primary listing AI.PA."},"American Water":{"category":"company","full_name":"American Water Works Company, Inc.","explanation":"Largest US regulated water utility. See ticker AWK."},"Essential Utilities":{"category":"company","full_name":"Essential Utilities, Inc.","explanation":"Regulated water + natural-gas utility (formerly Aqua America). See ticker WTRG."},"Xylem":{"category":"company","full_name":"Xylem Inc.","explanation":"Pumps, treatment, analytics for water. See ticker XYL."},"Pentair":{"category":"company","full_name":"Pentair plc","explanation":"Residential/commercial water treatment and pool equipment. See ticker PNR."},"Modine":{"category":"company","full_name":"Modine Manufacturing Company","explanation":"Airedale chillers, CDUs, immersion cooling. See ticker MOD."},"Carrier":{"category":"company","full_name":"Carrier Global Corporation","explanation":"HVAC OEM pivoting into datacenter cooling. See ticker CARR."},"Munters":{"category":"company","full_name":"Munters Group AB","explanation":"Swedish evaporative cooling and air treatment specialist. See ticker MTRS.ST."},"Johnson Controls":{"category":"company","full_name":"Johnson Controls International plc","explanation":"Building-controls and HVAC; Silent-Aire modular cooling. See ticker JCI."},"Trane":{"category":"company","full_name":"Trane Technologies plc","explanation":"Chiller and air-handling specialist. See ticker TT."},"Synopsys":{"category":"company","full_name":"Synopsys, Inc.","explanation":"#1 EDA vendor. See ticker SNPS."},"Cadence":{"category":"company","full_name":"Cadence Design Systems, Inc.","explanation":"#2 EDA vendor. See ticker CDNS."},"Arm":{"category":"company","full_name":"Arm Holdings plc","explanation":"CPU architecture licensor (Neoverse, Cortex). See ticker ARM."},"CoreWeave":{"category":"company","full_name":"CoreWeave, Inc.","explanation":"Largest pure-play GPU neocloud. See ticker CRWV."},"Nebius":{"category":"company","full_name":"Nebius Group N.V.","explanation":"European GPU neocloud spun out of Yandex international. See ticker NBIS."},"AppLovin":{"category":"company","full_name":"AppLovin Corporation","explanation":"Mobile ad-tech with ML/AI Axon engine. See ticker APP."},"Palantir":{"category":"company","full_name":"Palantir Technologies Inc.","explanation":"Government/commercial AI orchestration platform (AIP). See ticker PLTR."},"ServiceNow":{"category":"company","full_name":"ServiceNow, Inc.","explanation":"Enterprise-workflow SaaS with Now Assist AI. See ticker NOW."},"Datadog":{"category":"company","full_name":"Datadog, Inc.","explanation":"Cloud observability + LLM observability. See ticker DDOG."},"Snowflake":{"category":"company","full_name":"Snowflake Inc.","explanation":"Cloud data-warehouse with Cortex LLM inference. See ticker SNOW."},"MongoDB":{"category":"company","full_name":"MongoDB, Inc.","explanation":"Document database with Atlas Vector Search + Voyage AI. See ticker MDB."},"C3.ai":{"category":"company","full_name":"C3.ai, Inc. (AI)","explanation":"Enterprise-AI software vendor; mentioned for context but not in this study's price manifest. Public on NYSE under ticker AI."},"OpenAI":{"category":"company","full_name":"OpenAI","explanation":"Private AI lab behind ChatGPT, GPT-4, GPT-5; majority financial partner of Microsoft. Largest single buyer of frontier inference capacity in the world (Microsoft Azure, Oracle Stargate)."},"Anthropic":{"category":"company","full_name":"Anthropic, PBC","explanation":"Private AI lab behind the Claude model family; majority cloud partner of Amazon AWS (Project Rainier on Trainium). Second-largest frontier inference buyer after OpenAI."},"xAI":{"category":"company","full_name":"xAI Corp.","explanation":"Elon Musk's AI lab; trains the Grok model family on the Memphis 'Colossus' supercluster (200,000+ H100 GPUs)."},"DeepSeek":{"category":"company","full_name":"DeepSeek","explanation":"Chinese AI lab (spun out of High-Flyer hedge fund) that released open-weight DeepSeek-V3 / R1 in late 2024/2025, demonstrating frontier-grade reasoning at dramatically lower training cost. Major shock to the 'compute-equals-capability' narrative."},"Crusoe":{"category":"company","full_name":"Crusoe Energy Systems","explanation":"Private firm operating natural-gas-fueled AI datacenters (stranded-gas to start, behind-the-meter gas turbines now). Partner on Stargate Abilene and other multi-GW campuses; named GE Vernova / Solar Turbines customer."},"neocloud":{"category":"concept","full_name":"Neocloud (GPU-as-a-service operator)","explanation":"New-generation cloud providers focused only on AI GPU rental, financed via long-term take-or-pay contracts and debt against GPU collateral. CoreWeave, Nebius, Lambda, Crusoe Cloud. Generally lower margins than hyperscalers but higher growth."},"hyperscaler":{"category":"concept","full_name":"Hyperscaler","explanation":"A handful of cloud providers operating datacenter footprints measured in tens of GW: Microsoft Azure, Google Cloud, Amazon AWS, plus tier-2 Oracle, Meta (internal), Alibaba, ByteDance. Their capital allocation effectively drives every upstream vertical in this study."},"GW":{"category":"concept","full_name":"Gigawatt (1 GW = 1,000 MW)","explanation":"The unit of power capacity used to size AI campuses (1 GW datacenter ≈ all-time-large nuclear reactor output). Modern frontier training campuses (Microsoft Wisconsin, Meta Hyperion, xAI Memphis) target multi-GW total IT load."},"MW":{"category":"concept","full_name":"Megawatt (1 MW = 1,000 kW)","explanation":"Standard datacenter sizing unit. A traditional enterprise DC is 5-20 MW; modern AI training campuses are 100-1000+ MW. Cooling, transformer, and switchgear loads all scale linearly with MW."},"kW/rack":{"category":"concept","full_name":"Kilowatts per rack (datacenter density)","explanation":"Power density per server rack. Traditional enterprise: 5-10 kW. Hyperscale general: 15-30 kW. NVIDIA NVL72 Blackwell racks: 120-132 kW. >50 kW/rack forces liquid cooling."},"DLC":{"category":"concept","full_name":"Direct Liquid Cooling","explanation":"Cooling that runs liquid (water or dielectric) through cold-plates directly attached to chip packages, instead of relying solely on air. Standard for any rack above ~40 kW; required for NVIDIA Blackwell GB200 NVL72."},"CDU":{"category":"concept","full_name":"Coolant Distribution Unit","explanation":"A pumping and heat-exchanger appliance that interfaces between facility chilled water and the secondary cooling loop running into the IT racks. Sizes 100 kW to 2+ MW. Vertiv, Motivair, Modine, nVent, CoolIT are main vendors."},"PUE":{"category":"concept","full_name":"Power Usage Effectiveness","explanation":"Total datacenter power divided by IT (server) power. PUE = 1.0 is perfect (all power goes to compute); modern hyperscale runs 1.1-1.2. Lower PUE = less overhead for cooling and electrical losses."},"ERCOT":{"category":"concept","full_name":"Electric Reliability Council of Texas","explanation":"The grid operator for ~90% of Texas — an electrical island separate from the rest of the US. Fast permitting, deregulated retail, and abundant gas-power make ERCOT a top AI datacenter destination."},"PJM":{"category":"concept","full_name":"PJM Interconnection","explanation":"The regional transmission organization covering 13 mid-Atlantic and Midwest states. Hosts the world's largest concentration of AI datacenter load (Virginia 'Data Center Alley'). 2025/26 capacity auction set records."},"Solar Turbines":{"category":"company","full_name":"Solar Turbines (Caterpillar subsidiary)","explanation":"Aeroderivative gas-turbine manufacturer (15-22 MW Mars, Titan, Centaur) owned by Caterpillar. Behind-the-meter datacenter power supplier (Crusoe campuses, etc.). Not separately public."},"Westinghouse":{"category":"company","full_name":"Westinghouse Electric Company","explanation":"Private (owned by Cameco + Brookfield) supplier of large light-water reactor (AP1000) designs and nuclear-fuel services. Dominant Western large-reactor designer; key supplier for any new build."},"TerraPower":{"category":"company","full_name":"TerraPower","explanation":"Private Bill Gates-backed advanced-reactor developer building the Natrium sodium-cooled fast reactor in Wyoming. Pre-commercial; first-of-a-kind targeted late-2020s."},"X-energy":{"category":"company","full_name":"X-energy","explanation":"Private SMR developer with the Xe-100 high-temperature gas-cooled reactor design. Backed by Amazon ($500M Oct 2024). Targets co-located industrial/datacenter offtake."},"Annapurna Labs":{"category":"company","full_name":"Annapurna Labs (Amazon subsidiary)","explanation":"Israeli chip-design subsidiary acquired by Amazon in 2015. Designs Graviton (Arm CPU), Trainium (training), and Inferentia (inference) silicon. Not separately public."},"Brookfield":{"category":"company","full_name":"Brookfield Asset Management / Brookfield Corporation","explanation":"Canadian infrastructure-focused asset manager; major investor in Westinghouse, AI datacenter campuses (Compass Datacenters), and merchant power. Public via BAM and BN tickers (not in this study's manifest)."},"ASE":{"category":"company","full_name":"ASE Technology Holding (ASE Group)","explanation":"World's largest OSAT, parent of SPIL. See ticker ASX."},"Amkor":{"category":"company","full_name":"Amkor Technology, Inc.","explanation":"#2 OSAT, building Arizona advanced-packaging campus. See ticker AMKR."},"TEL":{"category":"company","full_name":"Tokyo Electron Limited","explanation":"Japanese WFE leader in track, deposition, etch. See ticker 8035.T."},"Applied Materials":{"category":"company","full_name":"Applied Materials, Inc.","explanation":"World's largest WFE vendor. See ticker AMAT."},"Lam Research":{"category":"company","full_name":"Lam Research Corporation","explanation":"Etch and deposition WFE leader. See ticker LRCX."},"KLA":{"category":"company","full_name":"KLA Corporation","explanation":"Process-control and metrology WFE leader. See ticker KLAC."},"Onto Innovation":{"category":"company","full_name":"Onto Innovation Inc.","explanation":"Advanced-packaging metrology and inspection. See ticker ONTO."},"Entegris":{"category":"company","full_name":"Entegris, Inc.","explanation":"Process materials, filtration, gas/liquid delivery for fabs. See ticker ENTG."},"Axcelis":{"category":"company","full_name":"Axcelis Technologies, Inc.","explanation":"Ion-implant WFE specialist. See ticker ACLS."},"Marvell":{"category":"company","full_name":"Marvell Technology, Inc.","explanation":"Custom AI ASICs and optical DSPs for hyperscalers. See ticker MRVL."},"Arista":{"category":"company","full_name":"Arista Networks, Inc.","explanation":"High-radix Ethernet switch leader for hyperscalers. See ticker ANET."},"Cisco":{"category":"company","full_name":"Cisco Systems, Inc.","explanation":"Incumbent enterprise networking; Silicon One AI silicon. See ticker CSCO."},"Broadcom":{"category":"company","full_name":"Broadcom Inc.","explanation":"Custom AI ASICs and merchant Ethernet switch silicon. See ticker AVGO."},"Supermicro":{"category":"company","full_name":"Super Micro Computer, Inc.","explanation":"Rack-scale GPU server systems integrator. See ticker SMCI."},"MediaTek":{"category":"company","full_name":"MediaTek Inc.","explanation":"Taiwanese fabless SoC giant; Google TPU partner. See ticker 2454.TW."},"KYEC":{"category":"company","full_name":"King Yuan Electronics Co., Ltd.","explanation":"Taiwanese back-end test specialist for HBM/CoWoS. See ticker 2449.TW."},"Powertech":{"category":"company","full_name":"Powertech Technology Inc.","explanation":"Taiwanese memory-OSAT. See ticker 6239.TW."},"Chipbond":{"category":"company","full_name":"Chipbond Technology Corporation","explanation":"Taiwanese gold-bump/COF back-end. See ticker 6147.TWO."},"Shin-Etsu":{"category":"company","full_name":"Shin-Etsu Chemical Co., Ltd.","explanation":"World #1 silicon wafer and photoresist supplier. See ticker 4063.T."},"Nikon":{"category":"company","full_name":"Nikon Corporation","explanation":"Japanese DUV scanner maker (#2 behind ASML at trailing-edge). See ticker 7731.T."},"Canon":{"category":"company","full_name":"Canon Inc.","explanation":"DUV scanners and nanoimprint lithography. See ticker 7751.T."},"SK Hynix":{"category":"company","full_name":"SK Hynix Inc.","explanation":"#1 HBM supplier. See ticker 000660.KS."},"Samsung Electronics":{"category":"company","full_name":"Samsung Electronics Co., Ltd.","explanation":"#1 memory maker, #2 foundry. See ticker 005930.KS."},"Samsung Electro-Mechanics":{"category":"company","full_name":"Samsung Electro-Mechanics Co., Ltd.","explanation":"FC-BGA substrates and MLCCs. See ticker 009150.KS."},"Micron":{"category":"company","full_name":"Micron Technology, Inc.","explanation":"Only US HBM/DRAM maker. See ticker MU."},"Winbond":{"category":"company","full_name":"Winbond Electronics Corp.","explanation":"Taiwanese specialty DRAM/flash. See ticker 2344.TW."},"Nanya":{"category":"company","full_name":"Nanya Technology Corp.","explanation":"Taiwanese commodity DRAM maker. See ticker 2408.TW."},"GlobalFoundries":{"category":"company","full_name":"GlobalFoundries Inc.","explanation":"US/Singapore mature/specialty foundry. See ticker GFS."},"Infineon":{"category":"company","full_name":"Infineon Technologies AG","explanation":"World's largest power-semi supplier. See ticker IFX.DE."},"onsemi":{"category":"company","full_name":"ON Semiconductor Corp. (onsemi)","explanation":"Silicon-carbide power modules, image sensors, PMICs. See ticker ON."},"Power Integrations":{"category":"company","full_name":"Power Integrations, Inc.","explanation":"High-voltage power-conversion ICs incl. GaN. See ticker POWI."},"Texas Instruments":{"category":"company","full_name":"Texas Instruments Incorporated","explanation":"World's largest analog IC maker. See ticker TXN."},"Analog Devices":{"category":"company","full_name":"Analog Devices, Inc.","explanation":"Analog/mixed-signal IC supplier. See ticker ADI."},"GE":{"category":"concept","full_name":"General Electric (now split into three companies)","explanation":"The legacy General Electric conglomerate split in 2024 into GE Aerospace (GE), GE Vernova (GEV — power/grid), and GE HealthCare (GEHC). 'GE' in AI-power context almost always means GE Vernova."},"Annapurna":{"category":"company","full_name":"Annapurna Labs","explanation":"See 'Annapurna Labs' — Amazon's silicon design subsidiary."},"Mellanox":{"category":"company","full_name":"Mellanox Technologies (now NVIDIA Networking)","explanation":"Israeli InfiniBand/Ethernet networking-IC firm acquired by NVIDIA for $7B in 2020. Forms the core of NVIDIA's networking business (Quantum, Spectrum-X, BlueField DPUs)."},"DPU":{"category":"concept","full_name":"Data Processing Unit","explanation":"A programmable network card that offloads infrastructure tasks (security, storage, networking) from the host CPU. NVIDIA BlueField, AMD Pensando, Marvell Octeon are the main lines."},"PowerCo":{"category":"concept","full_name":"PowerCo (datacenter power-as-a-service model)","explanation":"An emerging business model where a third party builds and owns behind-the-meter generation (gas turbines, batteries, eventually SMRs) and sells power to a co-located AI datacenter via PPA. Crusoe, Generate Capital, ExxonMobil have entered this model."},"Stargate":{"category":"concept","full_name":"Stargate (OpenAI / Oracle / SoftBank AI infrastructure JV)","explanation":"The $500B-class AI infrastructure joint venture announced January 2025, anchored by OpenAI, Oracle, SoftBank. Building multi-GW campuses (Abilene TX is first) for OpenAI inference and training. Largest single AI capex commitment in history."},"Colossus":{"category":"concept","full_name":"Colossus (xAI's Memphis training supercluster)","explanation":"xAI's Memphis, TN training cluster — initially 100,000 H100s, scaled to 200,000+ by 2025, with plans for 1M+. Famously stood up in ~6 months by colocating with behind-the-meter gas turbines."},"ArFi":{"category":"concept","full_name":"Argon Fluoride Immersion lithography","explanation":"DUV lithography using 193 nm ArF light with the wafer immersed under water, raising effective resolution. Workhorse for everything from 90 nm down to ~7 nm and still needed for multi-patterning at the most advanced nodes. ASML's NXT immersion scanners are the dominant tools; Nikon makes a small minority share."},"KrF":{"category":"concept","full_name":"Krypton Fluoride DUV lithography","explanation":"Older DUV light source at 248 nm wavelength, used for mature nodes ~250 nm down to ~90 nm. KrF scanners remain in heavy use for trailing-edge logic, memory periphery, analog, and packaging steps. ASML, Nikon and Canon all make KrF tools."},"High-NA":{"category":"concept","full_name":"High-Numerical-Aperture EUV","explanation":"Next-generation EUV lithography (ASML EXE:5000) with a larger numerical aperture (0.55 vs 0.33) that prints finer features in a single exposure. Each tool costs ~$380M and is critical for 2 nm and below. Volume ramps from 2026-2028; supply is extremely constrained."},"wafer":{"category":"concept","full_name":"Silicon wafer","explanation":"The thin circular disc of monocrystalline silicon (typically 300 mm diameter) on which chips are built. Hundreds of identical chip 'dies' are patterned per wafer and then sliced apart. Wafer starts per month is the standard fab capacity unit."},"mask":{"category":"concept","full_name":"Photomask","explanation":"A patterned quartz plate that acts as the stencil projected through a lithography scanner onto the wafer. EUV masks are reflective rather than transmissive and need an entirely new inspection ecosystem (Lasertec). One leading-edge chip can use 70+ mask layers."},"photomask":{"category":"concept","full_name":"Photomask (= mask)","explanation":"Same as a mask: the patterned plate that projects each lithography layer onto the wafer. Made by Toppan Photomasks, Photronics, DNP and a handful of in-house captive lines at TSMC, Intel, Samsung."},"NAND":{"category":"concept","full_name":"NAND Flash memory","explanation":"Non-volatile semiconductor memory used in SSDs and storage. Built in 3D-stacked layers (200+ today). Distinct from DRAM (which is volatile working memory). Samsung, Kioxia, SK Hynix, Micron, Western Digital are the makers."},"CoWoS-S":{"category":"concept","full_name":"CoWoS with Silicon interposer","explanation":"The original CoWoS flavor: a passive silicon interposer wires the logic die and HBM stacks together. Used on most current Hopper and Blackwell GPUs. CoWoS-S supply is the gating factor on AI accelerator output."},"FOWLP":{"category":"concept","full_name":"Fan-Out Wafer-Level Packaging","explanation":"Advanced packaging where dies are embedded into a reconstituted wafer with redistribution layers fanning the I/O out beyond the original die area. Cheaper than CoWoS but lower performance. Powering Apple SoCs and some networking ASICs."},"packaging":{"category":"concept","full_name":"Semiconductor packaging","explanation":"The back-end process of taking diced silicon chips, attaching them to a substrate (or interposer), wiring them up, encapsulating, and producing a finished part you can solder onto a board. Advanced packaging (CoWoS, SoIC, FOPLP) is now as critical as front-end lithography for AI accelerators."},"3D-stacking":{"category":"concept","full_name":"3D die stacking","explanation":"Bonding multiple chip dies vertically and connecting them with through-silicon-vias (TSVs) or hybrid bonding. Used for HBM memory stacks and for stacking logic-on-logic (TSMC SoIC, Intel Foveros). Increases density without needing smaller transistors."},"ASIC":{"category":"concept","full_name":"Application-Specific Integrated Circuit","explanation":"A chip designed for one specific workload (e.g., Bitcoin mining, a particular AI model). For LLMs, the hyperscaler ASICs (Google TPU, AWS Trainium, Meta MTIA, Microsoft Maia) are direct alternatives to NVIDIA GPUs and are projected to take meaningful share by 2027-2028."},"FPGA":{"category":"concept","full_name":"Field-Programmable Gate Array","explanation":"A chip whose internal logic can be reconfigured in software after manufacturing. Used for prototyping, networking, and some inference; lower performance per watt than ASICs but flexible. AMD (Xilinx) and Intel (Altera) dominate."},"SoC":{"category":"concept","full_name":"System-on-Chip","explanation":"A single chip integrating CPU, GPU, memory controllers, I/O and other blocks. Smartphones, game consoles and modern servers all use SoCs. AI accelerators are SoCs that bundle compute cores with HBM controllers, NVLink and SerDes."},"NPU":{"category":"concept","full_name":"Neural Processing Unit","explanation":"A specialized AI-inference block built into a CPU or SoC for low-power on-device inference. Apple Neural Engine, Qualcomm Hexagon, Intel/AMD AI NPUs are examples. Smaller and cheaper than data-center accelerators."},"IP block":{"category":"concept","full_name":"Semiconductor IP block","explanation":"A pre-designed and pre-verified piece of chip circuitry (CPU core, GPU, memory controller, USB PHY) licensed by chip designers from companies like Arm, Synopsys, Cadence and SiFive. Lets designers assemble complex SoCs without reinventing every block."},"RTL":{"category":"concept","full_name":"Register-Transfer Level","explanation":"The level of abstraction at which chip designers write hardware (in Verilog or VHDL) — describing flows of data between registers each clock cycle. EDA tools then translate RTL to a gate-level netlist and a physical layout."},"EDA":{"category":"concept","full_name":"Electronic Design Automation","explanation":"Software used to design, verify and lay out chips. Cadence, Synopsys and Siemens EDA are an effective oligopoly with deep moats — every new chip needs their tools. AI accelerator complexity is driving EDA spend up sharply."},"fabless":{"category":"concept","full_name":"Fabless semiconductor company","explanation":"A chip company that designs but does not manufacture chips, outsourcing fab to TSMC, Samsung Foundry or GlobalFoundries. NVIDIA, AMD, Broadcom, Marvell, MediaTek are fabless. Capital-light, but dependent on foundry capacity."},"foundry":{"category":"concept","full_name":"Semiconductor foundry","explanation":"A pure-play chip manufacturer that builds chips on contract for fabless customers. TSMC has ~60% market share and a near-monopoly on leading-edge (3 nm/2 nm). Samsung Foundry and Intel Foundry are distant competitors."},"IDM":{"category":"concept","full_name":"Integrated Device Manufacturer","explanation":"A chip company that both designs and manufactures its own chips in-house. Intel, Samsung Semiconductor, SK Hynix, Micron, Texas Instruments, STMicroelectronics, Infineon are classic IDMs. Capital-heavy but vertically integrated."},"AI accelerator":{"category":"concept","full_name":"AI accelerator chip","explanation":"Catch-all term for chips optimized for AI workloads — includes NVIDIA GPUs (Hopper, Blackwell, Rubin), AMD MI300/MI400, Google TPU, AWS Trainium/Inferentia, Microsoft Maia, Meta MTIA, Cerebras, Groq. The most economically valuable chip category of the decade."},"3.2T":{"category":"concept","full_name":"3.2 Tbps optical transceiver","explanation":"Generation after 1.6T pluggable optics; expected to ramp 2027-2028. May be the last generation before co-packaged optics (CPO) displaces pluggables for the highest-density links."},"pluggable optics":{"category":"concept","full_name":"Pluggable optical transceivers","explanation":"Small modules (QSFP-DD, OSFP form factors) you plug into a switch faceplate to convert electrical signals to light over fiber. Today's standard for datacenter networking; threatened long-term by co-packaged optics (CPO)."},"transceiver":{"category":"concept","full_name":"Optical transceiver","explanation":"A module that transmits (laser + driver) and receives (photodiode + amplifier) optical signals across a fiber link. Each AI rack now needs hundreds. Coherent, Lumentum, Innolight, Eoptolink are top suppliers."},"EML":{"category":"concept","full_name":"Electro-Absorption Modulated Laser","explanation":"A type of high-speed laser used inside high-end transceivers (800G, 1.6T). EMLs are a supply bottleneck — Coherent, Lumentum, and Mitsubishi Electric are key makers."},"retimer":{"category":"concept","full_name":"Retimer chip","explanation":"An analog signal-conditioning chip placed between SerDes endpoints (e.g., between a GPU and the PCIe/NVLink switch) to recover and resend the signal cleanly. Astera Labs and Marvell are leaders; demand exploded with PCIe Gen5/Gen6 in AI servers."},"AEC":{"category":"concept","full_name":"Active Electrical Cable","explanation":"A short copper cable (1-7 m) with active retimer chips in the connectors, used for short scale-up links inside a rack — cheaper and lower-power than optics. Credo and Marvell drive this market."},"Ethernet":{"category":"concept","full_name":"Ethernet (networking standard)","explanation":"The dominant data-network protocol; standards body IEEE. In AI, hyperscalers (Meta, Microsoft, Google) are increasingly choosing Ethernet (Arista, Cisco, Broadcom Tomahawk) over NVIDIA's proprietary InfiniBand for scale-out GPU clusters."},"scale-out":{"category":"concept","full_name":"Scale-out networking","explanation":"Connecting many separate server nodes across a datacenter into one large compute fabric — typically Ethernet or InfiniBand over optical links. Scale-out is the bulk of AI cluster bandwidth and the main demand driver for transceivers."},"scale-up":{"category":"concept","full_name":"Scale-up networking","explanation":"Tightly connecting GPUs within a single rack or pod with very high bandwidth (NVLink, UALink, Infinity Fabric). Scale-up bandwidth is what enables training huge models because all GPUs must share state at high speed."},"switch silicon":{"category":"concept","full_name":"Switch silicon","explanation":"The ASIC inside a datacenter switch that moves packets at line rate. Broadcom Tomahawk and Jericho families dominate Ethernet; NVIDIA Quantum dominates InfiniBand. Each AI cluster rebuild is a switch-silicon refresh cycle."},"point-of-load":{"category":"concept","full_name":"Point-of-load (PoL) converter","explanation":"A small DC-DC converter placed right next to a chip that converts a higher-voltage bus rail (12V or 48V) down to the sub-1V the chip actually needs. VRMs are point-of-load converters. Monolithic Power, Vicor, Infineon are leaders."},"immersion cooling":{"category":"concept","full_name":"Immersion cooling","explanation":"Submerging servers in a non-conductive liquid (single-phase oil or two-phase fluorocarbon) to absorb heat. More efficient than air at >50 kW/rack densities. Niche today but expected to grow as rack densities exceed 100 kW."},"direct liquid cooling":{"category":"concept","full_name":"Direct Liquid Cooling (DLC)","explanation":"Pumping cold liquid through a coldplate sitting directly on the GPU/CPU package, rejecting heat to a facility loop. Now mandatory at >40 kW/rack — Blackwell racks ship liquid-cooled by default. Vertiv, CoolIT, Boyd, Asetek are key suppliers."},"rear-door heat exchanger":{"category":"concept","full_name":"Rear-Door Heat Exchanger (RDHX)","explanation":"A liquid-fed radiator that fits onto the back of a server rack, removing heat as exhaust air passes through. A retrofit-friendly way to support 40-60 kW air-cooled racks without rebuilding the room. Vertiv, Motivair, Schneider, ColdLogik supply."},"busway":{"category":"concept","full_name":"Busway / Bus duct","explanation":"A prefabricated metal enclosure with copper bars inside that distributes power along a row of racks, instead of running individual cables. Faster to install, easier to reconfigure. nVent, Eaton, Schneider, Starline are major suppliers."},"switchgear":{"category":"concept","full_name":"Switchgear","explanation":"Heavy electrical equipment (breakers, disconnects, protective relays) that switches and protects power circuits inside a datacenter or substation. Multi-year lead times in 2025. Eaton, Schneider, ABB, Siemens Energy, Powell Industries dominate."},"transformer":{"category":"concept","full_name":"Electrical transformer","explanation":"Device that steps voltage up or down using magnetic coupling between two coils. Datacenters need large medium-voltage transformers (LPTs) for grid interconnection and many smaller ones inside. 2-4 year lead times in 2025 are a major build constraint."},"large power transformer":{"category":"concept","full_name":"Large Power Transformer (LPT)","explanation":"High-voltage transmission-class transformers (typically >100 MVA, 230 kV+). Used at substations connecting datacenters and utilities to the grid. Lead times exceeded 4 years in 2025 — a structural bottleneck for new AI builds."},"LPT":{"category":"concept","full_name":"Large Power Transformer","explanation":"Short for Large Power Transformer — the high-voltage grid-class transformers used at substations. Hitachi Energy, GE Vernova, Siemens Energy, Hyundai Electric, Mitsubishi Electric are the global manufacturers."},"gas turbine":{"category":"concept","full_name":"Gas turbine generator","explanation":"A jet-engine-derived or industrial-frame turbine that burns natural gas to spin a generator. Increasingly used for behind-the-meter power at AI datacenters because grid interconnections take years. GE Vernova, Siemens Energy, Mitsubishi Heavy, Solar Turbines (Caterpillar) make them."},"HDGT":{"category":"concept","full_name":"Heavy-Duty Gas Turbine","explanation":"Large industrial gas turbines (>100 MW class) used for utility power generation. GE Vernova's 9HA/7HA and Siemens Energy's SGT-9000HL are the flagship HDGT lines. Order books are full into 2030 thanks to AI datacenter demand."},"aeroderivative":{"category":"concept","full_name":"Aeroderivative gas turbine","explanation":"A smaller gas turbine (~30-100 MW) derived from a jet engine — faster start, easier to install on-site than an HDGT. GE LM2500/LM6000, Siemens SGT-A, and Solar Turbines Titan/Mars dominate. Favored for behind-the-meter datacenter power."},"peaker":{"category":"concept","full_name":"Peaker plant","explanation":"A power plant (often gas turbine) that runs only during peak demand hours, earning a high capacity payment plus high energy revenue when prices spike. AI datacenters are increasingly chewing into baseload, raising peaker economics."},"interconnection queue":{"category":"concept","full_name":"Grid interconnection queue","explanation":"The waitlist of new generation and large-load projects waiting for permission to connect to the transmission grid. Queues are now multi-year (PJM, MISO, ERCOT all backlogged), making behind-the-meter generation a popular workaround for new AI datacenters."},"stack":{"category":"concept","full_name":"Memory stack (HBM)","explanation":"An HBM 'stack' is 8-16 DRAM dies bonded vertically with TSVs into one package. Each modern AI accelerator carries 6-12 stacks. Stack count and per-stack capacity are the two main HBM growth axes."},"refresh":{"category":"concept","full_name":"Product refresh / refresh cycle","explanation":"A major hardware-generation update — e.g., Hopper → Blackwell → Rubin GPU refresh. Each refresh resets the supply-chain mix (more HBM, new packaging, new networking speeds) and pulls in capex from hyperscalers."},"bandwidth":{"category":"concept","full_name":"Memory / link bandwidth","explanation":"The amount of data per second that can move between chip and memory (HBM) or between chips (NVLink, Ethernet). LLM inference is bandwidth-bound: feeding the GPU's compute units fast enough is harder than the compute itself."},"latency":{"category":"concept","full_name":"Latency","explanation":"The time between asking for data and getting the first byte back. For LLM inference, end-to-end latency (time to first token, inter-token latency) drives user experience and infrastructure cost; lower latency commands premium pricing."},"ASP":{"category":"concept","full_name":"Average Selling Price","explanation":"Revenue per unit shipped — a key metric for memory and chip vendors. HBM ASPs have risen 2-3x since 2023 because demand outstrips supply; classic semis cycles are partly ASP cycles."},"super-cycle":{"category":"concept","full_name":"Capex super-cycle","explanation":"An extended multi-year period where demand and prices stay above trend, driving sustained over-investment. The AI 2023-2028 build-out is being called a super-cycle because hyperscaler capex roughly tripled in two years."},"total return":{"category":"concept","full_name":"Total return","explanation":"Capital appreciation plus reinvested dividends. The standard performance metric for stocks held over a multi-year window. A '3-year total return of 200%' means $100 invested grew to $300, including dividends."},"Sharpe":{"category":"concept","full_name":"Sharpe ratio","explanation":"Excess return per unit of volatility — (return − risk-free) ÷ standard deviation. >1 is good, >2 is rare, >3 is exceptional. Used to compare risk-adjusted performance across assets."},"market-cap-weighted":{"category":"concept","full_name":"Market-cap-weighted index","explanation":"An index where each constituent's weight is proportional to its market capitalization. The S&P 500, NASDAQ Composite, MSCI World are all market-cap-weighted. Bigger companies dominate the index's moves."},"alpha":{"category":"concept","full_name":"Alpha (excess return)","explanation":"The part of an investment's return that cannot be explained by market exposure — i.e., the return above what beta-times-market would predict. Hedge funds and active managers sell 'alpha'."},"excess return":{"category":"concept","full_name":"Excess return","explanation":"Return above a benchmark (often the S&P 500 or a risk-free rate). Same idea as alpha for simple cases. This study measures excess return as a vertical's gain minus the market's gain over the same window."},"market-detrended":{"category":"concept","full_name":"Market-detrended return","explanation":"A vertical's index divided by the S&P 500's index over the same window, rebased to 100. Equivalent to the return of a long-vertical / short-market dollar-neutral pair trade. Strips out the broad market move so AI-specific alpha is visible."},"dollar-neutral pair trade":{"category":"concept","full_name":"Dollar-neutral pair trade","explanation":"Going long $X of one asset and short $X of another so net market exposure is zero. The market-detrended series here equals the P&L of going long the vertical and short the S&P 500 in equal dollars."},"Section 232":{"category":"concept","full_name":"Section 232 (US trade law)","explanation":"Provision of the Trade Expansion Act of 1962 that lets the President impose tariffs on imports deemed a national-security risk. In 2025-2026 used for steel, aluminum, and semiconductors — directly affecting reshoring economics for fabs and electrical equipment."},"reshoring":{"category":"concept","full_name":"Reshoring","explanation":"Moving manufacturing back to the home country (US) from overseas. Driven by CHIPS Act, IRA, Section 232 tariffs, and geopolitical risk. Affects the AI supply chain by pulling fab capacity (TSMC Arizona, Samsung Texas, Intel Ohio) and electrical equipment build to North America."},"Mag7":{"category":"concept","full_name":"Magnificent Seven","explanation":"Apple, Microsoft, Alphabet, Amazon, NVIDIA, Meta, Tesla. The seven mega-cap US tech names that drove most of the S&P 500 returns in 2023-2025. Often used as a shorthand for AI-related mega-cap exposure, though Tesla is the odd one out (not a meaningful LLM supply-chain play)."},"Magnificent 7":{"category":"concept","full_name":"Magnificent 7","explanation":"Same as Mag7 — the seven mega-cap US tech names (Apple, Microsoft, Alphabet, Amazon, NVIDIA, Meta, Tesla) that dominated index returns in 2023-2025."},"Fed hiking cycle":{"category":"concept","full_name":"Fed hiking cycle","explanation":"The 2022-2023 period when the US Federal Reserve raised the policy rate from 0% to ~5.5% to fight inflation. Crushed long-duration assets — a key reason 2022 returns are low across this study's 5-year window."},"ChatGPT moment":{"category":"concept","full_name":"ChatGPT moment","explanation":"The November 2022 launch of ChatGPT, which sparked the mainstream AI capex boom. Most of the supply-chain alpha in this study dates from this inflection point."},"AI capex super-cycle":{"category":"concept","full_name":"AI capex super-cycle","explanation":"The 2023-2028+ wave of hyperscaler infrastructure spending — Microsoft, Google, Amazon, Meta and Oracle's combined capex is projected to roughly triple from ~$150B in 2023 to ~$450B+ by 2027. The thesis behind every vertical in this study."},"colocation":{"category":"concept","full_name":"Colocation datacenter","explanation":"A datacenter operator (Equinix, Digital Realty, CoreSite) leases space, power and cooling to many tenants who bring their own servers. Retail colo serves enterprises with small footprints; wholesale colo serves hyperscalers with megawatt blocks."},"wholesale":{"category":"concept","full_name":"Wholesale colocation","explanation":"Large-scale datacenter leasing — typically multi-megawatt to multi-hundred-megawatt deals signed by a single hyperscale tenant. Digital Realty, QTS, Aligned, Vantage are wholesale-heavy operators."},"model lab":{"category":"concept","full_name":"Frontier model lab","explanation":"A research-driven company that trains state-of-the-art LLMs (OpenAI, Anthropic, Google DeepMind, xAI, Meta AI, Mistral, DeepSeek). They are the main demand source for AI accelerators, datacenter power, and HBM."},"Niger coup":{"category":"concept","full_name":"Niger coup (2023)","explanation":"July 2023 military coup in Niger that disrupted French/European uranium supply (Orano's Arlit mine). One of several geopolitical events that tightened global uranium markets and pushed spot prices above $100/lb in early 2024."},"Cobre Panama":{"category":"concept","full_name":"Cobre Panamá copper mine","explanation":"First Quantum Minerals' large open-pit copper mine in Panama, shut by court order in late 2023 after public protests. Removed ~350 kt/yr of copper supply (about 1.5% of global mined output) — a key reason copper prices ran in 2024-2025."},"Grasberg":{"category":"concept","full_name":"Grasberg mine","explanation":"Freeport-McMoRan's giant copper-gold mine in Indonesia — among the world's largest. Production cuts and underground transition issues at Grasberg are routinely cited as global copper supply risk."},"Kamoa":{"category":"concept","full_name":"Kamoa-Kakula copper complex","explanation":"Ivanhoe Mines / Zijin Mining's high-grade copper project in the DRC. Ramping toward ~600 kt/yr — one of the few major new copper supply additions this decade. DRC political risk is a recurring concern."},"China stimulus":{"category":"concept","full_name":"China stimulus","explanation":"Chinese government fiscal and monetary measures (especially the September 2024 package) aimed at reviving property and consumption. Drives industrial-metal demand (copper, aluminum) and shifts the global commodity cycle."},"Russia sanctions":{"category":"concept","full_name":"Russia sanctions","explanation":"Western sanctions imposed after the 2022 invasion of Ukraine — affect Russian uranium (Centrus, Cameco enrichment), titanium, palladium and natural gas exports. Pushed Western utilities to re-source enriched uranium domestically (Centrus, Urenco)."},"Pentagon support":{"category":"concept","full_name":"Pentagon / DoD support","explanation":"US Department of Defense and Defense Production Act funding for critical-minerals and supply-chain projects — MP Materials' Mountain Pass (rare earths), Lynas's Texas heavy-rare-earth plant, Constellium's titanium, and others have received Pentagon contracts."},"energy transition":{"category":"concept","full_name":"Energy transition","explanation":"The decades-long shift from fossil fuels to electrified, low-carbon energy — solar, wind, nuclear, storage, electrification of transport and industry. AI datacenter load is straining the same grid the transition is trying to decarbonize."},"Lasertec Corporation":{"category":"company","full_name":"Lasertec Corporation","explanation":"Japanese maker of EUV photomask inspection systems (ACTIS) with effective monopoly in actinic-pattern inspection — every leading-edge fab must buy from Lasertec to qualify EUV masks. Ticker 6920.T."},"Shinko Electric":{"category":"company","full_name":"Shinko Electric Industries","explanation":"Japanese maker of advanced semiconductor packaging substrates (FC-BGA) — a critical input for high-end CPUs/GPUs. Being acquired by a JIC-led consortium (closing 2026). Ticker 6967.T."},"Credo Technology":{"category":"company","full_name":"Credo Technology Group","explanation":"Mixed-signal semiconductor company specializing in Active Electrical Cables (AECs), retimers and SerDes IP for AI clusters. Ticker CRDO."},"Constellation Energy":{"category":"company","full_name":"Constellation Energy","explanation":"Largest US owner of nuclear plants. Signed a 20-year PPA with Microsoft in 2024 to restart Three Mile Island Unit 1 (Crane Clean Energy Center) to power AI datacenters. Ticker CEG."},"NuScale Power":{"category":"company","full_name":"NuScale Power","explanation":"US small-modular-reactor (SMR) developer — first NRC-certified SMR design (77 MW VOYGR). Targeting hyperscaler offtake. Ticker SMR."},"Oklo Inc.":{"category":"company","full_name":"Oklo Inc.","explanation":"US advanced-reactor developer building 'Aurora' microreactors (15-100 MW, sodium-cooled fast reactor). Targeting behind-the-meter datacenter offtake. CEO Jacob DeWitte; Sam Altman previously chairman. Ticker OKLO."},"Hitachi":{"category":"company","full_name":"Hitachi Ltd.","explanation":"Japanese industrial conglomerate; parent of Hitachi Energy (power transformers, HVDC, grid automation). Major beneficiary of grid build-out for AI datacenters. Ticker 6501.T."},"Rockwell Automation":{"category":"company","full_name":"Rockwell Automation","explanation":"US industrial automation company (Allen-Bradley PLCs, FactoryTalk software). Picks up datacenter and electrical-equipment factory automation work as reshoring expands. Ticker ROK."},"GDS Holdings":{"category":"company","full_name":"GDS Holdings","explanation":"Largest carrier-neutral wholesale colocation operator in China; rapid expansion in SE Asia (DayOne) for hyperscale and AI workloads. Ticker GDS."},"VNET Group":{"category":"company","full_name":"VNET Group","explanation":"Chinese carrier-neutral colocation and cloud operator — Tier-2 player vs GDS but pivoting to wholesale AI datacenters. Ticker VNET."},"American Water Works":{"category":"company","full_name":"American Water Works","explanation":"Largest US publicly-traded water and wastewater utility, serving ~14M customers. Datacenter water consumption (evaporative cooling) is a regulatory and ESG flashpoint. Ticker AWK."},"Trane Technologies":{"category":"company","full_name":"Trane Technologies","explanation":"US HVAC and thermal management company — chillers, cooling towers, CDUs for datacenters. Ticker TT."},"Cadence Design Systems":{"category":"company","full_name":"Cadence Design Systems","explanation":"One of two dominant EDA toolchain vendors (with Synopsys). Software used to design every advanced chip. Ticker CDNS."},"Arm Holdings":{"category":"company","full_name":"Arm Holdings","explanation":"Dominant CPU IP licensor — Arm cores are in every smartphone, increasingly in datacenter (AWS Graviton, NVIDIA Grace). IPO'd September 2023. Ticker ARM."},"Nebius Group":{"category":"company","full_name":"Nebius Group","explanation":"Dutch-listed neocloud spun out of the former Yandex business; building European GPU clusters and selling capacity to AI labs. Ticker NBIS."},"D1":{"category":"axis","full_name":"D1 -- Already-rallied penalty","explanation":"Inverts 5-year total return so a vertical that has already had a big run gets a low score. 10 means barely moved over five years; 0 means up several-hundred percent. Pure price-momentum penalty, no fundamentals enter. Used to fade names where the AI story is already in the tape."},"D2":{"category":"axis","full_name":"D2 -- Premise-implied TAM headroom","explanation":"How far each vertical's implied 2035 AI revenue sits above its current AI revenue, log-scaled and rank-percentiled across the 22 verticals. Only forward-revenue axis in the matrix. High = lots of room to grow into the premise; low = already monetised at the level the premise implies."},"D3":{"category":"axis","full_name":"D3 -- Supply elasticity / bottleneck severity","explanation":"How long it takes to add one more unit of supply. Short lead times mean elastic supply (low score). Long lead times mean inelastic supply, more pricing power, and a moat that buys time (high score). Examples: EUV scanners ~18 months, copper mines 5-15 years, SMRs 5-10 years, large transformers 18-48 months."},"D4":{"category":"axis","full_name":"D4 -- Value-capture intensity","explanation":"Gross margin times moat width -- where the dollar lands inside the value chain. Software duopolies (EDA, hyperscalers) score high. Capex-heavy, fragmented industries (utilities, SMR construction) score low even when supply is tight."},"D5":{"category":"axis","full_name":"D5 -- Substitution risk","explanation":"Probability the dominant solution gets displaced inside 10 years. CPO over pluggable optics, ASICs over general-purpose GPUs, SMR over gas peakers, liquid cooling over air. Scored 0-10 from sell-side reads and TRL; soft axis, hardest to defend rigorously."},"D6":{"category":"axis","full_name":"D6 -- Capex x cycle position","explanation":"Capex divided by forward revenue, modulated by where the vertical sits in its build-out cycle. Early-cycle, high-capex names get a premium (still spending into demand). Late-cycle gets penalised. Correlates lightly with D3 supply elasticity (r = 0.37)."},"D7":{"category":"axis","full_name":"D7 -- Geopolitical exposure","explanation":"Share of revenue, supply, and customer base sitting inside US-friendly jurisdictions. Higher = safer in a Taiwan-strait / export-control shock scenario. Penalises Taiwan/Korea/China-concentrated names (substrates, HBM) and rewards CHIPS-funded or DOE-backed names."},"D8":{"category":"axis","full_name":"D8 -- Jevons elasticity","explanation":"Demand mirror of D3. If inference cost falls 10x, does demand for this vertical's output expand more, less, or barely? Software / model-labs sit at 10 (cheaper tokens, more usage). Commodity inputs like copper sit at 0 (a watt of grid is a watt of grid, doesn't 10x when inference is cheap)."},"Z-score":{"category":"concept","full_name":"Z-score","explanation":"(x - mean) / standard deviation. Centers a variable on zero and scales it by spread so different metrics are comparable. The v1 ranking z-scored 3-year returns and AI-share-today before subtracting them. Cheap but unstable on small samples (n=22 here)."},"BEA":{"category":"concept","full_name":"Bureau of Economic Analysis","explanation":"US Department of Commerce statistical agency. Publishes GDP, the Digital Economy Satellite Account, and industry breakdowns. Used here as the baseline for the 3x premise because it's a government current-state measurement, not a consultancy projection -- avoids double-counting forward growth."},"BEA Digital Economy":{"category":"concept","full_name":"BEA Digital Economy Satellite Account","explanation":"BEA's measurement of the US digital economy (e-commerce, cloud, telecom, digital media, software). December 2023 release pinned 2022 US digital economy at 10.0% of GDP, $2.6 trillion. This article uses the $2.6T figure as the baseline that gets multiplied by 3x then scaled by a 20% vendor capture rate."},"capture rate":{"category":"concept","full_name":"Vendor capture rate","explanation":"Share of an industry's total economic value that flows to vendors (suppliers, equipment makers, software providers) rather than to end customers or labour. Historical IT vendor capture sits at 15-25% (Bain $990B / McKinsey $2.6-4.4T = ~28%; global software vs BEA digital = ~26%). I used 20% blended."},"premise gap":{"category":"concept","full_name":"Premise gap","explanation":"The dollar difference between a vertical's premise-implied 2035 AI revenue and its current AI revenue. Log-transformed (premise_gap_log) before rank-percentiling so multi-decade catch-up scales don't dominate. Becomes the D2 axis score."},"premise_gap_log":{"category":"concept","full_name":"premise_gap_log","explanation":"log10(implied 2035 AI revenue / current AI revenue) per vertical. Used as the D2 input so a 100x catch-up doesn't crush a 10x catch-up in linear space. After log, scores get rank-percentiled across the 22 verticals."},"log gap":{"category":"concept","full_name":"Log gap","explanation":"Shorthand for premise_gap_log. log10(implied future revenue / current revenue). Compresses long-tail catch-up multiples so D2 ordering reflects rank, not raw magnitude."},"composite score":{"category":"concept","full_name":"Composite score","explanation":"Unweighted mean of the eight axis scores (D1..D8) per vertical. 0-10 scale. Two sanity-check tilts are computed alongside it: premise-tilt (D2 doubled) and contrarian-tilt (D1 doubled). Treated as an aggregate, not an oracle -- the per-axis card view in this post is more honest."},"leave-one-out":{"category":"concept","full_name":"Leave-one-out sensitivity","explanation":"Recompute the composite eight times, each time dropping one of D1..D8. Record the range of ranks each vertical sees across the eight runs. A robust vertical moves at most 3-4 places; a fragile one swings 8+ places (datacenter-reits, lithography)."},"fragility":{"category":"concept","full_name":"Single-axis fragility","explanation":"How much a vertical's composite rank depends on one axis. Quantified via leave-one-out: drop each axis in turn and watch the rank move. A high range (eight or more rank places) means the thesis is essentially one bet; a low range (three or four places) means the thesis is diversified across the matrix."},"sensitivity analysis":{"category":"concept","full_name":"Sensitivity analysis","explanation":"Perturb the inputs, observe how outputs change. In this article: leave-one-out drops on axes, tilt scenarios that double D1 or D2, and the open-work multiplier check (2x vs 3x vs 5x premise). The point is to surface which findings survive small changes versus which collapse."},"hyperscalers":{"category":"concept","full_name":"Hyperscalers","explanation":"The handful of cloud platforms operating millions-of-servers-scale infrastructure: AWS, Azure, Google Cloud, Meta, and (by some counts) Oracle Cloud, Alibaba, Tencent. They buy the bulk of AI accelerators, set datacenter design conventions, and increasingly co-design custom silicon (TPU, MTIA, Trainium, Maia)."},"DOE LPO":{"category":"concept","full_name":"DOE Loan Programs Office","explanation":"US Department of Energy office that issues loan guarantees for advanced energy projects, including the first commercial SMR deployments. Backed multi-billion-dollar lifelines for NuScale, X-energy, and uranium fuel-cycle projects. Critical political backstop for the nuclear-SMR thesis."},"CDS":{"category":"concept","full_name":"Credit Default Swap","explanation":"Insurance against a corporate or sovereign bond defaulting. Single-name CDS spreads are a market-implied probability of default, useful as a real-time substitution-risk proxy (would be a harder, more tradable input for D5 than literature-review TRL scores)."},"TRL":{"category":"concept","full_name":"Technology Readiness Level","explanation":"NASA / DoD 1-9 scale measuring how mature a technology is. TRL 1 = idea on paper; TRL 9 = flight-proven, in commercial use. Used here as one input to D5 substitution risk -- a TRL 4-5 challenger replacing a TRL 9 incumbent inside 10 years is unlikely; TRL 7-8 versus TRL 9 is plausible."},"Spearman":{"category":"concept","full_name":"Spearman rank correlation","explanation":"Correlation coefficient computed on ranks instead of raw values. Robust to outliers and nonlinear-but-monotonic relationships. Range -1 to +1. Used here to test axis orthogonality: the strongest pair (D3 supply vs D8 Jevons) hits r = -0.642, below the 0.7 merge threshold."},"Spearman r":{"category":"concept","full_name":"Spearman rank correlation coefficient","explanation":"The number returned by a Spearman test. Same -1..+1 scale as Pearson, but on ranks. Reported with confidence intervals -- at n=22, even |r| = 0.6 has wide CIs, which is one of the v2 caveats."},"premise-tilt":{"category":"concept","full_name":"Premise-tilt scenario","explanation":"Composite recomputed with D2 (premise-implied TAM headroom) weighted at 2x. Rewards supply-constrained verticals with large unpriced forward demand. Surfaces gainers like power-transformers-grid (+4 ranks), power-semis-vrm (+3), hbm-dram (+2)."},"contrarian-tilt":{"category":"concept","full_name":"Contrarian-tilt scenario","explanation":"Composite recomputed with D1 (already-rallied penalty) weighted at 2x. Surfaces verticals that haven't moved -- lithography (+4), power-semis-vrm (+3), datacenter-reits (+2). Penalises the post-rally names (nuclear-SMR-uranium drops 4)."},"Jevons elasticity":{"category":"concept","full_name":"Jevons elasticity (D8)","explanation":"How much demand expands when the unit cost of inference falls. From W. S. Jevons' 19th-century coal-efficiency paradox: making coal use more efficient grew total coal demand. Applied here: cheaper tokens make software and hyperscaler demand expand non-linearly; commodity inputs (copper, grid power) don't follow the curve."},"Jevons":{"category":"concept","full_name":"Jevons paradox","explanation":"W. S. Jevons (1865): efficiency gains in a resource often increase aggregate consumption rather than reduce it. Applied to LLM inference: 10x cheaper tokens grows total token demand by more than 10x for elastic verticals (software, hyperscalers) and barely at all for inelastic ones (commodity inputs)."},"ABF":{"category":"concept","full_name":"ABF substrate (Ajinomoto Build-up Film)","explanation":"Resin film used as the dielectric layer in high-end IC substrates. Made exclusively by Ajinomoto (yes, the MSG company). The substrate sits between the chip die and the PCB. Demand surge from AI packaging has made FC-BGA + ABF a known supply pinch point alongside CoWoS and HBM."},"BT":{"category":"concept","full_name":"BT substrate (Bismaleimide Triazine)","explanation":"Lower-cost IC substrate material than ABF, used in memory packages, mobile SoCs, and lower-pin-count parts. Made by Mitsubishi Gas Chemical and a few others. Less of a bottleneck than ABF for AI packaging, but BT supply does flow to HBM-adjacent parts."}}</script>
<script>
(function(){
  var dataEl = document.getElementById('eight-axes-glossary');
  if (!dataEl) return;
  var GL = {};
  try { GL = JSON.parse(dataEl.textContent || '{}'); } catch (e) { return; }
  var tip = document.getElementById('eight-axes-glotip');
  if (!tip) return;
  function escapeHtml(s){
    return (s||'').replace(/[&<>"]/g,function(c){return ({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[c];});
  }
  function renderEntry(key, entry){
    var html = '<div class="eight-axes-glotip-cat">' + escapeHtml(entry.category||'') +
               (entry.exchange ? ' &middot; ' + escapeHtml(entry.exchange) : '') + '</div>';
    html += '<' + 'h4 class="eight-axes-glotip-h">' + escapeHtml(entry.full_name || key) +
            ' <span class="eight-axes-glotip-key">(' + escapeHtml(key) + ')</span></' + 'h4>';
    if (entry.explanation) html += '<div class="eight-axes-glotip-expl">' + escapeHtml(entry.explanation) + '</div>';
    if (entry.yahoo_url) {
      html += '<div class="eight-axes-glotip-link"><a href="' + escapeHtml(entry.yahoo_url) + '" target="_blank" rel="noopener">Yahoo Finance &rarr;</a></div>';
    }
    return html;
  }
  function positionTip(evt){
    tip.style.display = 'block';
    tip.classList.add('is-on');
    var vw = window.innerWidth, vh = window.innerHeight;
    var minW = 320, maxW = 420;
    var avail = Math.max(minW, Math.min(maxW, vw - 24));
    tip.style.maxWidth = avail + 'px';
    tip.style.width = 'auto';
    var tipW = tip.offsetWidth, tipH = tip.offsetHeight;
    var left, top;
    if (evt.clientX + 14 + tipW <= vw - 8) {
      left = evt.clientX + 14;
    } else if (evt.clientX - 14 - tipW >= 8) {
      left = evt.clientX - tipW - 14;
    } else {
      left = Math.max(8, Math.min(vw - tipW - 8, evt.clientX - tipW/2));
    }
    top = evt.clientY + 14;
    if (top + tipH > vh - 8) top = Math.max(8, evt.clientY - tipH - 14);
    if (top < 8) top = 8;
    tip.style.left = left + 'px';
    tip.style.top  = top  + 'px';
  }
  function show(html, evt){
    tip.innerHTML = html;
    positionTip(evt);
  }
  function hide(){
    tip.classList.remove('is-on');
    tip.style.display = 'none';
  }
  document.addEventListener('mouseover', function(e){
    var el = e.target.closest && e.target.closest('.eight-axes-glo');
    if (!el) return;
    var k = el.getAttribute('data-key');
    var entry = GL[k];
    if (!entry) return;
    show(renderEntry(k, entry), e);
  });
  document.addEventListener('mouseout', function(e){
    var to = e.relatedTarget;
    if (to && to.closest && (to.closest('.eight-axes-glo') || to.closest('#eight-axes-glotip'))) return;
    hide();
  });
  document.addEventListener('pointerdown', function(e){
    if (e.target.closest && e.target.closest('#eight-axes-glotip')) return;
    hide();
  });
})();
</script>
<!-- EIGHT_AXES_GLOSSARY_END -->


<div class="eight-axes-tldr eight-axes-tldr--3up">
  <div class="eight-axes-hero-stat">
    <div class="eight-axes-hero-num">$1.56T</div>
    <div class="eight-axes-hero-label">Estimated vendor revenue pool by ~2035 (3x premise &middot; 20% capture &middot; US-only baseline)</div>
  </div>
  <div class="eight-axes-hero-stat">
    <div class="eight-axes-hero-num">3&times;</div>
    <div class="eight-axes-hero-label">Premise: AI's GDP uplift vs the prior compute wave</div>
  </div>
  <div class="eight-axes-hero-stat">
    <div class="eight-axes-hero-num">22</div>
    <div class="eight-axes-hero-label">Verticals scored, from chips to power to cooling</div>
  </div>
</div>
</div>

<details class="eight-axes-more">
<summary>Why v2 exists (v1 retro)</summary>
<div class="eight-axes-more-body">

    <p><a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a> combined three numbers: 3-year <span class="eight-axes-glo" data-key="total return">total return</span>, NVDA <span class="eight-axes-glo" data-key="beta">beta</span>, current AI-revenue share. <span class="eight-axes-glo" data-key="Z-score">Z-score</span> two, subtract, call the result a “gap,” sort 22 verticals into <span class="eight-axes-glo" data-key="priced-in">priced-in</span> / fair / lagging. Three critique passes broke it: the <span class="eight-axes-glo" data-key="beta">beta</span> term added nothing, <span class="eight-axes-glo" data-key="tercile">tercile</span> cutoffs flipped on n=22, and 11 of 22 labels swapped sides when the AI-share prior shifted 10 points. <!-- source: analysis/critique_methodology.md, analysis/_notes_ranking.md --></p>

    <p>v1 also had no long-run pool. It could not separate “already monetised” from “yet to be monetised” because it never anchored the pie. v2 pins a fixed economic premise, scores each <span class="eight-axes-glo" data-key="vertical">vertical</span> on 8 orthogonal axes, and treats the composite as an aggregate, not an oracle.</p>

  </div>
</details>

<h2 id="ais-economic-uplift-will-be-3x-regular-computing">AI’s economic uplift will be 3x regular computing</h2>

<div class="eight-axes-premise-axiom">
  <div class="eight-axes-premise-label">Premise</div>
  <div class="eight-axes-premise-statement">
    AI's impact will be <strong>3&times;</strong> the total impact of all prior computing on the developed-world productivity frontier (1950s onward, ex emerging-market industrialization catch-up). Everything else here follows from that.
  </div>
</div>

<p class="eight-axes-lede"><span class="eight-axes-glo" data-key="BEA">BEA</span> pins the US digital economy at <span class="eight-axes-hero-inline">$2.6T</span>. For a global supply chain that's a US-only proxy &mdash; global ICT-driven frontier productivity, ex EM catch-up, lands in roughly the same <span class="eight-axes-hero-inline">$2-4T/yr</span> range (<a href="https://scholar.harvard.edu/files/jorgenson/files/jorgenson_ho_stiroh_jep_spring2008.pdf">Jorgenson-Stiroh ICT-TFP attribution</a>; <a href="https://www.oecd.org/economy/the-global-productivity-slowdown-technology-divergence-and-public-policy-a-firm-level-perspective.htm">OECD frontier productivity</a>). Apply 3&times;, 20% vendor capture, and the implied annual vendor pool at maturity (~2035) is <span class="eight-axes-hero-inline">$1.56T</span>, split across 22 verticals.</p>

<details class="eight-axes-more">
<summary>How we got there</summary>
<div class="eight-axes-more-body">

    <p><strong>Restated for the math.</strong> Every $1 of cyber-physical <span class="eight-axes-glo" data-key="TAM">TAM</span> implies $3 of AI-stack <span class="eight-axes-glo" data-key="TAM">TAM</span> over the next 5-10 years. The headline axiom above is the same claim, framed as the article’s load-bearing assumption.</p>

    <p><strong>Baseline.</strong> <span class="eight-axes-glo" data-key="BEA Digital Economy">BEA Digital Economy</span> Satellite Account: US digital economy at <strong>10.0% of GDP, <span class="eight-axes-hero-inline">$2.6T</span> in 2022</strong>. <!-- source: phase1_premise.md citing apps.bea.gov SCB Dec 2023 --> I pick <span class="eight-axes-glo" data-key="BEA">BEA</span> over McKinsey/Goldman because it’s a government current-state number, not a consultancy projection. Stacking 3x on top of a projection would double-count.</p>

    <p><span class="eight-axes-glo" data-key="BEA Digital Economy">BEA Digital Economy</span> is a <em>stock</em> (current sector size), not a <em>flow</em> (counterfactual uplift). ICT-TFP flow estimates (Oliner-Sichel, Jorgenson-Stiroh) land in the same ~$2.5T/yr range. GDP-B welfare-inclusive measures (Brynjolfsson NBER w25695) suggest ~$4.5T. I pick <span class="eight-axes-glo" data-key="BEA">BEA</span> for traceability, not for it being the highest-fidelity measure. (Critique A.)</p>

    <p><strong>Multiplier and capture.</strong> 3 × $2.6T = <span class="eight-axes-hero-inline">$7.8T</span> annual AI GDP uplift at maturity (~2035). Vendor capture in historical IT runs 15-25% (Bain $990B / McKinsey $2.6-4.4T ≈ 28%; global software vs <span class="eight-axes-glo" data-key="BEA">BEA</span> digital ≈ 26%). I picked <strong>20%</strong> blended. Vendor pool: <span class="eight-axes-hero-inline">$1.56T annual</span>. <!-- source: phase1_premise.md §3 --></p>

    <p>The 3x is the consensus-of-consultancies upper-tercile, not a median forecast. Defensible 90% confidence range is roughly 0.5x (Acemoglu, OECD pessimistic case) to 5x (PwC, McKinsey value-creation framings). Picking 3x isn’t conservative. At 1x the pool shrinks to ~$500B; at 5x, ~$2.6T. The composite ranking is approximately scale-invariant – the picks don’t change, but the absolute headroom claims do. (Critique B.)</p>

    <div class="eight-axes-callout-info">
<strong>Per-vertical allocation.</strong> Two-factor rule: 50% "where AI revenue flows today," 50% "AI-share-weighted <span class="eight-axes-glo" data-key="vertical">vertical</span> size today":

<pre style="background: transparent; border: 0; margin: 8px 0 0; font-size: 12.5px;">allocation_share_i = 0.5 * A_i + 0.5 * B_i
A_i = ai_revenue_today_i / sum_j ai_revenue_today_j
B_i = (vertical_revenue_i * sqrt(ai_share_i)) / sum_j (vertical_revenue_j * sqrt(ai_share_j))</pre>
</div>

    <div class="eight-axes-callout-caveat">
The <code>sqrt(ai_share)</code> compression keeps copper (low AI share, huge revenue) from being double-penalised. Linear factor would let commodities dominate. <!-- source: phase1_premise.md §4 -->
</div>

    <p><strong>Top 3 by implied 2035 AI revenue:</strong></p>

    <table>
      <thead>
        <tr>
          <th>Rank</th>
          <th>Vertical</th>
          <th>Implied 2035 AI revenue</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>1</td>
          <td><span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></td>
          <td><strong>$285.5B</strong></td>
        </tr>
        <tr>
          <td>2</td>
          <td><span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span></td>
          <td><strong>$270.7B</strong></td>
        </tr>
        <tr>
          <td>3</td>
          <td><span class="eight-axes-glo" data-key="foundry-logic">foundry-logic</span></td>
          <td><strong>$169.7B</strong></td>
        </tr>
      </tbody>
    </table>

    <!-- source: phase1_allocations.csv -->

    <p>Biggest pool is not best bet. “Pool size” and “remaining upside” are different questions.</p>

  </div>
</details>

<div class="eight-axes-callout-caveat">
<strong>Five honest caveats on the premise stack (internal critique).</strong>
<ul style="margin: 6px 0 0 18px; padding: 0;">
<li><strong>3x is the upper-tercile</strong> (range 0.5x to 5x). Most academic economists sit well below.</li>
<li><strong>20% capture is flat across verticals</strong> (defensible range 10-35%). Layer-specific reality varies 5-50x.</li>
<li><strong>$2.6T US-only is a proxy for global ICT-frontier uplift.</strong> A naive global digital-economy baseline (~$16T) overstates because it includes emerging-market industrialization, which came from labor reallocation, not computers. The right baseline (developed-world ICT-TFP frontier ex EM catch-up) is roughly $2-4T/yr, putting our $1.56T pool inside the right order of magnitude.</li>
<li><strong>Annual maturity at 2035</strong> vs cumulative NPV -- this is a rate, not a present value. No discount rate stated.</li>
<li><strong>Reference P/S = 3.0</strong> (S&amp;P median). Vertical-specific multiples (6x software, 1.5x utility) would change the gap.</li>
</ul>
The composite ranking is robust to these caveats -- picks don't change much under reasonable variation. The headline DOLLAR figures should be read as order-of-magnitude, not point estimates.
</div>

<h2 id="eight-axes-the-v1-ranking-ignored">Eight axes the <a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a> ranking ignored</h2>

<p class="eight-axes-lede">Each <span class="eight-axes-glo" data-key="vertical">vertical</span> gets eight 0-10 scores, one per dimension. The strongest pair (<span class="eight-axes-glo" data-key="D3">D3</span> supply elasticity vs <span class="eight-axes-glo" data-key="D8">D8</span> <span class="eight-axes-glo" data-key="Jevons">Jevons</span> demand) hits <span class="eight-axes-hero-inline">|r| = 0.642</span>, below the 0.7 merge threshold. All eight survive.</p>

<dl class="eight-axes-axis-grid">
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D1">D1</span></span> Already-rallied penalty</dt>
    <dd class="eight-axes-axis-what">5-year <span class="eight-axes-glo" data-key="total return">total return</span>, inverted. 10 = least rallied. A 200% rally on the same story leaves less juice.</dd>
    <dd class="eight-axes-axis-extreme">Top: nuclear-SMR (priced for the rally) | Bottom: <span class="eight-axes-glo" data-key="lithography">lithography</span> (post-EUV run)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D2">D2</span></span> Premise-implied <span class="eight-axes-glo" data-key="TAM">TAM</span> headroom</dt>
    <dd class="eight-axes-axis-what">Premise-implied 2035 AI revenue (§1) minus today, <span class="eight-axes-glo" data-key="log-scale">log-scaled</span> and rank-percentiled. Only forward-revenue axis.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span> (<span class="eight-axes-glo" data-key="premise_gap_log">premise_gap_log</span> = 1.36) | Bottom: <span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span> (already monetised)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D3">D3</span></span> Supply elasticity / bottleneck severity</dt>
    <dd class="eight-axes-axis-what">Lead times to add a unit. Long = inelastic = pricing power. <span class="eight-axes-glo" data-key="EUV">EUV</span> ~18 mo. <span class="eight-axes-glo" data-key="CoWoS">CoWoS</span> 12-24. Copper 5-15 yr. <span class="eight-axes-glo" data-key="SMR">SMRs</span> 5-10. Transformers 18-48 mo.</dd>
    <dd class="eight-axes-axis-extreme">Top: nuclear-SMR 9.51 / <span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span> | Bottom: <span class="eight-axes-glo" data-key="model-labs-software">model-labs-software</span> (instant scale)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D4">D4</span></span> Value-capture intensity</dt>
    <dd class="eight-axes-axis-what">Gross margin × moat width. Where the dollar lands inside the value chain.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span class="eight-axes-glo" data-key="eda-ip">eda-ip</span> 9.48 (80%+ GM duopoly) | Bottom: nuclear-SMR 0 (capex-heavy, fragmented)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D5">D5</span></span> Substitution risk</dt>
    <dd class="eight-axes-axis-what">Probability the dominant solution gets displaced in 10 years. <span class="eight-axes-glo" data-key="CPO">CPO</span> over pluggable; ASICs over <span class="eight-axes-glo" data-key="GPU">GPUs</span>; <span class="eight-axes-glo" data-key="SMR">SMR</span> over gas peakers; liquid over air.</dd>
    <dd class="eight-axes-axis-extreme">Top: nuclear-SMR 10 (no baseload substitute) | Bottom: <span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span> 1.25 (rack-level <span class="eight-axes-glo" data-key="ASIC">ASIC</span> risk)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D6">D6</span></span> Capex × cycle position</dt>
    <dd class="eight-axes-axis-what">Capex / forward revenue × cycle stage. Early-cycle premium, late-cycle penalised. <span class="eight-axes-glo" data-key="D3">D3</span> correlation r = 0.37.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span class="eight-axes-glo" data-key="datacenter-reits">datacenter-reits</span> 10 | Bottom: <span class="eight-axes-glo" data-key="eda-ip">eda-ip</span> 0</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D7">D7</span></span> Geopolitical exposure</dt>
    <dd class="eight-axes-axis-what">Revenue / supply / customer exposure to friendly jurisdictions. Higher = safer.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span> 10 (<span class="eight-axes-glo" data-key="CHIPS Act">CHIPS-funded</span> caveat) | Bottom: <span class="eight-axes-glo" data-key="ic-substrates">ic-substrates</span> 0 (JP/TW/KR + PRC)</dd>
  </div>
  <div class="eight-axes-axis-card">
    <dt><span class="eight-axes-axis-id"><span class="eight-axes-glo" data-key="D8">D8</span></span> <span class="eight-axes-glo" data-key="Jevons elasticity">Jevons elasticity</span></dt>
    <dd class="eight-axes-axis-what">10x inference-cost drop -- demand elastic (high) or flat (low)? Demand mirror of <span class="eight-axes-glo" data-key="D3">D3</span>.</dd>
    <dd class="eight-axes-axis-extreme">Top: <span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span>, <span class="eight-axes-glo" data-key="model-labs-software">model-labs-software</span> 10 | Bottom: <span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span> 0</dd>
  </div>
</dl>

<details class="eight-axes-more">
<summary>How we got there</summary>
<div class="eight-axes-more-body">

    <table>
      <tbody>
        <tr>
          <td>Eight axes, 0-10, higher = more remaining upside. Phase 3 orthogonality at</td>
          <td><span class="eight-axes-glo" data-key="Spearman r">Spearman r</span></td>
          <td>&gt; 0.7; strongest pair (<code class="language-plaintext highlighter-rouge">d3_supply_elasticity</code> × <code class="language-plaintext highlighter-rouge">d8_jevons</code>) <strong>r = -0.642</strong>, below the bar. <!-- source: surviving_dimensions.md --></td>
        </tr>
      </tbody>
    </table>

    <p>The eight carve the question: price (<span class="eight-axes-glo" data-key="D1">D1</span>), forward revenue (<span class="eight-axes-glo" data-key="D2">D2</span>), supply (<span class="eight-axes-glo" data-key="D3">D3</span>), profitability (<span class="eight-axes-glo" data-key="D4">D4</span>), tech trajectory (<span class="eight-axes-glo" data-key="D5">D5</span>), capex (<span class="eight-axes-glo" data-key="D6">D6</span>), jurisdiction (<span class="eight-axes-glo" data-key="D7">D7</span>), demand elasticity (<span class="eight-axes-glo" data-key="D8">D8</span>).</p>

  </div>
</details>

<div class="eight-axes-root">
<div class="eight-axes-root eight-axes-radar-root">
<script type="application/json" id="eight-axes-radar-data">{"dim_keys":["d1_rallied","d2_headroom","d3_supply_elasticity","d4_value_capture","d5_substitution","d6_capex","d7_geopolitics","d8_jevons"],"dim_labels":["D1 Already rallied","D2 Premise headroom","D3 Supply elasticity","D4 Value capture","D5 Substitution","D6 Capex cycle","D7 Geopolitics","D8 Jevons demand"],"dim_short":["D1","D2","D3","D4","D5","D6","D7","D8"],"verticals":[{"slug":"hyperscalers-cloud","name":"Hyperscalers & Cloud","scores":[9.0476,5.4762,0.7316863771973127,7.720000000000001,7.5,7.2766,8.0,10.0],"rank_equal":1,"composite_equal":6.969,"color":"#1f77b4"},{"slug":"copper-rare-earth","name":"Copper & Rare Earths","scores":[8.5714,10.0,10.0,3.09,8.75,4.0606,10.0,0.0],"rank_equal":2,"composite_equal":6.809,"color":"#ff7f0e"},{"slug":"industrial-gases-water","name":"Industrial Gases & Water (fab inputs + DC cooling/humidification)","scores":[10.0,8.5714,6.829323259857053,4.66,10.0,3.6701,10.0,0.0],"rank_equal":3,"composite_equal":6.7164,"color":"#2ca02c"},{"slug":"utilities-merchant-power","name":"Utilities & Merchant Power","scores":[6.1905,9.2857,8.536627245605374,1.47,8.75,5.8907,10.0,2.5],"rank_equal":4,"composite_equal":6.5779,"color":"#d62728"},{"slug":"nuclear-smr-uranium","name":"Nuclear \u2014 SMR & Uranium","scores":[1.4286,9.2857,9.512244854156384,0.0,10.0,5.8907,10.0,2.5],"rank_equal":5,"composite_equal":6.0772,"color":"#9467bd"},{"slug":"foundry-logic","name":"Foundry \u2014 Logic","scores":[7.1429,0.9524,8.048764782897985,5.0600000000000005,8.75,5.2814,6.0,5.0],"rank_equal":6,"composite_equal":5.7794,"color":"#8c564b"},{"slug":"datacenter-reits","name":"Datacenter REITs (Colocation + Wholesale)","scores":[9.5238,4.0476,6.829323259857053,4.52,3.75,10.0,4.666600000000001,2.5],"rank_equal":7,"composite_equal":5.7297,"color":"#e377c2"},{"slug":"hbm-dram","name":"HBM & DRAM","scores":[1.9048,6.6667,5.60977441995235,5.26,10.0,8.3949,2.6666000000000007,5.0],"rank_equal":8,"composite_equal":5.6878,"color":"#7f7f7f"},{"slug":"model-labs-software","name":"Inference-Consuming Software / App Layer","scores":[6.6667,5.4762,0.0,4.18,3.75,4.6153,10.0,10.0],"rank_equal":9,"composite_equal":5.586,"color":"#bcbd22"},{"slug":"power-semis-vrm","name":"Power Semiconductors \u2014 VRM / Vertical Power Delivery","scores":[8.0952,7.619,1.9512352171020153,4.08,6.25,3.0436,10.0,2.5],"rank_equal":10,"composite_equal":5.4424,"color":"#17becf"},{"slug":"eda-ip","name":"EDA & Silicon IP","scores":[4.7619,4.0476,0.0,10.0,8.75,0.0,10.0,5.0],"rank_equal":11,"composite_equal":5.3199,"color":"#aec7e8"},{"slug":"electrical-equipment","name":"Electrical Equipment (Datacenter Power Distribution)","scores":[2.8571,8.0952,4.146401665557725,3.1,6.25,4.7138,10.0,2.5],"rank_equal":12,"composite_equal":5.2078,"color":"#ffbb78"},{"slug":"gas-turbines","name":"Gas Turbines","scores":[4.2857,2.381,9.02438239144899,4.1,3.75,4.7453,10.0,2.5],"rank_equal":13,"composite_equal":5.0983,"color":"#98df8a"},{"slug":"lithography","name":"Lithography","scores":[7.619,0.4762,4.146401665557725,9.48,8.75,2.6127000000000002,2.3333999999999993,5.0],"rank_equal":14,"composite_equal":5.0522,"color":"#ff9896"},{"slug":"power-transformers-grid","name":"Power Transformers & Grid","scores":[0.0,7.1429,7.561009637054365,1.88,6.25,4.7884,10.0,2.5],"rank_equal":15,"composite_equal":5.0153,"color":"#c5b0d5"},{"slug":"networking-switching","name":"Networking \u2014 Switching, Retimers, DPUs","scores":[5.2381,2.381,1.2195488399047025,6.3,6.25,2.3085,10.0,5.0],"rank_equal":16,"composite_equal":4.8371,"color":"#c49c94"},{"slug":"wfe-deposition-etch","name":"WFE: Deposition, Etch, Implant, Metrology","scores":[5.7143,2.381,1.9512352171020153,4.7,8.75,2.5598,5.428599999999999,5.0],"rank_equal":17,"composite_equal":4.5606,"color":"#f7b6d2"},{"slug":"ai-accelerators","name":"AI Accelerators (GPUs/ASICs/TPUs)","scores":[3.3333000000000004,0.0,5.121911957244961,5.9,1.25,4.5414,9.5714,5.0],"rank_equal":18,"composite_equal":4.3398,"color":"#c7c7c7"},{"slug":"datacenter-cooling-thermal","name":"Datacenter Cooling \u2014 Thermal Management","scores":[2.381,2.381,2.926852825653023,1.23,7.5,4.7659,10.0,2.5],"rank_equal":19,"composite_equal":4.2106,"color":"#dbdb8d"},{"slug":"advanced-packaging","name":"Advanced Packaging (OSAT, substrates, FOPLP, backend test)","scores":[3.8095,5.4762,4.146401665557725,2.35,3.75,7.040100000000001,1.4285999999999994,5.0],"rank_equal":20,"composite_equal":4.1251,"color":"#9edae5"},{"slug":"ic-substrates","name":"IC Substrates (ABF / FC-BGA / BT)","scores":[0.9524,5.4762,6.097529565795968,1.8199999999999998,5.0,5.6524,0.0,5.0],"rank_equal":21,"composite_equal":3.7498,"color":"#393b79"},{"slug":"silicon-photonics-optics","name":"Silicon Photonics & Datacom Optics","scores":[0.4762,2.381,2.926852825653023,1.29,0.0,5.4278,6.666599999999999,5.0],"rank_equal":22,"composite_equal":3.0211,"color":"#637939"}]}</script>

<style>
.eight-axes-root { font-family: -apple-system, "Segoe UI", Inter, Helvetica, Arial, sans-serif; color: #1a1a1a; }
.eight-axes-card { background: #fdfdfa; border: 1px solid #e6e6dd; border-radius: 6px; padding: 16px; margin: 14px 0; }
.eight-axes-controls { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 10px; font-size: 13px; }
.eight-axes-controls label { display: inline-flex; align-items: center; gap: 6px; }
.eight-axes-controls select { font-size: 13px; padding: 3px 6px; border: 1px solid #c8c8be; border-radius: 4px; background: #fff; }
.eight-axes-radar-main { display: flex; flex-wrap: wrap; gap: 18px; align-items: flex-start; }
.eight-axes-radar-svg-wrap { flex: 1 1 380px; min-width: 320px; max-width: 520px; }
.eight-axes-radar-legend { flex: 0 1 260px; font-size: 12.5px; line-height: 1.45; }
.eight-axes-radar-legend table { border-collapse: collapse; width: 100%; }
.eight-axes-radar-legend td { padding: 2px 6px 2px 0; vertical-align: top; }
.eight-axes-radar-legend td.k { color: #555; white-space: nowrap; }
.eight-axes-radar-legend td.v { font-variant-numeric: tabular-nums; text-align: right; }
.eight-axes-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: middle; }
.eight-axes-mini-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-top: 18px; }
.eight-axes-mini-card { margin: 0; padding: 6px; border: 1px solid #ececdd; border-radius: 4px; background: #fff; text-align: center; }
.eight-axes-mini-card figcaption { font-size: 11px; color: #1a1a1a; margin-bottom: 2px; line-height: 1.25; }
.eight-axes-mini-rank { color: #999; font-variant-numeric: tabular-nums; }
.eight-axes-mini-name { font-weight: 600; }
.eight-axes-mini-svg { width: 100%; height: auto; display: block; }
.eight-axes-mini-score { font-size: 10.5px; color: #555; margin-top: 2px; font-variant-numeric: tabular-nums; }
.eight-axes-section-h { font-size: 13px; font-weight: 600; color: #555; margin: 14px 0 4px 0; }
</style>

<div class="eight-axes-card">
  <div class="eight-axes-controls">
    <label>Vertical: <select id="eight-axes-sel-a">
<option value="0" selected="">Hyperscalers &amp; Cloud (rank 1)</option>
<option value="1">Copper &amp; Rare Earths (rank 2)</option>
<option value="2">Industrial Gases &amp; Water (fab inputs + DC cooling/humidification) (rank 3)</option>
<option value="3">Utilities &amp; Merchant Power (rank 4)</option>
<option value="4">Nuclear — SMR &amp; Uranium (rank 5)</option>
<option value="5">Foundry — Logic (rank 6)</option>
<option value="6">Datacenter REITs (Colocation + Wholesale) (rank 7)</option>
<option value="7">HBM &amp; DRAM (rank 8)</option>
<option value="8">Inference-Consuming Software / App Layer (rank 9)</option>
<option value="9">Power Semiconductors — VRM / Vertical Power Delivery (rank 10)</option>
<option value="10">EDA &amp; Silicon IP (rank 11)</option>
<option value="11">Electrical Equipment (Datacenter Power Distribution) (rank 12)</option>
<option value="12">Gas Turbines (rank 13)</option>
<option value="13">Lithography (rank 14)</option>
<option value="14">Power Transformers &amp; Grid (rank 15)</option>
<option value="15">Networking — Switching, Retimers, DPUs (rank 16)</option>
<option value="16">WFE: Deposition, Etch, Implant, Metrology (rank 17)</option>
<option value="17">AI Accelerators (GPUs/ASICs/TPUs) (rank 18)</option>
<option value="18">Datacenter Cooling — Thermal Management (rank 19)</option>
<option value="19">Advanced Packaging (OSAT, substrates, FOPLP, backend test) (rank 20)</option>
<option value="20">IC Substrates (ABF / FC-BGA / BT) (rank 21)</option>
<option value="21">Silicon Photonics &amp; Datacom Optics (rank 22)</option>
    </select></label>
    <label><input type="checkbox" id="eight-axes-overlay" /> overlay second <span class="eight-axes-glo" data-key="vertical">vertical</span></label>
    <label>Compare: <select id="eight-axes-sel-b">
<option value="0">Hyperscalers &amp; Cloud (rank 1)</option>
<option value="1" selected="">Copper &amp; Rare Earths (rank 2)</option>
<option value="2">Industrial Gases &amp; Water (fab inputs + DC cooling/humidification) (rank 3)</option>
<option value="3">Utilities &amp; Merchant Power (rank 4)</option>
<option value="4">Nuclear — SMR &amp; Uranium (rank 5)</option>
<option value="5">Foundry — Logic (rank 6)</option>
<option value="6">Datacenter REITs (Colocation + Wholesale) (rank 7)</option>
<option value="7">HBM &amp; DRAM (rank 8)</option>
<option value="8">Inference-Consuming Software / App Layer (rank 9)</option>
<option value="9">Power Semiconductors — VRM / Vertical Power Delivery (rank 10)</option>
<option value="10">EDA &amp; Silicon IP (rank 11)</option>
<option value="11">Electrical Equipment (Datacenter Power Distribution) (rank 12)</option>
<option value="12">Gas Turbines (rank 13)</option>
<option value="13">Lithography (rank 14)</option>
<option value="14">Power Transformers &amp; Grid (rank 15)</option>
<option value="15">Networking — Switching, Retimers, DPUs (rank 16)</option>
<option value="16">WFE: Deposition, Etch, Implant, Metrology (rank 17)</option>
<option value="17">AI Accelerators (GPUs/ASICs/TPUs) (rank 18)</option>
<option value="18">Datacenter Cooling — Thermal Management (rank 19)</option>
<option value="19">Advanced Packaging (OSAT, substrates, FOPLP, backend test) (rank 20)</option>
<option value="20">IC Substrates (ABF / FC-BGA / BT) (rank 21)</option>
<option value="21">Silicon Photonics &amp; Datacom Optics (rank 22)</option>
    </select></label>
  </div>
  <div class="eight-axes-radar-main">
    <div class="eight-axes-radar-svg-wrap"><svg id="eight-axes-radar-big" viewBox="0 0 460 440" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto;"></svg></div>
    <div class="eight-axes-radar-legend"><div id="eight-axes-radar-legend-body"></div></div>
  </div>
</div>

<div class="eight-axes-section-h">All 22 verticals at a glance (sorted by composite_equal rank)</div>
<div class="eight-axes-mini-grid">
<figure class="eight-axes-mini-card" data-slug="hyperscalers-cloud"><figcaption><span class="eight-axes-mini-rank">#1</span> <span class="eight-axes-mini-name"><span class="eight-axes-glo" data-key="hyperscalers">Hyperscalers</span> &amp; Cloud</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,28.48 116.33,63.67 94.98,90.00 127.12,127.12 90.00,141.00 55.01,124.99 35.60,90.00 41.92,41.92" fill="#1f77b4" fill-opacity="0.25" stroke="#1f77b4" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 6.97</div></figure><figure class="eight-axes-mini-card" data-slug="copper-rare-earth"><figcaption><span class="eight-axes-mini-rank">#2</span> <span class="eight-axes-mini-name">Copper &amp; Rare Earths</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,31.71 138.08,41.92 158.00,90.00 104.86,104.86 90.00,149.50 70.48,109.52 22.00,90.00 90.00,90.00" fill="#ff7f0e" fill-opacity="0.25" stroke="#ff7f0e" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 6.81</div></figure><figure class="eight-axes-mini-card" data-slug="industrial-gases-water"><figcaption><span class="eight-axes-mini-rank">#3</span> <span class="eight-axes-mini-name">Industrial Gases &amp; Water (fab inputs + DC cooling/humidification)</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 131.21,48.79 136.44,90.00 112.41,112.41 90.00,158.00 72.35,107.65 22.00,90.00 90.00,90.00" fill="#2ca02c" fill-opacity="0.25" stroke="#2ca02c" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 6.72</div></figure><figure class="eight-axes-mini-card" data-slug="utilities-merchant-power"><figcaption><span class="eight-axes-mini-rank">#4</span> <span class="eight-axes-mini-name">Utilities &amp; Merchant Power</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,47.90 134.65,45.35 148.05,90.00 97.07,97.07 90.00,149.50 61.68,118.32 22.00,90.00 77.98,77.98" fill="#d62728" fill-opacity="0.25" stroke="#d62728" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 6.58</div></figure><figure class="eight-axes-mini-card" data-slug="nuclear-smr-uranium"><figcaption><span class="eight-axes-mini-rank">#5</span> <span class="eight-axes-mini-name">Nuclear — <span class="eight-axes-glo" data-key="SMR">SMR</span> &amp; Uranium</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,80.29 134.65,45.35 154.68,90.00 90.00,90.00 90.00,158.00 61.68,118.32 22.00,90.00 77.98,77.98" fill="#9467bd" fill-opacity="0.25" stroke="#9467bd" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 6.08</div></figure><figure class="eight-axes-mini-card" data-slug="foundry-logic"><figcaption><span class="eight-axes-mini-rank">#6</span> <span class="eight-axes-mini-name">Foundry — Logic</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,41.43 94.58,85.42 144.73,90.00 114.33,114.33 90.00,149.50 64.61,115.39 49.20,90.00 65.96,65.96" fill="#8c564b" fill-opacity="0.25" stroke="#8c564b" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.78</div></figure><figure class="eight-axes-mini-card" data-slug="datacenter-reits"><figcaption><span class="eight-axes-mini-rank">#7</span> <span class="eight-axes-mini-name">Datacenter <span class="eight-axes-glo" data-key="REIT">REITs</span> (Colocation + Wholesale)</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,25.24 109.46,70.54 136.44,90.00 111.73,111.73 90.00,115.50 41.92,138.08 58.27,90.00 77.98,77.98" fill="#e377c2" fill-opacity="0.25" stroke="#e377c2" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.73</div></figure><figure class="eight-axes-mini-card" data-slug="hbm-dram"><figcaption><span class="eight-axes-mini-rank">#8</span> <span class="eight-axes-mini-name"><span class="eight-axes-glo" data-key="HBM">HBM</span> &amp; <span class="eight-axes-glo" data-key="DRAM">DRAM</span></span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,77.05 122.06,57.94 128.15,90.00 115.29,115.29 90.00,158.00 49.63,130.37 71.87,90.00 65.96,65.96" fill="#7f7f7f" fill-opacity="0.25" stroke="#7f7f7f" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.69</div></figure><figure class="eight-axes-mini-card" data-slug="model-labs-software"><figcaption><span class="eight-axes-mini-rank">#9</span> <span class="eight-axes-mini-name">Inference-Consuming Software / App Layer</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,44.67 116.33,63.67 90.00,90.00 110.10,110.10 90.00,115.50 67.81,112.19 22.00,90.00 41.92,41.92" fill="#bcbd22" fill-opacity="0.25" stroke="#bcbd22" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.59</div></figure><figure class="eight-axes-mini-card" data-slug="power-semis-vrm"><figcaption><span class="eight-axes-mini-rank">#10</span> <span class="eight-axes-mini-name">Power Semiconductors — <span class="eight-axes-glo" data-key="VRM">VRM</span> / Vertical Power Delivery</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,34.95 126.63,53.37 103.27,90.00 109.62,109.62 90.00,132.50 75.37,104.63 22.00,90.00 77.98,77.98" fill="#17becf" fill-opacity="0.25" stroke="#17becf" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.44</div></figure><figure class="eight-axes-mini-card" data-slug="eda-ip"><figcaption><span class="eight-axes-mini-rank">#11</span> <span class="eight-axes-mini-name"><span class="eight-axes-glo" data-key="EDA">EDA</span> &amp; Silicon IP</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,57.62 109.46,70.54 90.00,90.00 138.08,138.08 90.00,149.50 90.00,90.00 22.00,90.00 65.96,65.96" fill="#aec7e8" fill-opacity="0.25" stroke="#aec7e8" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.32</div></figure><figure class="eight-axes-mini-card" data-slug="electrical-equipment"><figcaption><span class="eight-axes-mini-rank">#12</span> <span class="eight-axes-mini-name">Electrical Equipment (Datacenter Power Distribution)</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,70.57 128.92,51.08 118.20,90.00 104.91,104.91 90.00,132.50 67.33,112.67 22.00,90.00 77.98,77.98" fill="#ffbb78" fill-opacity="0.25" stroke="#ffbb78" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.21</div></figure><figure class="eight-axes-mini-card" data-slug="gas-turbines"><figcaption><span class="eight-axes-mini-rank">#13</span> <span class="eight-axes-mini-name">Gas Turbines</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,60.86 101.45,78.55 151.37,90.00 109.71,109.71 90.00,115.50 67.18,112.82 22.00,90.00 77.98,77.98" fill="#98df8a" fill-opacity="0.25" stroke="#98df8a" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.10</div></figure><figure class="eight-axes-mini-card" data-slug="lithography"><figcaption><span class="eight-axes-mini-rank">#14</span> <span class="eight-axes-mini-name">Lithography</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,38.19 92.29,87.71 118.20,90.00 135.58,135.58 90.00,149.50 77.44,102.56 74.13,90.00 65.96,65.96" fill="#ff9896" fill-opacity="0.25" stroke="#ff9896" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.05</div></figure><figure class="eight-axes-mini-card" data-slug="power-transformers-grid"><figcaption><span class="eight-axes-mini-rank">#15</span> <span class="eight-axes-mini-name">Power Transformers &amp; Grid</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,90.00 124.35,55.65 141.41,90.00 99.04,99.04 90.00,132.50 66.98,113.02 22.00,90.00 77.98,77.98" fill="#c5b0d5" fill-opacity="0.25" stroke="#c5b0d5" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 5.02</div></figure><figure class="eight-axes-mini-card" data-slug="networking-switching"><figcaption><span class="eight-axes-mini-rank">#16</span> <span class="eight-axes-mini-name">Networking — Switching, Retimers, DPUs</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,54.38 101.45,78.55 98.29,90.00 120.29,120.29 90.00,132.50 78.90,101.10 22.00,90.00 65.96,65.96" fill="#c49c94" fill-opacity="0.25" stroke="#c49c94" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 4.84</div></figure><figure class="eight-axes-mini-card" data-slug="wfe-deposition-etch"><figcaption><span class="eight-axes-mini-rank">#17</span> <span class="eight-axes-mini-name"><span class="eight-axes-glo" data-key="WFE">WFE</span>: Deposition, Etch, Implant, Metrology</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,51.14 101.45,78.55 103.27,90.00 112.60,112.60 90.00,149.50 77.69,102.31 53.09,90.00 65.96,65.96" fill="#f7b6d2" fill-opacity="0.25" stroke="#f7b6d2" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 4.56</div></figure><figure class="eight-axes-mini-card" data-slug="ai-accelerators"><figcaption><span class="eight-axes-mini-rank">#18</span> <span class="eight-axes-mini-name">AI Accelerators (<span class="eight-axes-glo" data-key="GPU">GPUs</span>/ASICs/TPUs)</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,67.33 90.00,90.00 124.83,90.00 118.37,118.37 90.00,98.50 68.16,111.84 24.91,90.00 65.96,65.96" fill="#c7c7c7" fill-opacity="0.25" stroke="#c7c7c7" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 4.34</div></figure><figure class="eight-axes-mini-card" data-slug="datacenter-cooling-thermal"><figcaption><span class="eight-axes-mini-rank">#19</span> <span class="eight-axes-mini-name">Datacenter Cooling — Thermal Management</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,73.81 101.45,78.55 109.90,90.00 95.91,95.91 90.00,141.00 67.08,112.92 22.00,90.00 77.98,77.98" fill="#dbdb8d" fill-opacity="0.25" stroke="#dbdb8d" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 4.21</div></figure><figure class="eight-axes-mini-card" data-slug="advanced-packaging"><figcaption><span class="eight-axes-mini-rank">#20</span> <span class="eight-axes-mini-name">Advanced Packaging (<span class="eight-axes-glo" data-key="OSAT">OSAT</span>, substrates, <span class="eight-axes-glo" data-key="FOPLP">FOPLP</span>, backend test)</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,64.10 116.33,63.67 118.20,90.00 101.30,101.30 90.00,115.50 56.15,123.85 80.29,90.00 65.96,65.96" fill="#9edae5" fill-opacity="0.25" stroke="#9edae5" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 4.13</div></figure><figure class="eight-axes-mini-card" data-slug="ic-substrates"><figcaption><span class="eight-axes-mini-rank">#21</span> <span class="eight-axes-mini-name">IC Substrates (<span class="eight-axes-glo" data-key="ABF">ABF</span> / <span class="eight-axes-glo" data-key="FC-BGA">FC-BGA</span> / <span class="eight-axes-glo" data-key="BT">BT</span>)</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,83.52 116.33,63.67 131.46,90.00 98.75,98.75 90.00,124.00 62.82,117.18 90.00,90.00 65.96,65.96" fill="#393b79" fill-opacity="0.25" stroke="#393b79" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 3.75</div></figure><figure class="eight-axes-mini-card" data-slug="silicon-photonics-optics"><figcaption><span class="eight-axes-mini-rank">#22</span> <span class="eight-axes-mini-name">Silicon Photonics &amp; Datacom Optics</span></figcaption><svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" class="eight-axes-mini-svg"><polygon points="90.00,76.40 99.62,80.38 103.60,90.00 99.62,99.62 90.00,103.60 80.38,99.62 76.40,90.00 80.38,80.38" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,62.80 109.23,70.77 117.20,90.00 109.23,109.23 90.00,117.20 70.77,109.23 62.80,90.00 70.77,70.77" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,49.20 118.85,61.15 130.80,90.00 118.85,118.85 90.00,130.80 61.15,118.85 49.20,90.00 61.15,61.15" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,35.60 128.47,51.53 144.40,90.00 128.47,128.47 90.00,144.40 51.53,128.47 35.60,90.00 51.53,51.53" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,22.00 138.08,41.92 158.00,90.00 138.08,138.08 90.00,158.00 41.92,138.08 22.00,90.00 41.92,41.92" fill="none" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="22.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="158.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="138.08" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="90.00" y2="158.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="138.08" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="22.00" y2="90.00" stroke="#dcdcd2" stroke-width="0.6" /><line x1="90.00" y1="90.00" x2="41.92" y2="41.92" stroke="#dcdcd2" stroke-width="0.6" /><polygon points="90.00,86.76 101.45,78.55 109.90,90.00 96.20,96.20 90.00,90.00 63.90,116.10 44.67,90.00 65.96,65.96" fill="#637939" fill-opacity="0.25" stroke="#637939" stroke-width="1.4" stroke-linejoin="round" /><text x="90.00" y="11.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D1</text><text x="145.86" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D2</text><text x="169.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D3</text><text x="145.86" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D4</text><text x="90.00" y="169.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D5</text><text x="34.14" y="145.86" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D6</text><text x="11.00" y="90.00" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D7</text><text x="34.14" y="34.14" text-anchor="middle" dominant-baseline="middle" font-size="9" fill="#666" font-family="-apple-system,Segoe UI,Helvetica,Arial,sans-serif">D8</text></svg><div class="eight-axes-mini-score">composite 3.02</div></figure>
</div>

<script>
(function(){
  var DATA = JSON.parse(document.getElementById('eight-axes-radar-data').textContent);
  var dims = DATA.dim_short;
  var dimLabels = DATA.dim_labels;
  var V = DATA.verticals;
  var svg = document.getElementById('eight-axes-radar-big');
  var sel1 = document.getElementById('eight-axes-sel-a');
  var sel2 = document.getElementById('eight-axes-sel-b');
  var overlayChk = document.getElementById('eight-axes-overlay');
  var legendBody = document.getElementById('eight-axes-radar-legend-body');
  var W = 460, H = 440;
  var cx = W/2, cy = H/2 + 4, R = 160;
  var n = dims.length;
  function angles(){ return Array.from({length:n},function(_,i){return -Math.PI/2 + 2*Math.PI*i/n;}); }
  function build(){
    var ang = angles();
    var parts = [];
    // grid
    [2,4,6,8,10].forEach(function(lvl){
      var pts = ang.map(function(a){var r=R*(lvl/10);return (cx+r*Math.cos(a)).toFixed(2)+','+(cy+r*Math.sin(a)).toFixed(2);}).join(' ');
      parts.push('<polygon points="'+pts+'" fill="none" stroke="#d8d8c8" stroke-width="0.7"/>');
      // lvl label
      parts.push('<text x="'+(cx+2)+'" y="'+(cy - R*(lvl/10)+3)+'" font-size="9" fill="#999">'+lvl+'</text>');
    });
    // spokes
    ang.forEach(function(a, i){
      var x2=cx+R*Math.cos(a), y2=cy+R*Math.sin(a);
      parts.push('<line x1="'+cx+'" y1="'+cy+'" x2="'+x2.toFixed(2)+'" y2="'+y2.toFixed(2)+'" stroke="#d8d8c8" stroke-width="0.7"/>');
      var lx = cx + (R+18)*Math.cos(a), ly = cy + (R+18)*Math.sin(a);
      parts.push('<text x="'+lx.toFixed(2)+'" y="'+ly.toFixed(2)+'" text-anchor="middle" dominant-baseline="middle" font-size="12" fill="#333" font-weight="600">'+dims[i]+'</text>');
      var lx2 = cx + (R+34)*Math.cos(a), ly2 = cy + (R+34)*Math.sin(a);
      var short = dimLabels[i].replace(/^D\d+ /,'');
      parts.push('<text x="'+lx2.toFixed(2)+'" y="'+ly2.toFixed(2)+'" text-anchor="middle" dominant-baseline="middle" font-size="9.5" fill="#888">'+short+'</text>');
    });
    return parts;
  }
  function poly(scores, color, label){
    var ang = angles();
    var pts = ang.map(function(a, i){var r = R*(scores[i]/10); return (cx+r*Math.cos(a)).toFixed(2)+','+(cy+r*Math.sin(a)).toFixed(2);}).join(' ');
    var p = '<polygon points="'+pts+'" fill="'+color+'" fill-opacity="0.22" stroke="'+color+'" stroke-width="2" stroke-linejoin="round"><title>'+label+'</title></polygon>';
    var dots = ang.map(function(a, i){var r=R*(scores[i]/10);return '<circle cx="'+(cx+r*Math.cos(a)).toFixed(2)+'" cy="'+(cy+r*Math.sin(a)).toFixed(2)+'" r="3" fill="'+color+'"><title>'+dimLabels[i]+': '+scores[i].toFixed(2)+'</title></circle>';}).join('');
    return p + dots;
  }
  function legend(items){
    var html = '<table><thead><tr><th></th>';
    items.forEach(function(it){ html += '<th><span class="eight-axes-swatch" style="background:'+it.color+'"></span>'+escapeHtml(it.name)+'</th>'; });
    html += '</tr></thead><tbody>';
    for (var k=0; k<dims.length; k++){
      html += '<tr><td class="k">'+dims[k]+' '+escapeHtml(dimLabels[k].replace(/^D\d+ /,''))+'</td>';
      items.forEach(function(it){ html += '<td class="v">'+it.scores[k].toFixed(2)+'</td>'; });
      html += '</tr>';
    }
    html += '<tr><td class="k"><b>composite</b></td>';
    items.forEach(function(it){ html += '<td class="v"><b>'+it.composite_equal.toFixed(2)+'</b></td>'; });
    html += '</tr></tbody></table>';
    return html;
  }
  function escapeHtml(s){ return (s||'').replace(/[&<>"]/g,function(c){return ({"&":"&amp;","<":"&lt;",">":"&gt;","\"":"&quot;"})[c];}); }
  function render(){
    var ia = parseInt(sel1.value, 10);
    var ib = parseInt(sel2.value, 10);
    var overlay = overlayChk.checked;
    var a = V[ia];
    var parts = ['<svg viewBox="0 0 '+W+' '+H+'" xmlns="http://www.w3.org/2000/svg">'];
    parts = parts.concat(build());
    var items = [a];
    parts.push(poly(a.scores, a.color, a.name));
    if (overlay && ib !== ia){
      var b = V[ib];
      parts.push(poly(b.scores, b.color, b.name));
      items.push(b);
    }
    parts.push('</svg>');
    svg.innerHTML = parts.join('');
    legendBody.innerHTML = legend(items);
    sel2.disabled = !overlay;
  }
  sel1.addEventListener('change', render);
  sel2.addEventListener('change', render);
  overlayChk.addEventListener('change', render);
  render();
})();
</script>

</div>

</div>

<h2 id="equal-weight-rank-top-to-bottom">Equal-weight rank, top to bottom</h2>

<p class="eight-axes-lede">Unweighted mean of the eight scores. Top of the table: infrastructure picks-and-shovels (<span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span> <span class="eight-axes-hero-inline">6.97</span>, <span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span> 6.81, <span class="eight-axes-glo" data-key="industrial-gases-water">industrial-gases-water</span> 6.72). Bottom: already-priced AI silicon plus speculative optics. Only <span class="eight-axes-hero-inline"><span class="eight-axes-glo" data-key="power-semis-vrm">power-semis-vrm</span></span> gains rank under both <span class="eight-axes-glo" data-key="premise-tilt">premise-tilt</span> and <span class="eight-axes-glo" data-key="contrarian-tilt">contrarian-tilt</span> -- the cleanest asymmetric pick in the matrix.</p>

<p class="eight-axes-strip-label"><strong>Top-5, equal weight</strong></p>

<div class="eight-axes-pick-strip">
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#1</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></div>
    <div class="eight-axes-pick-score">6.97</div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#2</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span></div>
    <div class="eight-axes-pick-score">6.81</div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#3</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="industrial-gases-water">industrial-gases-water</span></div>
    <div class="eight-axes-pick-score">6.72</div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#4</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="utilities-merchant-power">utilities-merchant-power</span></div>
    <div class="eight-axes-pick-score">6.58</div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#5</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="nuclear-smr-uranium">nuclear-smr-uranium</span></div>
    <div class="eight-axes-pick-score">6.08</div>
  </div>
</div>

<p class="eight-axes-strip-label"><strong>Bottom-5</strong></p>

<div class="eight-axes-pick-strip eight-axes-pick-strip--bottom">
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#18</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span></div>
    <div class="eight-axes-pick-score">4.34</div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#19</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="datacenter-cooling-thermal">datacenter-cooling-thermal</span></div>
    <div class="eight-axes-pick-score">4.21</div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#20</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="advanced-packaging">advanced-packaging</span></div>
    <div class="eight-axes-pick-score">4.13</div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#21</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="ic-substrates">ic-substrates</span></div>
    <div class="eight-axes-pick-score">3.75</div>
  </div>
  <div class="eight-axes-pick">
    <div class="eight-axes-pick-rank">#22</div>
    <div class="eight-axes-pick-name"><span class="eight-axes-glo" data-key="silicon-photonics-optics">silicon-photonics-optics</span></div>
    <div class="eight-axes-pick-score">3.02</div>
  </div>
</div>

<details class="eight-axes-more">
<summary>How we got there + tilt-shift sanity checks</summary>
<div class="eight-axes-more-body">

    <p>Equal-weight composite: unweighted mean of the eight scores. Top: <strong>infrastructure picks-and-shovels</strong> (power, water, copper, hyperscale platforms). Bottom: <strong>already-priced AI silicon</strong> plus speculative optics. Headline: under an explicit premise and 8-axis scoring, the unsexy physical-input layers outrank the silicon layers everyone bought for 36 months.</p>

    <p><strong>Premise-tilt (<span class="eight-axes-glo" data-key="D2">D2</span> ×2).</strong> Rewards supply-constrained names with unpriced forward demand.</p>

    <div class="eight-axes-tilt-grid">
  <div class="eight-axes-tilt-col">
    <div class="eight-axes-tilt-col-title">Gainers</div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="power-transformers-grid">power-transformers-grid</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+4</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="power-semis-vrm">power-semis-vrm</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+3</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="hbm-dram">hbm-dram</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+2</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="electrical-equipment">electrical-equipment</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+2</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="advanced-packaging">advanced-packaging</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+2</span></div>
  </div>
  <div class="eight-axes-tilt-col">
    <div class="eight-axes-tilt-col-title">Losers (extended consensus longs)</div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="foundry-logic">foundry-logic</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-6</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-3</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="ai-accelerators">ai-accelerators</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-3</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="datacenter-reits">datacenter-reits</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-2</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="lithography">lithography</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-2</span></div>
  </div>
</div>

    <p><strong>Contrarian-tilt (<span class="eight-axes-glo" data-key="D1">D1</span> ×2).</strong> Surfaces names that haven’t moved.</p>

    <div class="eight-axes-tilt-grid">
  <div class="eight-axes-tilt-col">
    <div class="eight-axes-tilt-col-title">Gainers</div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="lithography">lithography</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+4</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="power-semis-vrm">power-semis-vrm</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+3</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="datacenter-reits">datacenter-reits</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+2</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="model-labs-software">model-labs-software</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+1</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="industrial-gases-water">industrial-gases-water</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--up">+1</span></div>
  </div>
  <div class="eight-axes-tilt-col">
    <div class="eight-axes-tilt-col-title">Losers</div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="nuclear-smr-uranium">nuclear-smr-uranium</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-4</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="hbm-dram">hbm-dram</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-3</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="power-transformers-grid">power-transformers-grid</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-2</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="electrical-equipment">electrical-equipment</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-2</span></div>
    <div class="eight-axes-tilt-row"><span><span class="eight-axes-glo" data-key="copper-rare-earth">copper-rare-earth</span></span><span class="eight-axes-rank-chip eight-axes-rank-chip--down">-1</span></div>
  </div>
</div>
    <!-- source: composite_notes.md -->

    <p>The asymmetric pick: <strong><code class="language-plaintext highlighter-rouge">power-semis-vrm</code></strong> gains under BOTH tilts. Supply constrained, unpriced, stocks haven’t run. Rare combination. Board-power / <span class="eight-axes-glo" data-key="VRM">VRM</span> (MPS, Vicor, Infineon PMIC) is the cleanest setup.</p>

  </div>
</details>

<div class="eight-axes-root">
<div class="eight-axes-root eight-axes-composite-root">
<script type="application/json" id="eight-axes-composite-data">[{"slug":"hyperscalers-cloud","name":"Hyperscalers & Cloud","composite_equal":6.969,"composite_premise":6.8031,"composite_contrarian":7.2,"rank_equal":1,"rank_premise":4,"rank_contrarian":1,"delta_premise":3,"delta_contrarian":0},{"slug":"copper-rare-earth","name":"Copper & Rare Earths","composite_equal":6.809,"composite_premise":7.1636,"composite_contrarian":7.0048,"rank_equal":2,"rank_premise":1,"rank_contrarian":3,"delta_premise":-1,"delta_contrarian":1},{"slug":"industrial-gases-water","name":"Industrial Gases & Water (fab inputs + DC cooling/humidification)","composite_equal":6.7164,"composite_premise":6.9225,"composite_contrarian":7.0812,"rank_equal":3,"rank_premise":2,"rank_contrarian":2,"delta_premise":-1,"delta_contrarian":-1},{"slug":"utilities-merchant-power","name":"Utilities & Merchant Power","composite_equal":6.5779,"composite_premise":6.8788,"composite_contrarian":6.5349,"rank_equal":4,"rank_premise":3,"rank_contrarian":4,"delta_premise":-1,"delta_contrarian":0},{"slug":"nuclear-smr-uranium","name":"Nuclear \u2014 SMR & Uranium","composite_equal":6.0772,"composite_premise":6.4337,"composite_contrarian":5.5606,"rank_equal":5,"rank_premise":5,"rank_contrarian":9,"delta_premise":0,"delta_contrarian":4},{"slug":"foundry-logic","name":"Foundry \u2014 Logic","composite_equal":5.7794,"composite_premise":5.2431,"composite_contrarian":5.9309,"rank_equal":6,"rank_premise":12,"rank_contrarian":6,"delta_premise":6,"delta_contrarian":0},{"slug":"datacenter-reits","name":"Datacenter REITs (Colocation + Wholesale)","composite_equal":5.7297,"composite_premise":5.5428,"composite_contrarian":6.1512,"rank_equal":7,"rank_premise":9,"rank_contrarian":5,"delta_premise":2,"delta_contrarian":-2},{"slug":"hbm-dram","name":"HBM & DRAM","composite_equal":5.6878,"composite_premise":5.7966,"composite_contrarian":5.2675,"rank_equal":8,"rank_premise":6,"rank_contrarian":11,"delta_premise":-2,"delta_contrarian":3},{"slug":"model-labs-software","name":"Inference-Consuming Software / App Layer","composite_equal":5.586,"composite_premise":5.5738,"composite_contrarian":5.7061,"rank_equal":9,"rank_premise":8,"rank_contrarian":8,"delta_premise":-1,"delta_contrarian":-1},{"slug":"power-semis-vrm","name":"Power Semiconductors \u2014 VRM / Vertical Power Delivery","composite_equal":5.4424,"composite_premise":5.6842,"composite_contrarian":5.7371,"rank_equal":10,"rank_premise":7,"rank_contrarian":7,"delta_premise":-3,"delta_contrarian":-3},{"slug":"eda-ip","name":"EDA & Silicon IP","composite_equal":5.3199,"composite_premise":5.1786,"composite_contrarian":5.2579,"rank_equal":11,"rank_premise":13,"rank_contrarian":12,"delta_premise":2,"delta_contrarian":1},{"slug":"electrical-equipment","name":"Electrical Equipment (Datacenter Power Distribution)","composite_equal":5.2078,"composite_premise":5.5286,"composite_contrarian":4.9466,"rank_equal":12,"rank_premise":10,"rank_contrarian":14,"delta_premise":-2,"delta_contrarian":2},{"slug":"gas-turbines","name":"Gas Turbines","composite_equal":5.0983,"composite_premise":4.7964,"composite_contrarian":5.008,"rank_equal":13,"rank_premise":14,"rank_contrarian":13,"delta_premise":1,"delta_contrarian":0},{"slug":"lithography","name":"Lithography","composite_equal":5.0522,"composite_premise":4.5438,"composite_contrarian":5.3374,"rank_equal":14,"rank_premise":16,"rank_contrarian":10,"delta_premise":2,"delta_contrarian":-4},{"slug":"power-transformers-grid","name":"Power Transformers & Grid","composite_equal":5.0153,"composite_premise":5.2517,"composite_contrarian":4.458,"rank_equal":15,"rank_premise":11,"rank_contrarian":17,"delta_premise":-4,"delta_contrarian":2},{"slug":"networking-switching","name":"Networking \u2014 Switching, Retimers, DPUs","composite_equal":4.8371,"composite_premise":4.5642,"composite_contrarian":4.8817,"rank_equal":16,"rank_premise":15,"rank_contrarian":15,"delta_premise":-1,"delta_contrarian":-1},{"slug":"wfe-deposition-etch","name":"WFE: Deposition, Etch, Implant, Metrology","composite_equal":4.5606,"composite_premise":4.3184,"composite_contrarian":4.6888,"rank_equal":17,"rank_premise":17,"rank_contrarian":16,"delta_premise":0,"delta_contrarian":-1},{"slug":"ai-accelerators","name":"AI Accelerators (GPUs/ASICs/TPUs)","composite_equal":4.3398,"composite_premise":3.8576,"composite_contrarian":4.2279,"rank_equal":18,"rank_premise":21,"rank_contrarian":18,"delta_premise":3,"delta_contrarian":0},{"slug":"datacenter-cooling-thermal","name":"Datacenter Cooling \u2014 Thermal Management","composite_equal":4.2106,"composite_premise":4.0073,"composite_contrarian":4.0073,"rank_equal":19,"rank_premise":19,"rank_contrarian":20,"delta_premise":0,"delta_contrarian":1},{"slug":"advanced-packaging","name":"Advanced Packaging (OSAT, substrates, FOPLP, backend test)","composite_equal":4.1251,"composite_premise":4.2752,"composite_contrarian":4.09,"rank_equal":20,"rank_premise":18,"rank_contrarian":19,"delta_premise":-2,"delta_contrarian":-1},{"slug":"ic-substrates","name":"IC Substrates (ABF / FC-BGA / BT)","composite_equal":3.7498,"composite_premise":3.9416,"composite_contrarian":3.439,"rank_equal":21,"rank_premise":20,"rank_contrarian":21,"delta_premise":-1,"delta_contrarian":0},{"slug":"silicon-photonics-optics","name":"Silicon Photonics & Datacom Optics","composite_equal":3.0211,"composite_premise":2.9499,"composite_contrarian":2.7383,"rank_equal":22,"rank_premise":22,"rank_contrarian":22,"delta_premise":0,"delta_contrarian":0}]</script>

<style>
.eight-axes-table-wrap { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; margin: 14px 0; }
table.eight-axes-sortable { width: 100%; border-collapse: collapse; font-size: 12.5px; min-width: max-content; font-family: -apple-system,"Segoe UI",Inter,Helvetica,Arial,sans-serif; }
table.eight-axes-sortable th, table.eight-axes-sortable td { padding: 6px 9px; border-bottom: 1px solid #e8e8de; text-align: right; font-variant-numeric: tabular-nums; }
table.eight-axes-sortable th:first-child, table.eight-axes-sortable td:first-child { text-align: left; }
table.eight-axes-sortable th { background: #f5f5ee; cursor: pointer; user-select: none; position: sticky; top: 0; }
table.eight-axes-sortable th.eight-axes-sorted-asc::after { content: " \25B2"; font-size: 10px; color: #888; }
table.eight-axes-sortable th.eight-axes-sorted-desc::after { content: " \25BC"; font-size: 10px; color: #888; }
table.eight-axes-sortable tr.eight-axes-row-top { background: #e6f4ea; }
table.eight-axes-sortable tr.eight-axes-row-mid { background: #fafaf5; }
table.eight-axes-sortable tr.eight-axes-row-bot { background: #fbeaea; }
table.eight-axes-sortable tr:hover { filter: brightness(0.97); }
.eight-axes-delta-up { color: #1f7a36; font-weight: 600; }
.eight-axes-delta-down { color: #a02323; font-weight: 600; }
.eight-axes-delta-flat { color: #999; }
.eight-axes-legend-tercile { font-size: 12px; color: #555; margin: 8px 0; }
.eight-axes-legend-tercile span { display:inline-block; width:12px; height:12px; vertical-align:middle; margin-right:5px; border-radius:2px; border:1px solid #c8c8be; }
</style>

<div class="eight-axes-legend-tercile">
  Row shading by composite_equal <span class="eight-axes-glo" data-key="tercile">tercile</span>:
  <span style="background:#e6f4ea"></span> top
  <span style="background:#fafaf5"></span> middle
  <span style="background:#fbeaea"></span> bottom.
  Click any column header to sort. Δ columns: green ▲ = rank improves under that weighting; red ▼ = rank worsens.
</div>
<div class="eight-axes-table-wrap">
<table class="eight-axes-sortable">
<thead><tr>
<th><span class="eight-axes-glo" data-key="vertical">vertical</span></th>
<th>composite<br />equal</th>
<th>rank<br />equal</th>
<th>composite<br />premise</th>
<th>rank<br />premise</th>
<th>composite<br />contrarian</th>
<th>rank<br />contrarian</th>
<th>Δ premise<br />vs equal</th>
<th>Δ contrarian<br />vs equal</th>
</tr></thead>
<tbody>
<tr class="eight-axes-row-top"><td><span class="eight-axes-glo" data-key="hyperscalers">Hyperscalers</span> &amp; Cloud</td><td data-v="6.969">6.97</td><td data-v="1">1</td><td data-v="6.8031">6.80</td><td data-v="4">4</td><td data-v="7.2">7.20</td><td data-v="1">1</td><td><span class="eight-axes-delta-down" data-v="3">▼ 3</span></td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td></tr>
<tr class="eight-axes-row-top"><td>Copper &amp; Rare Earths</td><td data-v="6.809">6.81</td><td data-v="2">2</td><td data-v="7.1636">7.16</td><td data-v="1">1</td><td data-v="7.0048">7.00</td><td data-v="3">3</td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td><td><span class="eight-axes-delta-down" data-v="1">▼ 1</span></td></tr>
<tr class="eight-axes-row-top"><td>Industrial Gases &amp; Water (fab inputs + DC cooling/humidification)</td><td data-v="6.7164">6.72</td><td data-v="3">3</td><td data-v="6.9225">6.92</td><td data-v="2">2</td><td data-v="7.0812">7.08</td><td data-v="2">2</td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td></tr>
<tr class="eight-axes-row-top"><td>Utilities &amp; Merchant Power</td><td data-v="6.5779">6.58</td><td data-v="4">4</td><td data-v="6.8788">6.88</td><td data-v="3">3</td><td data-v="6.5349">6.53</td><td data-v="4">4</td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td></tr>
<tr class="eight-axes-row-top"><td>Nuclear — <span class="eight-axes-glo" data-key="SMR">SMR</span> &amp; Uranium</td><td data-v="6.0772">6.08</td><td data-v="5">5</td><td data-v="6.4337">6.43</td><td data-v="5">5</td><td data-v="5.5606">5.56</td><td data-v="9">9</td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td><td><span class="eight-axes-delta-down" data-v="4">▼ 4</span></td></tr>
<tr class="eight-axes-row-top"><td>Foundry — Logic</td><td data-v="5.7794">5.78</td><td data-v="6">6</td><td data-v="5.2431">5.24</td><td data-v="12">12</td><td data-v="5.9309">5.93</td><td data-v="6">6</td><td><span class="eight-axes-delta-down" data-v="6">▼ 6</span></td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td></tr>
<tr class="eight-axes-row-top"><td>Datacenter <span class="eight-axes-glo" data-key="REIT">REITs</span> (Colocation + Wholesale)</td><td data-v="5.7297">5.73</td><td data-v="7">7</td><td data-v="5.5428">5.54</td><td data-v="9">9</td><td data-v="6.1512">6.15</td><td data-v="5">5</td><td><span class="eight-axes-delta-down" data-v="2">▼ 2</span></td><td><span class="eight-axes-delta-up" data-v="-2">▲ 2</span></td></tr>
<tr class="eight-axes-row-top"><td><span class="eight-axes-glo" data-key="HBM">HBM</span> &amp; <span class="eight-axes-glo" data-key="DRAM">DRAM</span></td><td data-v="5.6878">5.69</td><td data-v="8">8</td><td data-v="5.7966">5.80</td><td data-v="6">6</td><td data-v="5.2675">5.27</td><td data-v="11">11</td><td><span class="eight-axes-delta-up" data-v="-2">▲ 2</span></td><td><span class="eight-axes-delta-down" data-v="3">▼ 3</span></td></tr>
<tr class="eight-axes-row-mid"><td>Inference-Consuming Software / App Layer</td><td data-v="5.586">5.59</td><td data-v="9">9</td><td data-v="5.5738">5.57</td><td data-v="8">8</td><td data-v="5.7061">5.71</td><td data-v="8">8</td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td></tr>
<tr class="eight-axes-row-mid"><td>Power Semiconductors — <span class="eight-axes-glo" data-key="VRM">VRM</span> / Vertical Power Delivery</td><td data-v="5.4424">5.44</td><td data-v="10">10</td><td data-v="5.6842">5.68</td><td data-v="7">7</td><td data-v="5.7371">5.74</td><td data-v="7">7</td><td><span class="eight-axes-delta-up" data-v="-3">▲ 3</span></td><td><span class="eight-axes-delta-up" data-v="-3">▲ 3</span></td></tr>
<tr class="eight-axes-row-mid"><td><span class="eight-axes-glo" data-key="EDA">EDA</span> &amp; Silicon IP</td><td data-v="5.3199">5.32</td><td data-v="11">11</td><td data-v="5.1786">5.18</td><td data-v="13">13</td><td data-v="5.2579">5.26</td><td data-v="12">12</td><td><span class="eight-axes-delta-down" data-v="2">▼ 2</span></td><td><span class="eight-axes-delta-down" data-v="1">▼ 1</span></td></tr>
<tr class="eight-axes-row-mid"><td>Electrical Equipment (Datacenter Power Distribution)</td><td data-v="5.2078">5.21</td><td data-v="12">12</td><td data-v="5.5286">5.53</td><td data-v="10">10</td><td data-v="4.9466">4.95</td><td data-v="14">14</td><td><span class="eight-axes-delta-up" data-v="-2">▲ 2</span></td><td><span class="eight-axes-delta-down" data-v="2">▼ 2</span></td></tr>
<tr class="eight-axes-row-mid"><td>Gas Turbines</td><td data-v="5.0983">5.10</td><td data-v="13">13</td><td data-v="4.7964">4.80</td><td data-v="14">14</td><td data-v="5.008">5.01</td><td data-v="13">13</td><td><span class="eight-axes-delta-down" data-v="1">▼ 1</span></td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td></tr>
<tr class="eight-axes-row-mid"><td>Lithography</td><td data-v="5.0522">5.05</td><td data-v="14">14</td><td data-v="4.5438">4.54</td><td data-v="16">16</td><td data-v="5.3374">5.34</td><td data-v="10">10</td><td><span class="eight-axes-delta-down" data-v="2">▼ 2</span></td><td><span class="eight-axes-delta-up" data-v="-4">▲ 4</span></td></tr>
<tr class="eight-axes-row-mid"><td>Power Transformers &amp; Grid</td><td data-v="5.0153">5.02</td><td data-v="15">15</td><td data-v="5.2517">5.25</td><td data-v="11">11</td><td data-v="4.458">4.46</td><td data-v="17">17</td><td><span class="eight-axes-delta-up" data-v="-4">▲ 4</span></td><td><span class="eight-axes-delta-down" data-v="2">▼ 2</span></td></tr>
<tr class="eight-axes-row-bot"><td>Networking — Switching, Retimers, DPUs</td><td data-v="4.8371">4.84</td><td data-v="16">16</td><td data-v="4.5642">4.56</td><td data-v="15">15</td><td data-v="4.8817">4.88</td><td data-v="15">15</td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td></tr>
<tr class="eight-axes-row-bot"><td><span class="eight-axes-glo" data-key="WFE">WFE</span>: Deposition, Etch, Implant, Metrology</td><td data-v="4.5606">4.56</td><td data-v="17">17</td><td data-v="4.3184">4.32</td><td data-v="17">17</td><td data-v="4.6888">4.69</td><td data-v="16">16</td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td></tr>
<tr class="eight-axes-row-bot"><td>AI Accelerators (<span class="eight-axes-glo" data-key="GPU">GPUs</span>/ASICs/TPUs)</td><td data-v="4.3398">4.34</td><td data-v="18">18</td><td data-v="3.8576">3.86</td><td data-v="21">21</td><td data-v="4.2279">4.23</td><td data-v="18">18</td><td><span class="eight-axes-delta-down" data-v="3">▼ 3</span></td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td></tr>
<tr class="eight-axes-row-bot"><td>Datacenter Cooling — Thermal Management</td><td data-v="4.2106">4.21</td><td data-v="19">19</td><td data-v="4.0073">4.01</td><td data-v="19">19</td><td data-v="4.0073">4.01</td><td data-v="20">20</td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td><td><span class="eight-axes-delta-down" data-v="1">▼ 1</span></td></tr>
<tr class="eight-axes-row-bot"><td>Advanced Packaging (<span class="eight-axes-glo" data-key="OSAT">OSAT</span>, substrates, <span class="eight-axes-glo" data-key="FOPLP">FOPLP</span>, backend test)</td><td data-v="4.1251">4.13</td><td data-v="20">20</td><td data-v="4.2752">4.28</td><td data-v="18">18</td><td data-v="4.09">4.09</td><td data-v="19">19</td><td><span class="eight-axes-delta-up" data-v="-2">▲ 2</span></td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td></tr>
<tr class="eight-axes-row-bot"><td>IC Substrates (<span class="eight-axes-glo" data-key="ABF">ABF</span> / <span class="eight-axes-glo" data-key="FC-BGA">FC-BGA</span> / <span class="eight-axes-glo" data-key="BT">BT</span>)</td><td data-v="3.7498">3.75</td><td data-v="21">21</td><td data-v="3.9416">3.94</td><td data-v="20">20</td><td data-v="3.439">3.44</td><td data-v="21">21</td><td><span class="eight-axes-delta-up" data-v="-1">▲ 1</span></td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td></tr>
<tr class="eight-axes-row-bot"><td>Silicon Photonics &amp; Datacom Optics</td><td data-v="3.0211">3.02</td><td data-v="22">22</td><td data-v="2.9499">2.95</td><td data-v="22">22</td><td data-v="2.7383">2.74</td><td data-v="22">22</td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td><td><span class="eight-axes-delta-flat" data-v="0">0</span></td></tr>
</tbody></table>
</div>

<script>
(function(){
  function parseNum(s){ if(s===null||s===undefined||s==='') return NaN; var v=parseFloat(s); return v; }
  document.querySelectorAll('table.eight-axes-sortable').forEach(function(table){
    var ths = table.querySelectorAll('thead th');
    ths.forEach(function(th, i){
      th.addEventListener('click', function(){
        var tbody = table.tBodies[0];
        var rows = Array.prototype.slice.call(tbody.rows);
        var asc = th.classList.contains('eight-axes-sorted-asc');
        ths.forEach(function(o){ o.classList.remove('eight-axes-sorted-asc','eight-axes-sorted-desc'); });
        th.classList.add(asc ? 'eight-axes-sorted-desc' : 'eight-axes-sorted-asc');
        rows.sort(function(a, b){
          var av = a.cells[i].getAttribute('data-v');
          var bv = b.cells[i].getAttribute('data-v');
          // If no data-v, try inner span.
          if (av === null){ var sa = a.cells[i].querySelector('[data-v]'); if (sa) av = sa.getAttribute('data-v'); }
          if (bv === null){ var sb = b.cells[i].querySelector('[data-v]'); if (sb) bv = sb.getAttribute('data-v'); }
          var an = parseNum(av !== null ? av : a.cells[i].innerText);
          var bn = parseNum(bv !== null ? bv : b.cells[i].innerText);
          if (!isNaN(an) && !isNaN(bn)) return asc ? bn-an : an-bn;
          var as = (av || a.cells[i].innerText).toLowerCase();
          var bs = (bv || b.cells[i].innerText).toLowerCase();
          return asc ? (bs<as?-1:bs>as?1:0) : (as<bs?-1:as>bs?1:0);
        });
        rows.forEach(function(r){ tbody.appendChild(r); });
      });
    });
  });
})();
</script>

</div>

</div>

<div class="eight-axes-root">
<div class="eight-axes-root eight-axes-scatter-root">
<script type="application/json" id="eight-axes-scatter-data">[{"slug":"hyperscalers-cloud","name":"Hyperscalers & Cloud","d2":5.4762,"d3":0.7316863771973127,"composite_equal":6.969,"revenue_2025_usd_bn":419,"premise_gap_log":0.6663},{"slug":"copper-rare-earth","name":"Copper & Rare Earths","d2":10.0,"d3":10.0,"composite_equal":6.809,"revenue_2025_usd_bn":280.0,"premise_gap_log":1.3569},{"slug":"industrial-gases-water","name":"Industrial Gases & Water (fab inputs + DC cooling/humidification)","d2":8.5714,"d3":6.829323259857053,"composite_equal":6.7164,"revenue_2025_usd_bn":120,"premise_gap_log":1.0677},{"slug":"utilities-merchant-power","name":"Utilities & Merchant Power","d2":9.2857,"d3":8.536627245605374,"composite_equal":6.5779,"revenue_2025_usd_bn":420.0,"premise_gap_log":1.1076},{"slug":"nuclear-smr-uranium","name":"Nuclear \u2014 SMR & Uranium","d2":9.2857,"d3":9.512244854156384,"composite_equal":6.0772,"revenue_2025_usd_bn":200,"premise_gap_log":1.1076},{"slug":"foundry-logic","name":"Foundry \u2014 Logic","d2":0.9524,"d3":8.048764782897985,"composite_equal":5.7794,"revenue_2025_usd_bn":169.5,"premise_gap_log":0.5459},{"slug":"datacenter-reits","name":"Datacenter REITs (Colocation + Wholesale)","d2":4.0476,"d3":6.829323259857053,"composite_equal":5.7297,"revenue_2025_usd_bn":119,"premise_gap_log":0.6044},{"slug":"hbm-dram","name":"HBM & DRAM","d2":6.6667,"d3":5.60977441995235,"composite_equal":5.6878,"revenue_2025_usd_bn":38.0,"premise_gap_log":0.7062},{"slug":"model-labs-software","name":"Inference-Consuming Software / App Layer","d2":5.4762,"d3":0.0,"composite_equal":5.586,"revenue_2025_usd_bn":170,"premise_gap_log":0.6663},{"slug":"power-semis-vrm","name":"Power Semiconductors \u2014 VRM / Vertical Power Delivery","d2":7.619,"d3":1.9512352171020153,"composite_equal":5.4424,"revenue_2025_usd_bn":73.7,"premise_gap_log":0.791},{"slug":"eda-ip","name":"EDA & Silicon IP","d2":4.0476,"d3":0.0,"composite_equal":5.3199,"revenue_2025_usd_bn":21.2,"premise_gap_log":0.6044},{"slug":"electrical-equipment","name":"Electrical Equipment (Datacenter Power Distribution)","d2":8.0952,"d3":4.146401665557725,"composite_equal":5.2078,"revenue_2025_usd_bn":24.0,"premise_gap_log":0.849},{"slug":"gas-turbines","name":"Gas Turbines","d2":2.381,"d3":9.02438239144899,"composite_equal":5.0983,"revenue_2025_usd_bn":30.2,"premise_gap_log":0.5578},{"slug":"lithography","name":"Lithography","d2":0.4762,"d3":4.146401665557725,"composite_equal":5.0522,"revenue_2025_usd_bn":28.4,"premise_gap_log":0.5051},{"slug":"power-transformers-grid","name":"Power Transformers & Grid","d2":7.1429,"d3":7.561009637054365,"composite_equal":5.0153,"revenue_2025_usd_bn":28.0,"premise_gap_log":0.7553},{"slug":"networking-switching","name":"Networking \u2014 Switching, Retimers, DPUs","d2":2.381,"d3":1.2195488399047025,"composite_equal":4.8371,"revenue_2025_usd_bn":33.0,"premise_gap_log":0.5578},{"slug":"wfe-deposition-etch","name":"WFE: Deposition, Etch, Implant, Metrology","d2":2.381,"d3":1.9512352171020153,"composite_equal":4.5606,"revenue_2025_usd_bn":115.7,"premise_gap_log":0.5578},{"slug":"ai-accelerators","name":"AI Accelerators (GPUs/ASICs/TPUs)","d2":0.0,"d3":5.121911957244961,"composite_equal":4.3398,"revenue_2025_usd_bn":200,"premise_gap_log":0.4653},{"slug":"datacenter-cooling-thermal","name":"Datacenter Cooling \u2014 Thermal Management","d2":2.381,"d3":2.926852825653023,"composite_equal":4.2106,"revenue_2025_usd_bn":11.5,"premise_gap_log":0.5578},{"slug":"advanced-packaging","name":"Advanced Packaging (OSAT, substrates, FOPLP, backend test)","d2":5.4762,"d3":4.146401665557725,"composite_equal":4.1251,"revenue_2025_usd_bn":50.0,"premise_gap_log":0.6663},{"slug":"ic-substrates","name":"IC Substrates (ABF / FC-BGA / BT)","d2":5.4762,"d3":6.097529565795968,"composite_equal":3.7498,"revenue_2025_usd_bn":20.0,"premise_gap_log":0.6663},{"slug":"silicon-photonics-optics","name":"Silicon Photonics & Datacom Optics","d2":2.381,"d3":2.926852825653023,"composite_equal":3.0211,"revenue_2025_usd_bn":31.5,"premise_gap_log":0.5578}]</script>

<style>
.eight-axes-scatter-root { font-family: -apple-system,"Segoe UI",Inter,Helvetica,Arial,sans-serif; position: relative; }
.eight-axes-scatter-wrap { background:#fff; border:1px solid #e6e6dd; border-radius:6px; padding:12px; margin:14px 0; }
.eight-axes-scatter-wrap svg { width:100%; height:auto; display:block; }
.eight-axes-scatter-dot { transition: stroke-width 80ms ease, r 80ms ease; cursor: default; }
.eight-axes-scatter-dot:hover, .eight-axes-scatter-dot.is-hover { stroke:#000; stroke-width:1.6; }
.eight-axes-scatter-tip { position:absolute; pointer-events:none; background:#1a1a1a; color:#fff; padding:6px 9px; border-radius:4px; font-size:11.5px; line-height:1.4; opacity:0; transition:opacity 120ms; z-index:10; max-width:240px; }
.eight-axes-scatter-tip.is-on { opacity: 0.96; }
.eight-axes-scatter-tip b { color:#fff; }
.eight-axes-scatter-caption { font-size:11.5px; color:#666; margin-top:6px; }
</style>

<div class="eight-axes-scatter-wrap" id="eight-axes-scatter-wrap">
<svg viewBox="0 0 720 460" xmlns="http://www.w3.org/2000/svg" id="eight-axes-scatter-svg"><rect x="60" y="28" width="630" height="376" fill="#fdfdfa" stroke="#d8d8c8" /><line x1="186.0" y1="28" x2="186.0" y2="404" stroke="#ececdd" stroke-width="0.7" /><line x1="60" y1="328.8" x2="690" y2="328.8" stroke="#ececdd" stroke-width="0.7" /><line x1="312.0" y1="28" x2="312.0" y2="404" stroke="#ececdd" stroke-width="0.7" /><line x1="60" y1="253.6" x2="690" y2="253.6" stroke="#ececdd" stroke-width="0.7" /><line x1="438.0" y1="28" x2="438.0" y2="404" stroke="#ececdd" stroke-width="0.7" /><line x1="60" y1="178.4" x2="690" y2="178.4" stroke="#ececdd" stroke-width="0.7" /><line x1="564.0" y1="28" x2="564.0" y2="404" stroke="#ececdd" stroke-width="0.7" /><line x1="60" y1="103.2" x2="690" y2="103.2" stroke="#ececdd" stroke-width="0.7" /><text x="60.0" y="418" text-anchor="middle" font-size="11" fill="#555">0</text><text x="52" y="404.0" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">0</text><text x="186.0" y="418" text-anchor="middle" font-size="11" fill="#555">2</text><text x="52" y="328.8" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">2</text><text x="312.0" y="418" text-anchor="middle" font-size="11" fill="#555">4</text><text x="52" y="253.6" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">4</text><text x="438.0" y="418" text-anchor="middle" font-size="11" fill="#555">6</text><text x="52" y="178.4" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">6</text><text x="564.0" y="418" text-anchor="middle" font-size="11" fill="#555">8</text><text x="52" y="103.2" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">8</text><text x="690.0" y="418" text-anchor="middle" font-size="11" fill="#555">10</text><text x="52" y="28.0" text-anchor="end" dominant-baseline="middle" font-size="11" fill="#555">10</text><text x="375.0" y="444" text-anchor="middle" font-size="12" fill="#333" font-weight="600">D2 premise-implied TAM headroom  →  more upside</text><text x="18" y="216.0" text-anchor="middle" font-size="12" fill="#333" font-weight="600" transform="rotate(-90 18 216.0)">D3 supply elasticity (inelastic)  →  pricing power</text><text x="684.0" y="42" text-anchor="end" font-size="10.5" fill="#999" font-style="italic">top-right = biggest headroom + tightest supply</text><circle class="eight-axes-scatter-dot" cx="405.00" cy="376.49" r="21.99" fill="#fde724" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Hyperscalers &amp; Cloud" data-slug="hyperscalers-cloud" data-comp="6.97" data-gap="0.666" data-rev="419" data-x="5.48" data-y="0.73"><title>Hyperscalers &amp; Cloud — D2=5.48, D3=0.73, composite=6.97, premise_gap=+0.67</title></circle><circle class="eight-axes-scatter-dot" cx="690.00" cy="28.00" r="20.93" fill="#e4e318" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Copper &amp; Rare Earths" data-slug="copper-rare-earth" data-comp="6.81" data-gap="1.357" data-rev="280" data-x="10.00" data-y="10.00"><title>Copper &amp; Rare Earths — D2=10.00, D3=10.00, composite=6.81, premise_gap=+1.36</title></circle><circle class="eight-axes-scatter-dot" cx="600.00" cy="147.22" r="18.70" fill="#d4e11a" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Industrial Gases &amp; Water (fab inputs + DC cooling/humidification)" data-slug="industrial-gases-water" data-comp="6.72" data-gap="1.068" data-rev="120" data-x="8.57" data-y="6.83"><title>Industrial Gases &amp; Water (fab inputs + DC cooling/humidification) — D2=8.57, D3=6.83, composite=6.72, premise_gap=+1.07</title></circle><circle class="eight-axes-scatter-dot" cx="645.00" cy="83.02" r="22.00" fill="#bdde26" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Utilities &amp; Merchant Power" data-slug="utilities-merchant-power" data-comp="6.58" data-gap="1.108" data-rev="420" data-x="9.29" data-y="8.54"><title>Utilities &amp; Merchant Power — D2=9.29, D3=8.54, composite=6.58, premise_gap=+1.11</title></circle><circle class="eight-axes-scatter-dot" cx="645.00" cy="46.34" r="20.04" fill="#6bcd59" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Nuclear — SMR &amp; Uranium" data-slug="nuclear-smr-uranium" data-comp="6.08" data-gap="1.108" data-rev="200" data-x="9.29" data-y="9.51"><title>Nuclear — SMR &amp; Uranium — D2=9.29, D3=9.51, composite=6.08, premise_gap=+1.11</title></circle><circle class="eight-axes-scatter-dot" cx="120.00" cy="101.37" r="19.61" fill="#42be71" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Foundry — Logic" data-slug="foundry-logic" data-comp="5.78" data-gap="0.546" data-rev="170" data-x="0.95" data-y="8.05"><title>Foundry — Logic — D2=0.95, D3=8.05, composite=5.78, premise_gap=+0.55</title></circle><circle class="eight-axes-scatter-dot" cx="315.00" cy="147.22" r="18.68" fill="#3dbb74" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Datacenter REITs (Colocation + Wholesale)" data-slug="datacenter-reits" data-comp="5.73" data-gap="0.604" data-rev="119" data-x="4.05" data-y="6.83"><title>Datacenter REITs (Colocation + Wholesale) — D2=4.05, D3=6.83, composite=5.73, premise_gap=+0.60</title></circle><circle class="eight-axes-scatter-dot" cx="480.00" cy="193.07" r="15.70" fill="#38b976" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="HBM &amp; DRAM" data-slug="hbm-dram" data-comp="5.69" data-gap="0.706" data-rev="38" data-x="6.67" data-y="5.61"><title>HBM &amp; DRAM — D2=6.67, D3=5.61, composite=5.69, premise_gap=+0.71</title></circle><circle class="eight-axes-scatter-dot" cx="405.00" cy="404.00" r="19.61" fill="#2fb37b" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Inference-Consuming Software / App Layer" data-slug="model-labs-software" data-comp="5.59" data-gap="0.666" data-rev="170" data-x="5.48" data-y="0.00"><title>Inference-Consuming Software / App Layer — D2=5.48, D3=0.00, composite=5.59, premise_gap=+0.67</title></circle><circle class="eight-axes-scatter-dot" cx="540.00" cy="330.63" r="17.42" fill="#25ab81" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Power Semiconductors — VRM / Vertical Power Delivery" data-slug="power-semis-vrm" data-comp="5.44" data-gap="0.791" data-rev="74" data-x="7.62" data-y="1.95"><title>Power Semiconductors — VRM / Vertical Power Delivery — D2=7.62, D3=1.95, composite=5.44, premise_gap=+0.79</title></circle><circle class="eight-axes-scatter-dot" cx="315.00" cy="404.00" r="14.21" fill="#20a485" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="EDA &amp; Silicon IP" data-slug="eda-ip" data-comp="5.32" data-gap="0.604" data-rev="21" data-x="4.05" data-y="0.00"><title>EDA &amp; Silicon IP — D2=4.05, D3=0.00, composite=5.32, premise_gap=+0.60</title></circle><circle class="eight-axes-scatter-dot" cx="570.00" cy="248.10" r="14.52" fill="#1e9c89" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Electrical Equipment (Datacenter Power Distribution)" data-slug="electrical-equipment" data-comp="5.21" data-gap="0.849" data-rev="24" data-x="8.10" data-y="4.15"><title>Electrical Equipment (Datacenter Power Distribution) — D2=8.10, D3=4.15, composite=5.21, premise_gap=+0.85</title></circle><circle class="eight-axes-scatter-dot" cx="210.00" cy="64.68" r="15.11" fill="#1f968b" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Gas Turbines" data-slug="gas-turbines" data-comp="5.10" data-gap="0.558" data-rev="30" data-x="2.38" data-y="9.02"><title>Gas Turbines — D2=2.38, D3=9.02, composite=5.10, premise_gap=+0.56</title></circle><circle class="eight-axes-scatter-dot" cx="90.00" cy="248.10" r="14.95" fill="#1f938b" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Lithography" data-slug="lithography" data-comp="5.05" data-gap="0.505" data-rev="28" data-x="0.48" data-y="4.15"><title>Lithography — D2=0.48, D3=4.15, composite=5.05, premise_gap=+0.51</title></circle><circle class="eight-axes-scatter-dot" cx="510.00" cy="119.71" r="14.92" fill="#20918c" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Power Transformers &amp; Grid" data-slug="power-transformers-grid" data-comp="5.02" data-gap="0.755" data-rev="28" data-x="7.14" data-y="7.56"><title>Power Transformers &amp; Grid — D2=7.14, D3=7.56, composite=5.02, premise_gap=+0.76</title></circle><circle class="eight-axes-scatter-dot" cx="210.00" cy="358.14" r="15.34" fill="#24868d" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Networking — Switching, Retimers, DPUs" data-slug="networking-switching" data-comp="4.84" data-gap="0.558" data-rev="33" data-x="2.38" data-y="1.22"><title>Networking — Switching, Retimers, DPUs — D2=2.38, D3=1.22, composite=4.84, premise_gap=+0.56</title></circle><circle class="eight-axes-scatter-dot" cx="210.00" cy="330.63" r="18.60" fill="#2a758e" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="WFE: Deposition, Etch, Implant, Metrology" data-slug="wfe-deposition-etch" data-comp="4.56" data-gap="0.558" data-rev="116" data-x="2.38" data-y="1.95"><title>WFE: Deposition, Etch, Implant, Metrology — D2=2.38, D3=1.95, composite=4.56, premise_gap=+0.56</title></circle><circle class="eight-axes-scatter-dot" cx="60.00" cy="211.42" r="20.04" fill="#30678d" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="AI Accelerators (GPUs/ASICs/TPUs)" data-slug="ai-accelerators" data-comp="4.34" data-gap="0.465" data-rev="200" data-x="0.00" data-y="5.12"><title>AI Accelerators (GPUs/ASICs/TPUs) — D2=0.00, D3=5.12, composite=4.34, premise_gap=+0.47</title></circle><circle class="eight-axes-scatter-dot" cx="210.00" cy="293.95" r="12.69" fill="#345f8d" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Datacenter Cooling — Thermal Management" data-slug="datacenter-cooling-thermal" data-comp="4.21" data-gap="0.558" data-rev="12" data-x="2.38" data-y="2.93"><title>Datacenter Cooling — Thermal Management — D2=2.38, D3=2.93, composite=4.21, premise_gap=+0.56</title></circle><circle class="eight-axes-scatter-dot" cx="405.00" cy="248.10" r="16.41" fill="#37598c" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Advanced Packaging (OSAT, substrates, FOPLP, backend test)" data-slug="advanced-packaging" data-comp="4.13" data-gap="0.666" data-rev="50" data-x="5.48" data-y="4.15"><title>Advanced Packaging (OSAT, substrates, FOPLP, backend test) — D2=5.48, D3=4.15, composite=4.13, premise_gap=+0.67</title></circle><circle class="eight-axes-scatter-dot" cx="405.00" cy="174.73" r="14.06" fill="#423e85" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="IC Substrates (ABF / FC-BGA / BT)" data-slug="ic-substrates" data-comp="3.75" data-gap="0.666" data-rev="20" data-x="5.48" data-y="6.10"><title>IC Substrates (ABF / FC-BGA / BT) — D2=5.48, D3=6.10, composite=3.75, premise_gap=+0.67</title></circle><circle class="eight-axes-scatter-dot" cx="210.00" cy="293.95" r="15.22" fill="#440154" fill-opacity="0.72" stroke="#1a1a1a" stroke-width="0.6" data-name="Silicon Photonics &amp; Datacom Optics" data-slug="silicon-photonics-optics" data-comp="3.02" data-gap="0.558" data-rev="32" data-x="2.38" data-y="2.93"><title>Silicon Photonics &amp; Datacom Optics — D2=2.38, D3=2.93, composite=3.02, premise_gap=+0.56</title></circle><defs><linearGradient id="eight-axes-grad" x1="0" x2="1" y1="0" y2="0"><stop offset="0%" stop-color="#440154" /><stop offset="25%" stop-color="#3a528b" /><stop offset="50%" stop-color="#20908c" /><stop offset="75%" stop-color="#5ec961" /><stop offset="100%" stop-color="#fde724" /></linearGradient></defs><rect x="560" y="52" width="120" height="8" fill="url(#eight-axes-grad)" stroke="#999" stroke-width="0.5" /><text x="560" y="48" font-size="10" fill="#555">composite_equal</text><text x="560" y="74" font-size="10" fill="#555">3.0</text><text x="680" y="74" font-size="10" fill="#555" text-anchor="end">7.0</text></svg>
<div class="eight-axes-scatter-tip" id="eight-axes-scatter-tip"></div>
<div class="eight-axes-scatter-caption">Each dot is one <span class="eight-axes-glo" data-key="vertical">vertical</span>. X = <span class="eight-axes-glo" data-key="D2">D2</span> (premise-implied <span class="eight-axes-glo" data-key="TAM">TAM</span> headroom). Y = <span class="eight-axes-glo" data-key="D3">D3</span> (supply elasticity / how inelastic supply is). Dot color = composite_equal score. Dot size = <span class="eight-axes-glo" data-key="vertical">vertical</span> revenue 2025 (<span class="eight-axes-glo" data-key="log-scale">log-scaled</span>). Top-right quadrant = largest headroom paired with tightest supply = most asymmetric setups.</div>
</div>

<script>
(function(){
  var wrap = document.getElementById('eight-axes-scatter-wrap');
  if (!wrap) return;
  var svg = document.getElementById('eight-axes-scatter-svg');
  var tip = document.getElementById('eight-axes-scatter-tip');
  function place(ev, target){
    var rect = wrap.getBoundingClientRect();
    var x = ev.clientX - rect.left + 12;
    var y = ev.clientY - rect.top + 12;
    // Clamp to wrap.
    var maxX = wrap.clientWidth - tip.offsetWidth - 8;
    if (x > maxX) x = maxX;
    tip.style.left = x + 'px';
    tip.style.top = y + 'px';
    var name = target.getAttribute('data-name');
    var comp = target.getAttribute('data-comp');
    var gap = target.getAttribute('data-gap');
    var rev = target.getAttribute('data-rev');
    var dx = target.getAttribute('data-x');
    var dy = target.getAttribute('data-y');
    tip.innerHTML = '<b>' + name + '</b><br>D2 headroom: ' + dx + '<br>D3 supply elasticity: ' + dy + '<br>composite_equal: ' + comp + '<br>premise_gap_log: ' + (parseFloat(gap)>=0?'+':'') + gap + '<br>vertical revenue 2025: $' + rev + 'B';
    tip.classList.add('is-on');
  }
  svg.querySelectorAll('.eight-axes-scatter-dot').forEach(function(c){
    c.addEventListener('mouseenter', function(ev){ place(ev, c); c.classList.add('is-hover'); });
    c.addEventListener('mousemove', function(ev){ place(ev, c); });
    c.addEventListener('mouseleave', function(){ tip.classList.remove('is-on'); c.classList.remove('is-hover'); });
  });
})();
</script>

</div>

</div>

<h2 id="nuclearsmr-jumped-16-places-vs-v1">Nuclear/<span class="eight-axes-glo" data-key="SMR">SMR</span> jumped 16 places vs <a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a></h2>

<div class="eight-axes-hero-stat eight-axes-hero-stat--inline">
  <div class="eight-axes-hero-num">+16</div>
  <div class="eight-axes-hero-label"><span class="eight-axes-glo" data-key="nuclear-smr-uranium">nuclear-smr-uranium</span>: v1 #21 ‒&gt; v2 #5</div>
</div>

<p class="eight-axes-lede"><a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a> saw a 4.2x rally and called it "<span class="eight-axes-glo" data-key="priced-in">priced_in</span>". v2 reads four more axes -- supply, substitution, geopolitics, headroom -- all pointing the same way.</p>

<details class="eight-axes-more">
<summary>How we got there</summary>
<div class="eight-axes-more-body">

    <div class="eight-axes-callout-info">
<a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a> read 3 signals (return, <span class="eight-axes-glo" data-key="beta">beta</span>, AI-share) and stopped. v2 reads 8.
</div>

    <p>v1 ranked <span class="eight-axes-glo" data-key="nuclear-smr-uranium">nuclear-smr-uranium</span> <strong>#21 of 22, “<span class="eight-axes-glo" data-key="priced-in">priced_in</span>“</strong>: 4.2x 3-year return, 4% AI-share-today, no substrate. v2 keeps the rally penalty but adds four axes that all favour <span class="eight-axes-glo" data-key="SMR">SMR</span>:</p>

    <table class="eight-axes-mini-table">
<thead><tr><th>Axis</th><th>Score</th><th>What it measures</th></tr></thead>
<tbody>
<tr><td><span class="eight-axes-glo" data-key="D2">D2</span> headroom</td><td>9.29</td><td>Premise-implied 2035 <span class="eight-axes-glo" data-key="TAM">TAM</span> minus today</td></tr>
<tr><td><span class="eight-axes-glo" data-key="D3">D3</span> supply</td><td>9.51</td><td>5-10 yr permitting, most inelastic</td></tr>
<tr><td><span class="eight-axes-glo" data-key="D5">D5</span> substitution</td><td>10</td><td>No baseload alternative inside 10 yrs</td></tr>
<tr><td><span class="eight-axes-glo" data-key="D7">D7</span> geopolitics</td><td>10</td><td>US/Allied uranium plus <span class="eight-axes-glo" data-key="DOE LPO">DOE LPO</span></td></tr>
</tbody>
</table>

    <p>Under <span class="eight-axes-glo" data-key="contrarian-tilt">contrarian-tilt</span> (<span class="eight-axes-glo" data-key="D1">D1</span> doubled) the rank drops to <strong>#9</strong>. Asymmetric, not unconditional – a forward-supply-curve bet, not a momentum bet. <!-- source: comparison of analysis/ranking.csv to composite.csv --></p>

  </div>
</details>

<h2 id="where-this-is-still-wrong">Where this is still wrong</h2>

<p class="eight-axes-lede">Eight axes beats three numbers, but it isn't the truth. Premise-level weaknesses listed in the five caveats above (3x upper-tercile, flat 20% capture, US-only baseline, annual-vs-NPV horizon, flat P/S). Method-level weaknesses below: <span class="eight-axes-glo" data-key="fragility">fragility</span> on top-decile names, a judgement-call allocation split, substitution risk scored from notes not markets, and n=22.</p>

<div class="eight-axes-callout-caveat">
<strong>Single-dimension <span class="eight-axes-glo" data-key="fragility">fragility</span>.</strong> Top-decile names hinging on one axis. <code>datacenter-reits</code> swings 8 ranks under <span class="eight-axes-glo" data-key="leave-one-out">leave-one-out</span>: drop <span class="eight-axes-glo" data-key="D2">D2</span> and the thesis collapses. <code>power-transformers-grid</code> ranges 7-18. <code>lithography</code> 7-18. <code>model-labs-software</code> 3-15. Not diversified theses. Position-size accordingly. <!-- source: composite_notes.md -->
</div>

<div class="eight-axes-root">
<div class="eight-axes-root eight-axes-sens-root">
<script type="application/json" id="eight-axes-sens-data">[{"slug":"hyperscalers-cloud","name":"Hyperscalers & Cloud","rank_equal":1,"deltas":[1,0,0,4,0,2,0,4]},{"slug":"copper-rare-earth","name":"Copper & Rare Earths","rank_equal":2,"deltas":[2,2,2,-1,0,-1,0,-1]},{"slug":"industrial-gases-water","name":"Industrial Gases & Water (fab inputs + DC cooling/humidification)","rank_equal":3,"deltas":[2,0,-1,0,1,-1,0,-1]},{"slug":"utilities-merchant-power","name":"Utilities & Merchant Power","rank_equal":4,"deltas":[-1,1,1,-2,-1,0,1,-1]},{"slug":"nuclear-smr-uranium","name":"Nuclear \u2014 SMR & Uranium","rank_equal":5,"deltas":[-4,3,4,-1,2,0,3,-1]},{"slug":"foundry-logic","name":"Foundry \u2014 Logic","rank_equal":6,"deltas":[2,-4,5,1,2,1,1,1]},{"slug":"datacenter-reits","name":"Datacenter REITs (Colocation + Wholesale)","rank_equal":7,"deltas":[6,-1,3,-1,-2,8,-1,-1]},{"slug":"hbm-dram","name":"HBM & DRAM","rank_equal":8,"deltas":[-2,2,0,1,3,3,-4,1]},{"slug":"model-labs-software","name":"Inference-Consuming Software / App Layer","rank_equal":9,"deltas":[1,0,-6,-1,-3,0,1,6]},{"slug":"power-semis-vrm","name":"Power Semiconductors \u2014 VRM / Vertical Power Delivery","rank_equal":10,"deltas":[4,4,-3,0,-1,-2,1,-2]},{"slug":"eda-ip","name":"EDA & Silicon IP","rank_equal":11,"deltas":[0,0,-5,3,3,-5,1,2]},{"slug":"electrical-equipment","name":"Electrical Equipment (Datacenter Power Distribution)","rank_equal":12,"deltas":[-3,5,0,-1,0,0,1,-2]},{"slug":"gas-turbines","name":"Gas Turbines","rank_equal":13,"deltas":[-1,-1,4,0,-3,1,3,-2]},{"slug":"lithography","name":"Lithography","rank_equal":14,"deltas":[2,-7,0,4,3,-4,-5,0]},{"slug":"power-transformers-grid","name":"Power Transformers & Grid","rank_equal":15,"deltas":[-8,3,1,-3,-2,1,2,-3]},{"slug":"networking-switching","name":"Networking \u2014 Switching, Retimers, DPUs","rank_equal":16,"deltas":[-1,-3,-3,0,0,-3,3,0]},{"slug":"wfe-deposition-etch","name":"WFE: Deposition, Etch, Implant, Metrology","rank_equal":17,"deltas":[2,-1,-2,0,2,0,-2,0]},{"slug":"ai-accelerators","name":"AI Accelerators (GPUs/ASICs/TPUs)","rank_equal":18,"deltas":[-1,-3,1,2,-3,0,2,1]},{"slug":"datacenter-cooling-thermal","name":"Datacenter Cooling \u2014 Thermal Management","rank_equal":19,"deltas":[-1,0,-1,-4,1,0,2,-1]},{"slug":"advanced-packaging","name":"Advanced Packaging (OSAT, substrates, FOPLP, backend test)","rank_equal":20,"deltas":[0,0,0,-1,-2,0,-6,0]},{"slug":"ic-substrates","name":"IC Substrates (ABF / FC-BGA / BT)","rank_equal":21,"deltas":[0,0,0,0,0,0,-3,0]},{"slug":"silicon-photonics-optics","name":"Silicon Photonics & Datacom Optics","rank_equal":22,"deltas":[0,0,0,0,0,0,0,0]}]</script>

<style>
.eight-axes-sens-root { font-family: -apple-system,"Segoe UI",Inter,Helvetica,Arial,sans-serif; }
.eight-axes-sens-legend { font-size: 12px; color: #555; margin: 8px 0 10px 0; }
.eight-axes-sens-legend span.sw { display:inline-block; width:11px; height:11px; vertical-align:middle; margin-right:5px; border-radius:2px; }
.eight-axes-sens-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.eight-axes-sens-card { margin: 0; padding: 6px 6px 4px 6px; border: 1px solid #ececdd; border-radius: 4px; background: #fff; }
.eight-axes-sens-card figcaption { font-size: 11.5px; line-height: 1.3; margin-bottom: 4px; display:flex; justify-content:space-between; align-items:baseline; gap:6px; }
.eight-axes-sens-rank { color: #999; font-variant-numeric: tabular-nums; }
.eight-axes-sens-name { font-weight: 600; flex: 1 1 auto; }
.eight-axes-sens-fragility { font-size: 10.5px; color: #666; font-variant-numeric: tabular-nums; white-space: nowrap; }
.eight-axes-sens-svg { width:100%; height:auto; display:block; }
.eight-axes-sens-controls { font-size: 12.5px; margin: 4px 0 8px 0; }
.eight-axes-sens-controls button { font: inherit; padding: 3px 8px; margin-right: 6px; border: 1px solid #c8c8be; background: #f5f5ee; border-radius: 4px; cursor: pointer; }
.eight-axes-sens-controls button.is-active { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
</style>

<div class="eight-axes-sens-legend">
  Each panel = one <span class="eight-axes-glo" data-key="vertical">vertical</span>. Bars show rank Δ when that dimension is dropped from the equal-weight composite.
  <span class="sw" style="background:#a02323"></span>red ▶ rank worsens when dropped (<span class="eight-axes-glo" data-key="vertical">vertical</span> depended on this dim)
  <span class="sw" style="background:#1f7a36"></span>green ◀ rank improves when dropped (dim was dragging the <span class="eight-axes-glo" data-key="vertical">vertical</span> down).
  Σ|Δ| = total <span class="eight-axes-glo" data-key="fragility">fragility</span> (sum of absolute rank shifts).
</div>
<div class="eight-axes-sens-controls">
  Sort:
  <button id="eight-axes-sens-btn-rank" class="is-active">by composite rank</button>
  <button id="eight-axes-sens-btn-frag">by <span class="eight-axes-glo" data-key="fragility">fragility</span> (Σ|Δ|)</button>
</div>
<div class="eight-axes-sens-grid" id="eight-axes-sens-grid">
<figure class="eight-axes-sens-card" data-slug="hyperscalers-cloud" data-fragility="11"><figcaption><span class="eight-axes-sens-rank">#1</span> <span class="eight-axes-sens-name"><span class="eight-axes-glo" data-key="hyperscalers">Hyperscalers</span> &amp; Cloud</span> <span class="eight-axes-sens-fragility">Σ|Δ|=11</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="114.00" y="8.81" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D1 dropped: rank Δ +1</title></rect><text x="125.75" y="15.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><line x1="112.0" y1="34.125" x2="116.0" y2="34.125" stroke="#aaa" stroke-width="1" /><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><line x1="112.0" y1="52.875" x2="116.0" y2="52.875" stroke="#aaa" stroke-width="1" /><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="114.00" y="65.06" width="39.00" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D4 dropped: rank Δ +4</title></rect><text x="155.00" y="71.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+4</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><line x1="112.0" y1="90.375" x2="116.0" y2="90.375" stroke="#aaa" stroke-width="1" /><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="114.00" y="102.56" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D6 dropped: rank Δ +2</title></rect><text x="135.50" y="109.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><line x1="112.0" y1="127.875" x2="116.0" y2="127.875" stroke="#aaa" stroke-width="1" /><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="114.00" y="140.06" width="39.00" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D8 dropped: rank Δ +4</title></rect><text x="155.00" y="146.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+4</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="copper-rare-earth" data-fragility="9"><figcaption><span class="eight-axes-sens-rank">#2</span> <span class="eight-axes-sens-name">Copper &amp; Rare Earths</span> <span class="eight-axes-sens-fragility">Σ|Δ|=9</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="114.00" y="8.81" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D1 dropped: rank Δ +2</title></rect><text x="135.50" y="15.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="114.00" y="27.56" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D2 dropped: rank Δ +2</title></rect><text x="135.50" y="34.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="114.00" y="46.31" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D3 dropped: rank Δ +2</title></rect><text x="135.50" y="52.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="104.25" y="65.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D4 dropped: rank Δ -1</title></rect><text x="102.25" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><line x1="112.0" y1="90.375" x2="116.0" y2="90.375" stroke="#aaa" stroke-width="1" /><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="104.25" y="102.56" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D6 dropped: rank Δ -1</title></rect><text x="102.25" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><line x1="112.0" y1="127.875" x2="116.0" y2="127.875" stroke="#aaa" stroke-width="1" /><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="104.25" y="140.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -1</title></rect><text x="102.25" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="industrial-gases-water" data-fragility="6"><figcaption><span class="eight-axes-sens-rank">#3</span> <span class="eight-axes-sens-name">Industrial Gases &amp; Water (fab inputs + DC cooling/humidification)</span> <span class="eight-axes-sens-fragility">Σ|Δ|=6</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="114.00" y="8.81" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D1 dropped: rank Δ +2</title></rect><text x="135.50" y="15.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><line x1="112.0" y1="34.125" x2="116.0" y2="34.125" stroke="#aaa" stroke-width="1" /><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="104.25" y="46.31" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D3 dropped: rank Δ -1</title></rect><text x="102.25" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><line x1="112.0" y1="71.625" x2="116.0" y2="71.625" stroke="#aaa" stroke-width="1" /><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="114.00" y="83.81" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D5 dropped: rank Δ +1</title></rect><text x="125.75" y="90.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="104.25" y="102.56" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D6 dropped: rank Δ -1</title></rect><text x="102.25" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><line x1="112.0" y1="127.875" x2="116.0" y2="127.875" stroke="#aaa" stroke-width="1" /><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="104.25" y="140.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -1</title></rect><text x="102.25" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="utilities-merchant-power" data-fragility="8"><figcaption><span class="eight-axes-sens-rank">#4</span> <span class="eight-axes-sens-name">Utilities &amp; Merchant Power</span> <span class="eight-axes-sens-fragility">Σ|Δ|=8</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="104.25" y="8.81" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D1 dropped: rank Δ -1</title></rect><text x="102.25" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="114.00" y="27.56" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D2 dropped: rank Δ +1</title></rect><text x="125.75" y="34.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="114.00" y="46.31" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D3 dropped: rank Δ +1</title></rect><text x="125.75" y="52.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="94.50" y="65.06" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D4 dropped: rank Δ -2</title></rect><text x="92.50" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="104.25" y="83.81" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D5 dropped: rank Δ -1</title></rect><text x="102.25" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +1</title></rect><text x="125.75" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="104.25" y="140.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -1</title></rect><text x="102.25" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="nuclear-smr-uranium" data-fragility="18"><figcaption><span class="eight-axes-sens-rank">#5</span> <span class="eight-axes-sens-name">Nuclear — <span class="eight-axes-glo" data-key="SMR">SMR</span> &amp; Uranium</span> <span class="eight-axes-sens-fragility">Σ|Δ|=18</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="75.00" y="8.81" width="39.00" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D1 dropped: rank Δ -4</title></rect><text x="73.00" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-4</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="114.00" y="27.56" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D2 dropped: rank Δ +3</title></rect><text x="145.25" y="34.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="114.00" y="46.31" width="39.00" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D3 dropped: rank Δ +4</title></rect><text x="155.00" y="52.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+4</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="104.25" y="65.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D4 dropped: rank Δ -1</title></rect><text x="102.25" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="114.00" y="83.81" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D5 dropped: rank Δ +2</title></rect><text x="135.50" y="90.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +3</title></rect><text x="145.25" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="104.25" y="140.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -1</title></rect><text x="102.25" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="foundry-logic" data-fragility="17"><figcaption><span class="eight-axes-sens-rank">#6</span> <span class="eight-axes-sens-name">Foundry — Logic</span> <span class="eight-axes-sens-fragility">Σ|Δ|=17</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="114.00" y="8.81" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D1 dropped: rank Δ +2</title></rect><text x="135.50" y="15.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="75.00" y="27.56" width="39.00" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D2 dropped: rank Δ -4</title></rect><text x="73.00" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-4</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="114.00" y="46.31" width="48.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D3 dropped: rank Δ +5</title></rect><text x="164.75" y="52.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+5</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="114.00" y="65.06" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D4 dropped: rank Δ +1</title></rect><text x="125.75" y="71.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="114.00" y="83.81" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D5 dropped: rank Δ +2</title></rect><text x="135.50" y="90.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="114.00" y="102.56" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D6 dropped: rank Δ +1</title></rect><text x="125.75" y="109.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +1</title></rect><text x="125.75" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="114.00" y="140.06" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D8 dropped: rank Δ +1</title></rect><text x="125.75" y="146.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="datacenter-reits" data-fragility="23"><figcaption><span class="eight-axes-sens-rank">#7</span> <span class="eight-axes-sens-name">Datacenter <span class="eight-axes-glo" data-key="REIT">REITs</span> (Colocation + Wholesale)</span> <span class="eight-axes-sens-fragility">Σ|Δ|=23</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="114.00" y="8.81" width="58.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D1 dropped: rank Δ +6</title></rect><text x="174.50" y="15.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+6</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="104.25" y="27.56" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D2 dropped: rank Δ -1</title></rect><text x="102.25" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="114.00" y="46.31" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D3 dropped: rank Δ +3</title></rect><text x="145.25" y="52.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="104.25" y="65.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D4 dropped: rank Δ -1</title></rect><text x="102.25" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="94.50" y="83.81" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D5 dropped: rank Δ -2</title></rect><text x="92.50" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="114.00" y="102.56" width="78.00" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D6 dropped: rank Δ +8</title></rect><text x="194.00" y="109.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+8</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="104.25" y="121.31" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D7 dropped: rank Δ -1</title></rect><text x="102.25" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="104.25" y="140.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -1</title></rect><text x="102.25" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="hbm-dram" data-fragility="16"><figcaption><span class="eight-axes-sens-rank">#8</span> <span class="eight-axes-sens-name"><span class="eight-axes-glo" data-key="HBM">HBM</span> &amp; <span class="eight-axes-glo" data-key="DRAM">DRAM</span></span> <span class="eight-axes-sens-fragility">Σ|Δ|=16</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="94.50" y="8.81" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D1 dropped: rank Δ -2</title></rect><text x="92.50" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="114.00" y="27.56" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D2 dropped: rank Δ +2</title></rect><text x="135.50" y="34.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><line x1="112.0" y1="52.875" x2="116.0" y2="52.875" stroke="#aaa" stroke-width="1" /><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="114.00" y="65.06" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D4 dropped: rank Δ +1</title></rect><text x="125.75" y="71.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="114.00" y="83.81" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D5 dropped: rank Δ +3</title></rect><text x="145.25" y="90.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="114.00" y="102.56" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D6 dropped: rank Δ +3</title></rect><text x="145.25" y="109.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="75.00" y="121.31" width="39.00" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D7 dropped: rank Δ -4</title></rect><text x="73.00" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-4</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="114.00" y="140.06" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D8 dropped: rank Δ +1</title></rect><text x="125.75" y="146.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="model-labs-software" data-fragility="18"><figcaption><span class="eight-axes-sens-rank">#9</span> <span class="eight-axes-sens-name">Inference-Consuming Software / App Layer</span> <span class="eight-axes-sens-fragility">Σ|Δ|=18</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="114.00" y="8.81" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D1 dropped: rank Δ +1</title></rect><text x="125.75" y="15.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><line x1="112.0" y1="34.125" x2="116.0" y2="34.125" stroke="#aaa" stroke-width="1" /><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="55.50" y="46.31" width="58.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D3 dropped: rank Δ -6</title></rect><text x="53.50" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-6</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="104.25" y="65.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D4 dropped: rank Δ -1</title></rect><text x="102.25" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="84.75" y="83.81" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D5 dropped: rank Δ -3</title></rect><text x="82.75" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +1</title></rect><text x="125.75" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="114.00" y="140.06" width="58.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D8 dropped: rank Δ +6</title></rect><text x="174.50" y="146.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+6</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="power-semis-vrm" data-fragility="17"><figcaption><span class="eight-axes-sens-rank">#10</span> <span class="eight-axes-sens-name">Power Semiconductors — <span class="eight-axes-glo" data-key="VRM">VRM</span> / Vertical Power Delivery</span> <span class="eight-axes-sens-fragility">Σ|Δ|=17</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="114.00" y="8.81" width="39.00" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D1 dropped: rank Δ +4</title></rect><text x="155.00" y="15.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+4</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="114.00" y="27.56" width="39.00" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D2 dropped: rank Δ +4</title></rect><text x="155.00" y="34.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+4</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="84.75" y="46.31" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D3 dropped: rank Δ -3</title></rect><text x="82.75" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><line x1="112.0" y1="71.625" x2="116.0" y2="71.625" stroke="#aaa" stroke-width="1" /><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="104.25" y="83.81" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D5 dropped: rank Δ -1</title></rect><text x="102.25" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="94.50" y="102.56" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D6 dropped: rank Δ -2</title></rect><text x="92.50" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +1</title></rect><text x="125.75" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="94.50" y="140.06" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -2</title></rect><text x="92.50" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="eda-ip" data-fragility="19"><figcaption><span class="eight-axes-sens-rank">#11</span> <span class="eight-axes-sens-name"><span class="eight-axes-glo" data-key="EDA">EDA</span> &amp; Silicon IP</span> <span class="eight-axes-sens-fragility">Σ|Δ|=19</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><line x1="112.0" y1="15.375" x2="116.0" y2="15.375" stroke="#aaa" stroke-width="1" /><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><line x1="112.0" y1="34.125" x2="116.0" y2="34.125" stroke="#aaa" stroke-width="1" /><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="65.25" y="46.31" width="48.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D3 dropped: rank Δ -5</title></rect><text x="63.25" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-5</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="114.00" y="65.06" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D4 dropped: rank Δ +3</title></rect><text x="145.25" y="71.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="114.00" y="83.81" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D5 dropped: rank Δ +3</title></rect><text x="145.25" y="90.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="65.25" y="102.56" width="48.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D6 dropped: rank Δ -5</title></rect><text x="63.25" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-5</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +1</title></rect><text x="125.75" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="114.00" y="140.06" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D8 dropped: rank Δ +2</title></rect><text x="135.50" y="146.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="electrical-equipment" data-fragility="12"><figcaption><span class="eight-axes-sens-rank">#12</span> <span class="eight-axes-sens-name">Electrical Equipment (Datacenter Power Distribution)</span> <span class="eight-axes-sens-fragility">Σ|Δ|=12</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="84.75" y="8.81" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D1 dropped: rank Δ -3</title></rect><text x="82.75" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="114.00" y="27.56" width="48.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D2 dropped: rank Δ +5</title></rect><text x="164.75" y="34.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+5</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><line x1="112.0" y1="52.875" x2="116.0" y2="52.875" stroke="#aaa" stroke-width="1" /><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="104.25" y="65.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D4 dropped: rank Δ -1</title></rect><text x="102.25" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><line x1="112.0" y1="90.375" x2="116.0" y2="90.375" stroke="#aaa" stroke-width="1" /><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +1</title></rect><text x="125.75" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="94.50" y="140.06" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -2</title></rect><text x="92.50" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="gas-turbines" data-fragility="15"><figcaption><span class="eight-axes-sens-rank">#13</span> <span class="eight-axes-sens-name">Gas Turbines</span> <span class="eight-axes-sens-fragility">Σ|Δ|=15</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="104.25" y="8.81" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D1 dropped: rank Δ -1</title></rect><text x="102.25" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="104.25" y="27.56" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D2 dropped: rank Δ -1</title></rect><text x="102.25" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="114.00" y="46.31" width="39.00" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D3 dropped: rank Δ +4</title></rect><text x="155.00" y="52.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+4</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><line x1="112.0" y1="71.625" x2="116.0" y2="71.625" stroke="#aaa" stroke-width="1" /><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="84.75" y="83.81" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D5 dropped: rank Δ -3</title></rect><text x="82.75" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="114.00" y="102.56" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D6 dropped: rank Δ +1</title></rect><text x="125.75" y="109.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +3</title></rect><text x="145.25" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="94.50" y="140.06" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -2</title></rect><text x="92.50" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="lithography" data-fragility="25"><figcaption><span class="eight-axes-sens-rank">#14</span> <span class="eight-axes-sens-name">Lithography</span> <span class="eight-axes-sens-fragility">Σ|Δ|=25</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="114.00" y="8.81" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D1 dropped: rank Δ +2</title></rect><text x="135.50" y="15.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="45.75" y="27.56" width="68.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D2 dropped: rank Δ -7</title></rect><text x="43.75" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-7</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><line x1="112.0" y1="52.875" x2="116.0" y2="52.875" stroke="#aaa" stroke-width="1" /><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="114.00" y="65.06" width="39.00" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D4 dropped: rank Δ +4</title></rect><text x="155.00" y="71.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+4</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="114.00" y="83.81" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D5 dropped: rank Δ +3</title></rect><text x="145.25" y="90.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="75.00" y="102.56" width="39.00" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D6 dropped: rank Δ -4</title></rect><text x="73.00" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-4</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="65.25" y="121.31" width="48.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D7 dropped: rank Δ -5</title></rect><text x="63.25" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-5</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><line x1="112.0" y1="146.625" x2="116.0" y2="146.625" stroke="#aaa" stroke-width="1" /><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="power-transformers-grid" data-fragility="23"><figcaption><span class="eight-axes-sens-rank">#15</span> <span class="eight-axes-sens-name">Power Transformers &amp; Grid</span> <span class="eight-axes-sens-fragility">Σ|Δ|=23</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="36.00" y="8.81" width="78.00" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D1 dropped: rank Δ -8</title></rect><text x="34.00" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-8</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="114.00" y="27.56" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D2 dropped: rank Δ +3</title></rect><text x="145.25" y="34.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="114.00" y="46.31" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D3 dropped: rank Δ +1</title></rect><text x="125.75" y="52.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="84.75" y="65.06" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D4 dropped: rank Δ -3</title></rect><text x="82.75" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="94.50" y="83.81" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D5 dropped: rank Δ -2</title></rect><text x="92.50" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="114.00" y="102.56" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D6 dropped: rank Δ +1</title></rect><text x="125.75" y="109.1" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +2</title></rect><text x="135.50" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="84.75" y="140.06" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -3</title></rect><text x="82.75" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="networking-switching" data-fragility="13"><figcaption><span class="eight-axes-sens-rank">#16</span> <span class="eight-axes-sens-name">Networking — Switching, Retimers, DPUs</span> <span class="eight-axes-sens-fragility">Σ|Δ|=13</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="104.25" y="8.81" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D1 dropped: rank Δ -1</title></rect><text x="102.25" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="84.75" y="27.56" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D2 dropped: rank Δ -3</title></rect><text x="82.75" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="84.75" y="46.31" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D3 dropped: rank Δ -3</title></rect><text x="82.75" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><line x1="112.0" y1="71.625" x2="116.0" y2="71.625" stroke="#aaa" stroke-width="1" /><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><line x1="112.0" y1="90.375" x2="116.0" y2="90.375" stroke="#aaa" stroke-width="1" /><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><rect x="84.75" y="102.56" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D6 dropped: rank Δ -3</title></rect><text x="82.75" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="29.25" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +3</title></rect><text x="145.25" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+3</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><line x1="112.0" y1="146.625" x2="116.0" y2="146.625" stroke="#aaa" stroke-width="1" /><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="wfe-deposition-etch" data-fragility="9"><figcaption><span class="eight-axes-sens-rank">#17</span> <span class="eight-axes-sens-name"><span class="eight-axes-glo" data-key="WFE">WFE</span>: Deposition, Etch, Implant, Metrology</span> <span class="eight-axes-sens-fragility">Σ|Δ|=9</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="114.00" y="8.81" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D1 dropped: rank Δ +2</title></rect><text x="135.50" y="15.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="104.25" y="27.56" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D2 dropped: rank Δ -1</title></rect><text x="102.25" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="94.50" y="46.31" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D3 dropped: rank Δ -2</title></rect><text x="92.50" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><line x1="112.0" y1="71.625" x2="116.0" y2="71.625" stroke="#aaa" stroke-width="1" /><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="114.00" y="83.81" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D5 dropped: rank Δ +2</title></rect><text x="135.50" y="90.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="94.50" y="121.31" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D7 dropped: rank Δ -2</title></rect><text x="92.50" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><line x1="112.0" y1="146.625" x2="116.0" y2="146.625" stroke="#aaa" stroke-width="1" /><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="ai-accelerators" data-fragility="13"><figcaption><span class="eight-axes-sens-rank">#18</span> <span class="eight-axes-sens-name">AI Accelerators (<span class="eight-axes-glo" data-key="GPU">GPUs</span>/ASICs/TPUs)</span> <span class="eight-axes-sens-fragility">Σ|Δ|=13</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="104.25" y="8.81" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D1 dropped: rank Δ -1</title></rect><text x="102.25" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><rect x="84.75" y="27.56" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D2 dropped: rank Δ -3</title></rect><text x="82.75" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="114.00" y="46.31" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D3 dropped: rank Δ +1</title></rect><text x="125.75" y="52.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="114.00" y="65.06" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D4 dropped: rank Δ +2</title></rect><text x="135.50" y="71.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="84.75" y="83.81" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D5 dropped: rank Δ -3</title></rect><text x="82.75" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +2</title></rect><text x="135.50" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="114.00" y="140.06" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D8 dropped: rank Δ +1</title></rect><text x="125.75" y="146.6" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="datacenter-cooling-thermal" data-fragility="10"><figcaption><span class="eight-axes-sens-rank">#19</span> <span class="eight-axes-sens-name">Datacenter Cooling — Thermal Management</span> <span class="eight-axes-sens-fragility">Σ|Δ|=10</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><rect x="104.25" y="8.81" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D1 dropped: rank Δ -1</title></rect><text x="102.25" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><line x1="112.0" y1="34.125" x2="116.0" y2="34.125" stroke="#aaa" stroke-width="1" /><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><rect x="104.25" y="46.31" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D3 dropped: rank Δ -1</title></rect><text x="102.25" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="75.00" y="65.06" width="39.00" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D4 dropped: rank Δ -4</title></rect><text x="73.00" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-4</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="114.00" y="83.81" width="9.75" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D5 dropped: rank Δ +1</title></rect><text x="125.75" y="90.4" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+1</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="114.00" y="121.31" width="19.50" height="13.12" fill="#a02323" fill-opacity="0.85"><title>D7 dropped: rank Δ +2</title></rect><text x="135.50" y="127.9" text-anchor="start" dominant-baseline="middle" font-size="9" fill="#333">+2</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><rect x="104.25" y="140.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D8 dropped: rank Δ -1</title></rect><text x="102.25" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="advanced-packaging" data-fragility="9"><figcaption><span class="eight-axes-sens-rank">#20</span> <span class="eight-axes-sens-name">Advanced Packaging (<span class="eight-axes-glo" data-key="OSAT">OSAT</span>, substrates, <span class="eight-axes-glo" data-key="FOPLP">FOPLP</span>, backend test)</span> <span class="eight-axes-sens-fragility">Σ|Δ|=9</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><line x1="112.0" y1="15.375" x2="116.0" y2="15.375" stroke="#aaa" stroke-width="1" /><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><line x1="112.0" y1="34.125" x2="116.0" y2="34.125" stroke="#aaa" stroke-width="1" /><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><line x1="112.0" y1="52.875" x2="116.0" y2="52.875" stroke="#aaa" stroke-width="1" /><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><rect x="104.25" y="65.06" width="9.75" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D4 dropped: rank Δ -1</title></rect><text x="102.25" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-1</text><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><rect x="94.50" y="83.81" width="19.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D5 dropped: rank Δ -2</title></rect><text x="92.50" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-2</text><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="55.50" y="121.31" width="58.50" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D7 dropped: rank Δ -6</title></rect><text x="53.50" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-6</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><line x1="112.0" y1="146.625" x2="116.0" y2="146.625" stroke="#aaa" stroke-width="1" /><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="ic-substrates" data-fragility="3"><figcaption><span class="eight-axes-sens-rank">#21</span> <span class="eight-axes-sens-name">IC Substrates (<span class="eight-axes-glo" data-key="ABF">ABF</span> / <span class="eight-axes-glo" data-key="FC-BGA">FC-BGA</span> / <span class="eight-axes-glo" data-key="BT">BT</span>)</span> <span class="eight-axes-sens-fragility">Σ|Δ|=3</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><line x1="112.0" y1="15.375" x2="116.0" y2="15.375" stroke="#aaa" stroke-width="1" /><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><line x1="112.0" y1="34.125" x2="116.0" y2="34.125" stroke="#aaa" stroke-width="1" /><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><line x1="112.0" y1="52.875" x2="116.0" y2="52.875" stroke="#aaa" stroke-width="1" /><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><line x1="112.0" y1="71.625" x2="116.0" y2="71.625" stroke="#aaa" stroke-width="1" /><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><line x1="112.0" y1="90.375" x2="116.0" y2="90.375" stroke="#aaa" stroke-width="1" /><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><rect x="84.75" y="121.31" width="29.25" height="13.12" fill="#1f7a36" fill-opacity="0.85"><title>D7 dropped: rank Δ -3</title></rect><text x="82.75" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#333">-3</text><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><line x1="112.0" y1="146.625" x2="116.0" y2="146.625" stroke="#aaa" stroke-width="1" /><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure><figure class="eight-axes-sens-card" data-slug="silicon-photonics-optics" data-fragility="0"><figcaption><span class="eight-axes-sens-rank">#22</span> <span class="eight-axes-sens-name">Silicon Photonics &amp; Datacom Optics</span> <span class="eight-axes-sens-fragility">Σ|Δ|=0</span></figcaption><svg viewBox="0 0 200 168" xmlns="http://www.w3.org/2000/svg" class="eight-axes-sens-svg"><line x1="114.0" y1="6" x2="114.0" y2="156" stroke="#999" stroke-width="0.6" /><text x="32" y="15.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D1</text><line x1="112.0" y1="15.375" x2="116.0" y2="15.375" stroke="#aaa" stroke-width="1" /><text x="32" y="34.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D2</text><line x1="112.0" y1="34.125" x2="116.0" y2="34.125" stroke="#aaa" stroke-width="1" /><text x="32" y="52.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D3</text><line x1="112.0" y1="52.875" x2="116.0" y2="52.875" stroke="#aaa" stroke-width="1" /><text x="32" y="71.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D4</text><line x1="112.0" y1="71.625" x2="116.0" y2="71.625" stroke="#aaa" stroke-width="1" /><text x="32" y="90.4" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D5</text><line x1="112.0" y1="90.375" x2="116.0" y2="90.375" stroke="#aaa" stroke-width="1" /><text x="32" y="109.1" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D6</text><line x1="112.0" y1="109.125" x2="116.0" y2="109.125" stroke="#aaa" stroke-width="1" /><text x="32" y="127.9" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D7</text><line x1="112.0" y1="127.875" x2="116.0" y2="127.875" stroke="#aaa" stroke-width="1" /><text x="32" y="146.6" text-anchor="end" dominant-baseline="middle" font-size="9" fill="#444">D8</text><line x1="112.0" y1="146.625" x2="116.0" y2="146.625" stroke="#aaa" stroke-width="1" /><text x="38" y="166" font-size="8.5" fill="#999">-8</text><text x="192" y="166" font-size="8.5" fill="#999" text-anchor="end">+8</text></svg></figure>
</div>

<script>
(function(){
  var grid = document.getElementById('eight-axes-sens-grid');
  if (!grid) return;
  var btnRank = document.getElementById('eight-axes-sens-btn-rank');
  var btnFrag = document.getElementById('eight-axes-sens-btn-frag');
  function sortBy(key, descFragility){
    var cards = Array.prototype.slice.call(grid.children);
    cards.sort(function(a, b){
      var av = parseFloat(a.getAttribute('data-' + key));
      var bv = parseFloat(b.getAttribute('data-' + key));
      return descFragility ? bv - av : av - bv;
    });
    cards.forEach(function(c){ grid.appendChild(c); });
  }
  btnRank.addEventListener('click', function(){
    sortBy('fragility', false); // not used here; rank ordering is the default DOM order — re-fetch from data
    // Use rank-equal stored separately:
    var cards = Array.prototype.slice.call(grid.children);
    cards.sort(function(a, b){
      var ra = parseInt(a.querySelector('.eight-axes-sens-rank').textContent.replace('#',''),10);
      var rb = parseInt(b.querySelector('.eight-axes-sens-rank').textContent.replace('#',''),10);
      return ra - rb;
    });
    cards.forEach(function(c){ grid.appendChild(c); });
    btnRank.classList.add('is-active'); btnFrag.classList.remove('is-active');
  });
  btnFrag.addEventListener('click', function(){
    sortBy('fragility', true);
    btnFrag.classList.add('is-active'); btnRank.classList.remove('is-active');
  });
})();
</script>

</div>

</div>

<div class="eight-axes-callout-caveat">
<strong>Premise is one number.</strong> Pyramid sits on "3x". At 2x, implied-2035 AI revenue scales linearly, <span class="eight-axes-glo" data-key="D2">D2</span> ordering survives (<span class="eight-axes-glo" data-key="premise_gap_log">premise_gap_log</span> preserved up to a constant), absolute headroom softens. At 5x, physical-input verticals dominate. Sensitivity run on dimensions, not multiplier. Open work.
</div>

<div class="eight-axes-callout-caveat">
<strong>Allocation is a choice.</strong> 50/50 between current-AI-revenue and sqrt(AI-share) × size: reasonable, not first-principles. 70/30 tilts to monetised silicon; 30/70 to physical. Sqrt avoids double-penalising commodities; linear or cube root would re-order.
</div>

<div class="eight-axes-callout-caveat">
<strong>Substitution risk is literature-review.</strong> <span class="eight-axes-glo" data-key="D5">D5</span> is the softest axis. Per-vertical 0-1 probability from sell-side notes + <span class="eight-axes-glo" data-key="TRL">TRL</span>. Defensible, not tradable. <span class="eight-axes-glo" data-key="CDS">CDS</span> / options skew / single-name vol would be better.
</div>

<div class="eight-axes-callout-caveat">
<strong>n = 22 is small.</strong> <span class="eight-axes-glo" data-key="Spearman">Spearman</span> CIs are wide. Orthogonality claim: "no pair &gt; r = 0.7 at this n," not "independent in expectation." 50-80 verticals (software sub-segments + downstream) would test harder.
</div>

<details class="eight-axes-more">
<summary>Robust longs (smallest <span class="eight-axes-glo" data-key="leave-one-out">leave-one-out</span> ranges)</summary>
<div class="eight-axes-more-body">

    <p><code class="language-plaintext highlighter-rouge">copper-rare-earth</code> (3), <code class="language-plaintext highlighter-rouge">industrial-gases-water</code> (3), <code class="language-plaintext highlighter-rouge">utilities-merchant-power</code> (3), <code class="language-plaintext highlighter-rouge">wfe-deposition-etch</code> (4), <code class="language-plaintext highlighter-rouge">hyperscalers-cloud</code> (4). Three are top-5.</p>

    <p>The matrix is a sketch of where picks-and-shovels sit when the rally is held to an explicit premise. More honest than <a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" class="eight-axes-v1-link">v1</a>. Not a buy list.</p>

  </div>
</details>

<h2 id="references--further-reading">References &amp; further reading</h2>

<div class="eight-axes-refs">

  <p><strong>Predecessor</strong></p>

  <ul>
    <li><a href="/research/undervalued-stock-premised-on-llm-supply-chain-expansion/">Earlier framing: 3-input gap-metric ranking (v1)</a> <span class="eight-axes-ref-ctx">— v1 ranking this post rebuilds: 3-yr return, NVDA <span class="eight-axes-glo" data-key="beta">beta</span>, AI-revenue share, <span class="eight-axes-glo" data-key="z-score">z-scored</span> into a “gap”.</span></li>
  </ul>

  <p><strong>Contrarian critiques (internal reviews)</strong></p>

  <p>Each premise input was challenged by a dedicated internal review; findings folded into the caveat callout above. Notes are in the repo, not published.</p>

  <ul>
    <li><em>Critique A — baseline.</em> <span class="eight-axes-ref-ctx"><span class="eight-axes-glo" data-key="BEA">BEA</span> = stock not flow; ICT-TFP ~$2.5T/yr; GDP-B ~$4.5T.</span></li>
    <li><em>Critique B — multiplier.</em> <span class="eight-axes-ref-ctx">90% CI [0.5x, 5x], median ~1.5x. 3x sits at the 80th percentile.</span></li>
    <li><em>Critique C — <span class="eight-axes-glo" data-key="capture rate">capture rate</span>.</em> <span class="eight-axes-ref-ctx">Range [10%, 35%]; <span class="eight-axes-glo" data-key="EDA">EDA</span> / <span class="eight-axes-glo" data-key="hyperscalers">hyperscalers</span> ~35%, mid-stack 15-20%, commodities 5-8%.</span></li>
    <li><em>Critique D — US vs global.</em> <span class="eight-axes-ref-ctx">Hybrid: $2.6T US for US vendors, ~$16T global for foreign. Global pool ~$9.6T.</span></li>
    <li><em>Critique E — time horizon.</em> <span class="eight-axes-ref-ctx">Annual maturity, not NPV. No discount rate stated.</span></li>
  </ul>

  <p><strong>Premise (the 3x baseline)</strong></p>

  <ul>
    <li><a href="https://apps.bea.gov/scb/issues/2023/12-december/1223-digital-economy.htm"><span class="eight-axes-glo" data-key="BEA Digital Economy">BEA Digital Economy</span> Satellite Account, SCB Dec 2023</a> <span class="eight-axes-ref-ctx">— US digital economy 10.0% of GDP, $2.6T in 2022. The baseline.</span> (<a href="https://www.bea.gov/sites/default/files/2023-12/digital-economy-infographic-2022.pdf">infographic PDF</a>)</li>
    <li><a href="https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/the-economic-potential-of-generative-ai-the-next-productivity-frontier">McKinsey — “The economic potential of generative AI”</a> <span class="eight-axes-ref-ctx">— $2.6-4.4T annual gen-AI value, 63 use cases. Capture-rate endpoint #1.</span></li>
    <li><a href="https://www.bain.com/about/media-center/press-releases/2024/market-for-ai-products-and-services-could-reach-up-to--$990-billion-by-2027-finds-bain--companys-5th-annual-global-technology-report/">Bain Global Technology Report (2024)</a> <span class="eight-axes-ref-ctx">— $990B AI products and services by 2027. Capture-rate endpoint #2.</span></li>
    <li><a href="https://www.goldmansachs.com/insights/articles/generative-ai-could-raise-global-gdp-by-7-percent">Goldman Sachs — Briggs / Kodnani, “Generative AI could raise global GDP by 7%”</a> <span class="eight-axes-ref-ctx">— 7% / ~$7T global GDP uplift over 10 years. 3x cross-check.</span></li>
    <li><a href="https://hai.stanford.edu/ai-index/2025-ai-index-report/economy">Stanford AI Index 2025 — economy chapter</a> <span class="eight-axes-ref-ctx">— $252.3B 2024 corporate AI investment; $33.9B private gen-AI.</span></li>
    <li><a href="https://www.wipo.int/en/web/global-innovation-index/w/blogs/2025/global-software-spending">WIPO — global software industry $675B in 2024</a> <span class="eight-axes-ref-ctx">— software vs <span class="eight-axes-glo" data-key="BEA">BEA</span> digital ratio ~26% historical capture.</span></li>
  </ul>

  <p><strong>Per-dimension data sources</strong></p>

  <ul>
    <li><span class="eight-axes-glo" data-key="D1">D1</span>: per-vertical 5-yr total returns via <a href="https://finance.yahoo.com/">yfinance / Yahoo Finance</a>, equal-weight per <code class="language-plaintext highlighter-rouge">data/verticals/*.json</code>.</li>
    <li><span class="eight-axes-glo" data-key="D2">D2</span>: derived from <code class="language-plaintext highlighter-rouge">phase1_allocations.csv</code> (external inputs under “Premise” above).</li>
    <li><span class="eight-axes-glo" data-key="D3">D3</span>: <a href="https://siliconanalysts.com/analysis/foundry-allocation-status-q1-2026">Silicon Analysts — TSMC <span class="eight-axes-glo" data-key="CoWoS">CoWoS</span> Q1 2026</a>; <a href="https://www.mobileworldlive.com/ai-cloud/feature-can-asml-catch-up-with-a-record-e39b-backlog/">MobileWorldLive — ASML <span class="eight-axes-glo" data-key="EUV">EUV</span> €39B backlog</a>; <a href="https://www.iea.org/reports/building-the-future-transmission-grid/executive-summary">IEA — Future Transmission Grid</a>; <a href="https://eepower.com/tech-insights/transformer-supply-chain-woes-persist-as-energy-demand-grows/">eepower — <span class="eight-axes-glo" data-key="transformer">transformer</span> supply</a>; <a href="https://www.utilitydive.com/news/ge-vernova-gas-turbine-investor/807662/">Utility Dive — <span class="eight-axes-glo" data-key="GE">GE</span> Vernova 80GW gas-turbine backlog</a>; <a href="https://smrintel.com/smr-nrc-approval-tracker/"><span class="eight-axes-glo" data-key="SMR">SMR</span> Intel — NRC tracker</a>; <a href="https://www.miningvisuals.com/post/copper-mines-average-time-from-discovery-to-production-is-17-9-years">Mining Visuals — 17.9-yr copper discovery-to-production</a>; <a href="https://introl.com/blog/ai-memory-supercycle-hbm-2026">Introl — <span class="eight-axes-glo" data-key="HBM">HBM</span> 2026 supercycle</a>; <a href="https://www.carbon-direct.com/press/carbon-direct-releases-new-analysis-of-power-grid-interconnection-queues-pjm-ercot">Carbon Direct — interconnection queues</a>.</li>
    <li><span class="eight-axes-glo" data-key="D4">D4</span>: <a href="https://www.sec.gov/edgar.shtml">SEC EDGAR</a> 10-K/Q gross margins via yfinance (US); Yahoo per-ticker for non-US.</li>
    <li><span class="eight-axes-glo" data-key="D5">D5</span>: SemiAnalysis cluster reads, <a href="https://www.idtechex.com/">IDTechEx <span class="eight-axes-glo" data-key="CPO">CPO</span> 2026-2036</a>, Menlo Ventures LLM survey, Stordis UEC 1.0.</li>
    <li><span class="eight-axes-glo" data-key="D6">D6</span>: <a href="https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&amp;CIK=MSFT&amp;type=10-K">MSFT 10-K</a>; <a href="https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&amp;CIK=TSM&amp;type=10-K">TSM 10-K</a>. Capex/sales + cycle stage.</li>
    <li><span class="eight-axes-glo" data-key="D7">D7</span>: <a href="https://www.commerce.gov/news/press-releases">US Commerce <span class="eight-axes-glo" data-key="CHIPS Act">CHIPS</span> preliminary terms</a> (Intel, TSMC, Samsung, Micron, GF); <a href="https://www.bis.doc.gov/index.php/policy-guidance/advanced-computing-and-semiconductor-manufacturing">BIS Oct-2022 / Oct-2023 export controls</a>; <a href="https://www.iea.org/reports/electricity-2024">IEA Electricity 2024</a>; company IR (Linde, Coherent, Arista, Vertiv).</li>
    <li><span class="eight-axes-glo" data-key="D8">D8</span>: <a href="https://a16z.com/the-economic-case-for-generative-ai/">a16z — Economic Case for Generative AI</a>; SemiAnalysis “AI Datacenter Energy Dilemma” / “Power Crisis”; <a href="https://www.rand.org/">RAND — AI’s Power Requirements</a>.</li>
  </ul>

</div>]]></content><author><name>Ronald Luc</name></author><category term="Research" /><category term="Investing" /><category term="AI" /><category term="Semiconductors" /><category term="Research" /><summary type="html"><![CDATA[Premise ‒> 8 axes ‒> ranked picks. A second pass at scoring 22 LLM-inference supply-chain verticals.]]></summary></entry><entry><title type="html">Undervalued stock premised on LLM supply chain expansion.</title><link href="https://ronaldluc.com/research/undervalued-stock-premised-on-llm-supply-chain-expansion/" rel="alternate" type="text/html" title="Undervalued stock premised on LLM supply chain expansion." /><published>2026-05-26T09:30:00+00:00</published><updated>2026-05-26T09:30:00+00:00</updated><id>https://ronaldluc.com/research/undervalued-stock-premised-on-llm-supply-chain-expansion</id><content type="html" xml:base="https://ronaldluc.com/research/undervalued-stock-premised-on-llm-supply-chain-expansion/"><![CDATA[<div class="lis-root">


<style>.uplot, .uplot *, .uplot *::before, .uplot *::after {box-sizing: border-box;}.uplot {font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height: 1.5;width: min-content;}.u-title {text-align: center;font-size: 18px;font-weight: bold;}.u-wrap {position: relative;user-select: none;}.u-over, .u-under {position: absolute;}.u-under {overflow: hidden;}.uplot canvas {display: block;position: relative;width: 100%;height: 100%;}.u-axis {position: absolute;}.u-legend {font-size: 14px;margin: auto;text-align: center;}.u-inline {display: block;}.u-inline * {display: inline-block;}.u-inline tr {margin-right: 16px;}.u-legend th {font-weight: 600;}.u-legend th > * {vertical-align: middle;display: inline-block;}.u-legend .u-marker {width: 1em;height: 1em;margin-right: 4px;background-clip: padding-box !important;}.u-inline.u-live th::after {content: ":";vertical-align: middle;}.u-inline:not(.u-live) .u-value {display: none;}.u-series > * {padding: 4px;}.u-series th {cursor: pointer;}.u-legend .u-off > * {opacity: 0.3;}.u-select {background: rgba(0,0,0,0.07);position: absolute;pointer-events: none;}.u-cursor-x, .u-cursor-y {position: absolute;left: 0;top: 0;pointer-events: none;will-change: transform;}.u-hz .u-cursor-x, .u-vt .u-cursor-y {height: 100%;border-right: 1px dashed #607D8B;}.u-hz .u-cursor-y, .u-vt .u-cursor-x {width: 100%;border-bottom: 1px dashed #607D8B;}.u-cursor-pt {position: absolute;top: 0;left: 0;border-radius: 50%;border: 0 solid;pointer-events: none;will-change: transform;/*this has to be !important since we set inline "background" shorthand */background-clip: padding-box !important;}.u-axis.u-off, .u-select.u-off, .u-cursor-x.u-off, .u-cursor-y.u-off, .u-cursor-pt.u-off {display: none;}</style>
<style>.lis-root {
  --lis-fg:#1a1a1a; --lis-bg:#fdfdfa; --lis-muted:#666; --lis-rule:#d4d4d4;
  --lis-lag:#dff5e2; --lis-lag-d:#1f7a36; --lis-fair:#eeeeee; --lis-fair-d:#555;
  --lis-pin:#fbe2e2; --lis-pin-d:#a02323;
  color: var(--lis-fg);
  font-family: -apple-system, "Segoe UI", "Inter", Helvetica, Arial, sans-serif;
  font-size: 14px; line-height: 1.5;
}
.lis-root * { box-sizing: border-box; }
.lis-root .lis-sub { color: var(--lis-muted); font-size: 13px; margin-bottom: 8px; }
.lis-root .lis-exec p { margin: 8px 0; font-size: 14.5px; }
.lis-root .lis-exec strong { color: #1d4d8a; }
.lis-root details.lis-card { background:#f9f9f4; border: 1px solid var(--lis-rule); border-radius: 4px;
          margin: 6px 0; padding: 8px 12px; }
.lis-root details.lis-card > summary { cursor: pointer; font-weight: 600; font-size: 14px; list-style: none; }
.lis-root details.lis-card > summary::-webkit-details-marker { display: none; }
.lis-root details.lis-card > summary::before { content: "\25B6"; display: inline-block; margin-right: 8px;
                            font-size: 11px; color: var(--lis-muted);
                            transition: transform .12s ease; }
.lis-root details.lis-card[open] > summary::before { transform: rotate(90deg); }
.lis-root details.lis-card .lis-md { font-size: 13.5px; padding: 6px 4px 4px 4px; }
.lis-root details.lis-card .lis-md h1,
.lis-root details.lis-card .lis-md h2,
.lis-root details.lis-card .lis-md h3,
.lis-root details.lis-card .lis-md .lis-md-h1,
.lis-root details.lis-card .lis-md .lis-md-h2,
.lis-root details.lis-card .lis-md .lis-md-h3,
.lis-root details.lis-card .lis-md .lis-md-h4 {
  font-size: 14px; margin: 12px 0 4px 0; border: none; padding: 0;
  font-weight: 700;
}
.lis-root .lis-md .lis-md-h1 { font-size: 16px; margin: 14px 0 6px 0; font-weight: 700; }
.lis-root .lis-md .lis-md-h2 { font-size: 14.5px; margin: 12px 0 4px 0; font-weight: 700; }
.lis-root .lis-md .lis-md-h3 { font-size: 13.5px; margin: 10px 0 3px 0; font-weight: 700; }
.lis-root .lis-md .lis-md-h4 { font-size: 13px; margin: 8px 0 3px 0; font-weight: 700; }
.lis-root details.lis-card .lis-md p { margin: 6px 0; }
.lis-root details.lis-card .lis-md table { width:auto; border-collapse: collapse; font-size: 12.5px;
                    margin: 6px 0; }
.lis-root details.lis-card .lis-md table th, .lis-root details.lis-card .lis-md table td {
  border: 1px solid #ddd; padding: 3px 6px; text-align: left;
}
.lis-root details.lis-card .lis-md code { background:#eee; padding:1px 4px; border-radius:3px;
                   font-size: 12px; font-family: ui-monospace, monospace; }
.lis-root details.lis-card .lis-md pre { background:#222; color:#eee; padding: 8px; border-radius: 4px;
                  overflow:auto; font-size: 12px; }
.lis-root details.lis-card .lis-md ul { margin: 4px 0 4px 20px; }

.lis-root table.lis-sortable { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.lis-root table.lis-sortable th, .lis-root table.lis-sortable td {
  padding: 6px 8px; border-bottom: 1px solid #e8e8e8; text-align: right;
  white-space: nowrap;
}
.lis-root table.lis-sortable th:first-child, .lis-root table.lis-sortable td:first-child { text-align: left; }
.lis-root table.lis-sortable th { background:#f5f5ee; cursor: pointer; user-select: none;
                    position: sticky; top: 0; font-weight: 700; }
.lis-root table.lis-sortable th.lis-sorted-asc::after  { content:" \25B2"; font-size:10px; color:var(--lis-muted); }
.lis-root table.lis-sortable th.lis-sorted-desc::after { content:" \25BC"; font-size:10px; color:var(--lis-muted); }
.lis-root table.lis-sortable tr.lis-lag    { background: var(--lis-lag); }
.lis-root table.lis-sortable tr.lis-fair   { background: var(--lis-fair); }
.lis-root table.lis-sortable tr.lis-pin    { background: var(--lis-pin); }
.lis-root table.lis-sortable tr:hover  { filter: brightness(0.97); }
.lis-root .lis-badge { display:inline-block; padding: 2px 7px; border-radius: 3px; font-size: 10.5px;
         font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.lis-root .lis-badge.lis-lag  { background: var(--lis-lag);  color: var(--lis-lag-d);  }
.lis-root .lis-badge.lis-fair { background: var(--lis-fair); color: var(--lis-fair-d); }
.lis-root .lis-badge.lis-pin  { background: var(--lis-pin);  color: var(--lis-pin-d);  }

.lis-root .lis-mermaid-supply { background:#fff; border:1px solid var(--lis-rule); padding: 10px;
                  overflow-x: auto; overflow-y: visible; margin-bottom: 6px; }
.lis-root .lis-mermaid-supply svg { height: auto !important; max-width: 100% !important; display: block; margin: 0 auto; }
/* CRITICAL: mermaid measures node-label widths using its own default font (Trebuchet MS)
   BEFORE the page CSS applies. If the rendered font is wider (e.g. the theme's body
   font), labels overflow their auto-computed box widths and read like "AI Accelera".
   Pin the rendered foreignObject content to the same font (and size) mermaid measured. */
.lis-root .lis-mermaid-supply .nodeLabel,
.lis-root .lis-mermaid-supply foreignObject span,
.lis-root .lis-mermaid-supply foreignObject div,
.lis-root .lis-mermaid-supply foreignObject p {
  font-family: "trebuchet ms", verdana, arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: normal !important;
  line-height: 1.2 !important;
}
.lis-root .lis-supply-caption { font-size: 12.5px; color: var(--lis-muted); margin: 10px 0 4px 2px;
                  letter-spacing: 0.02em; text-transform: uppercase; font-weight: 600; }
.lis-root .lis-mermaid-research { background:#fff; border:1px solid var(--lis-rule); padding: 10px;
                    overflow: auto; }
.lis-root .lis-legend-row { font-size: 12px; color: var(--lis-muted); margin-top: 6px; }
.lis-root .lis-legend-row .lis-sw { display:inline-block; width: 12px; height: 12px; border-radius: 2px;
                  vertical-align: middle; margin-right: 4px; }

.lis-root .lis-detail-body { padding: 8px 4px 4px 4px; display: grid;
               grid-template-columns: 1fr 380px; gap: 18px; font-size: 13px; }
@media (max-width: 800px) {
  .lis-root .lis-detail-body { grid-template-columns: 1fr; }
}
.lis-root .lis-detail-body .lis-thesis { margin: 0 0 8px 0; color: #222; }
.lis-root .lis-detail-body ul { margin: 6px 0 0 0; padding: 0; list-style: none; }
.lis-root .lis-detail-body li { margin: 3px 0; }
.lis-root .lis-chip { display:inline-block; padding: 2px 8px; margin: 2px 4px 2px 0; border-radius: 12px;
        background: #f0eee5; border: 1px solid #d4d4c8; font-size: 12px; }
.lis-root .lis-chip a { color: var(--lis-fg); text-decoration: none; font-weight: 600; }
.lis-root .lis-chip .lis-cagr { color: var(--lis-muted); font-size: 11px; margin-left: 4px; }
.lis-root .lis-spark { display: block; margin: 0 0 4px 0; border: 1px solid var(--lis-rule); background:#fafafa; max-width: 100%; height: auto; }
.lis-root .lis-takeaways { margin: 8px 0 16px 0; padding-left: 22px; }
.lis-root .lis-takeaways li { margin: 4px 0; }
.lis-root .lis-kvs { color: var(--lis-muted); font-size: 11.5px; }
.lis-root .lis-note { color: var(--lis-muted); font-size: 11.5px; margin: 6px 0 0 0; }

.lis-root .lis-chart-bar { display: flex; gap: 10px; align-items: center; margin: 8px 0 10px 0; flex-wrap: wrap; }
.lis-root .lis-chart-bar button { font: inherit; padding: 5px 12px; border: 1px solid #999;
                    background: #fff; border-radius: 4px; cursor: pointer; }
.lis-root .lis-chart-bar button:hover { background: #eee; }
.lis-root .lis-chart-bar button[aria-pressed="true"] { background: #1d4d8a; color: #fff;
                                          border-color: #14365f; font-weight: 600;
                                          box-shadow: inset 0 1px 2px rgba(0,0,0,0.25); }
.lis-root .lis-chart-bar button[aria-pressed="true"]:hover { background: #245fa8; }
.lis-root .lis-chart-bar .lis-toggle-hint { color: var(--lis-muted); font-size: 12px; margin-left: 4px; }

.lis-root details.lis-detrend-meth { background: #fbfbf6; border: 1px solid var(--lis-rule);
                border-radius: 4px; padding: 10px 14px; margin: 14px 0 18px 0; }
.lis-root details.lis-detrend-meth > summary { font-weight: 700; font-size: 15px; }
.lis-root details.lis-detrend-meth .lis-md { font-size: 13.5px; }
.lis-root details.lis-detrend-meth .lis-caveat-box { background: #fff5e1; border: 1px solid #d8b06a;
                            padding: 8px 12px; border-radius: 3px; margin: 10px 0;
                            font-size: 13px; }
.lis-root details.lis-detrend-meth .lis-caveat-box strong { color: #8a5a00; }
.lis-root details.lis-detrend-meth table.lis-market-ctx { border-collapse: collapse; font-size: 12.5px;
                                  margin: 10px 0; }
.lis-root details.lis-detrend-meth table.lis-market-ctx th,
.lis-root details.lis-detrend-meth table.lis-market-ctx td {
  border: 1px solid #ddd; padding: 4px 10px; text-align: right;
}
.lis-root details.lis-detrend-meth table.lis-market-ctx th:first-child,
.lis-root details.lis-detrend-meth table.lis-market-ctx td:first-child { text-align: left; font-weight: 600; }
.lis-root details.lis-detrend-meth table.lis-market-ctx thead th { background: #efefe5; }
.lis-root .lis-bigchart-wrap { background: #fff; border: 1px solid var(--lis-rule); padding: 8px;
  max-width: 100%; width: 100%; overflow: visible; box-sizing: border-box; }
.lis-root #lis-bigchart { width: 100%; max-width: 100%; overflow: hidden; }
.lis-root #lis-bigchart .uplot { max-width: 100%; }
.lis-root .lis-table-wrap { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch;
  border: 1px solid var(--lis-rule); background: #fff; }
.lis-root .lis-table-wrap > table.lis-sortable { min-width: max-content; border: none; }
.lis-root .lis-scroll-hint { font-size: 13px; color: #6b7280; margin: 6px 0 4px 0; display: none;
  font-style: italic; }
.lis-root .lis-scroll-hint.is-visible { display: flex; align-items: center; gap: 6px; }
.lis-root .lis-scroll-hint i, .lis-root .lis-scroll-hint .arrow { color: #2563eb; font-style: normal; }

.lis-root .lis-glo { border-bottom: 1px dotted #999; cursor: help; }
.lis-root .lis-glo:hover { background: rgba(29,77,138,0.06); }
#lis-glotip {
  position: fixed; z-index: 9999;
  min-width: 320px; max-width: 420px; max-height: 60vh;
  overflow: auto; background: #fff; border: 1px solid #bbb;
  box-shadow: 0 6px 20px rgba(0,0,0,0.12); padding: 12px 14px;
  font-size: 14px; line-height: 1.45; border-radius: 4px;
  display: none; pointer-events: auto;
  color: #1a1a1a;
  font-family: -apple-system, "Segoe UI", "Inter", Helvetica, Arial, sans-serif;
}
#lis-glotip.lis-big { max-width: 600px; max-height: 400px; }
#lis-glotip h4 { margin: 0 0 4px 0; font-size: 14px; }
#lis-glotip .lis-cat { color: #666; font-size: 11px; text-transform: uppercase;
               letter-spacing: 0.05em; }
#lis-glotip .lis-expl { margin: 6px 0; font-size: 13px; color: #222; }
#lis-glotip a { color: #1d4d8a; font-weight: 600; text-decoration: none; }
#lis-glotip a:hover { text-decoration: underline; }
#lis-glotip .lis-vt-grid { display: grid; grid-template-columns: 200px 1fr;
                   gap: 4px 12px; font-size: 12px; margin-top: 6px; }
#lis-glotip .lis-vt-grid .lis-vt-name { font-weight: 600; color: #222; }
#lis-glotip .lis-vt-grid .lis-vt-tickers a { margin-right: 6px; font-weight: 500; }
#lis-glotip ul.lis-glo-tickers { margin: 4px 0 4px 0; padding: 0; list-style: none;
                         border-top: 1px solid #e4e4e4; padding-top: 6px; }
#lis-glotip ul.lis-glo-tickers li { margin: 3px 0; font-size: 12.5px; color: #222; }
#lis-glotip ul.lis-glo-tickers a { font-family: ui-monospace, monospace; font-weight: 600; }

.lis-root .lis-hover-heading { cursor: help; border-bottom: 1px dotted #999; }

/* Override Minimal-Mistakes table styles inside the report */
.lis-root .lis-detail-body p { margin: 4px 0; }

/* Scope print rules — do NOT touch site body */
@media print {
  .lis-root details.lis-card, .lis-root details.lis-detrend-meth { break-inside: avoid; }
  .lis-root .lis-glo { border-bottom: none; }
  #lis-glotip { display: none !important; }
}

/* Reproducibility section — verbatim prompts in scrollable pre blocks */
.lis-reproducibility { font-size: 13px; }
.lis-reproducibility pre {
  white-space: pre-wrap;
  background: #f9f9f9;
  padding: 12px;
  border-left: 3px solid #d4d4d4;
  max-height: 60vh;
  overflow-y: auto;
  font-family: ui-monospace, monospace;
  line-height: 1.4;
}
.lis-reproducibility h4 {
  margin-top: 18px;
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 600;
}</style>

<div id="lis-glotip"></div>

<script type="application/json" id="lis-glossary">{"NVDA":{"category":"ticker","full_name":"NVIDIA Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/NVDA","explanation":"NVIDIA is the dominant designer of GPUs used to train and serve large language models. Its CUDA software stack plus the Hopper (H100/H200) and Blackwell (B100/B200/GB200) accelerator lines power roughly 90%+ of frontier-scale AI training in 2025-26. Data-center revenue is now ~88% of company sales, almost entirely from hyperscalers, neoclouds, and frontier AI labs."},"AMD":{"category":"ticker","full_name":"Advanced Micro Devices, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMD","explanation":"AMD is the only credible merchant alternative to NVIDIA for AI accelerators with its Instinct MI300/MI325/MI350 GPU line, plus EPYC server CPUs that pair with most AI hosts. It also makes Xilinx FPGAs and embedded chips after the 2022 acquisition. Data-center is now its largest segment and the swing driver of revenue growth."},"AVGO":{"category":"ticker","full_name":"Broadcom Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AVGO","explanation":"Broadcom co-designs custom AI ASICs (XPUs) for hyperscalers \u2014 Google TPU, Meta MTIA, OpenAI custom silicon \u2014 and is the dominant supplier of high-radix AI Ethernet switch silicon (Tomahawk, Jericho) and Sienna SerDes that power most non-NVLink scale-out networks. Acquired VMware in 2023 to add infrastructure software. AI-related semis are now $20B+ annualized."},"INTC":{"category":"ticker","full_name":"Intel Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/INTC","explanation":"Intel is the historic leader in x86 server/client CPUs and is building Intel Foundry (18A/14A) as the only credible non-Asian leading-edge logic alternative to TSMC. Microsoft is a named 18A design win; Gaudi accelerators remain a distant third in AI training silicon. Margins are heavily depressed during the foundry build-out."},"TSM":{"category":"ticker","full_name":"Taiwan Semiconductor Manufacturing Company (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/TSM","explanation":"TSMC is the dominant pure-play foundry with ~70% of global foundry revenue and an effective monopoly on leading-edge N3 and N2 production used in every major AI accelerator (NVIDIA, AMD, Broadcom, Google TPU, AWS Trainium, Apple). It also runs the CoWoS advanced-packaging line that physically integrates GPU dies with HBM stacks."},"GFS":{"category":"ticker","full_name":"GlobalFoundries Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/GFS","explanation":"GlobalFoundries is a US/Singapore foundry focused on mature and specialty nodes (12LP+, 22FDX, RF SOI, photonics) \u2014 not leading-edge. Its LLM relevance is indirect: silicon photonics, power management ICs, and trailing-edge logic that surround AI accelerators. Major customer concentrations in AMD, Qualcomm, and US defense."},"UMC":{"category":"ticker","full_name":"United Microelectronics Corporation (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/UMC","explanation":"UMC is the #4 pure-play foundry, focused on 28nm and trailing-edge nodes used for analog, display drivers, and microcontrollers around AI systems. Not a leading-edge AI play but benefits from secondary demand for legacy logic in datacenter peripherals."},"ASML":{"category":"ticker","full_name":"ASML Holding N.V.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ASML","explanation":"ASML is the sole maker of EUV (extreme-ultraviolet) lithography scanners required to print sub-7nm transistors used in every AI accelerator. Each EUV tool costs ~$200M ($380M+ for High-NA), making it a single point of failure for leading-edge supply. ~50% gross margins and 2026-29 backlog effectively sold out."},"AMAT":{"category":"ticker","full_name":"Applied Materials, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMAT","explanation":"Applied Materials is the world's largest wafer-fab equipment (WFE) vendor, dominant in deposition (CVD/PVD/ALD), epi, ion implant, and metrology. Critical for HBM stacking, advanced packaging, and the high-aspect-ratio etch/deposition steps that enable 3D DRAM and gate-all-around transistors at N2."},"LRCX":{"category":"ticker","full_name":"Lam Research Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/LRCX","explanation":"Lam Research dominates wafer etch and deposition equipment, especially the high-aspect-ratio etch tools required for 3D NAND, HBM through-silicon vias, and advanced packaging. It is the most leveraged WFE name to HBM stack-count growth (HBM3E 12-Hi to HBM4 16-Hi)."},"KLAC":{"category":"ticker","full_name":"KLA Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/KLAC","explanation":"KLA holds an ~80% share of process-control and yield-management inspection/metrology equipment, the tools that find tiny defects on wafers and photomasks. Its share grows at every node because more inspection passes are needed; advanced-packaging metrology is a high-growth subsegment."},"ACLS":{"category":"ticker","full_name":"Axcelis Technologies, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ACLS","explanation":"Axcelis is a focused ion-implant specialist, especially strong in high-energy and high-current implanters used by image sensors, memory, and silicon carbide power devices. It is the smallest of the major WFE pure plays and most exposed to power-semi and memory capex."},"ENTG":{"category":"ticker","full_name":"Entegris, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ENTG","explanation":"Entegris supplies process chemicals, filtration, gas/liquid delivery, and advanced materials consumables to every leading-edge fab. Revenue scales with wafer starts, not just equipment shipments, so it captures the recurring HBM/AI logic ramp without the cyclicality of WFE."},"ONTO":{"category":"ticker","full_name":"Onto Innovation Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ONTO","explanation":"Onto Innovation is a niche metrology/inspection vendor specializing in advanced-packaging measurement \u2014 bump/pillar inspection, hybrid-bonding metrology, and panel-level lithography. Direct leverage to CoWoS, HBM, and FOPLP capacity build-outs."},"MU":{"category":"ticker","full_name":"Micron Technology, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MU","explanation":"Micron is the only US-headquartered HBM/DRAM maker. HBM3E is in volume production for NVIDIA Blackwell and AMD MI300; HBM4 sampling in 2025-26. Currently ~24% of HBM market share with goal of reaching parity with the two Korean leaders by 2027."},"FN":{"category":"ticker","full_name":"Fabrinet","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/FN","explanation":"Fabrinet is the contract optical-assembly partner to most of the merchant optics industry; it assembles the 800G/1.6T transceivers and DSP modules sold by Coherent, Lumentum, Cisco, and others. Direct pure-play exposure to AI back-end network buildouts."},"COHR":{"category":"ticker","full_name":"Coherent Corp.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/COHR","explanation":"Coherent (formerly II-VI) is a top-tier optical transceiver maker (800G/1.6T) and the leading supplier of pump lasers, ROADMs, and SiC substrates. Optical-networking is its largest segment and the main growth driver for AI cluster interconnect."},"LITE":{"category":"ticker","full_name":"Lumentum Holdings Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/LITE","explanation":"Lumentum makes lasers, indium-phosphide chips, and 800G/1.6T DR/FR transceivers used in datacenter optical links between switches and accelerator nodes. Cloud & Networking is now >70% of revenue."},"CIEN":{"category":"ticker","full_name":"Ciena Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CIEN","explanation":"Ciena is the leading long-haul/metro coherent-optical systems vendor (WaveLogic DSPs); its WaveLogic 6 lands in DCI links between AI campuses. Most exposed to inter-datacenter (DCI) AI traffic rather than intra-cluster."},"AAOI":{"category":"ticker","full_name":"Applied Optoelectronics, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AAOI","explanation":"Applied Optoelectronics makes lasers and AOC/transceiver modules; historically dominant in cable broadband but now ramping 800G AI-datacenter optics for Microsoft. High volatility, small cap."},"ALAB":{"category":"ticker","full_name":"Astera Labs, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ALAB","explanation":"Astera Labs makes 'connectivity ICs' \u2014 PCIe/CXL retimers, smart cable modules, and the Scorpio fabric switch \u2014 that link CPUs, GPUs, and memory inside AI servers. IPO'd 2024; one of the purest AI-only public plays."},"CRDO":{"category":"ticker","full_name":"Credo Technology Group Holding Ltd","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CRDO","explanation":"Credo designs Active Electrical Cables (AECs) and SerDes-based retimer chips that move signals reliably between AI server racks at 100G+ per lane. Major Microsoft and Amazon design wins; ~80% revenue concentration in a handful of hyperscaler customers."},"POET":{"category":"ticker","full_name":"POET Technologies Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/POET","explanation":"POET Technologies is a small-cap developing the Optical Interposer \u2014 a silicon-photonics platform that integrates lasers and electronic ICs in one package. Pre-revenue speculative bet on co-packaged optics (CPO) replacing pluggable transceivers."},"ANET":{"category":"ticker","full_name":"Arista Networks, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ANET","explanation":"Arista is the leading high-radix Ethernet switch vendor (7000/7800 series, Etherlink AI-fabric line) for hyperscaler datacenters. Microsoft and Meta are major customers; benefits directly from AI back-end network (Ethernet/UEC) buildouts."},"CSCO":{"category":"ticker","full_name":"Cisco Systems, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CSCO","explanation":"Cisco is the incumbent enterprise networking vendor, now pushing Silicon One (its merchant switch silicon) and Nexus HyperFabric AI-pod switches. Less leveraged to AI than Arista because enterprise/campus is its core, but a significant beneficiary of AI factory build-outs."},"HPE":{"category":"ticker","full_name":"Hewlett Packard Enterprise Co.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/HPE","explanation":"HPE sells AI-server systems (ProLiant, Cray supercomputers) and acquired Juniper Networks in 2025 to add a credible switching portfolio. Its Cray division builds liquid-cooled HPC/AI clusters for national labs and the largest enterprises."},"SMCI":{"category":"ticker","full_name":"Super Micro Computer, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/SMCI","explanation":"Supermicro builds rack-scale GPU server systems faster than HPE/Dell, often first to market with each NVIDIA generation. Direct-liquid-cooled (DLC) Blackwell racks are now ~70% of its order book; ongoing accounting/audit issues created 2024-25 volatility."},"MRVL":{"category":"ticker","full_name":"Marvell Technology, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MRVL","explanation":"Marvell designs custom AI accelerator ASICs (Trainium2 with AWS, Maia helper silicon with Microsoft, Axion with Google) plus PAM4 DSPs that go inside every 800G/1.6T optical transceiver. Data-center is >70% of revenue."},"SNPS":{"category":"ticker","full_name":"Synopsys, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/SNPS","explanation":"Synopsys is the #1 EDA vendor (~31% share) \u2014 the software used to design every chip \u2014 plus DesignWare silicon IP. The July 2025 Ansys acquisition added multi-physics simulation, important for advanced-packaging thermal/mechanical co-design. Recurring-revenue model insulated from semi cyclicality."},"CDNS":{"category":"ticker","full_name":"Cadence Design Systems, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CDNS","explanation":"Cadence is the #2 EDA vendor (~30% share), known for digital implementation (Innovus), Palladium emulation/Protium prototyping (critical for AI chip verification), and the Tensilica DSP IP. AI-driven verification load is a structural tailwind."},"ARM":{"category":"ticker","full_name":"Arm Holdings plc (ADR)","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ARM","explanation":"Arm Holdings licenses the CPU architecture (Neoverse for servers, Cortex for everything else) that powers Apple silicon, AWS Graviton, NVIDIA Grace, and most mobile SoCs. It collects per-chip royalties so it rides the AI volume curve without semi-cycle capex risk."},"MSFT":{"category":"ticker","full_name":"Microsoft Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MSFT","explanation":"Microsoft is the #2 hyperscaler (Azure) and the largest single LLM-inference operator via its OpenAI partnership and Azure AI Foundry. AI annualized run rate ~$37B (Q2 FY26); also designs its own Maia AI accelerator and Cobalt Arm CPU."},"GOOGL":{"category":"ticker","full_name":"Alphabet Inc. (Class A)","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/GOOGL","explanation":"Alphabet runs Google Cloud (#3 hyperscaler) and is the only player with a fully vertically integrated AI stack: in-house TPU accelerators (designed with Broadcom), Gemini foundation models, and an inference cloud. ~$155B RPO backlog at Q4 2025."},"AMZN":{"category":"ticker","full_name":"Amazon.com, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMZN","explanation":"Amazon runs AWS, the #1 cloud at ~$142B annualized. Inferentia (inference) and Trainium (training) are its in-house accelerators co-designed with Annapurna/Marvell. Heavy spender on Anthropic and on Project Rainier \u2014 multi-GW Trainium clusters."},"META":{"category":"ticker","full_name":"Meta Platforms, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/META","explanation":"Meta is the largest non-cloud AI capex spender, training Llama models on multi-GW campuses (Hyperion, Prometheus). MTIA is its custom inference ASIC co-designed with Broadcom. Capex guided to $60-65B in 2025, mostly AI."},"ORCL":{"category":"ticker","full_name":"Oracle Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ORCL","explanation":"Oracle is a tier-2 hyperscaler (OCI) that has signed unusually large multi-year AI training deals \u2014 most notably the September 2025 ~$300B OpenAI contract that lifted RPO above $450B. Highly leveraged to AI capex via long-duration take-or-pay contracts."},"BABA":{"category":"ticker","full_name":"Alibaba Group Holding Ltd (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/BABA","explanation":"Alibaba runs Aliyun, China's largest cloud, and develops Qwen open-weight LLMs. Domestic AI inference plus Hanguang custom ASIC (T-Head). Subject to US semi-export restrictions limiting access to NVIDIA H200/Blackwell."},"CRWV":{"category":"ticker","full_name":"CoreWeave, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CRWV","explanation":"CoreWeave is the largest GPU-only neocloud, pioneer of the 'AI infrastructure REIT' model: long-term take-or-pay GPU rental contracts financed via debt against NVIDIA collateral. IPO'd March 2025. Microsoft, NVIDIA, and OpenAI are anchor customers."},"NBIS":{"category":"ticker","full_name":"Nebius Group N.V.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/NBIS","explanation":"Nebius is the European GPU neocloud spun out of Yandex's international business in 2024. Pure-play AI infrastructure provider with NVIDIA Hopper/Blackwell capacity in Finland, France, US. Smaller and earlier-stage than CoreWeave."},"VNET":{"category":"ticker","full_name":"VNET Group, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/VNET","explanation":"VNET (formerly 21Vianet) is a Chinese carrier-neutral colocation operator scaling wholesale AI datacenter capacity for Tencent and ByteDance. Listed in the US despite operations being entirely in China."},"GDS":{"category":"ticker","full_name":"GDS Holdings Limited (ADR)","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/GDS","explanation":"GDS is China's largest carrier-neutral datacenter operator. Spun off DayOne in 2024 for its international (SEA + Hong Kong) AI datacenter footprint. Tier-1 Chinese cloud and ByteDance are anchor customers."},"EQIX":{"category":"ticker","full_name":"Equinix, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/EQIX","explanation":"Equinix is the global retail colocation and interconnection leader with 270+ IBX facilities. The xScale joint venture and AI Solutions retail product target hyperscale AI workloads. Slower AI growth than DLR due to retail mix."},"DLR":{"category":"ticker","full_name":"Digital Realty Trust, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/DLR","explanation":"Digital Realty is the prototypical wholesale and hyperscale datacenter REIT \u2014 the landlord that builds shells and powered shells for hyperscaler AI training clusters. ~3 GW IT capacity, more leveraged to AI than Equinix."},"IRM":{"category":"ticker","full_name":"Iron Mountain Incorporated","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/IRM","explanation":"Iron Mountain is the records-storage incumbent now scaling Iron Mountain Data Centers (IMDC) as an AI-adjacent growth vehicle. Smaller but fastest-growing datacenter REIT; ~$1B+ AI-linked development pipeline."},"AJBU.SI":{"category":"ticker","full_name":"Keppel DC REIT","exchange":"SGX (Singapore Exchange)","yahoo_url":"https://finance.yahoo.com/quote/AJBU.SI","explanation":"Keppel DC REIT is the largest pure-play Asian datacenter REIT, listed in Singapore. ~25 facilities across Asia and Europe; benefits from Southeast Asia AI inference demand and sovereign-cloud build-outs."},"NVT":{"category":"ticker","full_name":"nVent Electric plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/NVT","explanation":"nVent (spin from Pentair) is a leading provider of liquid-cooling distribution units (CDUs), bus bars, and electrical enclosures for AI racks. Acquired Trachte in 2024 to add modular enclosures. Datacenter is the fastest-growing end-market."},"VRT":{"category":"ticker","full_name":"Vertiv Holdings Co","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/VRT","explanation":"Vertiv is the broadest pure-play AI thermal-management vendor: CRAH/CRAC, chillers, coolant distribution units (CDUs), rear-door heat exchangers, and immersion cooling. Acquired PurgeRite (Dec 2025) and CoolTera (2023). Closest public name to an 'AI cooling pure play'."},"MOD":{"category":"ticker","full_name":"Modine Manufacturing Company","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/MOD","explanation":"Modine bought Airedale chillers in 2023 and now sells TurboChill air-cooled chillers, 1 MW CDUs, and immersion-cooling tanks. Data-center is now ~25% of sales and the highest-margin segment."},"CARR":{"category":"ticker","full_name":"Carrier Global Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CARR","explanation":"Carrier is the legacy HVAC OEM that has pivoted hard into data-center cooling (Carrier Quantum Leap). Smaller AI share than Vertiv/Modine but benefits from broad chiller and air-handling refresh in datacenters."},"TT":{"category":"ticker","full_name":"Trane Technologies plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/TT","explanation":"Trane is a chiller and air-handling specialist with significant data-center exposure via its commercial HVAC business. Less pure-play than Vertiv but benefits from the mega-datacenter cooling capex cycle."},"JCI":{"category":"ticker","full_name":"Johnson Controls International plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/JCI","explanation":"Johnson Controls is a building-controls and HVAC conglomerate; Silent-Aire (acquired 2021) made it the leading modular cooling provider to hyperscaler campuses (Microsoft, AWS). Sold its residential HVAC business in 2024 to focus on commercial/datacenter."},"GNRC":{"category":"ticker","full_name":"Generac Holdings Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/GNRC","explanation":"Generac is the leading US residential standby-generator maker, expanding into Industrial natural-gas gensets and BESS for behind-the-meter AI datacenter power. Data-center is small but a fast-growing call option."},"ETN":{"category":"ticker","full_name":"Eaton Corporation plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ETN","explanation":"Eaton is the global #1 in datacenter electrical infrastructure: switchgear, busways, UPS, PDUs, transformers. Data-center + Distributed IT was ~21% of FY25 sales with Q4 orders up ~200%. Most-leveraged pure-play to AI campus electrification."},"SU.PA":{"category":"ticker","full_name":"Schneider Electric SE","exchange":"Euronext Paris","yahoo_url":"https://finance.yahoo.com/quote/SU.PA","explanation":"Schneider Electric is co-leader with Eaton in datacenter power management \u2014 UPS, PDUs, EcoStruxure software, prefab modular DCs. Data center & networks was ~30% of orders in FY25, the single largest end-market."},"ABBNY":{"category":"ticker","full_name":"ABB Ltd (ADR)","exchange":"OTC US (NYSE)","yahoo_url":"https://finance.yahoo.com/quote/ABBNY","explanation":"ABB is a Swiss-Swedish electrification, robotics, and motion specialist; HiPerGuard medium-voltage UPS and Smissline busway target AI datacenters. Heavy industrial automation cushion makes it less AI-pure than ETN/SU.PA."},"HUBB":{"category":"ticker","full_name":"Hubbell Incorporated","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/HUBB","explanation":"Hubbell makes electrical products (transformers, conduit, lighting) and grid-modernization gear (meters, capacitors). Power-Systems segment ramped on transmission and substation orders driven by datacenter load growth."},"POWL":{"category":"ticker","full_name":"Powell Industries, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/POWL","explanation":"Powell Industries is a small-cap maker of custom medium-voltage switchgear and packaged power systems \u2014 directly leveraged to AI datacenter and oil & gas substation construction. Massive multiple expansion on AI-power thesis since 2023."},"ROK":{"category":"ticker","full_name":"Rockwell Automation, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ROK","explanation":"Rockwell is the US leader in factory automation (PLCs, drives, SCADA) \u2014 not a direct AI play, included as an electrification and reshoring proxy. AI-datacenter exposure is indirect via construction automation."},"GEV":{"category":"ticker","full_name":"GE Vernova Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/GEV","explanation":"GE Vernova (spun from GE in April 2024) is the #1 heavy-duty gas turbine OEM (7HA/9HA F- and H-class) plus aeroderivatives (LM2500/6000/9000). 80 GW gas turbine backlog into 2029; named supplier to Crusoe, Chevron/Engine No.1, and Microsoft AI campuses."},"ENR.DE":{"category":"ticker","full_name":"Siemens Energy AG","exchange":"Xetra (Frankfurt)","yahoo_url":"https://finance.yahoo.com/quote/ENR.DE","explanation":"Siemens Energy is the #2 heavy-duty gas turbine OEM (SGT5/SGT6 F/H-class) plus aeroderivative SGT-A (formerly Rolls-Royce). Gas-services parts of book sold out into 2030; Siemens Gamesa wind unit a long-running drag now turning."},"SIEGY":{"category":"ticker","full_name":"Siemens AG (ADR)","exchange":"OTC US","yahoo_url":"https://finance.yahoo.com/quote/SIEGY","explanation":"Siemens AG is the German industrial conglomerate (digital industries, smart infrastructure, mobility) \u2014 not to be confused with separately listed Siemens Energy. Indirect AI exposure via factory automation and data-center building technology."},"7011.T":{"category":"ticker","full_name":"Mitsubishi Heavy Industries, Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7011.T","explanation":"Mitsubishi Heavy Industries (MHI) is the #3 global heavy-duty gas turbine OEM (M501JAC/M701JAC) and a major nuclear plant builder. Highest TIT (turbine inlet temperature) ratings among the big three; significant Asian datacenter exposure."},"HPS-A.TO":{"category":"ticker","full_name":"Hammond Power Solutions Inc.","exchange":"Toronto Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/HPS-A.TO","explanation":"Hammond Power Solutions is a Canadian dry-type and cast-resin transformer specialist \u2014 the #1 North American merchant transformer pure-play. Direct beneficiary of the transformer shortage caused by datacenter and grid build-outs."},"MTRS.ST":{"category":"ticker","full_name":"Munters Group AB","exchange":"Nasdaq Stockholm","yahoo_url":"https://finance.yahoo.com/quote/MTRS.ST","explanation":"Munters is a Swedish specialist in evaporative cooling and air treatment. Data-center cooling (FoodTech and DataCenter segments) is the highest-growth driver as hyperscalers adopt adiabatic/indirect-evaporative AHUs."},"6501.T":{"category":"ticker","full_name":"Hitachi, Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/6501.T","explanation":"Hitachi is a Japanese industrial conglomerate; Hitachi Energy (formerly ABB Power Grids, acquired 2020) is the world's #1 grid transformer and HVDC equipment maker \u2014 the most-constrained capacity in the global energy supply chain."},"CEG":{"category":"ticker","full_name":"Constellation Energy Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/CEG","explanation":"Constellation Energy is the largest US nuclear fleet operator (~22 GW). The September 2024 deal to restart Three Mile Island Unit 1 for Microsoft AI offtake made it the poster child for nuclear-for-AI PPAs. Highly leveraged to merchant power prices and PPA premiums."},"VST":{"category":"ticker","full_name":"Vistra Corp.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/VST","explanation":"Vistra is a Texas-anchored merchant generator with nuclear (Comanche Peak), coal, gas, and a growing battery fleet. Acquired Energy Harbor in 2024 to add 4 GW of nuclear. Massive multiple expansion on AI offtake thesis."},"TLN":{"category":"ticker","full_name":"Talen Energy Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/TLN","explanation":"Talen Energy is the operator of the Susquehanna nuclear plant in PA. In March 2024 it sold the adjacent Cumulus AI datacenter campus to AWS with a behind-the-meter PPA \u2014 the first hyperscaler-nuclear co-location deal. Re-emerged from Chapter 11 in 2023."},"NRG":{"category":"ticker","full_name":"NRG Energy, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/NRG","explanation":"NRG Energy is a Texas-centric merchant power and retail electricity provider. Less nuclear exposure than VST/CEG; benefits from ERCOT load growth from Texas AI datacenters."},"AEP":{"category":"ticker","full_name":"American Electric Power Company, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AEP","explanation":"AEP is one of the largest US regulated electric utilities, serving 11 states across PJM and SPP. Most disclosed datacenter load-growth pipeline of any utility (~20 GW); central to PJM transmission queue politics."},"DUK":{"category":"ticker","full_name":"Duke Energy Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/DUK","explanation":"Duke Energy is a large regulated utility (NC, SC, FL, IN) with significant nuclear capacity and surging data-center load in the Carolinas \u2014 Google, Microsoft, Amazon campuses. Major capex plan for new gas + nuclear."},"D":{"category":"ticker","full_name":"Dominion Energy, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/D","explanation":"Dominion Energy serves Virginia, where ~70% of global internet traffic transits and 'Data Center Alley' (Loudoun County) sits. Most concentrated single-state AI datacenter exposure; constrained by transmission interconnect queue."},"PEG":{"category":"ticker","full_name":"Public Service Enterprise Group Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PEG","explanation":"PSEG is a New Jersey-anchored utility with nuclear (Salem/Hope Creek) exposure and a heavily regulated rate-based capex plan. Less direct datacenter load growth than D/AEP, but a high-quality nuclear yield play."},"BWXT":{"category":"ticker","full_name":"BWX Technologies, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/BWXT","explanation":"BWX Technologies makes nuclear reactor components (US Navy submarines/carriers, large-reactor steam generators) and is the prime contractor for HALEU fuel production and SMR pressure vessels. Cornerstone US nuclear industrial base."},"SMR":{"category":"concept","full_name":"Small Modular Reactor","explanation":"Compact nuclear reactors (<300 MW) designed to be factory-built in modules and shipped to site, instead of stick-built like traditional plants. Targeting hyperscaler behind-the-meter offtake. NuScale, Oklo, BWXT, X-energy, Holtec, Rolls-Royce SMR are the leading designs."},"OKLO":{"category":"ticker","full_name":"Oklo Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/OKLO","explanation":"Oklo is a Sam Altman-chaired advanced-reactor startup developing the 75 MW Aurora fast-spectrum SMR fueled by HALEU. Pre-revenue, no commercial reactor yet; SPAC-listed 2024 and trades as the most speculative pure-play AI-nuclear name."},"LEU":{"category":"ticker","full_name":"Centrus Energy Corp.","exchange":"NYSE American","yahoo_url":"https://finance.yahoo.com/quote/LEU","explanation":"Centrus Energy is the only US-licensed HALEU (High-Assay Low-Enriched Uranium) producer; HALEU is the fuel SMRs need but cannot easily get because Russia previously dominated supply. Tiny pure-play option on US nuclear supply-chain reshoring."},"CCJ":{"category":"ticker","full_name":"Cameco Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CCJ","explanation":"Cameco is the largest publicly traded uranium miner (Cigar Lake, McArthur River) and co-owns Westinghouse (with Brookfield) which is the dominant Western large-reactor designer/services firm. Largest non-state uranium player."},"UUUU":{"category":"ticker","full_name":"Energy Fuels Inc.","exchange":"NYSE American","yahoo_url":"https://finance.yahoo.com/quote/UUUU","explanation":"Energy Fuels operates the only conventional uranium mill in the US (White Mesa, Utah) plus heavy-mineral-sand rare-earth processing. Tiny diversified bet on US uranium + REE supply-chain reshoring."},"MP":{"category":"ticker","full_name":"MP Materials Corp.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/MP","explanation":"MP Materials owns Mountain Pass \u2014 the only operating US rare-earth mine \u2014 and is vertically integrating into NdPr separation and magnet manufacturing in Texas. Strategic supplier for permanent magnets used in datacenter motors, wind, EVs."},"LYC.AX":{"category":"ticker","full_name":"Lynas Rare Earths Ltd","exchange":"ASX (Australian Securities Exchange)","yahoo_url":"https://finance.yahoo.com/quote/LYC.AX","explanation":"Lynas is the largest ex-China rare-earth producer \u2014 mining at Mt Weld (WA) and processing in Malaysia, with a new US DoD-funded heavy-RE plant in Texas. Pure-play Western alternative to Chinese REE dominance."},"FCX":{"category":"ticker","full_name":"Freeport-McMoRan Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/FCX","explanation":"Freeport-McMoRan is the largest publicly traded US-listed copper major (~4.2 Bln lbs Cu in 2025) with anchor operations at Grasberg (Indonesia) and Arizona. Direct beneficiary of AI-datacenter and grid copper-intensity build-out."},"SCCO":{"category":"ticker","full_name":"Southern Copper Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/SCCO","explanation":"Southern Copper is a Grupo Mexico subsidiary with the lowest-cost integrated copper production in the world (Peru, Mexico, ~1.0 Mt Cu/yr). Highest copper-price leverage among the listed majors."},"TECK":{"category":"ticker","full_name":"Teck Resources Limited","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/TECK","explanation":"Teck Resources became a pure-play copper company after selling its coal business to Glencore in 2024. Key growth: QB2 in Chile and Highland Valley in Canada. Often discussed as M&A target by larger miners."},"BHP":{"category":"company","full_name":"BHP Group Limited","explanation":"World's largest diversified miner. See ticker BHP."},"IVN.TO":{"category":"ticker","full_name":"Ivanhoe Mines Ltd.","exchange":"Toronto Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/IVN.TO","explanation":"Ivanhoe Mines is the operator of Kamoa-Kakula in the DRC, one of the highest-grade large copper mines in the world. Heavy political-risk discount but the most-leveraged growth name on rising copper demand."},"PWR":{"category":"ticker","full_name":"Quanta Services, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PWR","explanation":"Quanta Services is the largest US electric-transmission and renewable-construction contractor \u2014 the labor that builds the substations, transmission lines, and gen-tie lines for datacenter campuses. Multi-year backlog at all-time highs."},"MYRG":{"category":"ticker","full_name":"MYR Group Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MYRG","explanation":"MYR Group is a smaller specialty T&D construction contractor focused on substations, transmission, and commercial/industrial electrical work. Pure-play on US grid build-out for AI load growth."},"PRIM":{"category":"ticker","full_name":"Primoris Services Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PRIM","explanation":"Primoris Services is a diversified utility, energy, and renewables construction firm; data-center adjacent through transmission, solar/storage, and gas-pipeline work for hyperscalers."},"CAT":{"category":"ticker","full_name":"Caterpillar Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CAT","explanation":"Caterpillar makes the diesel and natural-gas gensets, switchgear, and earthmoving equipment used to build and back up AI datacenters. Solar Turbines subsidiary supplies aeroderivative gas turbines (15-22 MW class) for behind-the-meter power."},"CMI":{"category":"ticker","full_name":"Cummins Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/CMI","explanation":"Cummins is the #2 diesel/gas genset OEM behind Caterpillar; Power Generation segment is sold out into 2026 from hyperscaler standby and behind-the-meter orders. Accelera subsidiary covers green-hydrogen and electrolyzer work."},"BE":{"category":"ticker","full_name":"Bloom Energy Corporation","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/BE","explanation":"Bloom Energy makes solid-oxide fuel cells (SOFC) used as behind-the-meter on-site power for datacenters when grid interconnect is slow. AEP and AWS are named customers. Loss-making but cash-flow positive on aftermarket service."},"LIN":{"category":"ticker","full_name":"Linde plc","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/LIN","explanation":"Linde is the world's largest industrial-gas supplier. Most-direct AI-fab exposure of any gas major via on-site bulk N2/O2/H2 plants at TSMC Arizona, Samsung Texas, Intel Ohio. Long-duration take-or-pay contracts behind every fab build."},"APD":{"category":"ticker","full_name":"Air Products and Chemicals, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/APD","explanation":"Air Products is the #3 industrial-gas major, heavy in hydrogen and helium. Similar fab-gas exposure to Linde but smaller share of leading-edge logic/HBM sites; Mantle Ridge activist pressure (2024-25) to refocus capital."},"AIQUY":{"category":"ticker","full_name":"Air Liquide S.A. (ADR)","exchange":"OTC US","yahoo_url":"https://finance.yahoo.com/quote/AIQUY","explanation":"Air Liquide is the French #2 global industrial-gas major with leading position in Europe and Asia electronics; supplies most leading-edge fabs in Taiwan, Korea, and the EU. ADR of the Euronext Paris primary listing."},"AWK":{"category":"ticker","full_name":"American Water Works Company, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/AWK","explanation":"American Water is the largest US regulated water utility. Datacenter water consumption (evaporative cooling, fab UPW) is a growing political and rate-case driver, especially in Arizona, Virginia, Texas."},"WTRG":{"category":"ticker","full_name":"Essential Utilities, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/WTRG","explanation":"Essential Utilities is a regulated water and natural-gas utility (formerly Aqua America). Smaller than AWK but similar exposure to datacenter water demand in Pennsylvania, North Carolina, Ohio."},"XYL":{"category":"ticker","full_name":"Xylem Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/XYL","explanation":"Xylem makes pumps, treatment systems, and analytics for water/wastewater. Datacenter cooling-tower make-up water and UPW pre-treatment are growing niche markets. Acquired Evoqua (2023) to deepen industrial water position."},"PNR":{"category":"ticker","full_name":"Pentair plc","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/PNR","explanation":"Pentair is a residential/commercial water-treatment and pool-equipment maker. Smallest datacenter water exposure of the four water names tracked; included as a sector proxy."},"MPWR":{"category":"ticker","full_name":"Monolithic Power Systems, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MPWR","explanation":"Monolithic Power Systems is the merchant leader in vertical-power-delivery and 48V VRMs that sit next to GPUs and CPUs on every AI server board. Historically the dominant NVIDIA on-board power partner; recently lost some share to Infineon."},"ADI":{"category":"ticker","full_name":"Analog Devices, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ADI","explanation":"Analog Devices is a top-tier analog/mixed-signal IC supplier \u2014 power, signal chain, isolation. AI exposure is via power management for servers, optical-module DSPs, and BMC/sensor ICs in datacenter infrastructure."},"TXN":{"category":"ticker","full_name":"Texas Instruments Incorporated","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/TXN","explanation":"Texas Instruments is the world's largest analog IC maker by units; power management, embedded processing, and signal chain. Indirect AI exposure: power-stage ICs, optical DSP companions, automotive-server power."},"ON":{"category":"ticker","full_name":"ON Semiconductor Corp.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/ON","explanation":"onsemi makes silicon carbide (SiC) power modules, image sensors, and power management ICs. EV slowdown weighed on 2024-25, but AI-datacenter SiC for 48V/HVDC rectifiers is a growing tailwind."},"POWI":{"category":"ticker","full_name":"Power Integrations, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/POWI","explanation":"Power Integrations makes high-voltage power-conversion ICs (PowiGaN and SiC gate drivers). Niche but the cleanest GaN/SiC IP play; benefits from datacenter PSU efficiency requirements rising past 96%."},"VICR":{"category":"ticker","full_name":"Vicor Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/VICR","explanation":"Vicor designs and makes factorized-power-architecture modules (48V-to-PoL) used inside NVIDIA HGX baseboards. Small but the only public pure-play on the move to 48V vertical-power delivery for AI accelerators."},"NVTS":{"category":"ticker","full_name":"Navitas Semiconductor Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/NVTS","explanation":"Navitas Semiconductor is a fabless GaN/SiC power-IC startup; supplies GaNFast monolithic GaN ICs for AI datacenter PSUs and chargers. Tiny revenue, big multiple \u2014 speculative bet on GaN inflection."},"IFX.DE":{"category":"ticker","full_name":"Infineon Technologies AG","exchange":"Xetra (Frankfurt)","yahoo_url":"https://finance.yahoo.com/quote/IFX.DE","explanation":"Infineon Technologies is the world's largest power-semi supplier. OptiMOS and CoolGaN/CoolSiC product families feed AI server VRMs and PSUs. Took NVIDIA on-board VRM share from MPWR in 2024-25."},"AMKR":{"category":"ticker","full_name":"Amkor Technology, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/AMKR","explanation":"Amkor is the #2 OSAT (outsourced assembly and test). Flip-chip BGA and SiP for AI accelerators; building a TSMC-aligned advanced-packaging campus in Arizona. Direct CoWoS/HBM tailwind."},"ASX":{"category":"ticker","full_name":"ASE Technology Holding Co. Ltd (ADR)","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/ASX","explanation":"ASE Technology is the world's largest OSAT (assembly + test), parent of ASE and SPIL. LEAP advanced-packaging segment plus CoWoS-adjacent ATM (assembly/test/materials) services for AI accelerators."},"3037.TW":{"category":"ticker","full_name":"Unimicron Technology Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/3037.TW","explanation":"Unimicron is the leading ABF / FC-BGA substrate supplier for AI GPUs and CPUs, including NVIDIA and AMD packages plus CoWoS interposer carriers. Direct beneficiary of every CoWoS wafer."},"3189.TW":{"category":"ticker","full_name":"Kinsus Interconnect Technology Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/3189.TW","explanation":"Kinsus is a Taiwanese FC-BGA / ABF substrate maker (Pegatron-affiliated). Smaller than Unimicron but expanding AI capacity; supplies Intel, AMD, and various AI ASIC platforms."},"8046.TW":{"category":"ticker","full_name":"Nan Ya PCB Corporation","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/8046.TW","explanation":"Nan Ya PCB (Formosa Plastics Group) is the #3 Taiwanese ABF substrate supplier plus a top maker of multi-layer PCBs (HDI, HLC). Big exposure to NVIDIA AI motherboards and CoWoS substrate ramp."},"2344.TW":{"category":"ticker","full_name":"Winbond Electronics Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2344.TW","explanation":"Winbond Electronics is a Taiwanese specialty DRAM and NOR/NAND flash maker. Custom DRAM (CUBE) for AI peripherals; no HBM presence. Smaller and less AI-leveraged than the big-three DRAM majors."},"2408.TW":{"category":"ticker","full_name":"Nanya Technology Corp.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2408.TW","explanation":"Nanya Technology is a Taiwanese commodity DDR4/DDR5 DRAM maker with no HBM exposure. Used in this study as a proxy for non-AI DRAM pricing."},"2449.TW":{"category":"ticker","full_name":"King Yuan Electronics Co., Ltd.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2449.TW","explanation":"King Yuan Electronics (KYEC) is a Taiwanese back-end test specialist for HBM/CoWoS and AI ASICs. Test capacity, not assembly \u2014 a niche but constrained step in AI accelerator production."},"2454.TW":{"category":"ticker","full_name":"MediaTek Inc.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2454.TW","explanation":"MediaTek is a Taiwanese fabless SoC giant (mobile, Wi-Fi, smart-edge). Designing AI accelerator ASICs for Google TPU partner-of-record program and edge-AI inference for automotive and CPE."},"6147.TWO":{"category":"ticker","full_name":"Chipbond Technology Corporation","exchange":"Taipei Exchange (TPEx)","yahoo_url":"https://finance.yahoo.com/quote/6147.TWO","explanation":"Chipbond is a Taiwanese gold-bump and COF (chip-on-film) back-end specialist for driver ICs and certain AI packaging steps. Niche but exposed to advanced-packaging volume growth."},"6239.TW":{"category":"ticker","full_name":"Powertech Technology Inc.","exchange":"Taiwan Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/6239.TW","explanation":"Powertech is a Taiwanese OSAT specializing in memory test, packaging, and DRAM/Flash module assembly. HBM test capacity is a growing differentiator."},"000660.KS":{"category":"ticker","full_name":"SK Hynix Inc.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/000660.KS","explanation":"SK Hynix is the #1 HBM supplier (~57% share in Q3 2025) and the lead NVIDIA HBM3E partner. Korean leader in DRAM technology and now the highest-margin memory maker in history thanks to AI-driven HBM mix."},"005930.KS":{"category":"ticker","full_name":"Samsung Electronics Co., Ltd.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/005930.KS","explanation":"Samsung Electronics is the world's largest memory maker (#1 DRAM and NAND) but lost the HBM lead to SK Hynix in 2023-25; now qualifying HBM3E 12-Hi for NVIDIA. Also runs Samsung Foundry, the #2 logic foundry (3nm GAA)."},"009150.KS":{"category":"ticker","full_name":"Samsung Electro-Mechanics Co., Ltd.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/009150.KS","explanation":"Samsung Electro-Mechanics (SEMCO) makes FC-BGA substrates, MLCCs, and camera modules. Substrate business is a direct beneficiary of AI accelerator package build-out alongside Ibiden and Unimicron."},"267260.KS":{"category":"ticker","full_name":"HD Hyundai Electric Co., Ltd.","exchange":"KOSPI (Korea Exchange)","yahoo_url":"https://finance.yahoo.com/quote/267260.KS","explanation":"HD Hyundai Electric is a Korean power transformer manufacturer (formerly Hyundai Heavy's electric division), one of the few firms with available capacity for US export of large transformers needed by AI datacenters."},"2802.T":{"category":"ticker","full_name":"Ajinomoto Co., Inc.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/2802.T","explanation":"Ajinomoto is the Japanese MSG maker famous for being the sole-source supplier of ABF (Ajinomoto Build-up Film), the dielectric film inside every advanced FC-BGA substrate. The 'Fine-Techno' electronic-materials segment is a hidden monopoly on AI packaging."},"4062.T":{"category":"ticker","full_name":"Ibiden Co., Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/4062.T","explanation":"Ibiden is the dominant FC-BGA / ABF substrate supplier (~70-80% share of leading-edge AI substrates) for NVIDIA and Intel. Sold-out substrate capacity through 2027 per Oct-2025 analyst day."},"4063.T":{"category":"ticker","full_name":"Shin-Etsu Chemical Co., Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/4063.T","explanation":"Shin-Etsu Chemical is the world's #1 supplier of 300mm silicon wafers and the #1 photoresist maker; also dominant in PVC, semiconductor cleaning chemicals, and rare-earth magnets. Critical upstream supplier to every fab."},"6920.T":{"category":"ticker","full_name":"Lasertec Corporation","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/6920.T","explanation":"Lasertec has an effective monopoly on EUV photomask inspection equipment (ACTIS-A2/A1) \u2014 every EUV mask shop must buy from it. The pickiest tool in the EUV food chain; near-100% gross margins, lumpy revenue."},"7731.T":{"category":"ticker","full_name":"Nikon Corporation","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7731.T","explanation":"Nikon is a Japanese optics maker, historically #2 in ArF immersion lithography behind ASML. Lost EUV race; today supplies trailing-edge DUV scanners plus mask metrology and cameras."},"7735.T":{"category":"ticker","full_name":"SCREEN Holdings Co., Ltd.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7735.T","explanation":"SCREEN Holdings is the world's largest supplier of single-wafer cleaning equipment, plus thermal-process and inspection tools. ~70% global share of wet-cleaning is a recurring tailwind from every leading-edge wafer start."},"7751.T":{"category":"ticker","full_name":"Canon Inc.","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/7751.T","explanation":"Canon is a Japanese optics and printer giant; in semis, supplies KrF/ArF DUV scanners and the FPA-1200NZ2C nanoimprint lithography (NIL) tool used by Kioxia for 3D NAND \u2014 a long-shot EUV alternative."},"8035.T":{"category":"ticker","full_name":"Tokyo Electron Limited (TEL)","exchange":"Tokyo Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/8035.T","explanation":"Tokyo Electron (TEL) is the world's #3 WFE vendor after AMAT/LRCX. Leader in track (resist coating), thermal CVD, clean, and dry-etch tools. Indispensable for every leading-edge fab; major EUV-resist co-development partner with ASML."},"ATS.VI":{"category":"ticker","full_name":"AT&S Austria Technologie & Systemtechnik AG","exchange":"Vienna Stock Exchange","yahoo_url":"https://finance.yahoo.com/quote/ATS.VI","explanation":"AT&S is the European leader in IC substrates (ABF and FC-BGA), building an Intel-co-funded site in Leoben and a Malaysia ramp. Smaller-share #4 after Ibiden/Unimicron/Semco; heavy capex drag during ramp."},"NOW":{"category":"ticker","full_name":"ServiceNow, Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/NOW","explanation":"ServiceNow is the leading enterprise-workflow SaaS platform (IT, HR, ITSM). 'Now Assist' agentic AI features and Now Platform AI Agents are early monetization layers for enterprise LLM inference."},"DDOG":{"category":"ticker","full_name":"Datadog, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/DDOG","explanation":"Datadog is the leading cloud-observability platform; AI-monitoring products (LLM Observability) are an emerging revenue lever. Customer concentration in cloud-native AI-startup spenders makes it a sensitivity proxy for AI capex."},"SNOW":{"category":"ticker","full_name":"Snowflake Inc.","exchange":"NYSE","yahoo_url":"https://finance.yahoo.com/quote/SNOW","explanation":"Snowflake is a cloud data-warehouse platform pushing AI Data Cloud with Cortex (LLM inference inside the warehouse) and Polaris (open table format). Consumption pricing exposes it directly to AI-query volume."},"MDB":{"category":"ticker","full_name":"MongoDB, Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/MDB","explanation":"MongoDB is the leading document database; Atlas Vector Search and Voyage AI (acquired 2024) push it into the RAG vector-store category alongside Pinecone and Weaviate. Direct beneficiary of LLM agentic workloads."},"PLTR":{"category":"ticker","full_name":"Palantir Technologies Inc.","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/PLTR","explanation":"Palantir Technologies sells AIP (Artificial Intelligence Platform) plus Foundry/Gotham to commercial and government customers. Most aggressive 'agentic AI orchestration layer' marketing among public software firms."},"APP":{"category":"ticker","full_name":"AppLovin Corporation","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/APP","explanation":"AppLovin is a mobile ad-tech firm whose Axon 2 ML/AI engine drove a multi-fold revenue and stock surge in 2024-25. Pure consumer-tech application of large-scale ML inference; not a model lab but an AI-driven business model."},"SOXX":{"category":"ticker","full_name":"iShares Semiconductor ETF","exchange":"NASDAQ","yahoo_url":"https://finance.yahoo.com/quote/SOXX","explanation":"SOXX is an exchange-traded fund tracking ~30 US-listed semiconductor stocks (PHLX SOX-derived). Used in this study as a sector benchmark for the semis-heavy verticals."},"XLK":{"category":"ticker","full_name":"Technology Select Sector SPDR Fund","exchange":"NYSE Arca","yahoo_url":"https://finance.yahoo.com/quote/XLK","explanation":"XLK is an exchange-traded fund tracking the S&P 500 Technology sector (NVDA, MSFT, AAPL, AVGO concentrated). Used as broad tech benchmark."},"^GSPC":{"category":"index","full_name":"S&P 500 Index","exchange":"(index \u2014 not directly tradable)","yahoo_url":"https://finance.yahoo.com/quote/%5EGSPC","explanation":"The S&P 500 is the cap-weighted index of 500 large US stocks. Used in this study as the broad-market benchmark for beta, drawdown, and excess-return calculations."},"^NDX":{"category":"index","full_name":"NASDAQ-100 Index","exchange":"(index \u2014 not directly tradable)","yahoo_url":"https://finance.yahoo.com/quote/%5ENDX","explanation":"The NASDAQ-100 is the cap-weighted index of the 100 largest non-financial NASDAQ stocks, heavily skewed to mega-cap tech. Used here as a secondary benchmark closer to the study's tech-tilt."},"advanced-packaging":{"category":"vertical","full_name":"Advanced Packaging (OSAT, substrates, FOPLP, backend test)","explanation":"The CoWoS/SoIC step that stacks an AI chip together with its HBM memory on a single interposer. TSMC's packaging capacity (not the logic die) is the real binding constraint on how many Blackwell-class GPUs ship.","tickers":[{"symbol":"ASX","name":"ASE Technology Holding Co. Ltd (ADR)"},{"symbol":"AMKR","name":"Amkor Technology, Inc."},{"symbol":"3037.TW","name":"Unimicron Technology Corp."},{"symbol":"2449.TW","name":"King Yuan Electronics Co., Ltd."},{"symbol":"6239.TW","name":"Powertech Technology Inc."},{"symbol":"6147.TWO","name":"Chipbond Technology Corporation"},{"symbol":"TSM","name":"Taiwan Semiconductor Manufacturing Company (ADR)"}]},"ai-accelerators":{"category":"vertical","full_name":"AI Accelerators (GPUs / ASICs / TPUs)","explanation":"GPUs, ASICs and TPUs \u2014 the chips that actually run the matrix math behind LLM inference. NVIDIA dominates the merchant market; Google/AWS/Microsoft/Meta build custom silicon with Broadcom and Marvell.","tickers":[{"symbol":"NVDA","name":"NVIDIA Corporation"},{"symbol":"AMD","name":"Advanced Micro Devices, Inc."},{"symbol":"AVGO","name":"Broadcom Inc."},{"symbol":"MRVL","name":"Marvell Technology, Inc."},{"symbol":"GOOGL","name":"Alphabet Inc. (Class A)"},{"symbol":"INTC","name":"Intel Corporation"},{"symbol":"2454.TW","name":"MediaTek Inc."}]},"copper-rare-earth":{"category":"vertical","full_name":"Copper & Rare Earths","explanation":"The raw metals that wire up an AI datacenter \u2014 copper for busways, transformers and cabling; rare earths for high-efficiency motors and magnets.","tickers":[{"symbol":"FCX","name":"Freeport-McMoRan Inc."},{"symbol":"SCCO","name":"Southern Copper Corporation"},{"symbol":"TECK","name":"Teck Resources Limited"},{"symbol":"BHP","name":"BHP Group Limited"},{"symbol":"IVN.TO","name":"Ivanhoe Mines Ltd."},{"symbol":"MP","name":"MP Materials Corp."},{"symbol":"LYC.AX","name":"Lynas Rare Earths Ltd"},{"symbol":"UUUU","name":"Energy Fuels Inc."}]},"datacenter-cooling-thermal":{"category":"vertical","full_name":"Datacenter Cooling \u2014 Thermal Management","explanation":"Direct-liquid and immersion cooling gear. Once a rack pulls 100+ kW (Blackwell and beyond), air cooling physically can't remove the heat \u2014 so the chip has to be cooled by liquid.","tickers":[{"symbol":"VRT","name":"Vertiv Holdings Co"},{"symbol":"MOD","name":"Modine Manufacturing Company"},{"symbol":"MTRS.ST","name":"Munters Group AB"},{"symbol":"TT","name":"Trane Technologies plc"},{"symbol":"CARR","name":"Carrier Global Corporation"},{"symbol":"JCI","name":"Johnson Controls International plc"},{"symbol":"SMCI","name":"Super Micro Computer, Inc."}]},"datacenter-reits":{"category":"vertical","full_name":"Datacenter REITs (Colocation + Wholesale)","explanation":"The landlords of AI compute \u2014 companies that own and lease the physical buildings (colocation halls and wholesale campuses) where hyperscaler and neocloud GPUs live.","tickers":[{"symbol":"EQIX","name":"Equinix, Inc."},{"symbol":"DLR","name":"Digital Realty Trust, Inc."},{"symbol":"IRM","name":"Iron Mountain Incorporated"},{"symbol":"GDS","name":"GDS Holdings Limited (ADR)"},{"symbol":"VNET","name":"VNET Group, Inc."},{"symbol":"AJBU.SI","name":"Keppel DC REIT"}]},"eda-ip":{"category":"vertical","full_name":"EDA & Silicon IP","explanation":"The software (Synopsys, Cadence) and reusable circuit blocks (Arm, DesignWare) every AI chip is designed with. A pure-software toll booth on every accelerator shipped.","tickers":[{"symbol":"SNPS","name":"Synopsys, Inc."},{"symbol":"CDNS","name":"Cadence Design Systems, Inc."},{"symbol":"ARM","name":"Arm Holdings plc (ADR)"}]},"electrical-equipment":{"category":"vertical","full_name":"Electrical Equipment (Datacenter Power Distribution)","explanation":"Switchgear, transformers, busways, UPS and PDUs \u2014 the medium-voltage plumbing that gets utility power from the substation to each GPU rack.","tickers":[{"symbol":"ETN","name":"Eaton Corporation plc"},{"symbol":"SU.PA","name":"Schneider Electric SE"},{"symbol":"ABBNY","name":"ABB Ltd (ADR)"},{"symbol":"HUBB","name":"Hubbell Incorporated"},{"symbol":"NVT","name":"nVent Electric plc"},{"symbol":"POWL","name":"Powell Industries, Inc."},{"symbol":"ROK","name":"Rockwell Automation, Inc."}]},"foundry-logic":{"category":"vertical","full_name":"Foundry \u2014 Logic","explanation":"The leading-edge logic fabs (TSMC's N5/N4/N3/N2) that actually print the AI accelerator silicon. Roughly all merchant AI chips are made by TSMC.","tickers":[{"symbol":"TSM","name":"Taiwan Semiconductor Manufacturing Company (ADR)"},{"symbol":"INTC","name":"Intel Corporation"},{"symbol":"GFS","name":"GlobalFoundries Inc."},{"symbol":"UMC","name":"United Microelectronics Corporation (ADR)"}]},"gas-turbines":{"category":"vertical","full_name":"Gas Turbines","explanation":"Big gas turbines for behind-the-meter and grid-connected power plants. The fastest way to add firm power to an AI campus when the grid interconnect queue is multi-year.","tickers":[{"symbol":"GEV","name":"GE Vernova Inc."},{"symbol":"ENR.DE","name":"Siemens Energy AG"},{"symbol":"SIEGY","name":"Siemens AG (ADR)"},{"symbol":"7011.T","name":"Mitsubishi Heavy Industries, Ltd."},{"symbol":"CAT","name":"Caterpillar Inc."},{"symbol":"CMI","name":"Cummins Inc."},{"symbol":"GNRC","name":"Generac Holdings Inc."},{"symbol":"BE","name":"Bloom Energy Corporation"}]},"hbm-dram":{"category":"vertical","full_name":"HBM & DRAM","explanation":"High-Bandwidth Memory \u2014 DRAM stacks placed right next to the AI chip so it can be fed fast enough during inference. SK Hynix, Samsung and Micron are the only three suppliers.","tickers":[{"symbol":"MU","name":"Micron Technology, Inc."},{"symbol":"000660.KS","name":"SK Hynix Inc."},{"symbol":"005930.KS","name":"Samsung Electronics Co., Ltd."},{"symbol":"2408.TW","name":"Nanya Technology Corp."},{"symbol":"2344.TW","name":"Winbond Electronics Corp."},{"symbol":"4063.T","name":"Shin-Etsu Chemical Co., Ltd."}]},"hyperscalers-cloud":{"category":"vertical","full_name":"Hyperscalers & Cloud","explanation":"The eight companies actually buying the GPUs at scale (Microsoft, Google, Amazon, Meta, Oracle, plus Chinese clouds). Every dollar of AI capex ultimately traces back to one of their P&Ls.","tickers":[{"symbol":"MSFT","name":"Microsoft Corporation"},{"symbol":"GOOGL","name":"Alphabet Inc. (Class A)"},{"symbol":"AMZN","name":"Amazon.com, Inc."},{"symbol":"META","name":"Meta Platforms, Inc."},{"symbol":"ORCL","name":"Oracle Corporation"},{"symbol":"BABA","name":"Alibaba Group Holding Ltd (ADR)"},{"symbol":"CRWV","name":"CoreWeave, Inc."},{"symbol":"NBIS","name":"Nebius Group N.V."}]},"ic-substrates":{"category":"vertical","full_name":"IC Substrates (ABF / FC-BGA / BT)","explanation":"The high-layer-count ABF/FC-BGA substrates that sit between the silicon package and the motherboard on every AI accelerator. Japanese and Taiwanese specialty material houses dominate.","tickers":[{"symbol":"4062.T","name":"Ibiden Co., Ltd."},{"symbol":"2802.T","name":"Ajinomoto Co., Inc."},{"symbol":"3037.TW","name":"Unimicron Technology Corp."},{"symbol":"3189.TW","name":"Kinsus Interconnect Technology Corp."},{"symbol":"8046.TW","name":"Nan Ya PCB Corporation"},{"symbol":"ATS.VI","name":"AT&S Austria Technologie & Systemtechnik AG"},{"symbol":"009150.KS","name":"Samsung Electro-Mechanics Co., Ltd."}]},"industrial-gases-water":{"category":"vertical","full_name":"Industrial Gases & Water","explanation":"Ultra-pure nitrogen, argon, helium, hydrogen and specialty gases consumed in huge volumes by every leading-edge fab \u2014 sold on long-term take-or-pay contracts.","tickers":[{"symbol":"LIN","name":"Linde plc"},{"symbol":"APD","name":"Air Products and Chemicals, Inc."},{"symbol":"AIQUY","name":"Air Liquide S.A. (ADR)"},{"symbol":"AWK","name":"American Water Works Company, Inc."},{"symbol":"WTRG","name":"Essential Utilities, Inc."},{"symbol":"XYL","name":"Xylem Inc."},{"symbol":"PNR","name":"Pentair plc"}]},"lithography":{"category":"vertical","full_name":"Lithography","explanation":"The machines that print circuit patterns onto silicon wafers. ASML has a global monopoly on the EUV scanners required for any sub-7nm chip \u2014 making it the single tightest chokepoint in the entire stack.","tickers":[{"symbol":"ASML","name":"ASML Holding N.V."},{"symbol":"7735.T","name":"SCREEN Holdings Co., Ltd."},{"symbol":"8035.T","name":"Tokyo Electron Limited (TEL)"},{"symbol":"6920.T","name":"Lasertec Corporation"},{"symbol":"7731.T","name":"Nikon Corporation"},{"symbol":"7751.T","name":"Canon Inc."}]},"model-labs-software":{"category":"vertical","full_name":"Model Labs & AI Software","explanation":"The application layer \u2014 AI-native software companies whose product margins depend on calling LLMs in production at scale (and the model labs themselves where investable).","tickers":[{"symbol":"APP","name":"AppLovin Corporation"},{"symbol":"PLTR","name":"Palantir Technologies Inc."},{"symbol":"NOW","name":"ServiceNow, Inc."},{"symbol":"DDOG","name":"Datadog, Inc."},{"symbol":"SNOW","name":"Snowflake Inc."},{"symbol":"MDB","name":"MongoDB, Inc."}]},"networking-switching":{"category":"vertical","full_name":"Networking & Switching","explanation":"The Ethernet/InfiniBand switches, NICs and DPUs that wire GPU clusters together. AI fabric is roughly 20-30 cents of networking per dollar of compute.","tickers":[{"symbol":"ANET","name":"Arista Networks, Inc."},{"symbol":"CSCO","name":"Cisco Systems, Inc."},{"symbol":"HPE","name":"Hewlett Packard Enterprise Co."},{"symbol":"CRDO","name":"Credo Technology Group Holding Ltd"},{"symbol":"MRVL","name":"Marvell Technology, Inc."},{"symbol":"ALAB","name":"Astera Labs, Inc."}]},"nuclear-smr-uranium":{"category":"vertical","full_name":"Nuclear, SMRs & Uranium","explanation":"Nuclear power for AI \u2014 large existing reactors restarted under hyperscaler PPAs, plus the small-modular-reactor (SMR) supply chain and the uranium fuel cycle that feeds them.","tickers":[{"symbol":"CEG","name":"Constellation Energy Corporation"},{"symbol":"VST","name":"Vistra Corp."},{"symbol":"TLN","name":"Talen Energy Corporation"},{"symbol":"OKLO","name":"Oklo Inc."},{"symbol":"SMR","name":"Small Modular Reactor"},{"symbol":"BWXT","name":"BWX Technologies, Inc."},{"symbol":"CCJ","name":"Cameco Corporation"},{"symbol":"LEU","name":"Centrus Energy Corp."}]},"power-semis-vrm":{"category":"vertical","full_name":"Power Semiconductors & VRMs","explanation":"The voltage-regulator chips and power-stage modules that step datacenter voltage down to the ~1V the GPU actually runs at. Each next-gen accelerator needs more of these per socket.","tickers":[{"symbol":"MPWR","name":"Monolithic Power Systems, Inc."},{"symbol":"VICR","name":"Vicor Corporation"},{"symbol":"IFX.DE","name":"Infineon Technologies AG"},{"symbol":"ADI","name":"Analog Devices, Inc."},{"symbol":"TXN","name":"Texas Instruments Incorporated"},{"symbol":"ON","name":"ON Semiconductor Corp."},{"symbol":"POWI","name":"Power Integrations, Inc."},{"symbol":"NVTS","name":"Navitas Semiconductor Corporation"}]},"power-transformers-grid":{"category":"vertical","full_name":"Power Transformers & Grid","explanation":"Large grid transformers and high-voltage equipment \u2014 currently on 3-5 year lead times. The unglamorous physical bottleneck slowing every AI campus buildout.","tickers":[{"symbol":"GEV","name":"GE Vernova Inc."},{"symbol":"ENR.DE","name":"Siemens Energy AG"},{"symbol":"6501.T","name":"Hitachi, Ltd."},{"symbol":"267260.KS","name":"HD Hyundai Electric Co., Ltd."},{"symbol":"HPS-A.TO","name":"Hammond Power Solutions Inc."},{"symbol":"PWR","name":"Quanta Services, Inc."},{"symbol":"MYRG","name":"MYR Group Inc."},{"symbol":"PRIM","name":"Primoris Services Corporation"}]},"silicon-photonics-optics":{"category":"vertical","full_name":"Silicon Photonics & Optics","explanation":"The transceivers and optical components (800G/1.6T pluggables, co-packaged optics) that move data between GPUs once a cluster outgrows copper.","tickers":[{"symbol":"COHR","name":"Coherent Corp."},{"symbol":"LITE","name":"Lumentum Holdings Inc."},{"symbol":"FN","name":"Fabrinet"},{"symbol":"AAOI","name":"Applied Optoelectronics, Inc."},{"symbol":"CIEN","name":"Ciena Corporation"},{"symbol":"POET","name":"POET Technologies Inc."}]},"utilities-merchant-power":{"category":"vertical","full_name":"Utilities & Merchant Power","explanation":"Regulated utilities and merchant power producers (IPPs) selling firm 24/7 electricity to AI campuses near their fiber routes.","tickers":[{"symbol":"VST","name":"Vistra Corp."},{"symbol":"TLN","name":"Talen Energy Corporation"},{"symbol":"CEG","name":"Constellation Energy Corporation"},{"symbol":"NRG","name":"NRG Energy, Inc."},{"symbol":"D","name":"Dominion Energy, Inc."},{"symbol":"AEP","name":"American Electric Power Company, Inc."},{"symbol":"DUK","name":"Duke Energy Corporation"},{"symbol":"PEG","name":"Public Service Enterprise Group Inc."}]},"wfe-deposition-etch":{"category":"vertical","full_name":"WFE \u2014 Deposition & Etch","explanation":"Wafer-fab equipment \u2014 the deposition, etch, implant, clean, CMP and metrology tools every wafer must pass through. Applied Materials, Lam, KLA and Tokyo Electron own the market.","tickers":[{"symbol":"AMAT","name":"Applied Materials, Inc."},{"symbol":"LRCX","name":"Lam Research Corporation"},{"symbol":"KLAC","name":"KLA Corporation"},{"symbol":"8035.T","name":"Tokyo Electron Limited (TEL)"},{"symbol":"ONTO","name":"Onto Innovation Inc."},{"symbol":"ACLS","name":"Axcelis Technologies, Inc."},{"symbol":"ENTG","name":"Entegris, Inc."}]},"EUV":{"category":"concept","full_name":"Extreme Ultraviolet Lithography","explanation":"EUV is the lithography technology that uses 13.5 nm wavelength light to print transistor patterns smaller than ArF immersion can manage. Required for everything 7 nm and below. ASML is the sole producer; each EUV scanner costs ~$200M and prints ~150-200 wafers per hour."},"DUV":{"category":"concept","full_name":"Deep Ultraviolet Lithography","explanation":"DUV uses 193 nm (ArF) or 248 nm (KrF) excimer lasers and is the workhorse for all trailing-edge and many mid-edge process layers. ASML, Nikon, and Canon all sell DUV scanners; immersion ArF is what stretches the technology to ~7 nm without EUV."},"ArF":{"category":"concept","full_name":"Argon Fluoride (193 nm) excimer laser lithography","explanation":"ArF is the 193 nm DUV light source used in immersion lithography; the workhorse for 7-28 nm patterning. ArFi (immersion) scanners place water between the lens and the wafer to bend light to smaller features."},"High-NA EUV":{"category":"concept","full_name":"High-numerical-aperture EUV (NA 0.55)","explanation":"The next generation of EUV scanners (ASML Twinscan EXE:5000/5200) with a larger 0.55 numerical aperture, enabling single-exposure printing at sub-2 nm half pitch. Each tool sells for ~$380-400M. Intel was first customer in 2024; TSMC adoption deferred."},"CoWoS":{"category":"concept","full_name":"Chip-on-Wafer-on-Substrate","explanation":"CoWoS is TSMC's flagship 2.5D advanced-packaging process: logic dies and HBM stacks are bonded onto a silicon (or now organic) interposer, then onto a substrate. CoWoS-S used silicon interposer; CoWoS-L (LSI bridges) and CoWoS-R (RDL) expand reticle size. The binding constraint on every modern AI accelerator."},"CoWoS-L":{"category":"concept","full_name":"CoWoS with Local Silicon Interconnect (LSI bridges)","explanation":"The newer generation of CoWoS that replaces a single huge silicon interposer with smaller LSI 'bridges' embedded in an RDL package. Cheaper, faster to scale, and the technology behind NVIDIA Blackwell-Ultra/Rubin and AMD MI400-class packages."},"SoIC":{"category":"concept","full_name":"System on Integrated Chips (TSMC 3D stacking)","explanation":"SoIC is TSMC's true 3D-stacking technology \u2014 chip-on-chip with sub-10\u00b5m pitch hybrid bonding (no microbumps). Enables 3D L2/L3 cache (AMD V-Cache), HBM4 base-die stacking, and future logic-on-logic. The next step after CoWoS for bandwidth scaling."},"FOPLP":{"category":"concept","full_name":"Fan-Out Panel-Level Packaging","explanation":"FOPLP extends fan-out wafer-level packaging to rectangular ~600\u00d7600 mm panels instead of 300 mm wafers, dramatically increasing throughput and reducing cost. Samsung, ASE, and Powertech are early adopters; TSMC plans pilot lines for sub-AI applications."},"HBM":{"category":"concept","full_name":"High Bandwidth Memory","explanation":"HBM is a stack of 8-16 DRAM dies bonded vertically with through-silicon vias (TSVs) and sitting alongside a GPU on the same package. Provides 5-10x the bandwidth of regular DDR5 (3-8 TB/s per stack) \u2014 essential because LLM inference is memory-bandwidth bound. Made by SK Hynix, Samsung, Micron."},"HBM3E":{"category":"concept","full_name":"HBM3 Extended (~9.2 Gbps/pin)","explanation":"The current production HBM generation used in NVIDIA Hopper H200/Blackwell B100/B200 and AMD MI300X/MI325X. Typical stack is 8-Hi or 12-Hi with 24-36 GB capacity and ~1.2 TB/s per stack. SK Hynix lead supplier; Micron in volume; Samsung qualifying."},"HBM4":{"category":"concept","full_name":"High Bandwidth Memory generation 4","explanation":"The next HBM generation (sampling 2025, volume 2026-27), targeting ~2 TB/s per stack and a wider 2048-bit interface. The base die moves to a logic process (paid to TSMC) for first time \u2014 fundamentally changing the supply chain. Used by NVIDIA Rubin and AMD MI400."},"DRAM":{"category":"concept","full_name":"Dynamic Random Access Memory","explanation":"The volatile system memory that holds data and code while a chip is running. Made by SK Hynix, Samsung, Micron, Nanya, Winbond on dedicated DRAM lines. HBM is one specialty branch of DRAM; commodity DDR4/DDR5 and LPDDR5 fill out the rest."},"TSV":{"category":"concept","full_name":"Through-Silicon Via","explanation":"A vertical electrical interconnect that goes through a silicon die, allowing stacked chips (HBM, 3D NAND) to communicate top-to-bottom. The yield and cost of TSV formation/fill is the gating factor in HBM stack count scaling."},"ABF substrate":{"category":"concept","full_name":"Ajinomoto Build-up Film substrate (FC-BGA)","explanation":"An IC substrate made by laminating layers of ABF \u2014 a dielectric film sole-sourced from Ajinomoto. ABF substrates are the high-density laminate boards that sit beneath every modern CPU/GPU/AI accelerator, providing fine-pitch wiring between die bumps and the motherboard."},"BT substrate":{"category":"concept","full_name":"Bismaleimide-Triazine substrate","explanation":"An older IC substrate type used for memory packages and lower-end chips. BT is cheaper but lower-performance than ABF; HBM stacks ride on BT substrates while the logic die uses ABF."},"FC-BGA":{"category":"concept","full_name":"Flip-Chip Ball Grid Array","explanation":"A packaging form factor where the chip die is flipped upside down and connected via solder bumps to the substrate (instead of wire bonding), then a grid of solder balls attaches to the PCB. All high-performance CPUs/GPUs/AI accelerators use FC-BGA with ABF substrates."},"OSAT":{"category":"concept","full_name":"Outsourced Assembly and Test","explanation":"Third-party back-end firms that take wafers from a foundry and turn them into packaged, tested chips \u2014 assembly, bonding, test, burn-in. ASE Technology, Amkor, Powertech, KYEC. CoWoS partly bypasses OSAT because TSMC keeps it in-house."},"WFE":{"category":"concept","full_name":"Wafer Fab Equipment","explanation":"The industrial machinery used inside semiconductor fabs to process wafers: lithography scanners, deposition tools, etch tools, implanters, metrology/inspection, cleaning. Dominated by AMAT, ASML, LRCX, KLAC, TEL \u2014 a ~$110B/yr equipment market."},"CVD":{"category":"concept","full_name":"Chemical Vapor Deposition","explanation":"A wafer process where gaseous precursors react on a hot wafer to deposit a thin film (oxide, nitride, tungsten, etc.). Workhorse step at every node; AMAT, LRCX, TEL all supply variants."},"PVD":{"category":"concept","full_name":"Physical Vapor Deposition","explanation":"A wafer process that sputters atoms from a metal target onto the wafer to deposit metal layers (Al, Cu, Ti, Ta). AMAT is the dominant PVD vendor."},"ALD":{"category":"concept","full_name":"Atomic Layer Deposition","explanation":"A precision deposition process that builds films one atomic layer at a time \u2014 required for ultra-thin gate dielectrics and high-aspect-ratio HBM/3D NAND fills. AMAT, LRCX, TEL, ASMI are the main suppliers."},"GAA":{"category":"concept","full_name":"Gate-All-Around (transistor architecture)","explanation":"The next transistor architecture after FinFET, where the gate completely surrounds the channel (a 'nanosheet'). Samsung 3 nm and TSMC N2 introduce GAA; necessary for sub-3 nm performance/leakage. Requires new etch + selective deposition steps."},"FinFET":{"category":"concept","full_name":"Fin Field-Effect Transistor","explanation":"The 3D transistor architecture used in every leading-edge node from ~22 nm through 3 nm, where the channel is a vertical 'fin' wrapped on three sides by the gate. Being replaced by GAA at 2 nm and below."},"VRM":{"category":"concept","full_name":"Voltage Regulator Module","explanation":"A small power-conversion board that steps down 12 V or 48 V to the ~0.8 V the chip die actually uses, and feeds 1000+ amps of current at very tight ripple. AI accelerators consume so much power per square millimeter that VRM design is now a critical chip-system co-design problem."},"GaN":{"category":"concept","full_name":"Gallium Nitride (wide-bandgap power semi)","explanation":"GaN is a wide-bandgap semiconductor that switches much faster than silicon at high voltages \u2014 ideal for compact, efficient power supplies. Used in 48V datacenter PSUs and high-density chargers. Makers: Navitas, Power Integrations, Infineon, EPC."},"SiC":{"category":"concept","full_name":"Silicon Carbide (wide-bandgap power semi)","explanation":"Silicon carbide is a wide-bandgap semiconductor used at higher voltages than GaN (>650 V) \u2014 EV traction, solar, datacenter HVDC. Wolfspeed, onsemi, STMicro, Infineon are leaders. Substrate supply (6-inch and 8-inch SiC wafers) is the binding constraint."},"PSU":{"category":"concept","full_name":"Power Supply Unit","explanation":"The rack- or server-level power supply that takes AC from the building (typically 415 V three-phase in datacenters) and converts it to 48 V or 12 V DC for the server. Hyperscale racks use 33-100 kW PSUs with 96-98% efficiency targets."},"PDU":{"category":"concept","full_name":"Power Distribution Unit","explanation":"A rack- or row-level distribution panel that splits power coming in from the building UPS/switchgear out to individual servers and racks. Vertiv, Eaton, Schneider, nVent are the main vendors."},"UPS":{"category":"concept","full_name":"Uninterruptible Power Supply","explanation":"Battery- or flywheel-backed power systems that bridge from grid failure to backup-generator start. Datacenter UPS systems run 1-5 MW per module; double-conversion and lithium-ion are the modern norms. Eaton, Schneider, Vertiv, ABB are the leaders."},"BESS":{"category":"concept","full_name":"Battery Energy Storage System","explanation":"Grid-scale or behind-the-meter battery installations (mostly lithium-iron-phosphate) used to firm renewables and arbitrage power prices. Increasingly co-located with AI datacenters to shave peak demand charges."},"HVDC":{"category":"concept","full_name":"High Voltage Direct Current","explanation":"DC transmission technology used for long-distance, high-capacity power links (subsea cables, point-to-point). Hitachi Energy, Siemens Energy, GE, ABB dominate the converter-station market. Datacenters explore HVDC rack distribution as efficiency gain."},"PPA":{"category":"concept","full_name":"Power Purchase Agreement","explanation":"A long-term (often 15-25 year) contract between a power generator and an offtaker (often a hyperscaler) at a fixed or indexed price. AI hyperscalers have signed PPAs covering nuclear restarts (Three Mile Island), new SMR builds, and gas-turbine campuses."},"IPP":{"category":"concept","full_name":"Independent Power Producer","explanation":"A non-utility company that owns and operates power plants and sells output into wholesale markets or via PPAs. Vistra, NRG, Constellation, Talen are the largest US merchant IPPs; AI demand is their biggest tailwind in decades."},"REIT":{"category":"concept","full_name":"Real Estate Investment Trust","explanation":"A US tax structure that requires distributing 90% of taxable income to shareholders in exchange for corporate-tax exemption. Datacenter REITs (DLR, EQIX, IRM) own buildings and lease them; they finance long-life infrastructure cheaply because of the structure."},"HALEU":{"category":"concept","full_name":"High-Assay Low-Enriched Uranium (5-20% U-235)","explanation":"Uranium fuel enriched between 5% and 20% U-235 (vs ~5% for conventional reactors). Required by most advanced SMR designs (Oklo, X-energy, TerraPower). Centrus Energy is the only US-licensed HALEU producer; supply is the binding constraint on commercial SMR deployment."},"IRA":{"category":"concept","full_name":"Inflation Reduction Act (US, 2022)","explanation":"The 2022 US federal law that introduced advanced-manufacturing and clean-energy tax credits, including 45X production credits for semis, magnets, batteries, and clean-energy components. Underwrites US fab capex (Micron, TSM Arizona, Samsung Texas) and rare-earth processing."},"CHIPS Act":{"category":"concept","full_name":"CHIPS and Science Act of 2022","explanation":"US federal law providing ~$53B of grants and ~$25B of tax credits for domestic semiconductor manufacturing and R&D. Funds TSMC Arizona, Samsung Texas, Intel Ohio/Arizona, Micron New York, GlobalFoundries NY/VT expansions."},"RPO":{"category":"concept","full_name":"Remaining Performance Obligation","explanation":"An accounting line under ASC 606 that disclose the dollar value of contracted but not-yet-recognized revenue. Hyperscalers (Microsoft Azure, Google Cloud, Oracle) use RPO to demonstrate the multi-year AI revenue pipeline. Useful as a leading indicator of cloud capex pull-through."},"TAM":{"category":"concept","full_name":"Total Addressable Market","explanation":"An estimate of the total annual revenue available to a product/service if every potential customer bought from one supplier. Used in this study (and in investor presentations broadly) to size each vertical."},"CAGR":{"category":"concept","full_name":"Compound Annual Growth Rate","explanation":"The constant year-over-year growth rate that would produce an observed end-point given a starting point and elapsed years. Formula: (end/start)^(1/years) - 1. Used in this study to summarize each stock's annualized return over the price window."},"z-score":{"category":"concept","full_name":"Z-score (standard score)","explanation":"The number of standard deviations a value sits above (positive) or below (negative) the mean of a reference distribution. Used here to normalize returns across stocks so they can be compared apples-to-apples regardless of volatility."},"beta":{"category":"concept","full_name":"Beta (market-relative volatility)","explanation":"The slope of a stock's returns regressed against a benchmark (S&P 500 here). Beta > 1 means the stock historically moves more than the market; beta < 1 means less. AI semis tend to run beta ~1.5-2.0; utilities ~0.5-0.8."},"Sharpe ratio":{"category":"concept","full_name":"Sharpe Ratio","explanation":"Average excess return over a risk-free rate divided by the standard deviation of returns. Higher is better \u2014 a measure of return per unit of volatility. Equity Sharpe ratios above ~1.0 are considered strong over multi-year windows."},"max drawdown":{"category":"concept","full_name":"Maximum Drawdown","explanation":"The largest peak-to-trough percentage decline observed in a price series over a given window. Used as a downside risk measure that captures path dependency that volatility alone misses."},"log returns":{"category":"concept","full_name":"Logarithmic returns","explanation":"Returns computed as ln(P_t / P_{t-1}) instead of (P_t - P_{t-1}) / P_{t-1}. Log returns are time-additive and approximately normal at short horizons, which is convenient for statistical analysis. Used in this study for return aggregation."},"adjusted close":{"category":"concept","full_name":"Adjusted Closing Price","explanation":"The daily closing price corrected for splits, stock dividends, and cash dividends so that returns computed from the series reflect total shareholder return. This study uses adjusted close from Yahoo Finance throughout."},"equal-weight index":{"category":"concept","full_name":"Equal-weighted index","explanation":"An index where every constituent has the same weight (1/N), rebalanced periodically \u2014 as opposed to a cap-weighted index where mega-caps dominate. Used here to construct vertical baskets so a single mega-cap (NVDA) doesn't drown out the smaller names."},"log-scale":{"category":"concept","full_name":"Logarithmic Scale","explanation":"A chart axis where equal distances represent equal multiplicative changes (10\u00d7, 100\u00d7) rather than equal additive changes. Used for long-horizon return charts so a stock that went up 10\u00d7 and one that went up 100\u00d7 are both visible."},"tercile":{"category":"concept","full_name":"Tercile","explanation":"One of three equally sized buckets when a distribution is split at the 33rd and 67th percentiles (lowest/middle/highest third). Used in this study to group stocks by CAGR into 'leaders / middle / laggards'."},"IRR":{"category":"concept","full_name":"Internal Rate of Return","explanation":"The annualized discount rate that makes the net present value of a cash-flow stream equal to zero. Used to compare investment projects with irregular cash flows; in stock context often confused with CAGR (close for buy-and-hold)."},"MoC":{"category":"concept","full_name":"Map of Content (Zettelkasten navigation hub)","explanation":"A navigation note that groups other notes by theme; used inside this second-brain repository (not a finance term). Not to be confused with 'method of characteristics' or any financial usage."},"vertical":{"category":"concept","full_name":"Vertical (industry segment)","explanation":"In this study, a 'vertical' is one of 22 categorized industry segments that span the LLM inference supply chain end to end \u2014 from upstream (copper, uranium) through silicon (lithography, foundry, packaging) to deployment (cloud, software). Each vertical has its own data/verticals/*.json fact sheet."},"priced-in":{"category":"concept","full_name":"Priced-in (efficient-markets shorthand)","explanation":"A stock is 'priced in' for a future event when the consensus expectation is already reflected in its market price; further good news must exceed expectations for the price to rise. Used in this study to flag names where AI optimism is fully (or over-) discounted vs. those still lagging."},"800G":{"category":"concept","full_name":"800-gigabit Ethernet optical transceiver","explanation":"The current mainstream high-speed datacenter optical transceiver, used for AI cluster spine and leaf switching. Typical form factors are OSFP and QSFP-DD800; volume ramp drove Coherent, Lumentum, Fabrinet revenue in 2024-25."},"1.6T":{"category":"concept","full_name":"1.6-terabit Ethernet optical transceiver","explanation":"The next-generation datacenter optical transceiver (2\u00d7 800G), arriving in volume 2025-26. Required for the densest AI back-end fabrics, supports 200G/lane PAM4 SerDes from Marvell, Broadcom, Credo."},"NVLink":{"category":"concept","full_name":"NVIDIA NVLink (proprietary GPU-to-GPU interconnect)","explanation":"NVIDIA's proprietary high-bandwidth interconnect linking GPUs inside a server (NVLink) and across racks (NVLink Switch, NVL72 system). Provides ~900 GB/s per GPU in Blackwell \u2014 far more than PCIe \u2014 and locks GPU-to-GPU traffic into NVIDIA-only hardware."},"InfiniBand":{"category":"concept","full_name":"InfiniBand (high-performance network fabric)","explanation":"A high-bandwidth, low-latency interconnect originally for HPC, now used as NVIDIA's preferred AI back-end network (via the Mellanox acquisition). Competes with Ethernet/RoCE for scale-out AI fabrics. 800 Gb/s NDR is current generation."},"RoCE":{"category":"concept","full_name":"RDMA over Converged Ethernet","explanation":"A protocol that runs Remote Direct Memory Access (RDMA) over standard Ethernet, allowing AI clusters to use commodity Ethernet switches instead of InfiniBand. The basis for hyperscaler-favored AI networking via Broadcom Tomahawk and Arista Etherlink."},"DSP":{"category":"concept","full_name":"Digital Signal Processor (in optics, PAM4 DSP chip)","explanation":"In optical transceivers, the DSP is the silicon that encodes/decodes PAM4 modulation, compensates for fiber/electrical impairments, and drives the laser. Marvell, Broadcom, and Inphi (now Marvell) supply most 800G/1.6T DSPs."},"SerDes":{"category":"concept","full_name":"Serializer/Deserializer","explanation":"An analog/mixed-signal IP block that converts parallel chip data into a high-speed serial signal (and back) at 100-200 Gbps per lane. Critical for AI clusters; Broadcom, Marvell, Synopsys, Credo, Astera lead the merchant SerDes market."},"PAM4":{"category":"concept","full_name":"Four-Level Pulse Amplitude Modulation","explanation":"A modulation scheme that encodes 2 bits per symbol (vs 1 for NRZ), doubling bandwidth at a given baud rate. Used in 800G/1.6T optical transceivers and in modern Ethernet SerDes."},"CPO":{"category":"concept","full_name":"Co-Packaged Optics","explanation":"An emerging packaging approach that puts the optical engine inside the switch ASIC package, eliminating the pluggable transceiver. Targets multi-terabit switches with lower power per bit. Broadcom Bailly and NVIDIA NVL CPO are early commercial milestones."},"PCIe":{"category":"concept","full_name":"Peripheral Component Interconnect Express","explanation":"The standard host-side bus connecting CPUs to GPUs, NICs, SSDs in a server. Gen5 is current mainstream (~64 GB/s x16), Gen6 starts ramping in 2025-26. PCIe retimers (Astera, Broadcom) extend reach inside AI server boards."},"CXL":{"category":"concept","full_name":"Compute Express Link","explanation":"A cache-coherent interconnect built on top of PCIe physical layer, intended for memory expansion and disaggregation. Slow uptake in 2024-25 but a long-term lever for memory-tier expansion alongside AI accelerators. Astera Labs and Marvell make CXL switch silicon."},"TPU":{"category":"concept","full_name":"Tensor Processing Unit (Google)","explanation":"Google's family of in-house AI ASICs (currently v5p/v5e/v6 Trillium) for training and inference of Gemini and other models. Co-designed with Broadcom, fabbed at TSMC. Available to outside customers only via Google Cloud."},"Trainium":{"category":"concept","full_name":"AWS Trainium (Amazon AI training ASIC)","explanation":"Amazon's in-house AI training accelerator (Trainium2 in production, Trainium3 next), co-designed with Annapurna Labs and Marvell. Anthropic Project Rainier and AWS Bedrock are anchor customers."},"Inferentia":{"category":"concept","full_name":"AWS Inferentia (Amazon AI inference ASIC)","explanation":"Amazon's in-house inference accelerator family (Inferentia/Inferentia2). Cost-optimized for serving rather than training; available only inside AWS via Inf2 instances."},"Maia":{"category":"concept","full_name":"Microsoft Maia (Azure AI accelerator)","explanation":"Microsoft's first-generation custom AI accelerator (Maia 100) announced 2023; targets Azure OpenAI inference workloads. Co-designed and partly Marvell-implemented. Less mature than TPU/Trainium but ramping."},"MI300":{"category":"concept","full_name":"AMD Instinct MI300 series","explanation":"AMD's first competitive AI GPU line (MI300X 192 GB HBM3, MI325X, MI350) used by Microsoft Azure, Meta, Oracle for inference and selective training. Built on CDNA3 architecture with chiplet packaging on TSMC N5 + N6."},"Hopper":{"category":"concept","full_name":"NVIDIA Hopper architecture (H100/H200)","explanation":"NVIDIA's H100/H200 GPU generation (2022-24), the workhorse training silicon of the modern LLM boom. H100 has 80 GB HBM3; H200 upgraded to 141 GB HBM3E. Both use TSMC N4 and CoWoS-S packaging."},"Blackwell":{"category":"concept","full_name":"NVIDIA Blackwell architecture (B100/B200/GB200)","explanation":"NVIDIA's 2024-25 GPU generation \u2014 B100/B200 single-die-pair on TSMC N4P with CoWoS-L, 192 GB HBM3E. GB200 NVL72 rack pairs Blackwell with Grace Arm CPUs over NVLink5. Largest AI-product launch in tech history."},"Rubin":{"category":"concept","full_name":"NVIDIA Rubin architecture (next generation)","explanation":"NVIDIA's planned 2026-27 GPU generation \u2014 Rubin / Rubin Ultra \u2014 built on TSMC N3, with HBM4 and CoWoS-L. First generation expected to use TSMC SoIC for stacked logic. Announced at GTC 2024."},"AI Factory":{"category":"concept","full_name":"AI Factory (NVIDIA term)","explanation":"NVIDIA's marketing term for a fully-integrated AI training/inference datacenter \u2014 power, cooling, networking, compute, software stack. Used to describe deals like xAI Colossus, Stargate (Oracle/OpenAI), and large GW-scale builds."},"frontier model":{"category":"concept","full_name":"Frontier AI model","explanation":"A model at or near the state-of-the-art in capability \u2014 currently GPT-5/Claude Opus 4.x/Gemini 2.5 Pro class. Training requires the largest clusters (>50,000 GPUs) and the most advanced HBM/CoWoS supply."},"MoE":{"category":"concept","full_name":"Mixture of Experts (model architecture)","explanation":"A neural-network architecture where many smaller 'expert' sub-networks are routed to selectively per token, giving large total parameter counts but lower active compute per token. Powers most modern frontier LLMs (Mixtral, GPT-4, DeepSeek-V3, Gemma) and changes hardware demand toward more memory and less compute."},"RAG":{"category":"concept","full_name":"Retrieval-Augmented Generation","explanation":"A pattern where an LLM retrieves relevant documents from a vector store before generating a response, grounding outputs in source material. Drives demand for vector databases (Pinecone, MongoDB Atlas, Weaviate) and embedding inference."},"agentic":{"category":"concept","full_name":"Agentic AI (multi-step autonomous LLM use)","explanation":"AI systems where an LLM autonomously plans and executes multi-step tasks (browsing, coding, tool-calling). 5-100\u00d7 more inference per user request than chat, making it the largest swing variable in 2026 inference TAM."},"inference":{"category":"concept","full_name":"Inference (model serving)","explanation":"The act of running a trained AI model to produce outputs (as opposed to training). Inference is the larger long-run market because every query incurs it, and it's more bandwidth- and latency-sensitive than compute-bound."},"training":{"category":"concept","full_name":"Training (model fitting)","explanation":"The compute-intensive process of fitting an AI model's parameters from data. Modern frontier model training runs cost $0.1-1B and require >50,000 GPUs running months on end. Driving most of the 2024-26 AI capex cycle."},"behind-the-meter":{"category":"concept","full_name":"Behind-the-Meter generation","explanation":"Power generation co-located with a customer (datacenter) and bypassing the public utility's distribution meter. Used to circumvent interconnect queues and lock in dedicated capacity. Examples: Talen/AWS Susquehanna, Crusoe gas-turbine campuses."},"FFA":{"category":"concept","full_name":"Forward Financial Agreement / Forward Capacity Auction","explanation":"A forward contract on electricity or capacity \u2014 in this study context, refers to PJM/ERCOT capacity-auction-style instruments that lock in $/MW-day payments years ahead. PJM 2025/26 auction clearing prices set records on AI datacenter demand."},"capacity auction":{"category":"concept","full_name":"Capacity Auction (PJM RPM)","explanation":"PJM Interconnection runs annual Reliability Pricing Model (RPM) capacity auctions that pay generators to be available three years forward. The 2025/26 auction cleared at record prices (~$270/MW-day) driven by retirements and AI-datacenter load."},"interconnect queue":{"category":"concept","full_name":"Transmission Interconnection Queue","explanation":"The backlog of generation and load projects waiting for grid-connection studies at regional transmission organizations (PJM, ERCOT, MISO, CAISO). Wait times of 4-7 years are the largest non-equipment bottleneck on AI build-out."},"Equinix IBX":{"category":"concept","full_name":"Equinix International Business Exchange","explanation":"Equinix's branding for a single datacenter facility \u2014 there are 270+ IBXs globally. Known as 'carrier hotels' because they host dense network interconnection between thousands of customers in one room."},"Lasertec":{"category":"company","full_name":"Lasertec Corporation","explanation":"Japanese maker of EUV photomask inspection systems (ACTIS) with effective monopoly in actinic-pattern inspection \u2014 every leading-edge fab must buy from Lasertec to qualify EUV masks. See ticker 6920.T."},"SCREEN Holdings":{"category":"company","full_name":"SCREEN Holdings Co., Ltd.","explanation":"Japanese wet-cleaning, thermal, and litho-track equipment vendor with ~70% share of single-wafer cleaning tools. Recurring demand from every wafer start. See ticker 7735.T."},"Ibiden":{"category":"company","full_name":"Ibiden Co., Ltd.","explanation":"Japanese ABF / FC-BGA substrate maker, ~70-80% share of leading-edge AI substrates. See ticker 4062.T."},"Ajinomoto":{"category":"company","full_name":"Ajinomoto Co., Inc.","explanation":"Japanese MSG maker and sole-source supplier of ABF (Ajinomoto Build-up Film) dielectric for advanced FC-BGA substrates. Hidden semi monopoly. See ticker 2802.T."},"Shinko":{"category":"company","full_name":"Shinko Electric Industries (private \u2014 being taken private by Dai Nippon Printing-led consortium)","explanation":"Japanese FC-BGA substrate maker, originally a Fujitsu subsidiary. Being taken private (announced 2023, closed 2025) by a JIC-led group. Direct competitor to Ibiden in AI substrates."},"AT&S":{"category":"company","full_name":"AT&S Austria Technologie & Systemtechnik AG","explanation":"Austrian IC-substrate and high-end PCB maker, #4 in ABF substrates. See ticker ATS.VI."},"Unimicron":{"category":"company","full_name":"Unimicron Technology Corp.","explanation":"Taiwanese ABF/FC-BGA substrate leader, key NVIDIA/AMD AI substrate supplier. See ticker 3037.TW."},"Kinsus":{"category":"company","full_name":"Kinsus Interconnect Technology Corp.","explanation":"Taiwanese FC-BGA substrate maker, Pegatron group. See ticker 3189.TW."},"Nan Ya PCB":{"category":"company","full_name":"Nan Ya Printed Circuit Board Corporation","explanation":"Taiwanese ABF substrate and PCB maker (Formosa Plastics Group). See ticker 8046.TW."},"Astera Labs":{"category":"company","full_name":"Astera Labs, Inc.","explanation":"PCIe/CXL retimer and Scorpio fabric-switch maker for AI servers. IPO'd 2024. See ticker ALAB."},"Credo":{"category":"company","full_name":"Credo Technology Group Holding Ltd","explanation":"Active electrical cable (AEC) and SerDes retimer designer for hyperscaler AI back-end. See ticker CRDO."},"Coherent":{"category":"company","full_name":"Coherent Corp.","explanation":"Optical-networking, lasers, and SiC substrates; formed by Coherent Inc + II-VI merger 2022. See ticker COHR."},"Lumentum":{"category":"company","full_name":"Lumentum Holdings Inc.","explanation":"Optical components and 800G/1.6T transceivers; spin from JDSU in 2015. See ticker LITE."},"Fabrinet":{"category":"company","full_name":"Fabrinet","explanation":"Contract optical-assembly partner to most merchant transceiver vendors. See ticker FN."},"Applied Optoelectronics":{"category":"company","full_name":"Applied Optoelectronics, Inc.","explanation":"Small-cap laser/transceiver maker ramping AI-datacenter 800G optics. See ticker AAOI."},"Vertiv":{"category":"company","full_name":"Vertiv Holdings Co","explanation":"Datacenter thermal-management pure play. See ticker VRT."},"Monolithic Power":{"category":"company","full_name":"Monolithic Power Systems, Inc.","explanation":"Merchant on-board VRM/power-IC leader, historically NVIDIA partner. See ticker MPWR."},"Vicor":{"category":"company","full_name":"Vicor Corporation","explanation":"Factorized-power-architecture modules for AI accelerator boards. See ticker VICR."},"Navitas":{"category":"company","full_name":"Navitas Semiconductor Corporation","explanation":"Fabless GaN power-IC startup; data-center PSUs and chargers. See ticker NVTS."},"Wolfspeed":{"category":"company","full_name":"Wolfspeed, Inc. (private as of 2026 Chapter 11 restructuring)","explanation":"US silicon-carbide (SiC) substrate and power-device maker; emerged from Chapter 11 in 2026 with PE/bank ownership after EV-related SiC capex overrun. Was previously public as WOLF."},"Constellation":{"category":"company","full_name":"Constellation Energy Corporation","explanation":"Largest US merchant nuclear operator. See ticker CEG."},"Vistra":{"category":"company","full_name":"Vistra Corp.","explanation":"Texas-anchored merchant generator with nuclear, gas, coal, batteries. See ticker VST."},"Talen Energy":{"category":"company","full_name":"Talen Energy Corporation","explanation":"Operator of Susquehanna nuclear plant; sold adjacent Cumulus datacenter to AWS. See ticker TLN."},"NuScale":{"category":"company","full_name":"NuScale Power Corporation","explanation":"Only US-NRC-approved SMR designer (77 MW VOYGR). See ticker SMR."},"Oklo":{"category":"company","full_name":"Oklo Inc.","explanation":"Sam Altman-chaired advanced-reactor startup. See ticker OKLO."},"Centrus Energy":{"category":"company","full_name":"Centrus Energy Corp.","explanation":"Only US-licensed HALEU producer for SMR fuel. See ticker LEU."},"BWX Technologies":{"category":"company","full_name":"BWX Technologies, Inc.","explanation":"US naval-nuclear and SMR component manufacturer. See ticker BWXT."},"Cameco":{"category":"company","full_name":"Cameco Corporation","explanation":"Largest publicly traded uranium miner and Westinghouse co-owner. See ticker CCJ."},"NexGen":{"category":"company","full_name":"NexGen Energy Ltd. (NXE) \u2014 referenced for context","explanation":"Canadian uranium developer building the Rook I project in Saskatchewan; pre-production. Not in this study's price manifest but a major future supply addition referenced in nuclear research."},"MP Materials":{"category":"company","full_name":"MP Materials Corp.","explanation":"Owner of Mountain Pass, the only operating US rare-earth mine. See ticker MP."},"Lynas":{"category":"company","full_name":"Lynas Rare Earths Ltd","explanation":"Largest ex-China rare-earth producer (Mt Weld + Malaysia). See ticker LYC.AX."},"Freeport-McMoRan":{"category":"company","full_name":"Freeport-McMoRan Inc.","explanation":"Largest US-listed copper major. See ticker FCX."},"Southern Copper":{"category":"company","full_name":"Southern Copper Corporation","explanation":"Grupo Mexico-controlled, lowest-cost integrated copper producer. See ticker SCCO."},"Teck Resources":{"category":"company","full_name":"Teck Resources Limited","explanation":"Pure-play copper miner after coal divestment. See ticker TECK."},"Ivanhoe":{"category":"company","full_name":"Ivanhoe Mines Ltd.","explanation":"Operator of Kamoa-Kakula high-grade copper mine in DRC. See ticker IVN.TO."},"Quanta Services":{"category":"company","full_name":"Quanta Services, Inc.","explanation":"Largest US electric-transmission and renewable-construction contractor. See ticker PWR."},"MYR Group":{"category":"company","full_name":"MYR Group Inc.","explanation":"Specialty US T&D construction firm. See ticker MYRG."},"Primoris":{"category":"company","full_name":"Primoris Services Corporation","explanation":"Diversified energy/utility construction firm. See ticker PRIM."},"GE Vernova":{"category":"company","full_name":"GE Vernova Inc.","explanation":"Spun-off GE energy/power-grid business. See ticker GEV."},"Siemens Energy":{"category":"company","full_name":"Siemens Energy AG","explanation":"European #2 heavy-duty gas turbine OEM. See ticker ENR.DE."},"Mitsubishi Heavy":{"category":"company","full_name":"Mitsubishi Heavy Industries, Ltd.","explanation":"Japanese conglomerate, #3 HDGT OEM. See ticker 7011.T."},"Hammond Power":{"category":"company","full_name":"Hammond Power Solutions Inc.","explanation":"Canadian dry-type transformer specialist. See ticker HPS-A.TO."},"Hitachi Energy":{"category":"company","full_name":"Hitachi Energy (subsidiary of Hitachi Ltd, formerly ABB Power Grids)","explanation":"World's #1 grid transformer and HVDC supplier; subsidiary of Hitachi (6501.T). The most-constrained capacity in global power supply."},"Hyundai Electric":{"category":"company","full_name":"HD Hyundai Electric Co., Ltd.","explanation":"Korean power transformer manufacturer. See ticker 267260.KS."},"Eaton":{"category":"company","full_name":"Eaton Corporation plc","explanation":"Global #1 in datacenter electrical infrastructure. See ticker ETN."},"Schneider Electric":{"category":"company","full_name":"Schneider Electric SE","explanation":"Co-leader with Eaton in DC power management. See ticker SU.PA."},"ABB":{"category":"company","full_name":"ABB Ltd","explanation":"Swiss-Swedish electrification and automation giant; primary listing is ABBN.SW. ADR is ABBNY."},"Hubbell":{"category":"company","full_name":"Hubbell Incorporated","explanation":"US electrical products and grid-mod gear. See ticker HUBB."},"nVent":{"category":"company","full_name":"nVent Electric plc","explanation":"Liquid-cooling CDUs, busways, electrical enclosures. See ticker NVT."},"Powell Industries":{"category":"company","full_name":"Powell Industries, Inc.","explanation":"Custom medium-voltage switchgear for AI datacenters and O&G. See ticker POWL."},"Rockwell":{"category":"company","full_name":"Rockwell Automation, Inc.","explanation":"US factory-automation leader. See ticker ROK."},"Equinix":{"category":"company","full_name":"Equinix, Inc.","explanation":"Global retail colocation and interconnection leader. See ticker EQIX."},"Digital Realty":{"category":"company","full_name":"Digital Realty Trust, Inc.","explanation":"Wholesale and hyperscale datacenter REIT. See ticker DLR."},"Iron Mountain":{"category":"company","full_name":"Iron Mountain Incorporated","explanation":"Records-storage to AI-datacenter pivot. See ticker IRM."},"Keppel DC REIT":{"category":"company","full_name":"Keppel DC REIT","explanation":"Largest pure-play Asian datacenter REIT. See ticker AJBU.SI."},"Linde":{"category":"company","full_name":"Linde plc","explanation":"World's #1 industrial-gas supplier. See ticker LIN."},"Air Products":{"category":"company","full_name":"Air Products and Chemicals, Inc.","explanation":"#3 industrial-gas major. See ticker APD."},"Air Liquide":{"category":"company","full_name":"Air Liquide S.A.","explanation":"French #2 global industrial gas major. ADR is AIQUY; primary listing AI.PA."},"American Water":{"category":"company","full_name":"American Water Works Company, Inc.","explanation":"Largest US regulated water utility. See ticker AWK."},"Essential Utilities":{"category":"company","full_name":"Essential Utilities, Inc.","explanation":"Regulated water + natural-gas utility (formerly Aqua America). See ticker WTRG."},"Xylem":{"category":"company","full_name":"Xylem Inc.","explanation":"Pumps, treatment, analytics for water. See ticker XYL."},"Pentair":{"category":"company","full_name":"Pentair plc","explanation":"Residential/commercial water treatment and pool equipment. See ticker PNR."},"Modine":{"category":"company","full_name":"Modine Manufacturing Company","explanation":"Airedale chillers, CDUs, immersion cooling. See ticker MOD."},"Carrier":{"category":"company","full_name":"Carrier Global Corporation","explanation":"HVAC OEM pivoting into datacenter cooling. See ticker CARR."},"Munters":{"category":"company","full_name":"Munters Group AB","explanation":"Swedish evaporative cooling and air treatment specialist. See ticker MTRS.ST."},"Johnson Controls":{"category":"company","full_name":"Johnson Controls International plc","explanation":"Building-controls and HVAC; Silent-Aire modular cooling. See ticker JCI."},"Trane":{"category":"company","full_name":"Trane Technologies plc","explanation":"Chiller and air-handling specialist. See ticker TT."},"Synopsys":{"category":"company","full_name":"Synopsys, Inc.","explanation":"#1 EDA vendor. See ticker SNPS."},"Cadence":{"category":"company","full_name":"Cadence Design Systems, Inc.","explanation":"#2 EDA vendor. See ticker CDNS."},"Arm":{"category":"company","full_name":"Arm Holdings plc","explanation":"CPU architecture licensor (Neoverse, Cortex). See ticker ARM."},"CoreWeave":{"category":"company","full_name":"CoreWeave, Inc.","explanation":"Largest pure-play GPU neocloud. See ticker CRWV."},"Nebius":{"category":"company","full_name":"Nebius Group N.V.","explanation":"European GPU neocloud spun out of Yandex international. See ticker NBIS."},"AppLovin":{"category":"company","full_name":"AppLovin Corporation","explanation":"Mobile ad-tech with ML/AI Axon engine. See ticker APP."},"Palantir":{"category":"company","full_name":"Palantir Technologies Inc.","explanation":"Government/commercial AI orchestration platform (AIP). See ticker PLTR."},"ServiceNow":{"category":"company","full_name":"ServiceNow, Inc.","explanation":"Enterprise-workflow SaaS with Now Assist AI. See ticker NOW."},"Datadog":{"category":"company","full_name":"Datadog, Inc.","explanation":"Cloud observability + LLM observability. See ticker DDOG."},"Snowflake":{"category":"company","full_name":"Snowflake Inc.","explanation":"Cloud data-warehouse with Cortex LLM inference. See ticker SNOW."},"MongoDB":{"category":"company","full_name":"MongoDB, Inc.","explanation":"Document database with Atlas Vector Search + Voyage AI. See ticker MDB."},"C3.ai":{"category":"company","full_name":"C3.ai, Inc. (AI)","explanation":"Enterprise-AI software vendor; mentioned for context but not in this study's price manifest. Public on NYSE under ticker AI."},"OpenAI":{"category":"company","full_name":"OpenAI","explanation":"Private AI lab behind ChatGPT, GPT-4, GPT-5; majority financial partner of Microsoft. Largest single buyer of frontier inference capacity in the world (Microsoft Azure, Oracle Stargate)."},"Anthropic":{"category":"company","full_name":"Anthropic, PBC","explanation":"Private AI lab behind the Claude model family; majority cloud partner of Amazon AWS (Project Rainier on Trainium). Second-largest frontier inference buyer after OpenAI."},"xAI":{"category":"company","full_name":"xAI Corp.","explanation":"Elon Musk's AI lab; trains the Grok model family on the Memphis 'Colossus' supercluster (200,000+ H100 GPUs)."},"DeepSeek":{"category":"company","full_name":"DeepSeek","explanation":"Chinese AI lab (spun out of High-Flyer hedge fund) that released open-weight DeepSeek-V3 / R1 in late 2024/2025, demonstrating frontier-grade reasoning at dramatically lower training cost. Major shock to the 'compute-equals-capability' narrative."},"Crusoe":{"category":"company","full_name":"Crusoe Energy Systems","explanation":"Private firm operating natural-gas-fueled AI datacenters (stranded-gas to start, behind-the-meter gas turbines now). Partner on Stargate Abilene and other multi-GW campuses; named GE Vernova / Solar Turbines customer."},"neocloud":{"category":"concept","full_name":"Neocloud (GPU-as-a-service operator)","explanation":"New-generation cloud providers focused only on AI GPU rental, financed via long-term take-or-pay contracts and debt against GPU collateral. CoreWeave, Nebius, Lambda, Crusoe Cloud. Generally lower margins than hyperscalers but higher growth."},"hyperscaler":{"category":"concept","full_name":"Hyperscaler","explanation":"A handful of cloud providers operating datacenter footprints measured in tens of GW: Microsoft Azure, Google Cloud, Amazon AWS, plus tier-2 Oracle, Meta (internal), Alibaba, ByteDance. Their capital allocation effectively drives every upstream vertical in this study."},"GW":{"category":"concept","full_name":"Gigawatt (1 GW = 1,000 MW)","explanation":"The unit of power capacity used to size AI campuses (1 GW datacenter \u2248 all-time-large nuclear reactor output). Modern frontier training campuses (Microsoft Wisconsin, Meta Hyperion, xAI Memphis) target multi-GW total IT load."},"MW":{"category":"concept","full_name":"Megawatt (1 MW = 1,000 kW)","explanation":"Standard datacenter sizing unit. A traditional enterprise DC is 5-20 MW; modern AI training campuses are 100-1000+ MW. Cooling, transformer, and switchgear loads all scale linearly with MW."},"kW/rack":{"category":"concept","full_name":"Kilowatts per rack (datacenter density)","explanation":"Power density per server rack. Traditional enterprise: 5-10 kW. Hyperscale general: 15-30 kW. NVIDIA NVL72 Blackwell racks: 120-132 kW. >50 kW/rack forces liquid cooling."},"DLC":{"category":"concept","full_name":"Direct Liquid Cooling","explanation":"Cooling that runs liquid (water or dielectric) through cold-plates directly attached to chip packages, instead of relying solely on air. Standard for any rack above ~40 kW; required for NVIDIA Blackwell GB200 NVL72."},"CDU":{"category":"concept","full_name":"Coolant Distribution Unit","explanation":"A pumping and heat-exchanger appliance that interfaces between facility chilled water and the secondary cooling loop running into the IT racks. Sizes 100 kW to 2+ MW. Vertiv, Motivair, Modine, nVent, CoolIT are main vendors."},"PUE":{"category":"concept","full_name":"Power Usage Effectiveness","explanation":"Total datacenter power divided by IT (server) power. PUE = 1.0 is perfect (all power goes to compute); modern hyperscale runs 1.1-1.2. Lower PUE = less overhead for cooling and electrical losses."},"ERCOT":{"category":"concept","full_name":"Electric Reliability Council of Texas","explanation":"The grid operator for ~90% of Texas \u2014 an electrical island separate from the rest of the US. Fast permitting, deregulated retail, and abundant gas-power make ERCOT a top AI datacenter destination."},"PJM":{"category":"concept","full_name":"PJM Interconnection","explanation":"The regional transmission organization covering 13 mid-Atlantic and Midwest states. Hosts the world's largest concentration of AI datacenter load (Virginia 'Data Center Alley'). 2025/26 capacity auction set records."},"Solar Turbines":{"category":"company","full_name":"Solar Turbines (Caterpillar subsidiary)","explanation":"Aeroderivative gas-turbine manufacturer (15-22 MW Mars, Titan, Centaur) owned by Caterpillar. Behind-the-meter datacenter power supplier (Crusoe campuses, etc.). Not separately public."},"Westinghouse":{"category":"company","full_name":"Westinghouse Electric Company","explanation":"Private (owned by Cameco + Brookfield) supplier of large light-water reactor (AP1000) designs and nuclear-fuel services. Dominant Western large-reactor designer; key supplier for any new build."},"TerraPower":{"category":"company","full_name":"TerraPower","explanation":"Private Bill Gates-backed advanced-reactor developer building the Natrium sodium-cooled fast reactor in Wyoming. Pre-commercial; first-of-a-kind targeted late-2020s."},"X-energy":{"category":"company","full_name":"X-energy","explanation":"Private SMR developer with the Xe-100 high-temperature gas-cooled reactor design. Backed by Amazon ($500M Oct 2024). Targets co-located industrial/datacenter offtake."},"Annapurna Labs":{"category":"company","full_name":"Annapurna Labs (Amazon subsidiary)","explanation":"Israeli chip-design subsidiary acquired by Amazon in 2015. Designs Graviton (Arm CPU), Trainium (training), and Inferentia (inference) silicon. Not separately public."},"Brookfield":{"category":"company","full_name":"Brookfield Asset Management / Brookfield Corporation","explanation":"Canadian infrastructure-focused asset manager; major investor in Westinghouse, AI datacenter campuses (Compass Datacenters), and merchant power. Public via BAM and BN tickers (not in this study's manifest)."},"ASE":{"category":"company","full_name":"ASE Technology Holding (ASE Group)","explanation":"World's largest OSAT, parent of SPIL. See ticker ASX."},"Amkor":{"category":"company","full_name":"Amkor Technology, Inc.","explanation":"#2 OSAT, building Arizona advanced-packaging campus. See ticker AMKR."},"TEL":{"category":"company","full_name":"Tokyo Electron Limited","explanation":"Japanese WFE leader in track, deposition, etch. See ticker 8035.T."},"Applied Materials":{"category":"company","full_name":"Applied Materials, Inc.","explanation":"World's largest WFE vendor. See ticker AMAT."},"Lam Research":{"category":"company","full_name":"Lam Research Corporation","explanation":"Etch and deposition WFE leader. See ticker LRCX."},"KLA":{"category":"company","full_name":"KLA Corporation","explanation":"Process-control and metrology WFE leader. See ticker KLAC."},"Onto Innovation":{"category":"company","full_name":"Onto Innovation Inc.","explanation":"Advanced-packaging metrology and inspection. See ticker ONTO."},"Entegris":{"category":"company","full_name":"Entegris, Inc.","explanation":"Process materials, filtration, gas/liquid delivery for fabs. See ticker ENTG."},"Axcelis":{"category":"company","full_name":"Axcelis Technologies, Inc.","explanation":"Ion-implant WFE specialist. See ticker ACLS."},"Marvell":{"category":"company","full_name":"Marvell Technology, Inc.","explanation":"Custom AI ASICs and optical DSPs for hyperscalers. See ticker MRVL."},"Arista":{"category":"company","full_name":"Arista Networks, Inc.","explanation":"High-radix Ethernet switch leader for hyperscalers. See ticker ANET."},"Cisco":{"category":"company","full_name":"Cisco Systems, Inc.","explanation":"Incumbent enterprise networking; Silicon One AI silicon. See ticker CSCO."},"Broadcom":{"category":"company","full_name":"Broadcom Inc.","explanation":"Custom AI ASICs and merchant Ethernet switch silicon. See ticker AVGO."},"Supermicro":{"category":"company","full_name":"Super Micro Computer, Inc.","explanation":"Rack-scale GPU server systems integrator. See ticker SMCI."},"MediaTek":{"category":"company","full_name":"MediaTek Inc.","explanation":"Taiwanese fabless SoC giant; Google TPU partner. See ticker 2454.TW."},"KYEC":{"category":"company","full_name":"King Yuan Electronics Co., Ltd.","explanation":"Taiwanese back-end test specialist for HBM/CoWoS. See ticker 2449.TW."},"Powertech":{"category":"company","full_name":"Powertech Technology Inc.","explanation":"Taiwanese memory-OSAT. See ticker 6239.TW."},"Chipbond":{"category":"company","full_name":"Chipbond Technology Corporation","explanation":"Taiwanese gold-bump/COF back-end. See ticker 6147.TWO."},"Shin-Etsu":{"category":"company","full_name":"Shin-Etsu Chemical Co., Ltd.","explanation":"World #1 silicon wafer and photoresist supplier. See ticker 4063.T."},"Nikon":{"category":"company","full_name":"Nikon Corporation","explanation":"Japanese DUV scanner maker (#2 behind ASML at trailing-edge). See ticker 7731.T."},"Canon":{"category":"company","full_name":"Canon Inc.","explanation":"DUV scanners and nanoimprint lithography. See ticker 7751.T."},"SK Hynix":{"category":"company","full_name":"SK Hynix Inc.","explanation":"#1 HBM supplier. See ticker 000660.KS."},"Samsung Electronics":{"category":"company","full_name":"Samsung Electronics Co., Ltd.","explanation":"#1 memory maker, #2 foundry. See ticker 005930.KS."},"Samsung Electro-Mechanics":{"category":"company","full_name":"Samsung Electro-Mechanics Co., Ltd.","explanation":"FC-BGA substrates and MLCCs. See ticker 009150.KS."},"Micron":{"category":"company","full_name":"Micron Technology, Inc.","explanation":"Only US HBM/DRAM maker. See ticker MU."},"Winbond":{"category":"company","full_name":"Winbond Electronics Corp.","explanation":"Taiwanese specialty DRAM/flash. See ticker 2344.TW."},"Nanya":{"category":"company","full_name":"Nanya Technology Corp.","explanation":"Taiwanese commodity DRAM maker. See ticker 2408.TW."},"GlobalFoundries":{"category":"company","full_name":"GlobalFoundries Inc.","explanation":"US/Singapore mature/specialty foundry. See ticker GFS."},"Infineon":{"category":"company","full_name":"Infineon Technologies AG","explanation":"World's largest power-semi supplier. See ticker IFX.DE."},"onsemi":{"category":"company","full_name":"ON Semiconductor Corp. (onsemi)","explanation":"Silicon-carbide power modules, image sensors, PMICs. See ticker ON."},"Power Integrations":{"category":"company","full_name":"Power Integrations, Inc.","explanation":"High-voltage power-conversion ICs incl. GaN. See ticker POWI."},"Texas Instruments":{"category":"company","full_name":"Texas Instruments Incorporated","explanation":"World's largest analog IC maker. See ticker TXN."},"Analog Devices":{"category":"company","full_name":"Analog Devices, Inc.","explanation":"Analog/mixed-signal IC supplier. See ticker ADI."},"GE":{"category":"concept","full_name":"General Electric (now split into three companies)","explanation":"The legacy General Electric conglomerate split in 2024 into GE Aerospace (GE), GE Vernova (GEV \u2014 power/grid), and GE HealthCare (GEHC). 'GE' in AI-power context almost always means GE Vernova."},"Annapurna":{"category":"company","full_name":"Annapurna Labs","explanation":"See 'Annapurna Labs' \u2014 Amazon's silicon design subsidiary."},"Mellanox":{"category":"company","full_name":"Mellanox Technologies (now NVIDIA Networking)","explanation":"Israeli InfiniBand/Ethernet networking-IC firm acquired by NVIDIA for $7B in 2020. Forms the core of NVIDIA's networking business (Quantum, Spectrum-X, BlueField DPUs)."},"DPU":{"category":"concept","full_name":"Data Processing Unit","explanation":"A programmable network card that offloads infrastructure tasks (security, storage, networking) from the host CPU. NVIDIA BlueField, AMD Pensando, Marvell Octeon are the main lines."},"PowerCo":{"category":"concept","full_name":"PowerCo (datacenter power-as-a-service model)","explanation":"An emerging business model where a third party builds and owns behind-the-meter generation (gas turbines, batteries, eventually SMRs) and sells power to a co-located AI datacenter via PPA. Crusoe, Generate Capital, ExxonMobil have entered this model."},"Stargate":{"category":"concept","full_name":"Stargate (OpenAI / Oracle / SoftBank AI infrastructure JV)","explanation":"The $500B-class AI infrastructure joint venture announced January 2025, anchored by OpenAI, Oracle, SoftBank. Building multi-GW campuses (Abilene TX is first) for OpenAI inference and training. Largest single AI capex commitment in history."},"Colossus":{"category":"concept","full_name":"Colossus (xAI's Memphis training supercluster)","explanation":"xAI's Memphis, TN training cluster \u2014 initially 100,000 H100s, scaled to 200,000+ by 2025, with plans for 1M+. Famously stood up in ~6 months by colocating with behind-the-meter gas turbines."},"ArFi":{"category":"concept","full_name":"Argon Fluoride Immersion lithography","explanation":"DUV lithography using 193 nm ArF light with the wafer immersed under water, raising effective resolution. Workhorse for everything from 90 nm down to ~7 nm and still needed for multi-patterning at the most advanced nodes. ASML's NXT immersion scanners are the dominant tools; Nikon makes a small minority share."},"KrF":{"category":"concept","full_name":"Krypton Fluoride DUV lithography","explanation":"Older DUV light source at 248 nm wavelength, used for mature nodes ~250 nm down to ~90 nm. KrF scanners remain in heavy use for trailing-edge logic, memory periphery, analog, and packaging steps. ASML, Nikon and Canon all make KrF tools."},"High-NA":{"category":"concept","full_name":"High-Numerical-Aperture EUV","explanation":"Next-generation EUV lithography (ASML EXE:5000) with a larger numerical aperture (0.55 vs 0.33) that prints finer features in a single exposure. Each tool costs ~$380M and is critical for 2 nm and below. Volume ramps from 2026-2028; supply is extremely constrained."},"wafer":{"category":"concept","full_name":"Silicon wafer","explanation":"The thin circular disc of monocrystalline silicon (typically 300 mm diameter) on which chips are built. Hundreds of identical chip 'dies' are patterned per wafer and then sliced apart. Wafer starts per month is the standard fab capacity unit."},"mask":{"category":"concept","full_name":"Photomask","explanation":"A patterned quartz plate that acts as the stencil projected through a lithography scanner onto the wafer. EUV masks are reflective rather than transmissive and need an entirely new inspection ecosystem (Lasertec). One leading-edge chip can use 70+ mask layers."},"photomask":{"category":"concept","full_name":"Photomask (= mask)","explanation":"Same as a mask: the patterned plate that projects each lithography layer onto the wafer. Made by Toppan Photomasks, Photronics, DNP and a handful of in-house captive lines at TSMC, Intel, Samsung."},"NAND":{"category":"concept","full_name":"NAND Flash memory","explanation":"Non-volatile semiconductor memory used in SSDs and storage. Built in 3D-stacked layers (200+ today). Distinct from DRAM (which is volatile working memory). Samsung, Kioxia, SK Hynix, Micron, Western Digital are the makers."},"CoWoS-S":{"category":"concept","full_name":"CoWoS with Silicon interposer","explanation":"The original CoWoS flavor: a passive silicon interposer wires the logic die and HBM stacks together. Used on most current Hopper and Blackwell GPUs. CoWoS-S supply is the gating factor on AI accelerator output."},"FOWLP":{"category":"concept","full_name":"Fan-Out Wafer-Level Packaging","explanation":"Advanced packaging where dies are embedded into a reconstituted wafer with redistribution layers fanning the I/O out beyond the original die area. Cheaper than CoWoS but lower performance. Powering Apple SoCs and some networking ASICs."},"packaging":{"category":"concept","full_name":"Semiconductor packaging","explanation":"The back-end process of taking diced silicon chips, attaching them to a substrate (or interposer), wiring them up, encapsulating, and producing a finished part you can solder onto a board. Advanced packaging (CoWoS, SoIC, FOPLP) is now as critical as front-end lithography for AI accelerators."},"3D-stacking":{"category":"concept","full_name":"3D die stacking","explanation":"Bonding multiple chip dies vertically and connecting them with through-silicon-vias (TSVs) or hybrid bonding. Used for HBM memory stacks and for stacking logic-on-logic (TSMC SoIC, Intel Foveros). Increases density without needing smaller transistors."},"ASIC":{"category":"concept","full_name":"Application-Specific Integrated Circuit","explanation":"A chip designed for one specific workload (e.g., Bitcoin mining, a particular AI model). For LLMs, the hyperscaler ASICs (Google TPU, AWS Trainium, Meta MTIA, Microsoft Maia) are direct alternatives to NVIDIA GPUs and are projected to take meaningful share by 2027-2028."},"FPGA":{"category":"concept","full_name":"Field-Programmable Gate Array","explanation":"A chip whose internal logic can be reconfigured in software after manufacturing. Used for prototyping, networking, and some inference; lower performance per watt than ASICs but flexible. AMD (Xilinx) and Intel (Altera) dominate."},"SoC":{"category":"concept","full_name":"System-on-Chip","explanation":"A single chip integrating CPU, GPU, memory controllers, I/O and other blocks. Smartphones, game consoles and modern servers all use SoCs. AI accelerators are SoCs that bundle compute cores with HBM controllers, NVLink and SerDes."},"NPU":{"category":"concept","full_name":"Neural Processing Unit","explanation":"A specialized AI-inference block built into a CPU or SoC for low-power on-device inference. Apple Neural Engine, Qualcomm Hexagon, Intel/AMD AI NPUs are examples. Smaller and cheaper than data-center accelerators."},"IP block":{"category":"concept","full_name":"Semiconductor IP block","explanation":"A pre-designed and pre-verified piece of chip circuitry (CPU core, GPU, memory controller, USB PHY) licensed by chip designers from companies like Arm, Synopsys, Cadence and SiFive. Lets designers assemble complex SoCs without reinventing every block."},"RTL":{"category":"concept","full_name":"Register-Transfer Level","explanation":"The level of abstraction at which chip designers write hardware (in Verilog or VHDL) \u2014 describing flows of data between registers each clock cycle. EDA tools then translate RTL to a gate-level netlist and a physical layout."},"EDA":{"category":"concept","full_name":"Electronic Design Automation","explanation":"Software used to design, verify and lay out chips. Cadence, Synopsys and Siemens EDA are an effective oligopoly with deep moats \u2014 every new chip needs their tools. AI accelerator complexity is driving EDA spend up sharply."},"fabless":{"category":"concept","full_name":"Fabless semiconductor company","explanation":"A chip company that designs but does not manufacture chips, outsourcing fab to TSMC, Samsung Foundry or GlobalFoundries. NVIDIA, AMD, Broadcom, Marvell, MediaTek are fabless. Capital-light, but dependent on foundry capacity."},"foundry":{"category":"concept","full_name":"Semiconductor foundry","explanation":"A pure-play chip manufacturer that builds chips on contract for fabless customers. TSMC has ~60% market share and a near-monopoly on leading-edge (3 nm/2 nm). Samsung Foundry and Intel Foundry are distant competitors."},"IDM":{"category":"concept","full_name":"Integrated Device Manufacturer","explanation":"A chip company that both designs and manufactures its own chips in-house. Intel, Samsung Semiconductor, SK Hynix, Micron, Texas Instruments, STMicroelectronics, Infineon are classic IDMs. Capital-heavy but vertically integrated."},"AI accelerator":{"category":"concept","full_name":"AI accelerator chip","explanation":"Catch-all term for chips optimized for AI workloads \u2014 includes NVIDIA GPUs (Hopper, Blackwell, Rubin), AMD MI300/MI400, Google TPU, AWS Trainium/Inferentia, Microsoft Maia, Meta MTIA, Cerebras, Groq. The most economically valuable chip category of the decade."},"3.2T":{"category":"concept","full_name":"3.2 Tbps optical transceiver","explanation":"Generation after 1.6T pluggable optics; expected to ramp 2027-2028. May be the last generation before co-packaged optics (CPO) displaces pluggables for the highest-density links."},"pluggable optics":{"category":"concept","full_name":"Pluggable optical transceivers","explanation":"Small modules (QSFP-DD, OSFP form factors) you plug into a switch faceplate to convert electrical signals to light over fiber. Today's standard for datacenter networking; threatened long-term by co-packaged optics (CPO)."},"transceiver":{"category":"concept","full_name":"Optical transceiver","explanation":"A module that transmits (laser + driver) and receives (photodiode + amplifier) optical signals across a fiber link. Each AI rack now needs hundreds. Coherent, Lumentum, Innolight, Eoptolink are top suppliers."},"EML":{"category":"concept","full_name":"Electro-Absorption Modulated Laser","explanation":"A type of high-speed laser used inside high-end transceivers (800G, 1.6T). EMLs are a supply bottleneck \u2014 Coherent, Lumentum, and Mitsubishi Electric are key makers."},"retimer":{"category":"concept","full_name":"Retimer chip","explanation":"An analog signal-conditioning chip placed between SerDes endpoints (e.g., between a GPU and the PCIe/NVLink switch) to recover and resend the signal cleanly. Astera Labs and Marvell are leaders; demand exploded with PCIe Gen5/Gen6 in AI servers."},"AEC":{"category":"concept","full_name":"Active Electrical Cable","explanation":"A short copper cable (1-7 m) with active retimer chips in the connectors, used for short scale-up links inside a rack \u2014 cheaper and lower-power than optics. Credo and Marvell drive this market."},"Ethernet":{"category":"concept","full_name":"Ethernet (networking standard)","explanation":"The dominant data-network protocol; standards body IEEE. In AI, hyperscalers (Meta, Microsoft, Google) are increasingly choosing Ethernet (Arista, Cisco, Broadcom Tomahawk) over NVIDIA's proprietary InfiniBand for scale-out GPU clusters."},"scale-out":{"category":"concept","full_name":"Scale-out networking","explanation":"Connecting many separate server nodes across a datacenter into one large compute fabric \u2014 typically Ethernet or InfiniBand over optical links. Scale-out is the bulk of AI cluster bandwidth and the main demand driver for transceivers."},"scale-up":{"category":"concept","full_name":"Scale-up networking","explanation":"Tightly connecting GPUs within a single rack or pod with very high bandwidth (NVLink, UALink, Infinity Fabric). Scale-up bandwidth is what enables training huge models because all GPUs must share state at high speed."},"switch silicon":{"category":"concept","full_name":"Switch silicon","explanation":"The ASIC inside a datacenter switch that moves packets at line rate. Broadcom Tomahawk and Jericho families dominate Ethernet; NVIDIA Quantum dominates InfiniBand. Each AI cluster rebuild is a switch-silicon refresh cycle."},"point-of-load":{"category":"concept","full_name":"Point-of-load (PoL) converter","explanation":"A small DC-DC converter placed right next to a chip that converts a higher-voltage bus rail (12V or 48V) down to the sub-1V the chip actually needs. VRMs are point-of-load converters. Monolithic Power, Vicor, Infineon are leaders."},"immersion cooling":{"category":"concept","full_name":"Immersion cooling","explanation":"Submerging servers in a non-conductive liquid (single-phase oil or two-phase fluorocarbon) to absorb heat. More efficient than air at >50 kW/rack densities. Niche today but expected to grow as rack densities exceed 100 kW."},"direct liquid cooling":{"category":"concept","full_name":"Direct Liquid Cooling (DLC)","explanation":"Pumping cold liquid through a coldplate sitting directly on the GPU/CPU package, rejecting heat to a facility loop. Now mandatory at >40 kW/rack \u2014 Blackwell racks ship liquid-cooled by default. Vertiv, CoolIT, Boyd, Asetek are key suppliers."},"rear-door heat exchanger":{"category":"concept","full_name":"Rear-Door Heat Exchanger (RDHX)","explanation":"A liquid-fed radiator that fits onto the back of a server rack, removing heat as exhaust air passes through. A retrofit-friendly way to support 40-60 kW air-cooled racks without rebuilding the room. Vertiv, Motivair, Schneider, ColdLogik supply."},"busway":{"category":"concept","full_name":"Busway / Bus duct","explanation":"A prefabricated metal enclosure with copper bars inside that distributes power along a row of racks, instead of running individual cables. Faster to install, easier to reconfigure. nVent, Eaton, Schneider, Starline are major suppliers."},"switchgear":{"category":"concept","full_name":"Switchgear","explanation":"Heavy electrical equipment (breakers, disconnects, protective relays) that switches and protects power circuits inside a datacenter or substation. Multi-year lead times in 2025. Eaton, Schneider, ABB, Siemens Energy, Powell Industries dominate."},"transformer":{"category":"concept","full_name":"Electrical transformer","explanation":"Device that steps voltage up or down using magnetic coupling between two coils. Datacenters need large medium-voltage transformers (LPTs) for grid interconnection and many smaller ones inside. 2-4 year lead times in 2025 are a major build constraint."},"large power transformer":{"category":"concept","full_name":"Large Power Transformer (LPT)","explanation":"High-voltage transmission-class transformers (typically >100 MVA, 230 kV+). Used at substations connecting datacenters and utilities to the grid. Lead times exceeded 4 years in 2025 \u2014 a structural bottleneck for new AI builds."},"LPT":{"category":"concept","full_name":"Large Power Transformer","explanation":"Short for Large Power Transformer \u2014 the high-voltage grid-class transformers used at substations. Hitachi Energy, GE Vernova, Siemens Energy, Hyundai Electric, Mitsubishi Electric are the global manufacturers."},"gas turbine":{"category":"concept","full_name":"Gas turbine generator","explanation":"A jet-engine-derived or industrial-frame turbine that burns natural gas to spin a generator. Increasingly used for behind-the-meter power at AI datacenters because grid interconnections take years. GE Vernova, Siemens Energy, Mitsubishi Heavy, Solar Turbines (Caterpillar) make them."},"HDGT":{"category":"concept","full_name":"Heavy-Duty Gas Turbine","explanation":"Large industrial gas turbines (>100 MW class) used for utility power generation. GE Vernova's 9HA/7HA and Siemens Energy's SGT-9000HL are the flagship HDGT lines. Order books are full into 2030 thanks to AI datacenter demand."},"aeroderivative":{"category":"concept","full_name":"Aeroderivative gas turbine","explanation":"A smaller gas turbine (~30-100 MW) derived from a jet engine \u2014 faster start, easier to install on-site than an HDGT. GE LM2500/LM6000, Siemens SGT-A, and Solar Turbines Titan/Mars dominate. Favored for behind-the-meter datacenter power."},"peaker":{"category":"concept","full_name":"Peaker plant","explanation":"A power plant (often gas turbine) that runs only during peak demand hours, earning a high capacity payment plus high energy revenue when prices spike. AI datacenters are increasingly chewing into baseload, raising peaker economics."},"interconnection queue":{"category":"concept","full_name":"Grid interconnection queue","explanation":"The waitlist of new generation and large-load projects waiting for permission to connect to the transmission grid. Queues are now multi-year (PJM, MISO, ERCOT all backlogged), making behind-the-meter generation a popular workaround for new AI datacenters."},"stack":{"category":"concept","full_name":"Memory stack (HBM)","explanation":"An HBM 'stack' is 8-16 DRAM dies bonded vertically with TSVs into one package. Each modern AI accelerator carries 6-12 stacks. Stack count and per-stack capacity are the two main HBM growth axes."},"refresh":{"category":"concept","full_name":"Product refresh / refresh cycle","explanation":"A major hardware-generation update \u2014 e.g., Hopper \u2192 Blackwell \u2192 Rubin GPU refresh. Each refresh resets the supply-chain mix (more HBM, new packaging, new networking speeds) and pulls in capex from hyperscalers."},"bandwidth":{"category":"concept","full_name":"Memory / link bandwidth","explanation":"The amount of data per second that can move between chip and memory (HBM) or between chips (NVLink, Ethernet). LLM inference is bandwidth-bound: feeding the GPU's compute units fast enough is harder than the compute itself."},"latency":{"category":"concept","full_name":"Latency","explanation":"The time between asking for data and getting the first byte back. For LLM inference, end-to-end latency (time to first token, inter-token latency) drives user experience and infrastructure cost; lower latency commands premium pricing."},"ASP":{"category":"concept","full_name":"Average Selling Price","explanation":"Revenue per unit shipped \u2014 a key metric for memory and chip vendors. HBM ASPs have risen 2-3x since 2023 because demand outstrips supply; classic semis cycles are partly ASP cycles."},"super-cycle":{"category":"concept","full_name":"Capex super-cycle","explanation":"An extended multi-year period where demand and prices stay above trend, driving sustained over-investment. The AI 2023-2028 build-out is being called a super-cycle because hyperscaler capex roughly tripled in two years."},"total return":{"category":"concept","full_name":"Total return","explanation":"Capital appreciation plus reinvested dividends. The standard performance metric for stocks held over a multi-year window. A '3-year total return of 200%' means $100 invested grew to $300, including dividends."},"Sharpe":{"category":"concept","full_name":"Sharpe ratio","explanation":"Excess return per unit of volatility \u2014 (return \u2212 risk-free) \u00f7 standard deviation. >1 is good, >2 is rare, >3 is exceptional. Used to compare risk-adjusted performance across assets."},"market-cap-weighted":{"category":"concept","full_name":"Market-cap-weighted index","explanation":"An index where each constituent's weight is proportional to its market capitalization. The S&P 500, NASDAQ Composite, MSCI World are all market-cap-weighted. Bigger companies dominate the index's moves."},"alpha":{"category":"concept","full_name":"Alpha (excess return)","explanation":"The part of an investment's return that cannot be explained by market exposure \u2014 i.e., the return above what beta-times-market would predict. Hedge funds and active managers sell 'alpha'."},"excess return":{"category":"concept","full_name":"Excess return","explanation":"Return above a benchmark (often the S&P 500 or a risk-free rate). Same idea as alpha for simple cases. This study measures excess return as a vertical's gain minus the market's gain over the same window."},"market-detrended":{"category":"concept","full_name":"Market-detrended return","explanation":"A vertical's index divided by the S&P 500's index over the same window, rebased to 100. Equivalent to the return of a long-vertical / short-market dollar-neutral pair trade. Strips out the broad market move so AI-specific alpha is visible."},"dollar-neutral pair trade":{"category":"concept","full_name":"Dollar-neutral pair trade","explanation":"Going long $X of one asset and short $X of another so net market exposure is zero. The market-detrended series here equals the P&L of going long the vertical and short the S&P 500 in equal dollars."},"Section 232":{"category":"concept","full_name":"Section 232 (US trade law)","explanation":"Provision of the Trade Expansion Act of 1962 that lets the President impose tariffs on imports deemed a national-security risk. In 2025-2026 used for steel, aluminum, and semiconductors \u2014 directly affecting reshoring economics for fabs and electrical equipment."},"reshoring":{"category":"concept","full_name":"Reshoring","explanation":"Moving manufacturing back to the home country (US) from overseas. Driven by CHIPS Act, IRA, Section 232 tariffs, and geopolitical risk. Affects the AI supply chain by pulling fab capacity (TSMC Arizona, Samsung Texas, Intel Ohio) and electrical equipment build to North America."},"Mag7":{"category":"concept","full_name":"Magnificent 7","explanation":"Shorthand for the 7 largest US tech mega-caps that drove most of S&P 500 returns since 2023: Apple, Microsoft, Alphabet, Amazon, NVIDIA, Meta, Tesla. Their concentrated weight makes market-detrending important."},"Magnificent 7":{"category":"concept","full_name":"Magnificent 7","explanation":"Same as Mag7 \u2014 the seven mega-cap US tech names (Apple, Microsoft, Alphabet, Amazon, NVIDIA, Meta, Tesla) that dominated index returns in 2023-2025."},"Fed hiking cycle":{"category":"concept","full_name":"Fed hiking cycle","explanation":"The 2022-2023 period when the US Federal Reserve raised the policy rate from 0% to ~5.5% to fight inflation. Crushed long-duration assets \u2014 a key reason 2022 returns are low across this study's 5-year window."},"ChatGPT moment":{"category":"concept","full_name":"ChatGPT moment","explanation":"The November 2022 launch of ChatGPT, which sparked the mainstream AI capex boom. Most of the supply-chain alpha in this study dates from this inflection point."},"AI capex super-cycle":{"category":"concept","full_name":"AI capex super-cycle","explanation":"The 2023-2028+ wave of hyperscaler infrastructure spending \u2014 Microsoft, Google, Amazon, Meta and Oracle's combined capex is projected to roughly triple from ~$150B in 2023 to ~$450B+ by 2027. The thesis behind every vertical in this study."},"colocation":{"category":"concept","full_name":"Colocation datacenter","explanation":"A datacenter operator (Equinix, Digital Realty, CoreSite) leases space, power and cooling to many tenants who bring their own servers. Retail colo serves enterprises with small footprints; wholesale colo serves hyperscalers with megawatt blocks."},"wholesale":{"category":"concept","full_name":"Wholesale colocation","explanation":"Large-scale datacenter leasing \u2014 typically multi-megawatt to multi-hundred-megawatt deals signed by a single hyperscale tenant. Digital Realty, QTS, Aligned, Vantage are wholesale-heavy operators."},"model lab":{"category":"concept","full_name":"Frontier model lab","explanation":"A research-driven company that trains state-of-the-art LLMs (OpenAI, Anthropic, Google DeepMind, xAI, Meta AI, Mistral, DeepSeek). They are the main demand source for AI accelerators, datacenter power, and HBM."},"Niger coup":{"category":"concept","full_name":"Niger coup (2023)","explanation":"July 2023 military coup in Niger that disrupted French/European uranium supply (Orano's Arlit mine). One of several geopolitical events that tightened global uranium markets and pushed spot prices above $100/lb in early 2024."},"Cobre Panama":{"category":"concept","full_name":"Cobre Panam\u00e1 copper mine","explanation":"First Quantum Minerals' large open-pit copper mine in Panama, shut by court order in late 2023 after public protests. Removed ~350 kt/yr of copper supply (about 1.5% of global mined output) \u2014 a key reason copper prices ran in 2024-2025."},"Grasberg":{"category":"concept","full_name":"Grasberg mine","explanation":"Freeport-McMoRan's giant copper-gold mine in Indonesia \u2014 among the world's largest. Production cuts and underground transition issues at Grasberg are routinely cited as global copper supply risk."},"Kamoa":{"category":"concept","full_name":"Kamoa-Kakula copper complex","explanation":"Ivanhoe Mines / Zijin Mining's high-grade copper project in the DRC. Ramping toward ~600 kt/yr \u2014 one of the few major new copper supply additions this decade. DRC political risk is a recurring concern."},"China stimulus":{"category":"concept","full_name":"China stimulus","explanation":"Chinese government fiscal and monetary measures (especially the September 2024 package) aimed at reviving property and consumption. Drives industrial-metal demand (copper, aluminum) and shifts the global commodity cycle."},"Russia sanctions":{"category":"concept","full_name":"Russia sanctions","explanation":"Western sanctions imposed after the 2022 invasion of Ukraine \u2014 affect Russian uranium (Centrus, Cameco enrichment), titanium, palladium and natural gas exports. Pushed Western utilities to re-source enriched uranium domestically (Centrus, Urenco)."},"Pentagon support":{"category":"concept","full_name":"Pentagon / DoD support","explanation":"US Department of Defense and Defense Production Act funding for critical-minerals and supply-chain projects \u2014 MP Materials' Mountain Pass (rare earths), Lynas's Texas heavy-rare-earth plant, Constellium's titanium, and others have received Pentagon contracts."},"energy transition":{"category":"concept","full_name":"Energy transition","explanation":"The decades-long shift from fossil fuels to electrified, low-carbon energy \u2014 solar, wind, nuclear, storage, electrification of transport and industry. AI datacenter load is straining the same grid the transition is trying to decarbonize."},"Lasertec Corporation":{"category":"company","full_name":"Lasertec Corporation","explanation":"Japanese maker of EUV photomask inspection systems (ACTIS) with effective monopoly in actinic-pattern inspection \u2014 every leading-edge fab must buy from Lasertec to qualify EUV masks. Ticker 6920.T."},"Shinko Electric":{"category":"company","full_name":"Shinko Electric Industries","explanation":"Japanese maker of advanced semiconductor packaging substrates (FC-BGA) \u2014 a critical input for high-end CPUs/GPUs. Being acquired by a JIC-led consortium (closing 2026). Ticker 6967.T."},"Credo Technology":{"category":"company","full_name":"Credo Technology Group","explanation":"Mixed-signal semiconductor company specializing in Active Electrical Cables (AECs), retimers and SerDes IP for AI clusters. Ticker CRDO."},"Constellation Energy":{"category":"company","full_name":"Constellation Energy","explanation":"Largest US owner of nuclear plants. Signed a 20-year PPA with Microsoft in 2024 to restart Three Mile Island Unit 1 (Crane Clean Energy Center) to power AI datacenters. Ticker CEG."},"NuScale Power":{"category":"company","full_name":"NuScale Power","explanation":"US small-modular-reactor (SMR) developer \u2014 first NRC-certified SMR design (77 MW VOYGR). Targeting hyperscaler offtake. Ticker SMR."},"Oklo Inc.":{"category":"company","full_name":"Oklo Inc.","explanation":"US advanced-reactor developer building 'Aurora' microreactors (15-100 MW, sodium-cooled fast reactor). Targeting behind-the-meter datacenter offtake. CEO Jacob DeWitte; Sam Altman previously chairman. Ticker OKLO."},"Hitachi":{"category":"company","full_name":"Hitachi Ltd.","explanation":"Japanese industrial conglomerate; parent of Hitachi Energy (power transformers, HVDC, grid automation). Major beneficiary of grid build-out for AI datacenters. Ticker 6501.T."},"Rockwell Automation":{"category":"company","full_name":"Rockwell Automation","explanation":"US industrial automation company (Allen-Bradley PLCs, FactoryTalk software). Picks up datacenter and electrical-equipment factory automation work as reshoring expands. Ticker ROK."},"GDS Holdings":{"category":"company","full_name":"GDS Holdings","explanation":"Largest carrier-neutral wholesale colocation operator in China; rapid expansion in SE Asia (DayOne) for hyperscale and AI workloads. Ticker GDS."},"VNET Group":{"category":"company","full_name":"VNET Group","explanation":"Chinese carrier-neutral colocation and cloud operator \u2014 Tier-2 player vs GDS but pivoting to wholesale AI datacenters. Ticker VNET."},"American Water Works":{"category":"company","full_name":"American Water Works","explanation":"Largest US publicly-traded water and wastewater utility, serving ~14M customers. Datacenter water consumption (evaporative cooling) is a regulatory and ESG flashpoint. Ticker AWK."},"Trane Technologies":{"category":"company","full_name":"Trane Technologies","explanation":"US HVAC and thermal management company \u2014 chillers, cooling towers, CDUs for datacenters. Ticker TT."},"Cadence Design Systems":{"category":"company","full_name":"Cadence Design Systems","explanation":"One of two dominant EDA toolchain vendors (with Synopsys). Software used to design every advanced chip. Ticker CDNS."},"Arm Holdings":{"category":"company","full_name":"Arm Holdings","explanation":"Dominant CPU IP licensor \u2014 Arm cores are in every smartphone, increasingly in datacenter (AWS Graviton, NVIDIA Grace). IPO'd September 2023. Ticker ARM."},"Nebius Group":{"category":"company","full_name":"Nebius Group","explanation":"Dutch-listed neocloud spun out of the former Yandex business; building European GPU clusters and selling capacity to AI labs. Ticker NBIS."},"detrended":{"category":"concept","full_name":"Detrended return","explanation":"Return after removing a benchmark's contribution. In this study we detrend against ^GSPC by taking the level ratio L_v(t)/L_m(t). See detrend methodology section under the chart."},"S&P 500":{"category":"concept","full_name":"S&P 500 (^GSPC)","explanation":"Cap-weighted index of 500 large US-listed companies, treated by most investors as 'the market'. Mag7 grew from ~17% of the index at 2021-05 to ~32% at 2026-05, meaning the benchmark itself has become significantly AI-driven over our window."}}</script>
<script type="application/json" id="lis-verticals-tickers">{"advanced-packaging":{"name":"Advanced Packaging (OSAT, substrates, FOPLP, backend test)","tickers":["ASX","AMKR","3037.TW","2449.TW","6239.TW","6147.TWO","TSM"]},"ai-accelerators":{"name":"AI Accelerators (GPUs/ASICs/TPUs)","tickers":["NVDA","AMD","AVGO","MRVL","GOOGL","INTC","2454.TW"]},"copper-rare-earth":{"name":"Copper & Rare Earths","tickers":["FCX","SCCO","TECK","BHP","IVN.TO","MP","LYC.AX","UUUU"]},"datacenter-cooling-thermal":{"name":"Datacenter Cooling \u2014 Thermal Management","tickers":["VRT","MOD","MTRS.ST","TT","CARR","JCI","SMCI"]},"datacenter-reits":{"name":"Datacenter REITs (Colocation + Wholesale)","tickers":["EQIX","DLR","IRM","GDS","VNET","AJBU.SI"]},"eda-ip":{"name":"EDA & Silicon IP","tickers":["SNPS","CDNS","ARM"]},"electrical-equipment":{"name":"Electrical Equipment (Datacenter Power Distribution)","tickers":["ETN","SU.PA","ABBNY","HUBB","NVT","POWL","ROK"]},"foundry-logic":{"name":"Foundry \u2014 Logic","tickers":["TSM","INTC","GFS","UMC"]},"gas-turbines":{"name":"Gas Turbines","tickers":["GEV","ENR.DE","SIEGY","7011.T","CAT","CMI","GNRC","BE"]},"hbm-dram":{"name":"HBM & DRAM","tickers":["MU","000660.KS","005930.KS","2408.TW","2344.TW","4063.T"]},"hyperscalers-cloud":{"name":"Hyperscalers & Cloud","tickers":["MSFT","GOOGL","AMZN","META","ORCL","BABA","CRWV","NBIS"]},"ic-substrates":{"name":"IC Substrates (ABF / FC-BGA / BT)","tickers":["4062.T","2802.T","3037.TW","3189.TW","8046.TW","ATS.VI","009150.KS"]},"industrial-gases-water":{"name":"Industrial Gases & Water (fab inputs + DC cooling/humidification)","tickers":["LIN","APD","AIQUY","AWK","WTRG","XYL","PNR"]},"lithography":{"name":"Lithography","tickers":["ASML","7735.T","8035.T","6920.T","7731.T","7751.T"]},"model-labs-software":{"name":"Inference-Consuming Software / App Layer","tickers":["APP","PLTR","NOW","DDOG","SNOW","MDB"]},"networking-switching":{"name":"Networking \u2014 Switching, Retimers, DPUs","tickers":["ANET","CSCO","HPE","CRDO","MRVL","ALAB"]},"nuclear-smr-uranium":{"name":"Nuclear \u2014 SMR & Uranium","tickers":["CEG","VST","TLN","OKLO","SMR","BWXT","CCJ","LEU"]},"power-semis-vrm":{"name":"Power Semiconductors \u2014 VRM / Vertical Power Delivery","tickers":["MPWR","VICR","IFX.DE","ADI","TXN","ON","POWI","NVTS"]},"power-transformers-grid":{"name":"Power Transformers & Grid","tickers":["GEV","ENR.DE","6501.T","267260.KS","HPS-A.TO","PWR","MYRG","PRIM"]},"silicon-photonics-optics":{"name":"Silicon Photonics & Datacom Optics","tickers":["COHR","LITE","FN","AAOI","CIEN","POET"]},"utilities-merchant-power":{"name":"Utilities & Merchant Power","tickers":["VST","TLN","CEG","NRG","D","AEP","DUK","PEG"]},"wfe-deposition-etch":{"name":"WFE: Deposition, Etch, Implant, Metrology","tickers":["AMAT","LRCX","KLAC","8035.T","ONTO","ACLS","ENTG"]}}</script>

<script>
/* uPlot library (inlined; no CDN) */
/*! https://github.com/leeoniya/uPlot (v1.6.32) */
var uPlot=function(){"use strict";const l="u-off",e="u-label",t="width",n="height",i="top",o="bottom",s="left",r="right",u="#000",a=u+"0",f="mousemove",c="mousedown",h="mouseup",d="mouseenter",p="mouseleave",m="dblclick",g="change",x="dppxchange",w="--",_="undefined"!=typeof window,b=_?document:null,v=_?window:null,k=_?navigator:null;let y,M;function S(l,e){if(null!=e){let t=l.classList;!t.contains(e)&&t.add(e)}}function T(l,e){let t=l.classList;t.contains(e)&&t.remove(e)}function E(l,e,t){l.style[e]=t+"px"}function z(l,e,t,n){let i=b.createElement(l);return null!=e&&S(i,e),null!=t&&t.insertBefore(i,n),i}function D(l,e){return z("div",l,e)}const P=new WeakMap;function A(e,t,n,i,o){let s="translate("+t+"px,"+n+"px)";s!=P.get(e)&&(e.style.transform=s,P.set(e,s),0>t||0>n||t>i||n>o?S(e,l):T(e,l))}const W=new WeakMap;function Y(l,e,t){let n=e+t;n!=W.get(l)&&(W.set(l,n),l.style.background=e,l.style.borderColor=t)}const C=new WeakMap;function H(l,e,t,n){let i=e+""+t;i!=C.get(l)&&(C.set(l,i),l.style.height=t+"px",l.style.width=e+"px",l.style.marginLeft=n?-e/2+"px":0,l.style.marginTop=n?-t/2+"px":0)}const F={passive:!0},R={...F,capture:!0};function G(l,e,t,n){e.addEventListener(l,t,n?R:F)}function I(l,e,t){e.removeEventListener(l,t,F)}function L(l,e,t,n){let i;t=t||0;let o=2147483647>=(n=n||e.length-1);for(;n-t>1;)i=o?t+n>>1:sl((t+n)/2),l>e[i]?t=i:n=i;return l-e[t]>e[n]-l?n:t}function O(l){return(e,t,n)=>{let i=-1,o=-1;for(let o=t;n>=o;o++)if(l(e[o])){i=o;break}for(let i=n;i>=t;i--)if(l(e[i])){o=i;break}return[i,o]}}_&&function l(){let e=devicePixelRatio;y!=e&&(y=e,M&&I(g,M,l),M=matchMedia(`(min-resolution: ${y-.001}dppx) and (max-resolution: ${y+.001}dppx)`),G(g,M,l),v.dispatchEvent(new CustomEvent(x)))}();const N=l=>null!=l,j=l=>null!=l&&l>0,U=O(N),V=O(j);function B(l,e,t,n){let i=hl(l),o=hl(e);l==e&&(-1==i?(l*=t,e/=t):(l/=t,e*=t));let s=10==t?dl:pl,r=1==o?ul:sl,u=(1==i?sl:ul)(s(ol(l))),a=r(s(ol(e))),f=cl(t,u),c=cl(t,a);return 10==t&&(0>u&&(f=Al(f,-u)),0>a&&(c=Al(c,-a))),n||2==t?(l=f*i,e=c*o):(l=Pl(l,f),e=Dl(e,c)),[l,e]}function $(l,e,t,n){let i=B(l,e,t,n);return 0==l&&(i[0]=0),0==e&&(i[1]=0),i}const J=.1,q={mode:3,pad:J},K={pad:0,soft:null,mode:0},X={min:K,max:K};function Z(l,e,t,n){return Ol(t)?ll(l,e,t):(K.pad=t,K.soft=n?0:null,K.mode=n?3:0,ll(l,e,X))}function Q(l,e){return null==l?e:l}function ll(l,e,t){let n=t.min,i=t.max,o=Q(n.pad,0),s=Q(i.pad,0),r=Q(n.hard,-gl),u=Q(i.hard,gl),a=Q(n.soft,gl),f=Q(i.soft,-gl),c=Q(n.mode,0),h=Q(i.mode,0),d=e-l,p=dl(d),m=fl(ol(l),ol(e)),g=dl(m),x=ol(g-p);(1e-24>d||x>10)&&(d=0,0!=l&&0!=e||(d=1e-24,2==c&&a!=gl&&(o=0),2==h&&f!=-gl&&(s=0)));let w=d||m||1e3,_=dl(w),b=cl(10,sl(_)),v=Al(Pl(l-w*(0==d?0==l?.1:1:o),b/10),24),k=a>l||1!=c&&(3!=c||v>a)&&(2!=c||a>v)?gl:a,y=fl(r,k>v&&l>=k?k:al(k,v)),M=Al(Dl(e+w*(0==d?0==e?.1:1:s),b/10),24),S=e>f||1!=h&&(3!=h||f>M)&&(2!=h||M>f)?-gl:f,T=al(u,M>S&&S>=e?S:fl(S,M));return y==T&&0==y&&(T=100),[y,T]}const el=new Intl.NumberFormat(_?k.language:"en-US"),tl=l=>el.format(l),nl=Math,il=nl.PI,ol=nl.abs,sl=nl.floor,rl=nl.round,ul=nl.ceil,al=nl.min,fl=nl.max,cl=nl.pow,hl=nl.sign,dl=nl.log10,pl=nl.log2,ml=(l,e=1)=>nl.asinh(l/e),gl=1/0;function xl(l){return 1+(0|dl((l^l>>31)-(l>>31)))}function wl(l,e,t){return al(fl(l,e),t)}function _l(l){return"function"==typeof l}function bl(l){return _l(l)?l:()=>l}const vl=l=>l,kl=(l,e)=>e,yl=()=>null,Ml=()=>!0,Sl=(l,e)=>l==e,Tl=/\.\d*?(?=9{6,}|0{6,})/gm,El=l=>{if(Il(l)||Wl.has(l))return l;const e=""+l,t=e.match(Tl);if(null==t)return l;let n=t[0].length-1;if(-1!=e.indexOf("e-")){let[l,t]=e.split("e");return+`${El(l)}e${t}`}return Al(l,n)};function zl(l,e){return El(Al(El(l/e))*e)}function Dl(l,e){return El(ul(El(l/e))*e)}function Pl(l,e){return El(sl(El(l/e))*e)}function Al(l,e=0){if(Il(l))return l;let t=10**e;return rl(l*t*(1+Number.EPSILON))/t}const Wl=new Map;function Yl(l){return((""+l).split(".")[1]||"").length}function Cl(l,e,t,n){let i=[],o=n.map(Yl);for(let s=e;t>s;s++){let e=ol(s),t=Al(cl(l,s),e);for(let r=0;n.length>r;r++){let u=10==l?+`${n[r]}e${s}`:n[r]*t,a=(0>s?e:0)+(o[r]>s?o[r]:0),f=10==l?u:Al(u,a);i.push(f),Wl.set(f,a)}}return i}const Hl={},Fl=[],Rl=[null,null],Gl=Array.isArray,Il=Number.isInteger;function Ll(l){return"string"==typeof l}function Ol(l){let e=!1;if(null!=l){let t=l.constructor;e=null==t||t==Object}return e}function Nl(l){return null!=l&&"object"==typeof l}const jl=Object.getPrototypeOf(Uint8Array),Ul="__proto__";function Vl(l,e=Ol){let t;if(Gl(l)){let n=l.find((l=>null!=l));if(Gl(n)||e(n)){t=Array(l.length);for(let n=0;l.length>n;n++)t[n]=Vl(l[n],e)}else t=l.slice()}else if(l instanceof jl)t=l.slice();else if(e(l)){t={};for(let n in l)n!=Ul&&(t[n]=Vl(l[n],e))}else t=l;return t}function Bl(l){let e=arguments;for(let t=1;e.length>t;t++){let n=e[t];for(let e in n)e!=Ul&&(Ol(l[e])?Bl(l[e],Vl(n[e])):l[e]=Vl(n[e]))}return l}function $l(l,e,t){for(let n,i=0,o=-1;e.length>i;i++){let s=e[i];if(s>o){for(n=s-1;n>=0&&null==l[n];)l[n--]=null;for(n=s+1;t>n&&null==l[n];)l[o=n++]=null}}}const Jl="undefined"==typeof queueMicrotask?l=>Promise.resolve().then(l):queueMicrotask,ql=["January","February","March","April","May","June","July","August","September","October","November","December"],Kl=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function Xl(l){return l.slice(0,3)}const Zl=Kl.map(Xl),Ql=ql.map(Xl),le={MMMM:ql,MMM:Ql,WWWW:Kl,WWW:Zl};function ee(l){return(10>l?"0":"")+l}const te={YYYY:l=>l.getFullYear(),YY:l=>(l.getFullYear()+"").slice(2),MMMM:(l,e)=>e.MMMM[l.getMonth()],MMM:(l,e)=>e.MMM[l.getMonth()],MM:l=>ee(l.getMonth()+1),M:l=>l.getMonth()+1,DD:l=>ee(l.getDate()),D:l=>l.getDate(),WWWW:(l,e)=>e.WWWW[l.getDay()],WWW:(l,e)=>e.WWW[l.getDay()],HH:l=>ee(l.getHours()),H:l=>l.getHours(),h:l=>{let e=l.getHours();return 0==e?12:e>12?e-12:e},AA:l=>12>l.getHours()?"AM":"PM",aa:l=>12>l.getHours()?"am":"pm",a:l=>12>l.getHours()?"a":"p",mm:l=>ee(l.getMinutes()),m:l=>l.getMinutes(),ss:l=>ee(l.getSeconds()),s:l=>l.getSeconds(),fff:l=>function(l){return(10>l?"00":100>l?"0":"")+l}(l.getMilliseconds())};function ne(l,e){e=e||le;let t,n=[],i=/\{([a-z]+)\}|[^{]+/gi;for(;t=i.exec(l);)n.push("{"==t[0][0]?te[t[1]]:t[0]);return l=>{let t="";for(let i=0;n.length>i;i++)t+="string"==typeof n[i]?n[i]:n[i](l,e);return t}}const ie=(new Intl.DateTimeFormat).resolvedOptions().timeZone,oe=l=>l%1==0,se=[1,2,2.5,5],re=Cl(10,-32,0,se),ue=Cl(10,0,32,se),ae=ue.filter(oe),fe=re.concat(ue),ce="{YYYY}",he="\n"+ce,de="{M}/{D}",pe="\n"+de,me=pe+"/{YY}",ge="{aa}",xe="{h}:{mm}"+ge,we="\n"+xe,_e=":{ss}",be=null;function ve(l){let e=1e3*l,t=60*e,n=60*t,i=24*n,o=30*i,s=365*i;return[(1==l?Cl(10,0,3,se).filter(oe):Cl(10,-3,0,se)).concat([e,5*e,10*e,15*e,30*e,t,5*t,10*t,15*t,30*t,n,2*n,3*n,4*n,6*n,8*n,12*n,i,2*i,3*i,4*i,5*i,6*i,7*i,8*i,9*i,10*i,15*i,o,2*o,3*o,4*o,6*o,s,2*s,5*s,10*s,25*s,50*s,100*s]),[[s,ce,be,be,be,be,be,be,1],[28*i,"{MMM}",he,be,be,be,be,be,1],[i,de,he,be,be,be,be,be,1],[n,"{h}"+ge,me,be,pe,be,be,be,1],[t,xe,me,be,pe,be,be,be,1],[e,_e,me+" "+xe,be,pe+" "+xe,be,we,be,1],[l,_e+".{fff}",me+" "+xe,be,pe+" "+xe,be,we,be,1]],function(e){return(r,u,a,f,c,h)=>{let d=[],p=c>=s,m=c>=o&&s>c,g=e(a),x=Al(g*l,3),w=Pe(g.getFullYear(),p?0:g.getMonth(),m||p?1:g.getDate()),_=Al(w*l,3);if(m||p){let t=m?c/o:0,n=p?c/s:0,i=x==_?x:Al(Pe(w.getFullYear()+n,w.getMonth()+t,1)*l,3),r=new Date(rl(i/l)),u=r.getFullYear(),a=r.getMonth();for(let o=0;f>=i;o++){let s=Pe(u+n*o,a+t*o,1),r=s-e(Al(s*l,3));i=Al((+s+r)*l,3),i>f||d.push(i)}}else{let o=i>c?c:i,s=_+(sl(a)-sl(x))+Dl(x-_,o);d.push(s);let p=e(s),m=p.getHours()+p.getMinutes()/t+p.getSeconds()/n,g=c/n,w=h/r.axes[u]._space;for(;s=Al(s+c,1==l?0:3),f>=s;)if(g>1){let l=sl(Al(m+g,6))%24,t=e(s).getHours()-l;t>1&&(t=-1),s-=t*n,m=(m+g)%24,.7>Al((s-d[d.length-1])/c,3)*w||d.push(s)}else d.push(s)}return d}}]}const[ke,ye,Me]=ve(1),[Se,Te,Ee]=ve(.001);function ze(l,e){return l.map((l=>l.map(((t,n)=>0==n||8==n||null==t?t:e(1==n||0==l[8]?t:l[1]+t)))))}function De(l,e){return(t,n,i,o,s)=>{let r,u,a,f,c,h,d=e.find((l=>s>=l[0]))||e[e.length-1];return n.map((e=>{let t=l(e),n=t.getFullYear(),i=t.getMonth(),o=t.getDate(),s=t.getHours(),p=t.getMinutes(),m=t.getSeconds(),g=n!=r&&d[2]||i!=u&&d[3]||o!=a&&d[4]||s!=f&&d[5]||p!=c&&d[6]||m!=h&&d[7]||d[1];return r=n,u=i,a=o,f=s,c=p,h=m,g(t)}))}}function Pe(l,e,t){return new Date(l,e,t)}function Ae(l,e){return e(l)}function We(l,e){return(t,n,i,o)=>null==o?w:e(l(n))}Cl(2,-53,53,[1]);const Ye={show:!0,live:!0,isolate:!1,mount:()=>{},markers:{show:!0,width:2,stroke:function(l,e){let t=l.series[e];return t.width?t.stroke(l,e):t.points.width?t.points.stroke(l,e):null},fill:function(l,e){return l.series[e].fill(l,e)},dash:"solid"},idx:null,idxs:null,values:[]},Ce=[0,0];function He(l,e,t,n=!0){return l=>{0==l.button&&(!n||l.target==e)&&t(l)}}function Fe(l,e,t,n=!0){return l=>{(!n||l.target==e)&&t(l)}}const Re={show:!0,x:!0,y:!0,lock:!1,move:function(l,e,t){return Ce[0]=e,Ce[1]=t,Ce},points:{one:!1,show:function(l,e){let i=l.cursor.points,o=D(),s=i.size(l,e);E(o,t,s),E(o,n,s);let r=s/-2;E(o,"marginLeft",r),E(o,"marginTop",r);let u=i.width(l,e,s);return u&&E(o,"borderWidth",u),o},size:function(l,e){return l.series[e].points.size},width:0,stroke:function(l,e){let t=l.series[e].points;return t._stroke||t._fill},fill:function(l,e){let t=l.series[e].points;return t._fill||t._stroke}},bind:{mousedown:He,mouseup:He,click:He,dblclick:He,mousemove:Fe,mouseleave:Fe,mouseenter:Fe},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(l,e)=>{e.stopPropagation(),e.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(l,e,t,n,i)=>n-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},Ge={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},Ie=Bl({},Ge,{filter:kl}),Le=Bl({},Ie,{size:10}),Oe=Bl({},Ge,{show:!1}),Ne='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',je="bold "+Ne,Ue={show:!0,scale:"x",stroke:u,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:je,side:2,grid:Ie,ticks:Le,border:Oe,font:Ne,lineGap:1.5,rotate:0},Ve={show:!0,scale:"x",auto:!1,sorted:1,min:gl,max:-gl,idxs:[]};function Be(l,e){return e.map((l=>null==l?"":tl(l)))}function $e(l,e,t,n,i,o,s){let r=[],u=Wl.get(i)||0;for(let l=t=s?t:Al(Dl(t,i),u);n>=l;l=Al(l+i,u))r.push(Object.is(l,-0)?0:l);return r}function Je(l,e,t,n,i){const o=[],s=l.scales[l.axes[e].scale].log,r=sl((10==s?dl:pl)(t));i=cl(s,r),10==s&&(i=fe[L(i,fe)]);let u=t,a=i*s;10==s&&(a=fe[L(a,fe)]);do{o.push(u),u+=i,10!=s||Wl.has(u)||(u=Al(u,Wl.get(i))),a>u||(a=(i=u)*s,10==s&&(a=fe[L(a,fe)]))}while(n>=u);return o}function qe(l,e,t,n,i){let o=l.scales[l.axes[e].scale].asinh,s=n>o?Je(l,e,fl(o,t),n,i):[o],r=0>n||t>0?[]:[0];return(-o>t?Je(l,e,fl(o,-n),-t,i):[o]).reverse().map((l=>-l)).concat(r,s)}const Ke=/./,Xe=/[12357]/,Ze=/[125]/,Qe=/1/,lt=(l,e,t,n)=>l.map(((l,i)=>4==e&&0==l||i%n==0&&t.test(l.toExponential()[0>l?1:0])?l:null));function et(l,e,t){let n=l.axes[t],i=n.scale,o=l.scales[i],s=l.valToPos,r=n._space,u=s(10,i),a=s(9,i)-u<r?s(7,i)-u<r?s(5,i)-u<r?Qe:Ze:Xe:Ke;if(a==Qe){let l=ol(s(1,i)-u);if(r>l)return lt(e.slice().reverse(),o.distr,a,ul(r/l)).reverse()}return lt(e,o.distr,a,1)}function tt(l,e,t){let n=l.axes[t],i=n.scale,o=n._space,s=l.valToPos,r=ol(s(1,i)-s(2,i));return o>r?lt(e.slice().reverse(),3,Ke,ul(o/r)).reverse():e}function nt(l,e,t,n){return null==n?w:null==e?"":tl(e)}const it={show:!0,scale:"y",stroke:u,space:30,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:je,side:3,grid:Ie,ticks:Le,border:Oe,font:Ne,lineGap:1.5,rotate:0},ot={scale:null,auto:!0,sorted:0,min:gl,max:-gl},st=(l,e,t,n,i)=>i,rt={show:!0,auto:!0,sorted:0,gaps:st,alpha:1,facets:[Bl({},ot,{scale:"x"}),Bl({},ot,{scale:"y"})]},ut={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:st,alpha:1,points:{show:function(l,e){let{scale:t,idxs:n}=l.series[0],i=l._data[0],o=l.valToPos(i[n[0]],t,!0),s=l.valToPos(i[n[1]],t,!0);return ol(s-o)/(l.series[e].points.space*y)>=n[1]-n[0]},filter:null},values:null,min:gl,max:-gl,idxs:[],path:null,clip:null};function at(l,e,t){return t/10}const ft={time:!0,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},ct=Bl({},ft,{time:!1,ori:1}),ht={};function dt(l){let e=ht[l];return e||(e={key:l,plots:[],sub(l){e.plots.push(l)},unsub(l){e.plots=e.plots.filter((e=>e!=l))},pub(l,t,n,i,o,s,r){for(let u=0;e.plots.length>u;u++)e.plots[u]!=t&&e.plots[u].pub(l,t,n,i,o,s,r)}},null!=l&&(ht[l]=e)),e}function pt(l,e,t){const n=l.mode,i=l.series[e],o=2==n?l._data[e]:l._data,s=l.scales,r=l.bbox;let u=o[0],a=2==n?o[1]:o[e],f=2==n?s[i.facets[0].scale]:s[l.series[0].scale],c=2==n?s[i.facets[1].scale]:s[i.scale],h=r.left,d=r.top,p=r.width,m=r.height,g=l.valToPosH,x=l.valToPosV;return 0==f.ori?t(i,u,a,f,c,g,x,h,d,p,m,kt,Mt,Tt,zt,Pt):t(i,u,a,f,c,x,g,d,h,m,p,yt,St,Et,Dt,At)}function mt(l,e){let t=0,n=0,i=Q(l.bands,Fl);for(let l=0;i.length>l;l++){let o=i[l];o.series[0]==e?t=o.dir:o.series[1]==e&&(n|=1==o.dir?1:2)}return[t,1==n?-1:2==n?1:3==n?2:0]}function gt(l,e,t,n,i){let o=l.series[e],s=l.scales[2==l.mode?o.facets[1].scale:o.scale];return-1==i?s.min:1==i?s.max:3==s.distr?1==s.dir?s.min:s.max:0}function xt(l,e,t,n,i,o){return pt(l,e,((l,e,s,r,u,a,f,c,h,d,p)=>{let m=l.pxRound;const g=0==r.ori?Mt:St;let x,w;1==r.dir*(0==r.ori?1:-1)?(x=t,w=n):(x=n,w=t);let _=m(a(e[x],r,d,c)),b=m(f(s[x],u,p,h)),v=m(a(e[w],r,d,c)),k=m(f(1==o?u.max:u.min,u,p,h)),y=new Path2D(i);return g(y,v,k),g(y,_,k),g(y,_,b),y}))}function wt(l,e,t,n,i,o){let s=null;if(l.length>0){s=new Path2D;const r=0==e?Tt:Et;let u=t;for(let e=0;l.length>e;e++){let t=l[e];if(t[1]>t[0]){let l=t[0]-u;l>0&&r(s,u,n,l,n+o),u=t[1]}}let a=t+i-u,f=10;a>0&&r(s,u,n-f/2,a,n+o+f)}return s}function _t(l,e,t,n,i,o,s){let r=[],u=l.length;for(let a=1==i?t:n;a>=t&&n>=a;a+=i)if(null===e[a]){let f=a,c=a;if(1==i)for(;++a<=n&&null===e[a];)c=a;else for(;--a>=t&&null===e[a];)c=a;let h=o(l[f]),d=c==f?h:o(l[c]),p=f-i;h=s>0||0>p||p>=u?h:o(l[p]);let m=c+i;d=0>s||0>m||m>=u?d:o(l[m]),h>d||r.push([h,d])}return r}function bt(l){return 0==l?vl:1==l?rl:e=>zl(e,l)}function vt(l){let e=0==l?kt:yt,t=0==l?(l,e,t,n,i,o)=>{l.arcTo(e,t,n,i,o)}:(l,e,t,n,i,o)=>{l.arcTo(t,e,i,n,o)},n=0==l?(l,e,t,n,i)=>{l.rect(e,t,n,i)}:(l,e,t,n,i)=>{l.rect(t,e,i,n)};return(l,i,o,s,r,u=0,a=0)=>{0==u&&0==a?n(l,i,o,s,r):(u=al(u,s/2,r/2),a=al(a,s/2,r/2),e(l,i+u,o),t(l,i+s,o,i+s,o+r,u),t(l,i+s,o+r,i,o+r,a),t(l,i,o+r,i,o,a),t(l,i,o,i+s,o,u),l.closePath())}}const kt=(l,e,t)=>{l.moveTo(e,t)},yt=(l,e,t)=>{l.moveTo(t,e)},Mt=(l,e,t)=>{l.lineTo(e,t)},St=(l,e,t)=>{l.lineTo(t,e)},Tt=vt(0),Et=vt(1),zt=(l,e,t,n,i,o)=>{l.arc(e,t,n,i,o)},Dt=(l,e,t,n,i,o)=>{l.arc(t,e,n,i,o)},Pt=(l,e,t,n,i,o,s)=>{l.bezierCurveTo(e,t,n,i,o,s)},At=(l,e,t,n,i,o,s)=>{l.bezierCurveTo(t,e,i,n,s,o)};function Wt(){return(l,e,t,n,i)=>pt(l,e,((e,o,s,r,u,a,f,c,h,d,p)=>{let m,g,{pxRound:x,points:w}=e;0==r.ori?(m=kt,g=zt):(m=yt,g=Dt);const _=Al(w.width*y,3);let b=(w.size-w.width)/2*y,v=Al(2*b,3),k=new Path2D,M=new Path2D,{left:S,top:T,width:E,height:z}=l.bbox;Tt(M,S-v,T-v,E+2*v,z+2*v);const D=l=>{if(null!=s[l]){let e=x(a(o[l],r,d,c)),t=x(f(s[l],u,p,h));m(k,e+b,t),g(k,e,t,b,0,2*il)}};if(i)i.forEach(D);else for(let l=t;n>=l;l++)D(l);return{stroke:_>0?k:null,fill:k,clip:M,flags:3}}))}function Yt(l){return(e,t,n,i,o,s)=>{n!=i&&(o!=n&&s!=n&&l(e,t,n),o!=i&&s!=i&&l(e,t,i),l(e,t,s))}}const Ct=Yt(Mt),Ht=Yt(St);function Ft(l){const e=Q(l?.alignGaps,0);return(l,t,n,i)=>pt(l,t,((o,s,r,u,a,f,c,h,d,p,m)=>{[n,i]=U(r,n,i);let g,x,w=o.pxRound,_=l=>w(f(l,u,p,h)),b=l=>w(c(l,a,m,d));0==u.ori?(g=Mt,x=Ct):(g=St,x=Ht);const v=u.dir*(0==u.ori?1:-1),k={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:1},y=k.stroke;let M=!1;if(i-n<4*p)for(let l=1==v?n:i;l>=n&&i>=l;l+=v){let e=r[l];null===e?M=!0:null!=e&&g(y,_(s[l]),b(e))}else{let e,t,o,a=e=>l.posToVal(e,u.key,!0),f=null,c=null,h=_(s[1==v?n:i]),d=_(s[n]),p=_(s[i]),m=a(1==v?d+1:p-1);for(let l=1==v?n:i;l>=n&&i>=l;l+=v){let n=s[l],i=(1==v?m>n:n>m)?h:_(n),o=r[l];i==h?null!=o?(t=o,null==f?(g(y,i,b(t)),e=f=c=t):f>t?f=t:t>c&&(c=t)):null===o&&(M=!0):(null!=f&&x(y,h,b(f),b(c),b(e),b(t)),null!=o?(t=o,g(y,i,b(t)),f=c=e=t):(f=c=null,null===o&&(M=!0)),h=i,m=a(h+v))}null!=f&&f!=c&&o!=h&&x(y,h,b(f),b(c),b(e),b(t))}let[S,T]=mt(l,t);if(null!=o.fill||0!=S){let e=k.fill=new Path2D(y),r=b(o.fillTo(l,t,o.min,o.max,S)),u=_(s[n]),a=_(s[i]);-1==v&&([a,u]=[u,a]),g(e,a,r),g(e,u,r)}if(!o.spanGaps){let a=[];M&&a.push(..._t(s,r,n,i,v,_,e)),k.gaps=a=o.gaps(l,t,n,i,a),k.clip=wt(a,u.ori,h,d,p,m)}return 0!=T&&(k.band=2==T?[xt(l,t,n,i,y,-1),xt(l,t,n,i,y,1)]:xt(l,t,n,i,y,T)),k}))}function Rt(l,e,t,n,i,o,s=gl){if(l.length>1){let r=null;for(let u=0,a=1/0;l.length>u;u++)if(void 0!==e[u]){if(null!=r){let e=ol(l[u]-l[r]);a>e&&(a=e,s=ol(t(l[u],n,i,o)-t(l[r],n,i,o)))}r=u}}return s}function Gt(l,e,t,n,i){const o=l.length;if(2>o)return null;const s=new Path2D;if(t(s,l[0],e[0]),2==o)n(s,l[1],e[1]);else{let t=Array(o),n=Array(o-1),r=Array(o-1),u=Array(o-1);for(let t=0;o-1>t;t++)r[t]=e[t+1]-e[t],u[t]=l[t+1]-l[t],n[t]=r[t]/u[t];t[0]=n[0];for(let l=1;o-1>l;l++)0===n[l]||0===n[l-1]||n[l-1]>0!=n[l]>0?t[l]=0:(t[l]=3*(u[l-1]+u[l])/((2*u[l]+u[l-1])/n[l-1]+(u[l]+2*u[l-1])/n[l]),isFinite(t[l])||(t[l]=0));t[o-1]=n[o-2];for(let n=0;o-1>n;n++)i(s,l[n]+u[n]/3,e[n]+t[n]*u[n]/3,l[n+1]-u[n]/3,e[n+1]-t[n+1]*u[n]/3,l[n+1],e[n+1])}return s}const It=new Set;function Lt(){for(let l of It)l.syncRect(!0)}_&&(G("resize",v,Lt),G("scroll",v,Lt,!0),G(x,v,(()=>{en.pxRatio=y})));const Ot=Ft(),Nt=Wt();function jt(l,e,t,n){return(n?[l[0],l[1]].concat(l.slice(2)):[l[0]].concat(l.slice(1))).map(((l,n)=>Ut(l,n,e,t)))}function Ut(l,e,t,n){return Bl({},0==e?t:n,l)}function Vt(l,e,t){return null==e?Rl:[e,t]}const Bt=Vt;function $t(l,e,t){return null==e?Rl:Z(e,t,J,!0)}function Jt(l,e,t,n){return null==e?Rl:B(e,t,l.scales[n].log,!1)}const qt=Jt;function Kt(l,e,t,n){return null==e?Rl:$(e,t,l.scales[n].log,!1)}const Xt=Kt;function Zt(l,e,t,n,i){let o=fl(xl(l),xl(e)),s=e-l,r=L(i/n*s,t);do{let l=t[r],e=n*l/s;if(e>=i&&17>=o+(5>l?Wl.get(l):0))return[l,e]}while(++r<t.length);return[0,0]}function Qt(l){let e,t;return[l=l.replace(/(\d+)px/,((l,n)=>(e=rl((t=+n)*y))+"px")),e,t]}function ln(l){l.show&&[l.font,l.labelFont].forEach((l=>{let e=Al(l[2]*y,1);l[0]=l[0].replace(/[0-9.]+px/,e+"px"),l[1]=e}))}function en(u,g,_){const k={mode:Q(u.mode,1)},M=k.mode;function P(l,e,t,n){let i=e.valToPct(l);return n+t*(-1==e.dir?1-i:i)}function W(l,e,t,n){let i=e.valToPct(l);return n+t*(-1==e.dir?i:1-i)}function C(l,e,t,n){return 0==e.ori?P(l,e,t,n):W(l,e,t,n)}k.valToPosH=P,k.valToPosV=W;let F=!1;k.status=0;const R=k.root=D("uplot");null!=u.id&&(R.id=u.id),S(R,u.class),u.title&&(D("u-title",R).textContent=u.title);const O=z("canvas"),K=k.ctx=O.getContext("2d"),X=D("u-wrap",R);G("click",X,(l=>{l.target===el&&(Nn!=Gn||jn!=In)&&Zn.click(k,l)}),!0);const ll=k.under=D("u-under",X);X.appendChild(O);const el=k.over=D("u-over",X),tl=+Q((u=Vl(u)).pxAlign,1),sl=bt(tl);(u.plugins||[]).forEach((l=>{l.opts&&(u=l.opts(k,u)||u)}));const hl=u.ms||.001,pl=k.series=1==M?jt(u.series||[],Ve,ut,!1):function(l,e){return l.map(((l,t)=>0==t?{}:Bl({},e,l)))}(u.series||[null],rt),xl=k.axes=jt(u.axes||[],Ue,it,!0),vl=k.scales={},Tl=k.bands=u.bands||[];Tl.forEach((l=>{l.fill=bl(l.fill||null),l.dir=Q(l.dir,-1)}));const El=2==M?pl[1].facets[0].scale:pl[0].scale,Dl={axes:function(){for(let l=0;xl.length>l;l++){let e=xl[l];if(!e.show||!e._show)continue;let t,n,u=e.side,a=u%2,f=e.stroke(k,l),c=0==u||3==u?-1:1,[h,d]=e._found;if(null!=e.label){let s=rl((e._lpos+e.labelGap*c)*y);_n(e.labelFont[0],f,"center",2==u?i:o),K.save(),1==a?(t=n=0,K.translate(s,rl(lt+st/2)),K.rotate((3==u?-il:il)/2)):(t=rl(Qe+ot/2),n=s);let r=_l(e.label)?e.label(k,l,h,d):e.label;K.fillText(r,t,n),K.restore()}if(0==d)continue;let p=vl[e.scale],m=0==a?ot:st,g=0==a?Qe:lt,x=e._splits,w=2==p.distr?x.map((l=>pn[l])):x,_=2==p.distr?pn[x[1]]-pn[x[0]]:h,b=e.ticks,v=e.border,M=b.show?b.size:0,S=rl(M*y),T=rl((2==e.alignTo?e._size-M-e.gap:e.gap)*y),E=e._rotate*-il/180,z=sl(e._pos*y),D=z+(S+T)*c;n=0==a?D:0,t=1==a?D:0,_n(e.font[0],f,1==e.align?s:2==e.align?r:E>0?s:0>E?r:0==a?"center":3==u?r:s,E||1==a?"middle":2==u?i:o);let P=e.font[1]*e.lineGap,A=x.map((l=>sl(C(l,p,m,g)))),W=e._values;for(let l=0;W.length>l;l++){let e=W[l];if(null!=e){0==a?t=A[l]:n=A[l],e=""+e;let i=-1==e.indexOf("\n")?[e]:e.split(/\n/gm);for(let l=0;i.length>l;l++){let e=i[l];E?(K.save(),K.translate(t,n+l*P),K.rotate(E),K.fillText(e,0,0),K.restore()):K.fillText(e,t,n+l*P)}}}b.show&&zn(A,b.filter(k,w,l,d,_),a,u,z,S,Al(b.width*y,3),b.stroke(k,l),b.dash,b.cap);let Y=e.grid;Y.show&&zn(A,Y.filter(k,w,l,d,_),a,0==a?2:1,0==a?lt:Qe,0==a?st:ot,Al(Y.width*y,3),Y.stroke(k,l),Y.dash,Y.cap),v.show&&zn([z],[1],0==a?1:0,0==a?1:2,1==a?lt:Qe,1==a?st:ot,Al(v.width*y,3),v.stroke(k,l),v.dash,v.cap)}Ci("drawAxes")},series:function(){if(Gt>0){let l=pl.some((l=>l._focus))&&dn!=Tt.alpha;l&&(K.globalAlpha=dn=Tt.alpha),pl.forEach(((l,e)=>{if(e>0&&l.show&&(kn(e,!1),kn(e,!0),null==l._paths)){let t=dn;dn!=l.alpha&&(K.globalAlpha=dn=l.alpha);let n=2==M?[0,g[e][0].length-1]:function(l){let e=wl(Lt-1,0,Gt-1),t=wl(en+1,0,Gt-1);for(;null==l[e]&&e>0;)e--;for(;null==l[t]&&Gt-1>t;)t++;return[e,t]}(g[e]);l._paths=l.paths(k,e,n[0],n[1]),dn!=t&&(K.globalAlpha=dn=t)}})),pl.forEach(((l,e)=>{if(e>0&&l.show){let t=dn;dn!=l.alpha&&(K.globalAlpha=dn=l.alpha),null!=l._paths&&yn(e,!1);{let t=null!=l._paths?l._paths.gaps:null,n=l.points.show(k,e,Lt,en,t),i=l.points.filter(k,e,n,t);(n||i)&&(l.points._paths=l.points.paths(k,e,Lt,en,i),yn(e,!0))}dn!=t&&(K.globalAlpha=dn=t),Ci("drawSeries",e)}})),l&&(K.globalAlpha=dn=1)}}},Pl=(u.drawOrder||["axes","series"]).map((l=>Dl[l]));function Cl(l){const e=3==l.distr?e=>dl(e>0?e:l.clamp(k,e,l.min,l.max,l.key)):4==l.distr?e=>ml(e,l.asinh):100==l.distr?e=>l.fwd(e):l=>l;return t=>{let n=e(t),{_min:i,_max:o}=l;return(n-i)/(o-i)}}function Il(l){let e=vl[l];if(null==e){let t=(u.scales||Hl)[l]||Hl;if(null!=t.from){Il(t.from);let e=Bl({},vl[t.from],t,{key:l});e.valToPct=Cl(e),vl[l]=e}else{e=vl[l]=Bl({},l==El?ft:ct,t),e.key=l;let n=e.time,i=e.range,o=Gl(i);if((l!=El||2==M&&!n)&&(!o||null!=i[0]&&null!=i[1]||(i={min:null==i[0]?q:{mode:1,hard:i[0],soft:i[0]},max:null==i[1]?q:{mode:1,hard:i[1],soft:i[1]}},o=!1),!o&&Ol(i))){let l=i;i=(e,t,n)=>null==t?Rl:Z(t,n,l)}e.range=bl(i||(n?Bt:l==El?3==e.distr?qt:4==e.distr?Xt:Vt:3==e.distr?Jt:4==e.distr?Kt:$t)),e.auto=bl(!o&&e.auto),e.clamp=bl(e.clamp||at),e._min=e._max=null,e.valToPct=Cl(e)}}}Il("x"),Il("y"),1==M&&pl.forEach((l=>{Il(l.scale)})),xl.forEach((l=>{Il(l.scale)}));for(let l in u.scales)Il(l);const jl=vl[El],Ul=jl.distr;let $l,ql;0==jl.ori?(S(R,"u-hz"),$l=P,ql=W):(S(R,"u-vt"),$l=W,ql=P);const Kl={};for(let l in vl){let e=vl[l];null==e.min&&null==e.max||(Kl[l]={min:e.min,max:e.max},e.min=e.max=null)}const Xl=u.tzDate||(l=>new Date(rl(l/hl))),Zl=u.fmtDate||ne,Ql=1==hl?Me(Xl):Ee(Xl),le=De(Xl,ze(1==hl?ye:Te,Zl)),ee=We(Xl,Ae("{YYYY}-{MM}-{DD} {h}:{mm}{aa}",Zl)),te=[],ie=k.legend=Bl({},Ye,u.legend),oe=k.cursor=Bl({},Re,{drag:{y:2==M}},u.cursor),se=ie.show,re=oe.show,ue=ie.markers;let ce,he,de;ie.idxs=te,ue.width=bl(ue.width),ue.dash=bl(ue.dash),ue.stroke=bl(ue.stroke),ue.fill=bl(ue.fill);let pe,me=[],ge=[],xe=!1,we={};if(ie.live){const l=pl[1]?pl[1].values:null;xe=null!=l,pe=xe?l(k,1,0):{_:0};for(let l in pe)we[l]=w}if(se)if(ce=z("table","u-legend",R),de=z("tbody",null,ce),ie.mount(k,ce),xe){he=z("thead",null,ce,de);let l=z("tr",null,he);for(var _e in z("th",null,l),pe)z("th",e,l).textContent=_e}else S(ce,"u-inline"),ie.live&&S(ce,"u-live");const be={show:!0},ve={show:!1},Pe=new Map;function Ce(l,e,t,n=!0){const i=Pe.get(e)||{},o=oe.bind[l](k,e,t,n);o&&(G(l,e,i[l]=o),Pe.set(e,i))}function He(l,e){const t=Pe.get(e)||{};for(let n in t)null!=l&&n!=l||(I(n,e,t[n]),delete t[n]);null==l&&Pe.delete(e)}let Fe=0,Ge=0,Ie=0,Le=0,Oe=0,Ne=0,je=Oe,Ke=Ne,Xe=Ie,Ze=Le,Qe=0,lt=0,ot=0,st=0;k.bbox={};let ht=!1,pt=!1,mt=!1,xt=!1,wt=!1,_t=!1;function vt(l,e,t){(t||l!=k.width||e!=k.height)&&kt(l,e),An(!1),mt=!0,pt=!0,Jn()}function kt(l,e){k.width=Fe=Ie=l,k.height=Ge=Le=e,Oe=Ne=0,function(){let l=!1,e=!1,t=!1,n=!1;xl.forEach((i=>{if(i.show&&i._show){let{side:o,_size:s}=i,r=s+(null!=i.label?i.labelSize:0);r>0&&(o%2?(Ie-=r,3==o?(Oe+=r,n=!0):t=!0):(Le-=r,0==o?(Ne+=r,l=!0):e=!0))}})),Ct[0]=l,Ct[1]=t,Ct[2]=e,Ct[3]=n,Ie-=Rt[1]+Rt[3],Oe+=Rt[3],Le-=Rt[2]+Rt[0],Ne+=Rt[0]}(),function(){let l=Oe+Ie,e=Ne+Le,t=Oe,n=Ne;function i(i,o){switch(i){case 1:return l+=o,l-o;case 2:return e+=o,e-o;case 3:return t-=o,t+o;case 0:return n-=o,n+o}}xl.forEach((l=>{if(l.show&&l._show){let e=l.side;l._pos=i(e,l._size),null!=l.label&&(l._lpos=i(e,l.labelSize))}}))}();let t=k.bbox;Qe=t.left=zl(Oe*y,.5),lt=t.top=zl(Ne*y,.5),ot=t.width=zl(Ie*y,.5),st=t.height=zl(Le*y,.5)}const yt=3;if(k.setSize=function({width:l,height:e}){vt(l,e)},null==oe.dataIdx){let l=oe.hover,e=l.skip=new Set(l.skip??[]);e.add(void 0);let t=l.prox=bl(l.prox),n=l.bias??=0;oe.dataIdx=(l,i,o,s)=>{if(0==i)return o;let r=o,u=t(l,i,o,s)??gl,a=u>=0&&gl>u,f=0==jl.ori?Ie:Le,c=oe.left,h=g[0],d=g[i];if(e.has(d[o])){r=null;let l,t=null,i=null;if(0==n||-1==n)for(l=o;null==t&&l-- >0;)e.has(d[l])||(t=l);if(0==n||1==n)for(l=o;null==i&&l++<d.length;)e.has(d[l])||(i=l);if(null!=t||null!=i)if(a){let l=c-(null==t?-1/0:$l(h[t],jl,f,0)),e=(null==i?1/0:$l(h[i],jl,f,0))-c;l>e?e>u||(r=i):l>u||(r=t)}else r=null==i?t:null==t||o-t>i-o?i:t}else a&&ol(c-$l(h[o],jl,f,0))>u&&(r=null);return r}}const Mt=l=>{oe.event=l};oe.idxs=te,oe._lock=!1;let St=oe.points;St.show=bl(St.show),St.size=bl(St.size),St.stroke=bl(St.stroke),St.width=bl(St.width),St.fill=bl(St.fill);const Tt=k.focus=Bl({},u.focus||{alpha:.3},oe.focus),Et=Tt.prox>=0,zt=Et&&St.one;let Dt=[],Pt=[],At=[];function Wt(l,e){let t=St.show(k,e);if(t instanceof HTMLElement)return S(t,"u-cursor-pt"),S(t,l.class),A(t,-10,-10,Ie,Le),el.insertBefore(t,Dt[e]),t}function Yt(t,n){if(1==M||n>0){let l=1==M&&vl[t.scale].time,e=t.value;t.value=l?Ll(e)?We(Xl,Ae(e,Zl)):e||ee:e||nt,t.label=t.label||(l?"Time":"Value")}if(zt||n>0){t.width=null==t.width?1:t.width,t.paths=t.paths||Ot||yl,t.fillTo=bl(t.fillTo||gt),t.pxAlign=+Q(t.pxAlign,tl),t.pxRound=bt(t.pxAlign),t.stroke=bl(t.stroke||null),t.fill=bl(t.fill||null),t._stroke=t._fill=t._paths=t._focus=null;let l=function(l){return Al(1*(3+2*(l||1)),3)}(fl(1,t.width)),e=t.points=Bl({},{size:l,width:fl(1,.2*l),stroke:t.stroke,space:2*l,paths:Nt,_stroke:null,_fill:null},t.points);e.show=bl(e.show),e.filter=bl(e.filter),e.fill=bl(e.fill),e.stroke=bl(e.stroke),e.paths=bl(e.paths),e.pxAlign=t.pxAlign}if(se){let i=function(t,n){if(0==n&&(xe||!ie.live||2==M))return Rl;let i=[],o=z("tr","u-series",de,de.childNodes[n]);S(o,t.class),t.show||S(o,l);let s=z("th",null,o);if(ue.show){let l=D("u-marker",s);if(n>0){let e=ue.width(k,n);e&&(l.style.border=e+"px "+ue.dash(k,n)+" "+ue.stroke(k,n)),l.style.background=ue.fill(k,n)}}let r=D(e,s);for(var u in t.label instanceof HTMLElement?r.appendChild(t.label):r.textContent=t.label,n>0&&(ue.show||(r.style.color=t.width>0?ue.stroke(k,n):ue.fill(k,n)),Ce("click",s,(l=>{if(oe._lock)return;Mt(l);let e=pl.indexOf(t);if((l.ctrlKey||l.metaKey)!=ie.isolate){let l=pl.some(((l,t)=>t>0&&t!=e&&l.show));pl.forEach(((t,n)=>{n>0&&oi(n,l?n==e?be:ve:be,!0,Fi.setSeries)}))}else oi(e,{show:!t.show},!0,Fi.setSeries)}),!1),Et&&Ce(d,s,(l=>{oe._lock||(Mt(l),oi(pl.indexOf(t),ai,!0,Fi.setSeries))}),!1)),pe){let l=z("td","u-value",o);l.textContent="--",i.push(l)}return[o,i]}(t,n);me.splice(n,0,i[0]),ge.splice(n,0,i[1]),ie.values.push(null)}if(re){te.splice(n,0,null);let l=null;zt?0==n&&(l=Wt(t,n)):n>0&&(l=Wt(t,n)),Dt.splice(n,0,l),Pt.splice(n,0,0),At.splice(n,0,0)}Ci("addSeries",n)}k.addSeries=function(l,e){e=null==e?pl.length:e,l=1==M?Ut(l,e,Ve,ut):Ut(l,e,{},rt),pl.splice(e,0,l),Yt(pl[e],e)},k.delSeries=function(l){if(pl.splice(l,1),se){ie.values.splice(l,1),ge.splice(l,1);let e=me.splice(l,1)[0];He(null,e.firstChild),e.remove()}re&&(te.splice(l,1),Dt.splice(l,1)[0].remove(),Pt.splice(l,1),At.splice(l,1)),Ci("delSeries",l)};const Ct=[!1,!1,!1,!1];function Ht(l,e,t){let[n,i,o,s]=t,r=e%2,u=0;return 0==r&&(s||i)&&(u=0==e&&!n||2==e&&!o?rl(Ue.size/3):0),1==r&&(n||o)&&(u=1==e&&!i||3==e&&!s?rl(it.size/2):0),u}const Ft=k.padding=(u.padding||[Ht,Ht,Ht,Ht]).map((l=>bl(Q(l,Ht)))),Rt=k._padding=Ft.map(((l,e)=>l(k,e,Ct,0)));let Gt,Lt=null,en=null;const tn=1==M?pl[0].idxs:null;let nn,on,sn,rn,un,an,fn,cn,hn,dn,pn=null,mn=!1;function gn(l,e){if(k.data=k._data=g=null==l?[]:l,2==M){Gt=0;for(let l=1;pl.length>l;l++)Gt+=g[l][0].length}else{0==g.length&&(k.data=k._data=g=[[]]),pn=g[0],Gt=pn.length;let l=g;if(2==Ul){l=g.slice();let e=l[0]=Array(Gt);for(let l=0;Gt>l;l++)e[l]=l}k._data=g=l}if(An(!0),Ci("setData"),2==Ul&&(mt=!0),!1!==e){let l=jl;l.auto(k,mn)?xn():ii(El,l.min,l.max),xt=xt||oe.left>=0,_t=!0,Jn()}}function xn(){let l,e;mn=!0,1==M&&(Gt>0?(Lt=tn[0]=0,en=tn[1]=Gt-1,l=g[0][Lt],e=g[0][en],2==Ul?(l=Lt,e=en):l==e&&(3==Ul?[l,e]=B(l,l,jl.log,!1):4==Ul?[l,e]=$(l,l,jl.log,!1):jl.time?e=l+rl(86400/hl):[l,e]=Z(l,e,J,!0))):(Lt=tn[0]=l=null,en=tn[1]=e=null)),ii(El,l,e)}function wn(l,e,t,n,i,o){l??=a,t??=Fl,n??="butt",i??=a,o??="round",l!=nn&&(K.strokeStyle=nn=l),i!=on&&(K.fillStyle=on=i),e!=sn&&(K.lineWidth=sn=e),o!=un&&(K.lineJoin=un=o),n!=an&&(K.lineCap=an=n),t!=rn&&K.setLineDash(rn=t)}function _n(l,e,t,n){e!=on&&(K.fillStyle=on=e),l!=fn&&(K.font=fn=l),t!=cn&&(K.textAlign=cn=t),n!=hn&&(K.textBaseline=hn=n)}function bn(l,e,t,n,i=0){if(n.length>0&&l.auto(k,mn)&&(null==e||null==e.min)){let e=Q(Lt,0),o=Q(en,n.length-1),s=null==t.min?function(l,e,t,n=0,i=!1){let o=i?V:U,s=i?j:N;[e,t]=o(l,e,t);let r=l[e],u=l[e];if(e>-1)if(1==n)r=l[e],u=l[t];else if(-1==n)r=l[t],u=l[e];else for(let n=e;t>=n;n++){let e=l[n];s(e)&&(r>e?r=e:e>u&&(u=e))}return[r??gl,u??-gl]}(n,e,o,i,3==l.distr):[t.min,t.max];l.min=al(l.min,t.min=s[0]),l.max=fl(l.max,t.max=s[1])}}k.setData=gn;const vn={min:null,max:null};function kn(l,e){let t=e?pl[l].points:pl[l];t._stroke=t.stroke(k,l),t._fill=t.fill(k,l)}function yn(l,e){let t=e?pl[l].points:pl[l],{stroke:n,fill:i,clip:o,flags:s,_stroke:r=t._stroke,_fill:u=t._fill,_width:a=t.width}=t._paths;a=Al(a*y,3);let f=null,c=a%2/2;e&&null==u&&(u=a>0?"#fff":r);let h=1==t.pxAlign&&c>0;if(h&&K.translate(c,c),!e){let l=Qe-a/2,e=lt-a/2,t=ot+a,n=st+a;f=new Path2D,f.rect(l,e,t,n)}e?Sn(r,a,t.dash,t.cap,u,n,i,s,o):function(l,e,t,n,i,o,s,r,u,a,f){let c=!1;0!=u&&Tl.forEach(((h,d)=>{if(h.series[0]==l){let l,p=pl[h.series[1]],m=g[h.series[1]],x=(p._paths||Hl).band;Gl(x)&&(x=1==h.dir?x[0]:x[1]);let w=null;p.show&&x&&function(l,e,t){for(e=Q(e,0),t=Q(t,l.length-1);t>=e;){if(null!=l[e])return!0;e++}return!1}(m,Lt,en)?(w=h.fill(k,d)||o,l=p._paths.clip):x=null,Sn(e,t,n,i,w,s,r,u,a,f,l,x),c=!0}})),c||Sn(e,t,n,i,o,s,r,u,a,f)}(l,r,a,t.dash,t.cap,u,n,i,s,f,o),h&&K.translate(-c,-c)}const Mn=3;function Sn(l,e,t,n,i,o,s,r,u,a,f,c){wn(l,e,t,n,i),(u||a||c)&&(K.save(),u&&K.clip(u),a&&K.clip(a)),c?(r&Mn)==Mn?(K.clip(c),f&&K.clip(f),En(i,s),Tn(l,o,e)):2&r?(En(i,s),K.clip(c),Tn(l,o,e)):1&r&&(K.save(),K.clip(c),f&&K.clip(f),En(i,s),K.restore(),Tn(l,o,e)):(En(i,s),Tn(l,o,e)),(u||a||c)&&K.restore()}function Tn(l,e,t){t>0&&(e instanceof Map?e.forEach(((l,e)=>{K.strokeStyle=nn=e,K.stroke(l)})):null!=e&&l&&K.stroke(e))}function En(l,e){e instanceof Map?e.forEach(((l,e)=>{K.fillStyle=on=e,K.fill(l)})):null!=e&&l&&K.fill(e)}function zn(l,e,t,n,i,o,s,r,u,a){let f=s%2/2;1==tl&&K.translate(f,f),wn(r,s,u,a,r),K.beginPath();let c,h,d,p,m=i+(0==n||3==n?-o:o);0==t?(h=i,p=m):(c=i,d=m);for(let n=0;l.length>n;n++)null!=e[n]&&(0==t?c=d=l[n]:h=p=l[n],K.moveTo(c,h),K.lineTo(d,p));K.stroke(),1==tl&&K.translate(-f,-f)}function Dn(l){let e=!0;return xl.forEach(((t,n)=>{if(!t.show)return;let i=vl[t.scale];if(null==i.min)return void(t._show&&(e=!1,t._show=!1,An(!1)));t._show||(e=!1,t._show=!0,An(!1));let o=t.side,s=o%2,{min:r,max:u}=i,[a,f]=function(l,e,t,n){let i,o=xl[l];if(n>0){let s=o._space=o.space(k,l,e,t,n);i=Zt(e,t,o._incrs=o.incrs(k,l,e,t,n,s),n,s)}else i=[0,0];return o._found=i}(n,r,u,0==s?Ie:Le);if(0==f)return;let c=t._splits=t.splits(k,n,r,u,a,f,2==i.distr),h=2==i.distr?c.map((l=>pn[l])):c,d=2==i.distr?pn[c[1]]-pn[c[0]]:a,p=t._values=t.values(k,t.filter(k,h,n,f,d),n,f,d);t._rotate=2==o?t.rotate(k,p,n,f):0;let m=t._size;t._size=ul(t.size(k,p,n,l)),null!=m&&t._size!=m&&(e=!1)})),e}function Pn(l){let e=!0;return Ft.forEach(((t,n)=>{let i=t(k,n,Ct,l);i!=Rt[n]&&(e=!1),Rt[n]=i})),e}function An(l){pl.forEach(((e,t)=>{t>0&&(e._paths=null,l&&(1==M?(e.min=null,e.max=null):e.facets.forEach((l=>{l.min=null,l.max=null}))))}))}let Wn,Yn,Cn,Hn,Fn,Rn,Gn,In,Ln,On,Nn,jn,Un=!1,Vn=!1,Bn=[];function $n(){Vn=!1;for(let l=0;Bn.length>l;l++)Ci(...Bn[l]);Bn.length=0}function Jn(){Un||(Jl(qn),Un=!0)}function qn(){if(ht&&(function(){for(let l in vl){let e=vl[l];null==Kl[l]&&(null==e.min||null!=Kl[El]&&e.auto(k,mn))&&(Kl[l]=vn)}for(let l in vl){let e=vl[l];null==Kl[l]&&null!=e.from&&null!=Kl[e.from]&&(Kl[l]=vn)}null!=Kl[El]&&An(!0);let l={};for(let e in Kl){let t=Kl[e];if(null!=t){let n=l[e]=Vl(vl[e],Nl);if(null!=t.min)Bl(n,t);else if(e!=El||2==M)if(0==Gt&&null==n.from){let l=n.range(k,null,null,e);n.min=l[0],n.max=l[1]}else n.min=gl,n.max=-gl}}if(Gt>0){pl.forEach(((e,t)=>{if(1==M){let n=e.scale,i=Kl[n];if(null==i)return;let o=l[n];if(0==t){let l=o.range(k,o.min,o.max,n);o.min=l[0],o.max=l[1],Lt=L(o.min,g[0]),en=L(o.max,g[0]),en-Lt>1&&(o.min>g[0][Lt]&&Lt++,g[0][en]>o.max&&en--),e.min=pn[Lt],e.max=pn[en]}else e.show&&e.auto&&bn(o,i,e,g[t],e.sorted);e.idxs[0]=Lt,e.idxs[1]=en}else if(t>0&&e.show&&e.auto){let[n,i]=e.facets,o=n.scale,s=i.scale,[r,u]=g[t],a=l[o],f=l[s];null!=a&&bn(a,Kl[o],n,r,n.sorted),null!=f&&bn(f,Kl[s],i,u,i.sorted),e.min=i.min,e.max=i.max}}));for(let e in l){let t=l[e],n=Kl[e];if(null==t.from&&(null==n||null==n.min)){let l=t.range(k,t.min==gl?null:t.min,t.max==-gl?null:t.max,e);t.min=l[0],t.max=l[1]}}}for(let e in l){let t=l[e];if(null!=t.from){let n=l[t.from];if(null==n.min)t.min=t.max=null;else{let l=t.range(k,n.min,n.max,e);t.min=l[0],t.max=l[1]}}}let e={},t=!1;for(let n in l){let i=l[n],o=vl[n];if(o.min!=i.min||o.max!=i.max){o.min=i.min,o.max=i.max;let l=o.distr;o._min=3==l?dl(o.min):4==l?ml(o.min,o.asinh):100==l?o.fwd(o.min):o.min,o._max=3==l?dl(o.max):4==l?ml(o.max,o.asinh):100==l?o.fwd(o.max):o.max,e[n]=t=!0}}if(t){pl.forEach(((l,t)=>{2==M?t>0&&e.y&&(l._paths=null):e[l.scale]&&(l._paths=null)}));for(let l in e)mt=!0,Ci("setScale",l);re&&oe.left>=0&&(xt=_t=!0)}for(let l in Kl)Kl[l]=null}(),ht=!1),mt&&(function(){let l=!1,e=0;for(;!l;){e++;let t=Dn(e),n=Pn(e);l=e==yt||t&&n,l||(kt(k.width,k.height),pt=!0)}}(),mt=!1),pt){if(E(ll,s,Oe),E(ll,i,Ne),E(ll,t,Ie),E(ll,n,Le),E(el,s,Oe),E(el,i,Ne),E(el,t,Ie),E(el,n,Le),E(X,t,Fe),E(X,n,Ge),O.width=rl(Fe*y),O.height=rl(Ge*y),xl.forEach((({_el:e,_show:t,_size:n,_pos:i,side:o})=>{if(null!=e)if(t){let t=o%2==1;E(e,t?"left":"top",i-(3===o||0===o?n:0)),E(e,t?"width":"height",n),E(e,t?"top":"left",t?Ne:Oe),E(e,t?"height":"width",t?Le:Ie),T(e,l)}else S(e,l)})),nn=on=sn=un=an=fn=cn=hn=rn=null,dn=1,_i(!0),Oe!=je||Ne!=Ke||Ie!=Xe||Le!=Ze){An(!1);let l=Ie/Xe,e=Le/Ze;if(re&&!xt&&oe.left>=0){oe.left*=l,oe.top*=e,Cn&&A(Cn,rl(oe.left),0,Ie,Le),Hn&&A(Hn,0,rl(oe.top),Ie,Le);for(let t=0;Dt.length>t;t++){let n=Dt[t];null!=n&&(Pt[t]*=l,At[t]*=e,A(n,ul(Pt[t]),ul(At[t]),Ie,Le))}}if(ei.show&&!wt&&ei.left>=0&&ei.width>0){ei.left*=l,ei.width*=l,ei.top*=e,ei.height*=e;for(let l in ki)E(ti,l,ei[l])}je=Oe,Ke=Ne,Xe=Ie,Ze=Le}Ci("setSize"),pt=!1}Fe>0&&Ge>0&&(K.clearRect(0,0,O.width,O.height),Ci("drawClear"),Pl.forEach((l=>l())),Ci("draw")),ei.show&&wt&&(ni(ei),wt=!1),re&&xt&&(xi(null,!0,!1),xt=!1),ie.show&&ie.live&&_t&&(mi(),_t=!1),F||(F=!0,k.status=1,Ci("ready")),mn=!1,Un=!1}function Kn(l,e){let t=vl[l];if(null==t.from){if(0==Gt){let n=t.range(k,e.min,e.max,l);e.min=n[0],e.max=n[1]}if(e.min>e.max){let l=e.min;e.min=e.max,e.max=l}if(Gt>1&&null!=e.min&&null!=e.max&&1e-16>e.max-e.min)return;l==El&&2==t.distr&&Gt>0&&(e.min=L(e.min,g[0]),e.max=L(e.max,g[0]),e.min==e.max&&e.max++),Kl[l]=e,ht=!0,Jn()}}k.batch=function(l,e=!1){Un=!0,Vn=e,l(k),qn(),e&&Bn.length>0&&queueMicrotask($n)},k.redraw=(l,e)=>{mt=e||!1,!1!==l?ii(El,jl.min,jl.max):Jn()},k.setScale=Kn;let Xn=!1;const Zn=oe.drag;let Qn=Zn.x,li=Zn.y;re&&(oe.x&&(Wn=D("u-cursor-x",el)),oe.y&&(Yn=D("u-cursor-y",el)),0==jl.ori?(Cn=Wn,Hn=Yn):(Cn=Yn,Hn=Wn),Nn=oe.left,jn=oe.top);const ei=k.select=Bl({show:!0,over:!0,left:0,width:0,top:0,height:0},u.select),ti=ei.show?D("u-select",ei.over?el:ll):null;function ni(l,e){if(ei.show){for(let e in l)ei[e]=l[e],e in ki&&E(ti,e,l[e]);!1!==e&&Ci("setSelect")}}function ii(l,e,t){Kn(l,{min:e,max:t})}function oi(e,t,n,i){null!=t.focus&&function(l){if(l!=ui){let e=null==l,t=1!=Tt.alpha;pl.forEach(((n,i)=>{if(1==M||i>0){let o=e||0==i||i==l;n._focus=e?null:o,t&&function(l,e){pl[l].alpha=e,re&&null!=Dt[l]&&(Dt[l].style.opacity=e),se&&me[l]&&(me[l].style.opacity=e)}(i,o?1:Tt.alpha)}})),ui=l,t&&Jn()}}(e),null!=t.show&&pl.forEach(((n,i)=>{0>=i||e!=i&&null!=e||(n.show=t.show,function(e){if(pl[e].show)se&&T(me[e],l);else if(se&&S(me[e],l),re){let l=zt?Dt[0]:Dt[e];null!=l&&A(l,-10,-10,Ie,Le)}}(i),2==M?(ii(n.facets[0].scale,null,null),ii(n.facets[1].scale,null,null)):ii(n.scale,null,null),Jn())})),!1!==n&&Ci("setSeries",e,t),i&&Ii("setSeries",k,e,t)}let si,ri,ui;k.setSelect=ni,k.setSeries=oi,k.addBand=function(l,e){l.fill=bl(l.fill||null),l.dir=Q(l.dir,-1),Tl.splice(e=null==e?Tl.length:e,0,l)},k.setBand=function(l,e){Bl(Tl[l],e)},k.delBand=function(l){null==l?Tl.length=0:Tl.splice(l,1)};const ai={focus:!0};function fi(l,e,t){let n=vl[e];t&&(l=l/y-(1==n.ori?Ne:Oe));let i=Ie;1==n.ori&&(i=Le,l=i-l),-1==n.dir&&(l=i-l);let o=n._min,s=o+l/i*(n._max-o),r=n.distr;return 3==r?cl(10,s):4==r?((l,e=1)=>nl.sinh(l)*e)(s,n.asinh):100==r?n.bwd(s):s}function ci(l,e){E(ti,s,ei.left=l),E(ti,t,ei.width=e)}function hi(l,e){E(ti,i,ei.top=l),E(ti,n,ei.height=e)}se&&Et&&Ce(p,ce,(l=>{oe._lock||(Mt(l),null!=ui&&oi(null,ai,!0,Fi.setSeries))})),k.valToIdx=l=>L(l,g[0]),k.posToIdx=function(l,e){return L(fi(l,El,e),g[0],Lt,en)},k.posToVal=fi,k.valToPos=(l,e,t)=>0==vl[e].ori?P(l,vl[e],t?ot:Ie,t?Qe:0):W(l,vl[e],t?st:Le,t?lt:0),k.setCursor=(l,e,t)=>{Nn=l.left,jn=l.top,xi(null,e,t)};let di=0==jl.ori?ci:hi,pi=1==jl.ori?ci:hi;function mi(l,e){if(null!=l&&(l.idxs?l.idxs.forEach(((l,e)=>{te[e]=l})):(l=>void 0===l)(l.idx)||te.fill(l.idx),ie.idx=te[0]),se&&ie.live){for(let l=0;pl.length>l;l++)(l>0||1==M&&!xe)&&gi(l,te[l]);!function(){if(se&&ie.live)for(let l=2==M?1:0;pl.length>l;l++){if(0==l&&xe)continue;let e=ie.values[l],t=0;for(let n in e)ge[l][t++].firstChild.nodeValue=e[n]}}()}_t=!1,!1!==e&&Ci("setLegend")}function gi(l,e){let t,n=pl[l],i=0==l&&2==Ul?pn:g[l];xe?t=n.values(k,l,e)??we:(t=n.value(k,null==e?null:i[e],l,e),t=null==t?we:{_:t}),ie.values[l]=t}function xi(l,e,t){let n;Ln=Nn,On=jn,[Nn,jn]=oe.move(k,Nn,jn),oe.left=Nn,oe.top=jn,re&&(Cn&&A(Cn,rl(Nn),0,Ie,Le),Hn&&A(Hn,0,rl(jn),Ie,Le)),si=gl,ri=null;let i=0==jl.ori?Ie:Le,o=1==jl.ori?Ie:Le;if(0>Nn||0==Gt||Lt>en){n=oe.idx=null;for(let l=0;pl.length>l;l++){let e=Dt[l];null!=e&&A(e,-10,-10,Ie,Le)}Et&&oi(null,ai,!0,null==l&&Fi.setSeries),ie.live&&(te.fill(n),_t=!0)}else{let l,e,t;1==M&&(l=0==jl.ori?Nn:jn,e=fi(l,El),n=oe.idx=L(e,g[0],Lt,en),t=$l(g[0][n],jl,i,0));let s=-10,r=-10,u=0,a=0,f=!0,c="",h="";for(let l=2==M?1:0;pl.length>l;l++){let d=pl[l],p=te[l],m=null==p?null:1==M?g[l][p]:g[l][1][p],x=oe.dataIdx(k,l,n,e),w=null==x?null:1==M?g[l][x]:g[l][1][x];if(_t=_t||w!=m||x!=p,te[l]=x,l>0&&d.show){let e=null==x?-10:x==n?t:$l(1==M?g[0][x]:g[l][0][x],jl,i,0),p=null==w?-10:ql(w,1==M?vl[d.scale]:vl[d.facets[1].scale],o,0);if(Et&&null!=w){let e=1==jl.ori?Nn:jn,t=ol(Tt.dist(k,l,x,p,e));if(si>t){let n=Tt.bias;if(0!=n){let i=fi(e,d.scale),o=0>i?-1:1;o!=(0>w?-1:1)||(1==o?1==n?i>w:w>i:1==n?w>i:i>w)||(si=t,ri=l)}else si=t,ri=l}}if(_t||zt){let t,n;0==jl.ori?(t=e,n=p):(t=p,n=e);let i,o,d,m,g,x,w=!0,_=St.bbox;if(null!=_){w=!1;let e=_(k,l);d=e.left,m=e.top,i=e.width,o=e.height}else d=t,m=n,i=o=St.size(k,l);if(x=St.fill(k,l),g=St.stroke(k,l),zt)l!=ri||si>Tt.prox||(s=d,r=m,u=i,a=o,f=w,c=x,h=g);else{let e=Dt[l];null!=e&&(Pt[l]=d,At[l]=m,H(e,i,o,w),Y(e,x,g),A(e,ul(d),ul(m),Ie,Le))}}}}if(zt){let l=Tt.prox;if(_t||(null==ui?l>=si:si>l||ri!=ui)){let l=Dt[0];null!=l&&(Pt[0]=s,At[0]=r,H(l,u,a,f),Y(l,c,h),A(l,ul(s),ul(r),Ie,Le))}}}if(ei.show&&Xn)if(null!=l){let[e,t]=Fi.scales,[n,s]=Fi.match,[r,u]=l.cursor.sync.scales,a=l.cursor.drag;if(Qn=a._x,li=a._y,Qn||li){let a,f,c,h,d,{left:p,top:m,width:g,height:x}=l.select,w=l.scales[r].ori,_=l.posToVal,b=null!=e&&n(e,r),v=null!=t&&s(t,u);b&&Qn?(0==w?(a=p,f=g):(a=m,f=x),c=vl[e],h=$l(_(a,r),c,i,0),d=$l(_(a+f,r),c,i,0),di(al(h,d),ol(d-h))):di(0,i),v&&li?(1==w?(a=p,f=g):(a=m,f=x),c=vl[t],h=ql(_(a,u),c,o,0),d=ql(_(a+f,u),c,o,0),pi(al(h,d),ol(d-h))):pi(0,o)}else yi()}else{let l=ol(Ln-Fn),e=ol(On-Rn);if(1==jl.ori){let t=l;l=e,e=t}Qn=Zn.x&&l>=Zn.dist,li=Zn.y&&e>=Zn.dist;let t,n,s=Zn.uni;null!=s?Qn&&li&&(Qn=l>=s,li=e>=s,Qn||li||(e>l?li=!0:Qn=!0)):Zn.x&&Zn.y&&(Qn||li)&&(Qn=li=!0),Qn&&(0==jl.ori?(t=Gn,n=Nn):(t=In,n=jn),di(al(t,n),ol(n-t)),li||pi(0,o)),li&&(1==jl.ori?(t=Gn,n=Nn):(t=In,n=jn),pi(al(t,n),ol(n-t)),Qn||di(0,i)),Qn||li||(di(0,0),pi(0,0))}if(Zn._x=Qn,Zn._y=li,null==l){if(t){if(null!=Ri){let[l,e]=Fi.scales;Fi.values[0]=null!=l?fi(0==jl.ori?Nn:jn,l):null,Fi.values[1]=null!=e?fi(1==jl.ori?Nn:jn,e):null}Ii(f,k,Nn,jn,Ie,Le,n)}if(Et){let l=t&&Fi.setSeries,e=Tt.prox;null==ui?si>e||oi(ri,ai,!0,l):si>e?oi(null,ai,!0,l):ri!=ui&&oi(ri,ai,!0,l)}}_t&&(ie.idx=n,mi()),!1!==e&&Ci("setCursor")}k.setLegend=mi;let wi=null;function _i(l=!1){l?wi=null:(wi=el.getBoundingClientRect(),Ci("syncRect",wi))}function bi(l,e,t,n,i,o){oe._lock||Xn&&null!=l&&0==l.movementX&&0==l.movementY||(vi(l,e,t,n,i,o,0,!1,null!=l),null!=l?xi(null,!0,!0):xi(e,!0,!1))}function vi(l,e,t,n,i,o,s,r,u){if(null==wi&&_i(!1),Mt(l),null!=l)t=l.clientX-wi.left,n=l.clientY-wi.top;else{if(0>t||0>n)return Nn=-10,void(jn=-10);let[l,s]=Fi.scales,r=e.cursor.sync,[u,a]=r.values,[f,c]=r.scales,[h,d]=Fi.match,p=e.axes[0].side%2==1,m=0==jl.ori?Ie:Le,g=1==jl.ori?Ie:Le,x=p?o:i,w=p?i:o,_=p?n:t,b=p?t:n;if(t=null!=f?h(l,f)?C(u,vl[l],m,0):-10:m*(_/x),n=null!=c?d(s,c)?C(a,vl[s],g,0):-10:g*(b/w),1==jl.ori){let l=t;t=n,n=l}}!u||null!=e&&e.cursor.event.type!=f||(t>1&&Ie-1>t||(t=zl(t,Ie)),n>1&&Le-1>n||(n=zl(n,Le))),r?(Fn=t,Rn=n,[Gn,In]=oe.move(k,t,n)):(Nn=t,jn=n)}Object.defineProperty(k,"rect",{get:()=>(null==wi&&_i(!1),wi)});const ki={width:0,height:0,left:0,top:0};function yi(){ni(ki,!1)}let Mi,Si,Ti,Ei;function zi(l,e,t,n,i,o){Xn=!0,Qn=li=Zn._x=Zn._y=!1,vi(l,e,t,n,i,o,0,!0,!1),null!=l&&(Ce(h,b,Di,!1),Ii(c,k,Gn,In,Ie,Le,null));let{left:s,top:r,width:u,height:a}=ei;Mi=s,Si=r,Ti=u,Ei=a}function Di(l,e,t,n,i,o){Xn=Zn._x=Zn._y=!1,vi(l,e,t,n,i,o,0,!1,!0);let{left:s,top:r,width:u,height:a}=ei,f=u>0||a>0,c=Mi!=s||Si!=r||Ti!=u||Ei!=a;if(f&&c&&ni(ei),Zn.setScale&&f&&c){let l=s,e=u,t=r,n=a;if(1==jl.ori&&(l=r,e=a,t=s,n=u),Qn&&ii(El,fi(l,El),fi(l+e,El)),li)for(let l in vl){let e=vl[l];l!=El&&null==e.from&&e.min!=gl&&ii(l,fi(t+n,l),fi(t,l))}yi()}else oe.lock&&(oe._lock=!oe._lock,xi(e,!0,null!=l));null!=l&&(He(h,b),Ii(h,k,Nn,jn,Ie,Le,null))}function Pi(l){oe._lock||(Mt(l),xn(),yi(),null!=l&&Ii(m,k,Nn,jn,Ie,Le,null))}function Ai(){xl.forEach(ln),vt(k.width,k.height,!0)}G(x,v,Ai);const Wi={};Wi.mousedown=zi,Wi.mousemove=bi,Wi.mouseup=Di,Wi.dblclick=Pi,Wi.setSeries=(l,e,t,n)=>{-1!=(t=(0,Fi.match[2])(k,e,t))&&oi(t,n,!0,!1)},re&&(Ce(c,el,zi),Ce(f,el,bi),Ce(d,el,(l=>{Mt(l),_i(!1)})),Ce(p,el,(function(l){if(oe._lock)return;Mt(l);let e=Xn;if(Xn){let l,e,t=!0,n=!0,i=10;0==jl.ori?(l=Qn,e=li):(l=li,e=Qn),l&&e&&(t=i>=Nn||Nn>=Ie-i,n=i>=jn||jn>=Le-i),l&&t&&(Nn=Gn>Nn?0:Ie),e&&n&&(jn=In>jn?0:Le),xi(null,!0,!0),Xn=!1}Nn=-10,jn=-10,te.fill(null),xi(null,!0,!0),e&&(Xn=e)})),Ce(m,el,Pi),It.add(k),k.syncRect=_i);const Yi=k.hooks=u.hooks||{};function Ci(l,e,t){Vn?Bn.push([l,e,t]):l in Yi&&Yi[l].forEach((l=>{l.call(null,k,e,t)}))}(u.plugins||[]).forEach((l=>{for(let e in l.hooks)Yi[e]=(Yi[e]||[]).concat(l.hooks[e])}));const Hi=(l,e,t)=>t,Fi=Bl({key:null,setSeries:!1,filters:{pub:Ml,sub:Ml},scales:[El,pl[1]?pl[1].scale:null],match:[Sl,Sl,Hi],values:[null,null]},oe.sync);2==Fi.match.length&&Fi.match.push(Hi),oe.sync=Fi;const Ri=Fi.key,Gi=dt(Ri);function Ii(l,e,t,n,i,o,s){Fi.filters.pub(l,e,t,n,i,o,s)&&Gi.pub(l,e,t,n,i,o,s)}function Li(){Ci("init",u,g),gn(g||u.data,!1),Kl[El]?Kn(El,Kl[El]):xn(),wt=ei.show&&(ei.width>0||ei.height>0),xt=_t=!0,vt(u.width,u.height)}return Gi.sub(k),k.pub=function(l,e,t,n,i,o,s){Fi.filters.sub(l,e,t,n,i,o,s)&&Wi[l](null,e,t,n,i,o,s)},k.destroy=function(){Gi.unsub(k),It.delete(k),Pe.clear(),I(x,v,Ai),R.remove(),ce?.remove(),Ci("destroy")},pl.forEach(Yt),xl.forEach((function(l,e){if(l._show=l.show,l.show){let t=vl[l.scale];null==t&&(l.scale=l.side%2?pl[1].scale:El,t=vl[l.scale]);let n=t.time;l.size=bl(l.size),l.space=bl(l.space),l.rotate=bl(l.rotate),Gl(l.incrs)&&l.incrs.forEach((l=>{!Wl.has(l)&&Wl.set(l,Yl(l))})),l.incrs=bl(l.incrs||(2==t.distr?ae:n?1==hl?ke:Se:fe)),l.splits=bl(l.splits||(n&&1==t.distr?Ql:3==t.distr?Je:4==t.distr?qe:$e)),l.stroke=bl(l.stroke),l.grid.stroke=bl(l.grid.stroke),l.ticks.stroke=bl(l.ticks.stroke),l.border.stroke=bl(l.border.stroke);let i=l.values;l.values=Gl(i)&&!Gl(i[0])?bl(i):n?Gl(i)?De(Xl,ze(i,Zl)):Ll(i)?function(l,e){let t=ne(e);return(e,n)=>n.map((e=>t(l(e))))}(Xl,i):i||le:i||Be,l.filter=bl(l.filter||(3>t.distr||10!=t.log?3==t.distr&&2==t.log?tt:kl:et)),l.font=Qt(l.font),l.labelFont=Qt(l.labelFont),l._size=l.size(k,null,e,0),l._space=l._rotate=l._incrs=l._found=l._splits=l._values=null,l._size>0&&(Ct[e]=!0,l._el=D("u-axis",X))}})),_?_ instanceof HTMLElement?(_.appendChild(R),Li()):_(k,Li):Li(),k}en.assign=Bl,en.fmtNum=tl,en.rangeNum=Z,en.rangeLog=B,en.rangeAsinh=$,en.orient=pt,en.pxRatio=y,en.join=function(l,e){if(function(l){let e=l[0][0],t=e.length;for(let n=1;l.length>n;n++){let i=l[n][0];if(i.length!=t)return!1;if(i!=e)for(let l=0;t>l;l++)if(i[l]!=e[l])return!1}return!0}(l)){let e=l[0].slice();for(let t=1;l.length>t;t++)e.push(...l[t].slice(1));return function(l,e=100){const t=l.length;if(1>=t)return!0;let n=0,i=t-1;for(;i>=n&&null==l[n];)n++;for(;i>=n&&null==l[i];)i--;if(n>=i)return!0;const o=fl(1,sl((i-n+1)/e));for(let e=l[n],t=n+o;i>=t;t+=o){const n=l[t];if(null!=n){if(e>=n)return!1;e=n}}return!0}(e[0])||(e=function(l){let e=l[0],t=e.length,n=Array(t);for(let l=0;n.length>l;l++)n[l]=l;n.sort(((l,t)=>e[l]-e[t]));let i=[];for(let e=0;l.length>e;e++){let o=l[e],s=Array(t);for(let l=0;t>l;l++)s[l]=o[n[l]];i.push(s)}return i}(e)),e}let t=new Set;for(let e=0;l.length>e;e++){let n=l[e][0],i=n.length;for(let l=0;i>l;l++)t.add(n[l])}let n=[Array.from(t).sort(((l,e)=>l-e))],i=n[0].length,o=new Map;for(let l=0;i>l;l++)o.set(n[0][l],l);for(let t=0;l.length>t;t++){let s=l[t],r=s[0];for(let l=1;s.length>l;l++){let u=s[l],a=Array(i).fill(void 0),f=e?e[t][l]:1,c=[];for(let l=0;u.length>l;l++){let e=u[l],t=o.get(r[l]);null===e?0!=f&&(a[t]=e,2==f&&c.push(t)):a[t]=e}$l(a,c,i),n.push(a)}}return n},en.fmtDate=ne,en.tzDate=function(l,e){let t;return"UTC"==e||"Etc/UTC"==e?t=new Date(+l+6e4*l.getTimezoneOffset()):e==ie?t=l:(t=new Date(l.toLocaleString("en-US",{timeZone:e})),t.setMilliseconds(l.getMilliseconds())),t},en.sync=dt;{en.addGap=function(l,e,t){let n=l[l.length-1];n&&n[0]==e?n[1]=t:l.push([e,t])},en.clipGaps=wt;let l=en.paths={points:Wt};l.linear=Ft,l.stepped=function(l){const e=Q(l.align,1),t=Q(l.ascDesc,!1),n=Q(l.alignGaps,0),i=Q(l.extend,!1);return(l,o,s,r)=>pt(l,o,((u,a,f,c,h,d,p,m,g,x,w)=>{[s,r]=U(f,s,r);let _=u.pxRound,{left:b,width:v}=l.bbox,k=l=>_(d(l,c,x,m)),M=l=>_(p(l,h,w,g)),S=0==c.ori?Mt:St;const T={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:1},E=T.stroke,z=c.dir*(0==c.ori?1:-1);let D=M(f[1==z?s:r]),P=k(a[1==z?s:r]),A=P,W=P;i&&-1==e&&(W=b,S(E,W,D)),S(E,P,D);for(let l=1==z?s:r;l>=s&&r>=l;l+=z){let t=f[l];if(null==t)continue;let n=k(a[l]),i=M(t);1==e?S(E,n,D):S(E,A,i),S(E,n,i),D=i,A=n}let Y=A;i&&1==e&&(Y=b+v,S(E,Y,D));let[C,H]=mt(l,o);if(null!=u.fill||0!=C){let e=T.fill=new Path2D(E),t=M(u.fillTo(l,o,u.min,u.max,C));S(e,Y,t),S(e,W,t)}if(!u.spanGaps){let i=[];i.push(..._t(a,f,s,r,z,k,n));let h=u.width*y/2,d=t||1==e?h:-h,p=t||-1==e?-h:h;i.forEach((l=>{l[0]+=d,l[1]+=p})),T.gaps=i=u.gaps(l,o,s,r,i),T.clip=wt(i,c.ori,m,g,x,w)}return 0!=H&&(T.band=2==H?[xt(l,o,s,r,E,-1),xt(l,o,s,r,E,1)]:xt(l,o,s,r,E,H)),T}))},l.bars=function(l){const e=Q((l=l||Hl).size,[.6,gl,1]),t=l.align||0,n=l.gap||0;let i=l.radius;i=null==i?[0,0]:"number"==typeof i?[i,0]:i;const o=bl(i),s=1-e[0],r=Q(e[1],gl),u=Q(e[2],1),a=Q(l.disp,Hl),f=Q(l.each,(()=>{})),{fill:c,stroke:h}=a;return(l,e,i,d)=>pt(l,e,((p,m,g,x,w,_,b,v,k,M,S)=>{let T,E,z=p.pxRound,D=t,P=n*y,A=r*y,W=u*y;0==x.ori?[T,E]=o(l,e):[E,T]=o(l,e);const Y=x.dir*(0==x.ori?1:-1);let C,H,F,R=0==x.ori?Tt:Et,G=0==x.ori?f:(l,e,t,n,i,o,s)=>{f(l,e,t,i,n,s,o)},I=Q(l.bands,Fl).find((l=>l.series[0]==e)),L=p.fillTo(l,e,p.min,p.max,null!=I?I.dir:0),O=z(b(L,w,S,k)),N=M,j=z(p.width*y),U=!1,V=null,B=null,$=null,J=null;null==c||0!=j&&null==h||(U=!0,V=c.values(l,e,i,d),B=new Map,new Set(V).forEach((l=>{null!=l&&B.set(l,new Path2D)})),j>0&&($=h.values(l,e,i,d),J=new Map,new Set($).forEach((l=>{null!=l&&J.set(l,new Path2D)}))));let{x0:q,size:K}=a;if(null!=q&&null!=K){D=1,m=q.values(l,e,i,d),2==q.unit&&(m=m.map((e=>l.posToVal(v+e*M,x.key,!0))));let t=K.values(l,e,i,d);H=2==K.unit?t[0]*M:_(t[0],x,M,v)-_(0,x,M,v),N=Rt(m,g,_,x,M,v,N),F=N-H+P}else N=Rt(m,g,_,x,M,v,N),F=N*s+P,H=N-F;1>F&&(F=0),H/2>j||(j=0),5>F&&(z=vl);let X=F>0;H=z(wl(N-F-(X?j:0),W,A)),C=(0==D?H/2:D==Y?0:H)-D*Y*((0==D?P/2:0)+(X?j/2:0));const Z={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},ll=U?null:new Path2D;let el=null;if(null!=I)el=l.data[I.series[1]];else{let{y0:t,y1:n}=a;null!=t&&null!=n&&(g=n.values(l,e,i,d),el=t.values(l,e,i,d))}let tl=T*H,nl=E*H;for(let t=1==Y?i:d;t>=i&&d>=t;t+=Y){let n=g[t];if(null==n)continue;if(null!=el){let l=el[t]??0;if(n-l==0)continue;O=b(l,w,S,k)}let i=_(2!=x.distr||null!=a?m[t]:t,x,M,v),o=b(Q(n,L),w,S,k),s=z(i-C),r=z(fl(o,O)),u=z(al(o,O)),f=r-u;if(null!=n){let i=0>n?nl:tl,o=0>n?tl:nl;U?(j>0&&null!=$[t]&&R(J.get($[t]),s,u+sl(j/2),H,fl(0,f-j),i,o),null!=V[t]&&R(B.get(V[t]),s,u+sl(j/2),H,fl(0,f-j),i,o)):R(ll,s,u+sl(j/2),H,fl(0,f-j),i,o),G(l,e,t,s-j/2,u,H+j,f)}}return j>0?Z.stroke=U?J:ll:U||(Z._fill=0==p.width?p._fill:p._stroke??p._fill,Z.width=0),Z.fill=U?B:ll,Z}))},l.spline=function(l){return function(l,e){const t=Q(e?.alignGaps,0);return(e,n,i,o)=>pt(e,n,((s,r,u,a,f,c,h,d,p,m,g)=>{[i,o]=U(u,i,o);let x,w,_,b=s.pxRound,v=l=>b(c(l,a,m,d)),k=l=>b(h(l,f,g,p));0==a.ori?(x=kt,_=Mt,w=Pt):(x=yt,_=St,w=At);const y=a.dir*(0==a.ori?1:-1);let M=v(r[1==y?i:o]),S=M,T=[],E=[];for(let l=1==y?i:o;l>=i&&o>=l;l+=y)if(null!=u[l]){let e=v(r[l]);T.push(S=e),E.push(k(u[l]))}const z={stroke:l(T,E,x,_,w,b),fill:null,clip:null,band:null,gaps:null,flags:1},D=z.stroke;let[P,A]=mt(e,n);if(null!=s.fill||0!=P){let l=z.fill=new Path2D(D),t=k(s.fillTo(e,n,s.min,s.max,P));_(l,S,t),_(l,M,t)}if(!s.spanGaps){let l=[];l.push(..._t(r,u,i,o,y,v,t)),z.gaps=l=s.gaps(e,n,i,o,l),z.clip=wt(l,a.ori,d,p,m,g)}return 0!=A&&(z.band=2==A?[xt(e,n,i,o,D,-1),xt(e,n,i,o,D,1)]:xt(e,n,i,o,D,A)),z}))}(Gt,l)}}return en}();
</script>

<script>
window.__CHART_DATA_RAW__ = [[1622412000,1638226800,1653948000,1669762800,1685484000,1701298800,1717106400,1732921200,1748642400,1764457200,1780178400],[100.0,115.41209440138844,111.37813461247094,103.75737678754365,120.15043891847998,144.73257227898785,172.95246568106762,174.76826754554088,150.8450994153648,265.506532338002,615.3711697741043],[100.0,139.84984150695269,108.95157576826134,92.23140318610461,133.6112245339558,154.855466070112,242.8634383341643,278.62628129047596,288.0351057547776,433.8027115737268,636.7905340354201],[100.0,115.92060933123449,123.8072437971739,121.87142854311028,108.5795547076574,114.98679788672166,146.48499835157415,138.7543083900986,116.27939396583558,189.7942527862259,240.74711330764976],[100.0,98.06424962879309,82.12266773267962,120.40324343982154,186.76120221565353,248.8956081264446,562.7485089673523,425.6482790499498,404.3094350145636,482.0435304740643,672.047904545696],[100.0,90.31271909411701,77.62087220067633,71.47714905730214,70.99311740225377,81.39458984650032,88.12963168004976,127.58996647164274,114.26147001727358,111.34104883888203,144.62940780283571],[null,null,null,null,null,116.63377430802933,156.52383473979913,167.8487877748415,152.10401398650265,159.1528250318194,282.16037914823477],[100.0,106.74447682619143,95.57237021821956,110.43530114897668,136.52008180635096,162.27634698791286,251.2414328976551,305.46503114363696,244.4360083529602,353.71524263489874,649.8534193114383],[100.0,105.13008061127248,86.39854166726103,72.17988061055807,81.02328630230554,89.82387985777517,100.63096095290834,101.1389190054184,105.11594188486772,150.47518872177116,287.097758898375],[100.0,95.93761705575785,89.50735364599767,91.81607658966713,92.70452658978733,102.14839428754125,149.84419388133287,222.12800397884368,286.082002596207,414.17702859431074,603.09404154764],[100.0,94.53635089020095,88.0439045032813,75.68393563217387,93.5954786036572,106.11272970522423,122.9550471272259,96.42279915191398,102.24855089957738,231.31554282292433,684.5564146270218],[100.0,106.08318701106612,79.56690150892138,72.33891313766354,94.93919208631158,107.7122963441363,126.93681510034445,152.0117666796395,156.65530850737878,195.19878329087763,196.61567430076667],[100.0,162.10974491146175,138.86836944026984,118.73711169341232,133.20095275430612,127.96498345006849,123.37973719757724,106.39597145964639,111.5514020358085,176.9099527234564,697.5298364761093],[100.0,102.99446436811508,91.77782912075119,98.12892996017982,97.68219221506502,103.25095247944031,114.75182578699258,122.99898765183099,123.62169325902452,121.41396221772953,119.75621204406988],[100.0,117.14043031040977,116.21795164697153,109.5201438806564,130.57262236274298,157.96018248640073,206.61772293035347,155.52936466063593,152.01419096258783,199.8874551954925,281.22126101692993],[100.0,143.10020785836804,71.23009903061286,55.91433374347973,81.17618621931688,105.29840370672228,100.30395186299768,219.76320246907352,266.16466402385373,351.2150699334461,296.769751315944],[100.0,122.57789548958453,107.92824052957519,117.42555547608451,128.58355108636022,147.20838303337996,178.2219237867563,236.40171963880343,197.94450436350468,281.802064241084,418.9282986823263],[100.0,142.4756276617831,122.60331261328264,138.14782126455196,132.8438535766686,206.1867142796265,331.70858932256795,503.8345855748323,543.601868671713,786.0431914652563,688.85037570339],[100.0,132.71608255786595,106.99355119878373,108.63508382640951,119.44962387638216,112.51440151422312,130.1118011860629,120.15451177702687,109.83786453469409,133.6236312441118,263.71295123136014],[100.0,106.14158349092419,110.69761790362334,136.6323400414421,192.21117201290014,279.9059793251273,524.939647097938,653.6661610512598,626.756049388524,1101.2576209102679,1682.9535588407903],[100.0,97.59349810918683,81.48155592333026,69.98921530036574,68.80216803665272,91.00661125247035,107.53947417047094,202.5001523063033,141.9681149885707,321.15451235168064,999.0035415051772],[100.0,105.11509528410869,130.69808970608688,117.89541052021104,107.46222023270711,129.86636203738487,233.15136894427107,327.73029428153734,359.460789828684,398.7694978368987,359.20463899191384],[100.0,124.88295779046479,109.43541959824783,107.11779203842843,155.4772888433679,164.1885402621584,209.4067829829043,159.93140312991898,139.951739494084,217.02116579292888,381.70077490483527],[100.0,106.74447682619143,106.99355119878373,107.11779203842843,119.44962387638216,122.2993788790489,153.184014310566,171.3085276601912,152.05910247454523,248.41103758046316,400.31453679358077]];
window.__CHART_DATA_DETRENDED__ = [[1622412000,1638226800,1653948000,1669762800,1685484000,1701298800,1717106400,1732921200,1748642400,1764457200,1780178400],[100.0,106.24154246000084,113.31774629293275,106.91069595088216,120.84836844883029,133.20891034491976,137.77542802187097,121.80018693289284,107.27378745593045,162.9732791994807,346.1695745154343],[100.0,128.73748588957724,110.84892976597479,95.03443329473838,134.38734503778338,142.52581551850915,193.46711268664814,194.1813214847688,204.83672876572865,266.2768776656488,358.21877762557136],[100.0,106.70965120363813,125.96330411395257,125.57525686825514,109.21027131847374,105.83150571673673,116.6912149369862,96.70119717387719,82.69231842559212,116.49955079225445,135.42936340375041],[100.0,90.27214344201525,83.55280557902809,124.06245174502305,187.84606015977198,229.07844603390134,448.2903229296595,296.6444691822477,287.5254454157086,295.8880679374107,378.05238301295987],[100.0,83.13654327202237,78.97261283533415,73.64943088286053,71.4055020221741,74.913921936825,70.20482580756776,88.92050018724423,81.25726786313267,68.3433875580957,81.35951604607288],[null,null,null,null,null,109.49066389211575,127.17778437032378,119.31343443499678,110.32878820296479,99.64174158350659,161.8950399098413],[100.0,98.26264678690349,97.23672998012137,113.79157096037706,137.31309927208937,149.35584310175534,200.1410955200493,212.88588836678778,173.8311453819799,217.1175695280568,365.5671450175685],[100.0,96.77652919321294,87.90314237884381,74.37351934530376,81.49393413901277,82.67206870159617,80.16349268535936,70.48613237434918,74.75340764592757,92.36471407388314,161.50335589928292],[100.0,88.3144913781062,91.06609324262548,94.60648439272477,93.24302838209502,94.0153006490997,119.36717911072117,154.8063203212992,203.44777563484118,254.23023653964785,339.26322520435644],[100.0,87.02456869194461,89.57715863940244,77.98406707318448,94.13915575550749,97.66399418723005,97.9470525539737,67.19935561663438,72.71425693900208,141.9861583505911,385.0888933750948],[100.0,97.6539025271584,80.9525315707089,74.53738507396889,95.490674597246,99.13620272770173,101.11896331349887,105.94063703672495,111.40572901470098,119.81696091817716,110.60375860758398],[100.0,149.2286353221554,141.28671404938197,122.34568412743758,133.97469007257843,117.77636325588921,98.28536433223533,74.14989800316475,79.32999771805298,108.590906839395,392.38693420329355],[100.0,94.81060729436432,93.37610826224892,101.11119343774381,98.2496082574026,95.03007274236168,91.41229557980638,85.720937209873,87.91380892722621,74.52634550638919,67.36740199267673],[100.0,107.83254619159263,118.24184706664369,112.84860089415258,131.33109224285775,145.38333324400492,164.59346272708237,108.39213522719872,108.10518919612215,122.69496255774807,158.19760341821134],[100.0,131.72958075212657,72.47054656154825,57.61364174024654,81.64772222063033,96.91450513153298,79.90299441982688,153.1582335719462,189.28352135691398,215.5829129599764,166.9442177146576],[100.0,112.83795477294076,109.8077734981532,120.99426804200263,129.3304668548608,135.48759611426465,141.9731238633015,164.75401425925642,140.76862139677314,172.97580624527163,235.66302425342894],[100.0,131.15462919423894,124.73840688502138,142.34630994703835,133.61551657824612,189.7700504061022,264.24192735547996,351.13437678427636,386.58353202421745,482.48920799596664,387.50440900501593],[100.0,122.17056967321501,108.85680687604312,111.93664273476685,120.14348251429465,103.55596247491268,103.64818465301997,83.73855391945693,78.1114121729823,82.02088728525844,148.34851648230566],[100.0,97.70765886982367,112.6253786210409,140.78477131451365,193.32768772618903,257.6197597943265,418.17145699406626,455.555586411037,445.7187902650206,675.9741997409102,946.7250758708984],[100.0,89.83879745849626,82.90052902932621,72.11627691918034,69.2018258760842,83.76063057704172,85.66687398608997,141.1272009000144,100.96090262016017,197.1311347663296,561.9773039240813],[100.0,96.76273458805993,132.97415172032342,121.4784025808553,108.08644647418014,119.52635336372309,185.7303943235914,228.4030829375908,255.63124368159228,244.7727825561592,202.0662051643513],[100.0,114.95985868242371,111.34119956886364,110.37323851199268,156.38042487981812,151.11578682707054,166.815252055183,111.46002115394312,99.52695324384464,133.21198063760582,214.72113308383132],[100.0,98.26264678690349,108.85680687604312,110.37323851199268,120.14348251429465,113.63351357400248,123.27248174052247,120.5568106839448,109.21698869954346,152.4797187750359,225.19207866863013]];
window.__CHART_LABELS__ = ["advanced-packaging","ai-accelerators","copper-rare-earth","datacenter-cooling-thermal","datacenter-reits","eda-ip","electrical-equipment","foundry-logic","gas-turbines","hbm-dram","hyperscalers-cloud","ic-substrates","industrial-gases-water","lithography","model-labs-software","networking-switching","nuclear-smr-uranium","power-semis-vrm","power-transformers-grid","silicon-photonics-optics","utilities-merchant-power","wfe-deposition-etch","*median*"];
window.__CHART_COLORS__ = ["#737373","#1f7a36","#f4b3b3","#2e8b4d","#9ce4be","#b5b5b5","#e57f7f","#3da068","#444444","#c84a4a","#7dd8aa","#5b5b5b","#bcedd2","#62c896","#8a8a8a","#a1a1a1","#d96363","#c8c8c8","#b53636","#a02323","#ee9999","#4cb582","#000"];
</script>

<script>
(function(){
  function parseNum(s){
    if(s==null) return NaN;
    s=(""+s).replace(/[$,×x%\s]/g,'').replace(/[^\d.\-eE]/g,'');
    if(s===''||s==='-') return NaN;
    var v=parseFloat(s); return v;
  }
  document.querySelectorAll('table.lis-sortable').forEach(function(table){
    var ths=table.querySelectorAll('thead th');
    ths.forEach(function(th,i){
      th.addEventListener('click',function(){
        var tbody=table.tBodies[0];
        var rows=Array.prototype.slice.call(tbody.rows);
        var asc=th.classList.contains('lis-sorted-asc');
        ths.forEach(function(o){o.classList.remove('lis-sorted-asc','lis-sorted-desc');});
        th.classList.add(asc?'lis-sorted-desc':'lis-sorted-asc');
        rows.sort(function(a,b){
          var av=a.cells[i].getAttribute('data-v');
          var bv=b.cells[i].getAttribute('data-v');
          var an=parseNum(av!==null?av:a.cells[i].innerText);
          var bn=parseNum(bv!==null?bv:b.cells[i].innerText);
          if(!isNaN(an)&&!isNaN(bn)) return asc?bn-an:an-bn;
          var as=(av||a.cells[i].innerText).toLowerCase();
          var bs=(bv||b.cells[i].innerText).toLowerCase();
          return asc ? (bs<as?-1:bs>as?1:0) : (as<bs?-1:as>bs?1:0);
        });
        rows.forEach(function(r){tbody.appendChild(r);});
      });
    });
  });
})();
</script>
<script>
(function(){
  var GL = JSON.parse(document.getElementById('lis-glossary').textContent || '{}');
  var VT = JSON.parse(document.getElementById('lis-verticals-tickers').textContent || '{}');
  var tip = document.getElementById('lis-glotip');
  if (!tip) return;

  function escapeHtml(s){ return (s||'').replace(/[&<>"]/g,function(c){return ({"&":"&amp;","<":"&lt;",">":"&gt;","\"":"&quot;"})[c];}); }

  function renderEntry(key, entry){
    var html = '<div class="lis-cat">' + escapeHtml(entry.category||'') +
               (entry.exchange ? ' · ' + escapeHtml(entry.exchange) : '') + '</div>';
    html += '<' + 'h4>' + escapeHtml(entry.full_name || key) + ' <span style="color:#888;font-weight:400">(' + escapeHtml(key) + ')</span></' + 'h4>';
    if (entry.explanation) html += '<div class="lis-expl">' + escapeHtml(entry.explanation) + '</div>';
    if (entry.category === 'vertical' && Array.isArray(entry.tickers) && entry.tickers.length){
      html += '<div class="lis-cat" style="margin-top:8px">Companies in this basket (' + entry.tickers.length + ')</div>';
      html += '<ul class="lis-glo-tickers">';
      entry.tickers.forEach(function(tk){
        var sym = tk.symbol;
        var nm  = tk.name || sym;
        var url = (GL[sym] && GL[sym].yahoo_url) || ('https://finance.yahoo.com/quote/' + encodeURIComponent(sym));
        html += '<li>' + escapeHtml(nm) + ' — <a href="' + escapeHtml(url) +
                '" target="_blank" rel="noopener">' + escapeHtml(sym) + ' →</a></li>';
      });
      html += '</ul>';
    } else if (entry.yahoo_url) {
      html += '<div><a href="' + escapeHtml(entry.yahoo_url) + '" target="_blank" rel="noopener">Yahoo Finance →</a></div>';
    }
    return html;
  }

  function renderVerticalsTable(){
    var html = '<div class="lis-cat">SUMMARY TABLE — 22 verticals × tickers</div>';
    html += '<' + 'h4>Hover any cell for details · click any column to re-sort</' + 'h4>';
    html += '<div class="lis-vt-grid">';
    Object.keys(VT).sort().forEach(function(slug){
      var row = VT[slug];
      html += '<div class="lis-vt-name">' + escapeHtml(row.name || slug) + '</div>';
      html += '<div class="lis-vt-tickers">';
      (row.tickers||[]).forEach(function(t){
        var url = (GL[t] && GL[t].yahoo_url) || ('https://finance.yahoo.com/quote/' + encodeURIComponent(t));
        html += '<a href="' + escapeHtml(url) + '" target="_blank" rel="noopener">' + escapeHtml(t) + '</a>';
      });
      html += '</div>';
    });
    html += '</div>';
    return html;
  }

  function positionTip(evt, big){
    tip.classList.toggle('lis-big', !!big);
    tip.style.position = 'fixed';
    tip.style.left = '0px';
    tip.style.top  = '0px';
    tip.style.display = 'block';
    var minW = 320, maxW = big ? 600 : 420;
    var vw = window.innerWidth, vh = window.innerHeight;
    var avail = Math.max(minW, Math.min(maxW, vw - 24));
    tip.style.maxWidth = avail + 'px';
    tip.style.width = 'auto';
    var tipW = tip.offsetWidth, tipH = tip.offsetHeight;
    var left, top;
    /* Prefer right of cursor; fall back to left if no room; then below/above. */
    if (evt.clientX + 14 + tipW <= vw - 8) {
      left = evt.clientX + 14;
    } else if (evt.clientX - 14 - tipW >= 8) {
      left = evt.clientX - tipW - 14;
    } else {
      left = Math.max(8, Math.min(vw - tipW - 8, evt.clientX - tipW/2));
    }
    top = evt.clientY + 14;
    if (top + tipH > vh - 8) top = Math.max(8, evt.clientY - tipH - 14);
    if (top < 8) top = 8;
    tip.style.left = left + 'px';
    tip.style.top  = top  + 'px';
  }

  function show(html, evt, big){
    tip.innerHTML = html;
    positionTip(evt, big);
  }

  function hide(){ tip.style.display = 'none'; }

  document.addEventListener('mouseover', function(e){
    var el = e.target.closest('.lis-glo');
    if (el){
      var k = el.getAttribute('data-key');
      var entry = GL[k];
      if (entry) show(renderEntry(k, entry), e, false);
      return;
    }
    var h = e.target.closest('.lis-hover-heading');
    if (h){
      show(renderVerticalsTable(), e, true);
      return;
    }
  });

  document.addEventListener('mousemove', function(e){
    if (tip.style.display === 'block'){
      // reposition lazily on move (only if cursor leaves the source/tip)
    }
  });

  document.addEventListener('mouseout', function(e){
    var to = e.relatedTarget;
    if (to && (to.closest && (to.closest('.lis-glo') || to.closest('.lis-hover-heading') || to.closest('#lis-glotip')))) return;
    hide();
  });

  document.addEventListener('pointerdown', function(e){
    if (e.target.closest && e.target.closest('#lis-glotip')) return;
    hide();
  });
})();
</script>

<script>
/* Chart init — runs after main_chart.html has injected #lis-bigchart into DOM. */
window.__LIS_CHART_INIT__ = function(){

(function(){
  var DATA_RAW       = window.__CHART_DATA_RAW__;
  var DATA_DETRENDED = window.__CHART_DATA_DETRENDED__;
  var LABELS         = window.__CHART_LABELS__;
  var COLORS         = window.__CHART_COLORS__;
  // Default = detrended ON
  var DATA_CURRENT = DATA_DETRENDED;
  window.DATA_RAW       = DATA_RAW;
  window.DATA_DETRENDED = DATA_DETRENDED;
  window.DATA_CURRENT   = DATA_CURRENT;
  var N = LABELS.length;
  var series = [{
    label: 'date',
    value: function(u, v){ return v == null ? '--' : new Date(v*1000).toISOString().slice(0,10); }
  }];
  for (var i = 0; i < N; i++){
    series.push({
      label: LABELS[i],
      stroke: COLORS[i],
      width: LABELS[i] === '*median*' ? 2.6 : 1.6,
      dash:  LABELS[i] === '*median*' ? [6,4] : undefined,
      points: { show: true, size: 4 },
      value: function(u, v){ return v == null ? '--' : v.toFixed(1); },
    });
  }
  var el = document.getElementById('lis-bigchart');
  var parentEl = el.parentElement;
  function _measureW(){
    // el has width:100%; its clientWidth = available content width.
    var w = el.clientWidth || (parentEl ? parentEl.clientWidth - 16 : 720);
    return Math.max(280, w);
  }
  var chartW = _measureW();
  var opts = {
    width: chartW,
    height: 540,
    title: '',
    series: series,
    scales: {
      x: { time: true },
      y: { distr: 3, range: function(u, dmin, dmax){ return [Math.max(20, dmin*0.95), dmax*1.08]; } },
    },
    axes: [
      { values: function(u, v){ return v.map(function(t){ return (t == null) ? '' : new Date(t*1000).toISOString().slice(0,7); }); } },
      { values: function(u, v){ return v.map(function(x){ return (x == null) ? '' : x.toFixed(0); }); }, size: 60 },
    ],
    cursor: { drag: { x: true, y: false, uni: 50 }, focus: { prox: 30 } },
    legend: { live: true, isolate: true },
  };
  var u = new uPlot(opts, DATA_CURRENT, el);
  window.uplotInstance = u;
  document.getElementById('lis-btn-reset').onclick = function(){
    u.setScale('x', { min: DATA_CURRENT[0][0], max: DATA_CURRENT[0][DATA_CURRENT[0].length-1] });
    u.setScale('y', { min: null, max: null });
  };
  document.getElementById('lis-btn-all').onclick = function(){
    for (var i = 1; i <= N; i++) u.setSeries(i, { show: true });
  };
  document.getElementById('lis-btn-none').onclick = function(){
    for (var i = 1; i <= N; i++) u.setSeries(i, { show: false });
  };

  // --- Detrend toggle ---
  var headingEl = document.getElementById('lis-chart-heading-text');
  var subEl     = document.getElementById('lis-chart-sub-text');
  var btnDet    = document.getElementById('lis-btn-detrend');
  var HEADING_RAW = '3. Joint vertical-index chart — 22 verticals + median benchmark (log scale)';
  var HEADING_DET = '3. Joint vertical-index chart — market-detrended (vs S&P 500), 22 verticals + median benchmark, log scale';
  var SUB_RAW = 'Vertical equal-weight indices, level=100 at baseline (2021-05), log scale. Drag to zoom. Click a legend swatch to toggle. Shift-click to isolate.';
  var SUB_DET = 'Vertical equal-weight indices — market-detrended (vs S&P 500 from baseline), level=100 at baseline (2021-05), log scale. <i>(vs S&P)</i> · Drag to zoom · click a legend swatch to toggle · shift-click to isolate.';

  function applyMode(detrendOn){
    DATA_CURRENT = detrendOn ? DATA_DETRENDED : DATA_RAW;
    window.DATA_CURRENT = DATA_CURRENT;
    u.setData(DATA_CURRENT);
    if (headingEl) headingEl.textContent = detrendOn ? HEADING_DET : HEADING_RAW;
    if (subEl) subEl.innerHTML = detrendOn ? SUB_DET : SUB_RAW;
    if (btnDet) btnDet.setAttribute('aria-pressed', detrendOn ? 'true' : 'false');
  }

  if (btnDet){
    btnDet.addEventListener('click', function(){
      var nowOn = btnDet.getAttribute('aria-pressed') === 'true';
      applyMode(!nowOn);
    });
  }
  // Initial state: detrended ON
  applyMode(true);

  window.addEventListener('resize', function(){
    u.setSize({ width: _measureW(), height: 540 });
  });
  if (window.ResizeObserver && parentEl){
    var _ro = new ResizeObserver(function(){
      try { u.setSize({ width: _measureW(), height: 540 }); } catch(e){}
    });
    _ro.observe(parentEl);
  }
})();

};
</script>

<script>
/* Lazy mermaid loader — only injects once, regardless of how many mermaid divs the page has. */
window.__LIS_INIT_MERMAID__ = function(){
  if (window.__LIS_MERMAID_LOADING__) return;
  window.__LIS_MERMAID_LOADING__ = true;
  var s = document.createElement('script');
  s.src = 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js';
  s.onload = function(){
    if (window.mermaid) {
      mermaid.initialize({ startOnLoad: false, theme: 'neutral',
        themeVariables: { fontSize: '18px', fontFamily: 'system-ui' },
        flowchart: { curve: 'basis', nodeSpacing: 40, rankSpacing: 50 } });
      mermaid.run({ querySelector: '.lis-root .mermaid' });
    }
  };
  document.head.appendChild(s);
};
document.addEventListener('DOMContentLoaded', function(){
  if (document.querySelector('.lis-root .mermaid')) window.__LIS_INIT_MERMAID__();
});
</script>


<div class="lis-sub">22 verticals · 141 tickers · 2021-05 → 2026-05 · run 2026-05-26</div>

<p class="lis-note">For a wider, full-screen layout with no sidebars, open the <a href="/assets/articles/2026-05-26-llm-inference-supply-chain/">standalone version</a>.</p>

<div class="lis-exec"><p>This study asks a single question: across 22 verticals in the LLM-inference supply chain, how much of the AI demand wave is already priced into the equities, and where is the market still behind? After a critique pass, the cleanest <em>under-priced</em> AI exposures are <strong><span class="lis-glo" data-key="lithography">lithography</span></strong> (70% AI share, only +115% over 3y; <span class="lis-glo" data-key="ASML">ASML</span>'s 2024 <span class="lis-glo" data-key="DUV">DUV</span>/China shock masked the tailwind) and <strong>datacenter REITs</strong> (45% AI share, +104% over 3y; rate-driven derating swamped surging AI bookings) — both verticals where the rally has lagged the underlying AI revenue share. The verticals most <em>priced for perfection</em> are <strong><span class="lis-glo" data-key="silicon-photonics-optics">silicon-photonics-optics</span></strong> (+1351% 3y, the cleanest AI rally on the board) and <strong><span class="lis-glo" data-key="power-transformers-grid">power-transformers-grid</span></strong> (+775% 3y on only 25% AI share, lifted heavily by the <span class="lis-glo" data-key="GEV">GEV</span> spin and <span class="lis-glo" data-key="Siemens Energy">Siemens Energy</span> turnaround). Big caveats: the model's <code>ai-accelerators = lagging</code> verdict is largely an artifact — its 85% AI-share input dominates a single −1.0 <span class="lis-glo" data-key="z-score">z-score</span> coefficient, and a more honest 45–50% basket-weighted AI share flips <span class="lis-glo" data-key="NVDA">NVDA</span>'s group to fair/<span class="lis-glo" data-key="priced-in">priced-in</span>; separately, the gap formula ignores the <span class="lis-glo" data-key="TAM">TAM</span>-uplift term (a combined ~$1.27T runway if AI share climbs to 80% across the cohort), which would pull <span class="lis-glo" data-key="copper-rare-earth">copper-rare-earth</span> and <span class="lis-glo" data-key="industrial-gases-water">industrial-gases-water</span> <em>into</em> lagging despite their modest rallies. See WHY below for the per-vertical reasoning.</p>
<p><em>The chart below defaults to <b>market-detrended</b> view — what the supply-chain rallied <i>after subtracting the S&amp;P 500's own rally</i> over the same window.</em></p>
</div>

<details class="lis-card"><summary>WHY — per-vertical reasoning (click to expand)</summary>
<div class="lis-md"><p><strong><span class="lis-glo" data-key="lithography">Lithography</span> lagging is plausible.</strong> <span class="lis-glo" data-key="ASML">ASML</span> and the small-cap Japanese names carry 70% AI share but the basket only returned +115% over 3y. The 2024 <span class="lis-glo" data-key="ASML">ASML</span> earnings shock (<span class="lis-glo" data-key="DUV">DUV</span>-to-China export controls, slower 2025 guidance) compressed the multiple at exactly the moment <span class="lis-glo" data-key="EUV">EUV</span>-for-HBM and <span class="lis-glo" data-key="EUV">EUV</span>-for-Blackwell were ramping. Yen-weak Japanese tickers also drag the equal-weighted basket; <span class="lis-glo" data-key="ASML">ASML</span> alone returned +122%. The AI tailwind is real and not yet in the tape.</p>
<p><strong><span class="lis-glo" data-key="datacenter-reits">Datacenter-REITs</span> lagging is plausible.</strong> <span class="lis-glo" data-key="EQIX">EQIX</span>/<span class="lis-glo" data-key="DLR">DLR</span> carry ~45–60% AI-attributable bookings today but the 2022–23 rate-shock derating pulled the basket to +104% over 3y — below the cohort median. Long-duration <span class="lis-glo" data-key="REIT">REIT</span> cash flows got hit by the discount rate even as AI <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> leases were filling the 2025–27 pipeline. This is the classic "fundamentals ahead of multiple" setup.</p>
<p><strong><code>ai-accelerators = lagging</code> is largely a model artifact.</strong> <span class="lis-glo" data-key="NVDA">NVDA</span> alone returned +591% over 3y; the equal-weighted basket returned +376–421% — top-3 in the study. The label is forced by the formula's +2.20σ z_ai input (85% AI share) combined with the −1.0 coefficient on z_ai. Recompute the basket's AI share on a revenue-weighted basis (<span class="lis-glo" data-key="GOOGL">GOOGL</span>'s $350B+ revenue base swamps the average), and the share is ~31%, <span class="lis-glo" data-key="market-cap-weighted">market-cap-weighted</span> is ~60%. At a defensible 45–50%, the label flips to fair/<span class="lis-glo" data-key="priced-in">priced-in</span>. A +591% <span class="lis-glo" data-key="NVDA">NVDA</span> print <em>is</em> the AI repricing.</p>
<p><strong><span class="lis-glo" data-key="silicon-photonics-optics">Silicon-photonics-optics</span> is the cleanest AI rally in the dataset.</strong> +1351% 3y, gap of +3.66σ. <span class="lis-glo" data-key="LITE">LITE</span>/<span class="lis-glo" data-key="COHR">COHR</span>/<span class="lis-glo" data-key="FN">FN</span>/<span class="lis-glo" data-key="CIEN">CIEN</span>/<span class="lis-glo" data-key="AAOI">AAOI</span> rode the <span class="lis-glo" data-key="800G">800G</span> pluggable cycle: LightCounting puts AI optics at $5B (2024) → $10B+ (2026), <span class="lis-glo" data-key="LITE">LITE</span> cloud/AI is &gt;60% of revenue climbing to 87% by 2027, <span class="lis-glo" data-key="800G">800G</span> units 24M (2025) → 63M (2026). About 75%+ of the rally is AI-cloud back-end fabric.</p>
<p><strong><span class="lis-glo" data-key="copper-rare-earth">Copper-rare-earth</span> <span class="lis-glo" data-key="priced-in">priced-in</span> is mostly <em>not</em> AI.</strong> The 4% AI share is right. The rally is ~30% energy-transition / EV / electrification, ~25% supply disruption (<span class="lis-glo" data-key="Cobre Panama">Cobre Panama</span> shutdown, <span class="lis-glo" data-key="Grasberg">Grasberg</span> force majeure, <span class="lis-glo" data-key="Niger coup">Niger coup</span>-adjacent supply), ~20% <span class="lis-glo" data-key="China stimulus">China stimulus</span> + Trump <span class="lis-glo" data-key="Section 232">Section 232</span> tariff arbitrage, ~15% rare-earth geopolitics (China export controls, <span class="lis-glo" data-key="MP">MP</span>-Pentagon deal). AI is ~10% — the label is technically correct but the <em>reason</em> the model cites (AI overpricing) is the wrong story.</p>
<p><strong>The gap formula's <span class="lis-glo" data-key="tercile">tercile</span> labels in the middle are mostly noise.</strong> 11 of 22 labels flip on a ±10pp move in a single estimated AI-share input. <code>hyperscalers-cloud</code> (lagging) and <code>networking-switching</code> (fair) differ by 0.13 in gap — categorically opposite labels separated by less than one rounding error. Trust the extremes, hover the middle.</p>
<p><strong>Practical translation, no fabricated price targets:</strong> if AI infrastructure spend keeps grinding higher, the conceptually cleanest pair-trade frame from this dataset is <em>long the genuinely-lagging AI exposures (<span class="lis-glo" data-key="lithography">lithography</span>, <span class="lis-glo" data-key="datacenter-reits">datacenter-REITs</span>, <span class="lis-glo" data-key="industrial-gases-water">industrial-gases-water</span> with its 8.9× <span class="lis-glo" data-key="TAM">TAM</span> uplift) versus short the priced-for-perfection narrative trades (<span class="lis-glo" data-key="silicon-photonics-optics">silicon-photonics-optics</span> on the <span class="lis-glo" data-key="800G">800G</span> cycle peak, <span class="lis-glo" data-key="power-transformers-grid">power-transformers-grid</span> where ~65% of the rally is non-AI structural)</em>. The middle of the ranking is watchlist material, not signal.</p></div></details>

</div>

<h2 id="supply-chain-stack">Supply-chain stack</h2>

<div class="lis-root">
<div class="lis-supply-caption">Upstream — silicon to chip</div>
<div class="lis-mermaid-supply"><pre class="mermaid">%%{init: {'themeVariables': {'fontSize': '16px', 'fontFamily': 'system-ui'}, 'flowchart': {'curve': 'basis', 'nodeSpacing': 30, 'rankSpacing': 36}}}%%
flowchart TB
classDef lag fill:#dff5e2,stroke:#1f7a36,color:#0a3b18;
classDef pin fill:#fbe2e2,stroke:#a02323,color:#5b1414;
classDef fair fill:#eeeeee,stroke:#555,color:#222;
  subgraph row_inputs_u[" "]
  direction LR
  copper_rare_earth_u["Copper &amp; Rare Earths"]
  industrial_gases_water_u["Industrial Gases &amp; Water"]
  end
  subgraph row_ip-tools_u[" "]
  direction LR
  eda_ip_u["EDA &amp; Silicon IP"]
  lithography_u["Lithography"]
  wfe_deposition_etch_u["WFE: Deposition, Etch, Implant, M…"]
  end
  subgraph row_silicon_u[" "]
  direction LR
  foundry_logic_u["Foundry — Logic"]
  hbm_dram_u["HBM &amp; DRAM"]
  ic_substrates_u["IC Substrates"]
  end
  subgraph row_packaging_u[" "]
  direction LR
  advanced_packaging_u["Advanced Packaging"]
  end
  subgraph row_chip_u[" "]
  direction LR
  ai_accelerators_u["AI Accelerators"]
  end
  copper_rare_earth_u --&gt; eda_ip_u
  eda_ip_u --&gt; foundry_logic_u
  foundry_logic_u --&gt; advanced_packaging_u
  advanced_packaging_u --&gt; ai_accelerators_u
  class lithography_u,ai_accelerators_u,foundry_logic_u,wfe_deposition_etch_u,industrial_gases_water_u lag;
  class ic_substrates_u,eda_ip_u,advanced_packaging_u fair;
  class copper_rare_earth_u,hbm_dram_u pin;</pre></div>
<div class="lis-supply-caption">Downstream — chip to deployment</div>
<div class="lis-mermaid-supply"><pre class="mermaid">%%{init: {'themeVariables': {'fontSize': '16px', 'fontFamily': 'system-ui'}, 'flowchart': {'curve': 'basis', 'nodeSpacing': 30, 'rankSpacing': 36}}}%%
flowchart TB
classDef lag fill:#dff5e2,stroke:#1f7a36,color:#0a3b18;
classDef pin fill:#fbe2e2,stroke:#a02323,color:#5b1414;
classDef fair fill:#eeeeee,stroke:#555,color:#222;
  subgraph row_chip_d[" "]
  direction LR
  ai_accelerators_d["AI Accelerators"]
  end
  subgraph row_interconnect_d[" "]
  direction LR
  silicon_photonics_optics_d["Silicon Photonics &amp; Datacom Optics"]
  networking_switching_d["Networking — Switching, Retimers,…"]
  power_semis_vrm_d["Power Semiconductors — VRM / Vert…"]
  end
  subgraph row_facility_d[" "]
  direction LR
  datacenter_cooling_thermal_d["Datacenter Cooling — Thermal Mana…"]
  electrical_equipment_d["Electrical Equipment"]
  datacenter_reits_d["Datacenter REITs"]
  end
  subgraph row_power_d[" "]
  direction LR
  power_transformers_grid_d["Power Transformers &amp; Grid"]
  gas_turbines_d["Gas Turbines"]
  nuclear_smr_uranium_d["Nuclear — SMR &amp; Uranium"]
  utilities_merchant_power_d["Utilities &amp; Merchant Power"]
  end
  subgraph row_consumers_d[" "]
  direction LR
  hyperscalers_cloud_d["Hyperscalers &amp; Cloud"]
  model_labs_software_d["Inference-Consuming Software / Ap…"]
  end
  ai_accelerators_d --&gt; silicon_photonics_optics_d
  silicon_photonics_optics_d --&gt; datacenter_cooling_thermal_d
  datacenter_cooling_thermal_d --&gt; power_transformers_grid_d
  power_transformers_grid_d --&gt; hyperscalers_cloud_d
  class datacenter_reits_d,ai_accelerators_d,datacenter_cooling_thermal_d,hyperscalers_cloud_d lag;
  class networking_switching_d,gas_turbines_d,model_labs_software_d,power_semis_vrm_d fair;
  class utilities_merchant_power_d,electrical_equipment_d,power_transformers_grid_d,nuclear_smr_uranium_d,silicon_photonics_optics_d pin;</pre></div>
<div class="lis-legend-row">
  <span class="lis-sw" style="background:#dff5e2;border:1px solid #1f7a36"></span>lagging
  <span class="lis-sw" style="background:#eeeeee;border:1px solid #555;margin-left:10px"></span>fair
  <span class="lis-sw" style="background:#fbe2e2;border:1px solid #a02323;margin-left:10px"></span>priced_in
</div>

</div>

<h2 id="interactive-joint-chart">Interactive joint chart</h2>

<div class="lis-root">
<div id="lis-chart-heading-text" class="lis-md-h3" style="margin-top:6px;font-weight:700;font-size:16px">3. Joint vertical-index chart — 22 verticals + median benchmark (log scale)</div>
<div class="lis-sub" id="lis-chart-sub-text">Vertical equal-weight indices, level=100 at baseline (2021-05), log scale. Drag to zoom. Click a legend swatch to toggle. Shift-click to isolate.</div>
<div class="lis-chart-bar">
  <button id="lis-btn-detrend" type="button" aria-pressed="true" title="Subtract S&amp;P 500's own rally so each line shows alpha vs market">&#128201; Subtract market trend (S&amp;P 500)</button>
  <button id="lis-btn-reset" type="button">Reset zoom</button>
  <button id="lis-btn-all" type="button">Show all</button>
  <button id="lis-btn-none" type="button">Hide all</button>
  <span class="lis-toggle-hint">Toggle the first button to flip between raw indices and market-detrended (long-vertical / short-S&amp;P pair-trade return).</span>
</div>
<div class="lis-bigchart-wrap"><div id="lis-bigchart"></div></div>
<script>
(function(){
  function tryInit(){
    if (window.__LIS_CHART_INIT__ && document.getElementById('lis-bigchart')){
      window.__LIS_CHART_INIT__();
    } else {
      setTimeout(tryInit, 50);
    }
  }
  if (document.readyState === 'loading'){
    document.addEventListener('DOMContentLoaded', tryInit);
  } else {
    tryInit();
  }
})();
</script>


<details class="lis-detrend-meth">
  <summary>Methodology — what "subtract market trend" means</summary>
  <div class="lis-md"><div class="lis-md-h1">Detrending the <span class="lis-glo" data-key="vertical">vertical</span> indices — methodology</div>
<p>We have 22 equal-weight <span class="lis-glo" data-key="vertical">vertical</span> indices indexed to 100 at 2021-05-31. Some rose
spectacularly (<span class="lis-glo" data-key="silicon-photonics-optics">silicon-photonics-optics</span> +1351% 3y); some are flat. The honest
question for an AI supply-chain study is: <strong>how much of each move is just "the
market went up" versus AI-specific demand?</strong></p>
<p>This note picks a detrending method, a benchmark, and writes the worked example.
The companion script <code>compute_detrended.py</code> produces <code>returns_vertical_detrended.csv</code>.</p>
<div class="lis-md-h2">Four candidate methods</div>
<table>
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Formula</th>
<th>Pros</th>
<th>Cons</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Arithmetic <span class="lis-glo" data-key="excess return">excess return</span></td>
<td><code>r_excess(t) = r_v(t) − r_m(t)</code> (both cumulative from base)</td>
<td>Easy to read in pp.</td>
<td>Asymmetric in compounding; ignores <span class="lis-glo" data-key="beta">beta</span>; large <code>r_v</code> makes pp gap deceptive.</td>
</tr>
<tr>
<td>2</td>
<td>Level ratio (multiplicative excess)</td>
<td><code>L_d(t) = 100 · L_v(t) / L_m(t)</code> (both indexed to 100 at <span class="lis-glo" data-key="vertical">vertical</span>'s baseline)</td>
<td>Equivalent to a dollar-neutral long-v / short-m pair-trade. Symmetric in log space. No estimation. Chart remains read as "cumulative pair-trade return".</td>
<td>Implicit β = 1 assumption; doesn't strip systematic risk for high-/low-β verticals.</td>
</tr>
<tr>
<td>3</td>
<td><span class="lis-glo" data-key="beta">Beta</span>-adjusted (CAPM α-cumulation)</td>
<td>Estimate β over 36-month rolling daily <span class="lis-glo" data-key="log returns">log returns</span>; <code>α_cum(t) = log(L_v(t)) − β·log(L_m(t))</code></td>
<td>Strips market-risk loading honestly.</td>
<td>Requires β estimation (window choice, regime breaks); short-history verticals fail; β itself shifted post-2023 (AI verticals' β to S&amp;P ↑ because they ARE the index now); explanation cost high; chart no longer reads as a tradeable return.</td>
</tr>
<tr>
<td>4</td>
<td>Non-AI benchmark (method 2 with synthetic basket)</td>
<td>Same as #2 but <code>L_m</code> = equal-weight of XLP/XLV/XLU/XLY (consumer staples, healthcare, utilities, consumer disc.) — i.e., S&amp;P sectors with minimal AI exposure.</td>
<td>Avoids "benchmark contaminated by AI" critique.</td>
<td>Synthetic basket has different fundamental drivers (rates, defensive flows); ETF baskets only go back so far; introduces sector-rotation noise that isn't really "market trend".</td>
</tr>
</tbody>
</table>
<div class="lis-md-h2">Benchmark choice</div>
<p>The honest options:</p>
<ul>
<li><strong><span class="lis-glo" data-key="^GSPC">^GSPC</span> (S&amp;P 500)</strong>: broad, liquid, dollar-denominated, 100% history. Caveat:
  <span class="lis-glo" data-key="Mag7">Mag7</span> was ~17% of S&amp;P at 2021-05 and is ~32% at 2026-05; the index has BECOME
  AI-influenced over the window. So detrending against S&amp;P slightly understates
  the "AI dividend" because part of the AI rally is <em>already inside</em> the
  benchmark.</li>
<li><strong><span class="lis-glo" data-key="^NDX">^NDX</span></strong>: 60%+ AI-correlated names → would over-detrend. Reject.</li>
<li><strong><span class="lis-glo" data-key="XLK">XLK</span></strong>: tech-only, 45%+ <span class="lis-glo" data-key="Mag7">Mag7</span>. Reject for the same reason.</li>
<li><strong><span class="lis-glo" data-key="SOXX">SOXX</span></strong>: semis-only, would null out half our verticals by construction. Reject.</li>
<li><strong>Synthetic non-AI basket (XLP+XLV+XLU+XLY)</strong>: clean, but introduces its own
  sector dynamics (rates, defensives) that aren't "general market trend" in any
  pure sense.</li>
</ul>
<p><strong>Pick: <span class="lis-glo" data-key="^GSPC">^GSPC</span> with disclosed caveat.</strong> The S&amp;P is the asset 99% of readers
internalize as "the market". The bias from <span class="lis-glo" data-key="Mag7">Mag7</span> share growth is real but small
relative to the &gt;1000% moves we're explaining — the <span class="lis-glo" data-key="lithography">lithography</span> <span class="lis-glo" data-key="vertical">vertical</span> isn't
+115% over 3y because <span class="lis-glo" data-key="Mag7">Mag7</span> dragged the S&amp;P up; it's because of <span class="lis-glo" data-key="EUV">EUV</span>/<span class="lis-glo" data-key="wafer">wafer</span> demand
that is downstream-but-distinct from the <span class="lis-glo" data-key="Mag7">Mag7</span> capex line. We acknowledge the
bias in the chart caption and move on.</p>
<div class="lis-md-h2">Method pick: <strong>#2 (level ratio) with <span class="lis-glo" data-key="^GSPC">^GSPC</span></strong></div>
<p>Rationale:
1. <strong>Readability</strong>: <code>detrended_level / 100 − 1</code> reads as "cumulative return of a
   long-vertical / short-S&amp;P, equal-notional, monthly-rebalanced pair trade
   from 2021-05-31". That is a thing a portfolio manager would actually run; it
   has dollar meaning.
2. <strong>No estimation risk</strong>: no β window, no regime issues, no degrees of freedom.
3. <strong>Same axis as raw chart</strong>: the existing chart Y-axis is "% return from
   baseline". Toggling detrending keeps the same axis — just swaps one series
   for another. Method 3 would need a log-axis or "α" axis, breaking UX.
4. <strong>Symmetric in log space</strong>: a <span class="lis-glo" data-key="vertical">vertical</span> that doubled while S&amp;P doubled shows
   exactly 0% <span class="lis-glo" data-key="detrended">detrended</span>, which matches intuition. Method 1's arithmetic excess
   would show "+100 pp − 100 pp = 0 pp" coincidentally correctly here but would
   misbehave when both moves are large.
5. <strong>Method 3 is the right answer for a true <span class="lis-glo" data-key="alpha">alpha</span> study</strong>, but this is a
   demand-side / theme-attribution study, not a portfolio-construction study.
   We choose readability + honesty about the limitation.</p>
<div class="lis-md-h3">What the chart shows when detrending is <span class="lis-glo" data-key="ON">ON</span></div>
<blockquote>
<p>"Cumulative return of a <span class="lis-glo" data-key="dollar-neutral pair trade">dollar-neutral pair trade</span>: long the equal-weight
<span class="lis-glo" data-key="vertical">vertical</span> basket, short the S&amp;P 500, both rebalanced monthly, from 2021-05-31.
A line at +0% means the <span class="lis-glo" data-key="vertical">vertical</span> exactly tracked the market; +100% means it
doubled relative to the market."</p>
</blockquote>
<div class="lis-md-h2">Worked example: <span class="lis-glo" data-key="lithography">lithography</span></div>
<p><span class="lis-glo" data-key="vertical">Vertical</span> baseline = 2021-05-31. S&amp;P 500 adj_close at 2021-05-28 (snapped
month-end) ≈ 4204.11.</p>
<table>
<thead>
<tr>
<th>date</th>
<th style="text-align: right;">L_v (raw)</th>
<th style="text-align: right;">GSPC</th>
<th style="text-align: right;">L_m (=100·GSPC/GSPC_base)</th>
<th style="text-align: right;">L_d = 100·L_v/L_m</th>
<th style="text-align: right;"><span class="lis-glo" data-key="detrended">detrended</span> r</th>
</tr>
</thead>
<tbody>
<tr>
<td>2021-05-31</td>
<td style="text-align: right;">100.00</td>
<td style="text-align: right;">4204.11</td>
<td style="text-align: right;">100.00</td>
<td style="text-align: right;">100.00</td>
<td style="text-align: right;">0.0%</td>
</tr>
<tr>
<td>2021-11-30</td>
<td style="text-align: right;">117.14</td>
<td style="text-align: right;">4567.00</td>
<td style="text-align: right;">108.63</td>
<td style="text-align: right;">107.83</td>
<td style="text-align: right;">+7.8%</td>
</tr>
<tr>
<td>2022-05-31</td>
<td style="text-align: right;">116.22</td>
<td style="text-align: right;">4132.15</td>
<td style="text-align: right;">98.29</td>
<td style="text-align: right;">118.24</td>
<td style="text-align: right;">+18.2%</td>
</tr>
<tr>
<td>2022-11-30</td>
<td style="text-align: right;">109.52</td>
<td style="text-align: right;">4080.11</td>
<td style="text-align: right;">97.05</td>
<td style="text-align: right;">112.85</td>
<td style="text-align: right;">+12.8%</td>
</tr>
<tr>
<td>2023-05-31</td>
<td style="text-align: right;">130.57</td>
<td style="text-align: right;">4179.83</td>
<td style="text-align: right;">99.42</td>
<td style="text-align: right;">131.33</td>
<td style="text-align: right;">+31.3%</td>
</tr>
<tr>
<td>2023-11-30</td>
<td style="text-align: right;">157.96</td>
<td style="text-align: right;">4567.80</td>
<td style="text-align: right;">108.65</td>
<td style="text-align: right;">145.38</td>
<td style="text-align: right;">+45.4%</td>
</tr>
<tr>
<td>2024-05-31</td>
<td style="text-align: right;">206.62</td>
<td style="text-align: right;">5277.51</td>
<td style="text-align: right;">125.53</td>
<td style="text-align: right;">164.59</td>
<td style="text-align: right;">+64.6%</td>
</tr>
<tr>
<td>2024-11-30</td>
<td style="text-align: right;">155.53</td>
<td style="text-align: right;">6032.38</td>
<td style="text-align: right;">143.49</td>
<td style="text-align: right;">108.39</td>
<td style="text-align: right;">+8.4%</td>
</tr>
<tr>
<td>2025-05-31</td>
<td style="text-align: right;">152.01</td>
<td style="text-align: right;">5911.69</td>
<td style="text-align: right;">140.62</td>
<td style="text-align: right;">108.11</td>
<td style="text-align: right;">+8.1%</td>
</tr>
<tr>
<td>2025-11-30</td>
<td style="text-align: right;">199.89</td>
<td style="text-align: right;">6849.09</td>
<td style="text-align: right;">162.91</td>
<td style="text-align: right;">122.69</td>
<td style="text-align: right;">+22.7%</td>
</tr>
<tr>
<td>2026-05-31</td>
<td style="text-align: right;">281.22</td>
<td style="text-align: right;">7473.47</td>
<td style="text-align: right;">177.77</td>
<td style="text-align: right;">158.20</td>
<td style="text-align: right;">+58.2%</td>
</tr>
</tbody>
</table>
<p>Numbers produced by <code>compute_detrended.py</code>.</p>
<p>Raw 5y <span class="lis-glo" data-key="lithography">lithography</span> return: +181.2%. <span class="lis-glo" data-key="detrended">Detrended</span> 5y: +58.2%. Roughly <strong>2/3 of
the <span class="lis-glo" data-key="vertical">vertical</span>'s headline rally was "the market went up", 1/3 was
<span class="lis-glo" data-key="lithography">lithography</span>-specific</strong>. The 3y <span class="lis-glo" data-key="detrended">detrended</span> (2023-05 to 2026-05) is only +20.5%
— most of the <span class="lis-glo" data-key="lithography">lithography</span> outperformance happened in the 2021-23 window, then
collapsed to roughly market in 2024-2025 before a 2026 reacceleration. The
<span class="lis-glo" data-key="priced-in">priced-in</span> story holds: <span class="lis-glo" data-key="EUV">EUV</span> demand IS real, but the public-market multiple
expansion did most of the work.</p>
<div class="lis-md-h2">Caveats — read these before quoting numbers</div>
<ol>
<li><strong>S&amp;P is partly AI itself by 2026.</strong> <span class="lis-glo" data-key="Mag7">Mag7</span> grew from ~17% (2021-05) to ~32%
   (2026-05) of S&amp;P market cap. Some of the AI rally we want to isolate is
   already inside the benchmark. The "<span class="lis-glo" data-key="detrended">detrended</span>" return is therefore a lower
   bound on the true AI premium for verticals whose returns correlate with
   <span class="lis-glo" data-key="Mag7">Mag7</span>.</li>
<li><strong>Method 2 implicitly assumes β = 1.</strong> A high-β <span class="lis-glo" data-key="vertical">vertical</span> (e.g.
   <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span> with β≈1.6 to S&amp;P) will look like it "outperformed the
   market" even if its <span class="lis-glo" data-key="alpha">alpha</span> is zero — it just took more market risk. For a
   true <span class="lis-glo" data-key="alpha">alpha</span> attribution you want method 3.</li>
<li><strong>No AI-vs-tech separation.</strong> If you want to isolate "AI demand" from
   "general tech sector tailwind", neither method does that. You'd need a
   non-AI tech counterfactual basket which doesn't really exist (every tech
   sub-sector has AI exposure now).</li>
<li><strong>Currency is unhedged.</strong> Foreign tickers in the verticals are in local
   currency; <span class="lis-glo" data-key="^GSPC">^GSPC</span> is in USD. FX moves leak into the <span class="lis-glo" data-key="detrended">detrended</span> return for
   foreign-heavy verticals (<span class="lis-glo" data-key="lithography">lithography</span>, <span class="lis-glo" data-key="foundry-logic">foundry-logic</span>, <span class="lis-glo" data-key="hbm-dram">hbm-dram</span>).</li>
</ol>
<div class="lis-md-h2">TL;DR plain English</div>
<p>When the "Detrend" toggle is <span class="lis-glo" data-key="ON">ON</span>, each <span class="lis-glo" data-key="vertical">vertical</span>'s line shows <strong>what you'd have
made running a long-vertical / short-S&amp;P pair trade from May 2021</strong>, with the
S&amp;P benchmark serving as a stand-in for "what generic equity exposure
delivered". A flat line means the <span class="lis-glo" data-key="vertical">vertical</span> did exactly what the market did; an
upward-sloping line means the <span class="lis-glo" data-key="vertical">vertical</span> outperformed; a downward-sloping line
means it underperformed.</p></div>
  <div class="lis-md-h3" style="margin-top:14px;font-size:14px;font-weight:700">Broad-market reference returns over the window</div>
  <table class="lis-market-ctx"><thead><tr><th>Benchmark</th><th>1y</th><th>3y</th><th>5y (since 2021-05)</th></tr></thead><tbody><tr><td><span class="lis-glo" data-key="^GSPC">^GSPC</span></td><td>+26.4%</td><td>+78.8%</td><td>+77.8%</td></tr><tr><td><span class="lis-glo" data-key="^NDX">^NDX</span></td><td>+38.1%</td><td>+106.8%</td><td>+115.4%</td></tr><tr><td><span class="lis-glo" data-key="XLK">XLK</span></td><td>+57.1%</td><td>+124.2%</td><td>+170.8%</td></tr><tr><td><span class="lis-glo" data-key="SOXX">SOXX</span></td><td>+163.9%</td><td>+245.3%</td><td>+288.0%</td></tr><tr><td><span class="lis-glo" data-key="NVDA">NVDA</span></td><td>+59.4%</td><td>+469.7%</td><td>+1228.9%</td></tr></tbody></table>
  <div class="lis-md"><div class="lis-md-h1">Broad-market context, 2021-05 → 2026-05</div>
<p>This note describes what the <em>broad market</em> did during the window of our LLM-inference supply-chain study, so that readers know what the "subtract market trend" toggle in the chart is actually netting out. All numbers are computed live from the price CSVs in <code>data/prices/</code> against a 2021-05-31 baseline.</p>
<div class="lis-md-h2">The macro story in plain English</div>
<p><strong>2021-05 → end of 2021: the tail of a speculative bull.</strong> The window opens in May 2021, near the end of the post-COVID liquidity boom. Meme stocks, SPACs, unprofitable growth, and crypto were all close to their highs. The S&amp;P 500 kept grinding up and made an all-time high on 2022-01-03 at ~4,797. Tech and semis were stretched on valuation, and the Fed was still on emergency settings.</p>
<p><strong>2022: the rate-hike bear market.</strong> As the Fed began the fastest hiking cycle in 40 years, long-duration assets sold off hard. From the 2021-05-31 baseline, the S&amp;P 500 was at -1.7% by 2022-05 and bottomed at -14.7% on 2022-09-30 (month-end basis). The Nasdaq-100 was deeper: -16.7% at the October 2022 mark. Semis fell further still — <span class="lis-glo" data-key="SOXX">SOXX</span> was at -23.4% by Oct 2022.</p>
<p><strong>Oct–Nov 2022 — ChatGPT launches near the trough.</strong> The intra-window closing low for the S&amp;P 500 was 2022-10-12 (3,577), and on a month-end basis the trough lands at 2022-09-30 (-14.7% vs baseline). ChatGPT was released publicly on 2022-11-30, about six weeks after that low. The launch did not single-handedly trigger the rally — rate-hike expectations were already peaking — but it created the narrative engine that absorbed every subsequent dollar of dovish surprise.</p>
<p><strong>2023 → 2024: the <span class="lis-glo" data-key="Mag7">Mag7</span>-led AI rally.</strong> From the trough, large-cap tech led a narrow but ferocious rally. Nvidia's Q1-FY24 datacenter print in May 2023 was the inflection. By 2024-05 <span class="lis-glo" data-key="NVDA">NVDA</span> was at +576.2% vs 2021-05; <span class="lis-glo" data-key="SOXX">SOXX</span> at +66.8%; the Nasdaq-100 at +35.4%. The S&amp;P 500 recovered to baseline around 2023-06-30 and kept going. Breadth was thin: most of the index gain came from a handful of AI-adjacent names.</p>
<p><strong>2024-25: rate cuts begin, breadth widens, capex <span class="lis-glo" data-key="super-cycle">super-cycle</span>.</strong> The Fed pivoted; the rally broadened beyond <span class="lis-glo" data-key="Mag7">Mag7</span>. <span class="lis-glo" data-key="hyperscaler">Hyperscaler</span> AI capex guidance crossed $300B/yr aggregate. Nvidia's revenue ran north of $130B. Power, gas turbines, transformers, and rare-earth magnets started showing up as binding constraints — themes this study is built around.</p>
<p><strong>2025-26: the AI buildout matures.</strong> By 2026-05-31 the S&amp;P 500 sat at a 5-year <span class="lis-glo" data-key="total return">total return</span> of +77.8%, the Nasdaq-100 at +115.4%, <span class="lis-glo" data-key="XLK">XLK</span> at +170.8%, <span class="lis-glo" data-key="SOXX">SOXX</span> at +288.0%, and <span class="lis-glo" data-key="NVDA">NVDA</span> at +1228.9%.</p>
<div class="lis-md-h2">Key numbers</div>
<table>
<thead>
<tr>
<th>Benchmark</th>
<th style="text-align: right;">1y</th>
<th style="text-align: right;">3y</th>
<th style="text-align: right;">5y (since 2021-05-31)</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="lis-glo" data-key="^GSPC">^GSPC</span></td>
<td style="text-align: right;">+26.4%</td>
<td style="text-align: right;">+78.8%</td>
<td style="text-align: right;">+77.8%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="^NDX">^NDX</span></td>
<td style="text-align: right;">+38.1%</td>
<td style="text-align: right;">+106.8%</td>
<td style="text-align: right;">+115.4%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="XLK">XLK</span></td>
<td style="text-align: right;">+57.1%</td>
<td style="text-align: right;">+124.2%</td>
<td style="text-align: right;">+170.8%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="SOXX">SOXX</span></td>
<td style="text-align: right;">+163.9%</td>
<td style="text-align: right;">+245.3%</td>
<td style="text-align: right;">+288.0%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="NVDA">NVDA</span></td>
<td style="text-align: right;">+59.4%</td>
<td style="text-align: right;">+469.7%</td>
<td style="text-align: right;">+1228.9%</td>
</tr>
</tbody>
</table>
<p>S&amp;P 500 in-window trough: <strong>2022-09-30</strong> at -14.7% vs baseline. Recovery to baseline: <strong>2023-06-30</strong>.</p>
<div class="lis-md-h2">Why detrending matters for this study</div>
<p>Almost everything in the supply chain we cover is, to some degree, a tech or growth stock. When the Nasdaq-100 rises +115.4% over five years, a name that did +115.4% did <em>not</em> outperform anything — it just rode market <span class="lis-glo" data-key="beta">beta</span>. The "subtract market trend" toggle in the HTML divides each ticker's return path by the benchmark's return path, leaving only the <strong>excess</strong> return — the part not explained by being long the broad market. Without that step, a chart of winners reads more like a chart of <span class="lis-glo" data-key="beta">beta</span> than a chart of AI exposure.</p>
<div class="lis-md-h2">The honest caveat</div>
<p>By 2025-26 the S&amp;P 500 is itself heavily AI-weighted. The Magnificent Seven (<span class="lis-glo" data-key="NVDA">NVDA</span>, <span class="lis-glo" data-key="MSFT">MSFT</span>, AAPL, <span class="lis-glo" data-key="GOOGL">GOOGL</span>, <span class="lis-glo" data-key="AMZN">AMZN</span>, <span class="lis-glo" data-key="META">META</span>, TSLA) collectively account for roughly 30% of the index's market cap, and several of them are the largest customers and suppliers in the AI buildout. <strong>Detrending against the S&amp;P partly nets AI out of itself.</strong> A purer benchmark would be the equal-weight S&amp;P 500 (RSP) or a non-tech basket — both of which underperformed the cap-weighted index materially over this window. Treat the <span class="lis-glo" data-key="detrended">detrended</span> view as <em>conservative</em> attribution: it understates the true AI premium, because the thing we are subtracting already contains the trade.</p></div>
  <div class="lis-caveat-box"><strong>Honest caveat:</strong> by 2026, the S&amp;P 500 itself is roughly 30% AI-driven (Mag7 ≈ 32% of market cap; many of them are the AI buildout's largest customers and suppliers). Subtracting S&amp;P therefore partly nets AI out of AI — treat the detrended view as a <em>floor</em> on AI alpha, not a complete isolation of it.</div>
</details>
</div>

<h2 id="summary-table">Summary table</h2>

<div class="lis-root">
<p class="lis-sub"><span class="lis-hover-heading">Summary table</span> — sorted by <code>gap</code> (most lagging first); click any column to re-sort; hover the heading for the full 22×tickers grid.</p>
<div class="lis-scroll-hint" id="lis-scroll-hint-summary"><i class="fas fa-arrows-alt-h" aria-hidden="true"></i><span>Tip: scroll right (or drag the table) to view all columns</span><span class="arrow" aria-hidden="true">↔</span></div><div class="lis-table-wrap"><table class="lis-sortable"><thead><tr><th><span class="lis-glo" data-key="vertical">vertical</span></th><th>3y <span class="lis-glo" data-key="total return">total return</span></th><th><span class="lis-glo" data-key="beta">beta</span> <span class="lis-glo" data-key="NVDA">NVDA</span></th><th>AI share %</th><th>revenue 2025 $bn</th><th>AI rev today $bn</th><th>AI rev @ 80% $bn</th><th>uplift $bn</th><th>uplift ×</th><th>label</th></tr></thead><tbody>
<tr class="lis-lag"><td data-v="lithography"><span class="lis-glo" data-key="lithography"><a href="#lis-v-lithography">Lithography</a></span></td><td data-v="1.1533767625392097">115.3%</td><td data-v="0.166068">0.17</td><td data-v="70.0">70.0%</td><td data-v="28.4">28.4</td><td data-v="19.88">19.9</td><td data-v="22.72">22.7</td><td data-v="2.84">2.8</td><td data-v="1.1429">1.14×</td><td data-v="lagging"><span class="lis-badge lis-lag">lagging</span></td></tr>
<tr class="lis-lag"><td data-v="datacenter-reits"><span class="lis-glo" data-key="datacenter-reits"><a href="#lis-v-datacenter-reits">Datacenter REITs (Colocation + Wholesale)</a></span></td><td data-v="1.036900750180627">103.7%</td><td data-v="0.181189">0.18</td><td data-v="45.0">45.0%</td><td data-v="119.0">119.0</td><td data-v="53.55">53.5</td><td data-v="95.2">95.2</td><td data-v="41.65">41.6</td><td data-v="1.7778">1.78×</td><td data-v="lagging"><span class="lis-badge lis-lag">lagging</span></td></tr>
<tr class="lis-lag"><td data-v="ai-accelerators"><span class="lis-glo" data-key="ai-accelerators"><a href="#lis-v-ai-accelerators">AI Accelerators (GPUs/ASICs/TPUs)</a></span></td><td data-v="3.764298528430757">376.4%</td><td data-v="0.526342">0.53</td><td data-v="85.0">85.0%</td><td data-v="200.0">200.0</td><td data-v="170.0">170.0</td><td data-v="160.0">160.0</td><td data-v="-10.0">-10.0</td><td data-v="0.9412">0.94×</td><td data-v="lagging"><span class="lis-badge lis-lag">lagging</span></td></tr>
<tr class="lis-lag"><td data-v="foundry-logic"><span class="lis-glo" data-key="foundry-logic"><a href="#lis-v-foundry-logic">Foundry — Logic</a></span></td><td data-v="2.5423757348880227">254.2%</td><td data-v="0.370039">0.37</td><td data-v="58.0">58.0%</td><td data-v="169.5">169.5</td><td data-v="98.31">98.3</td><td data-v="135.6">135.6</td><td data-v="37.29">37.3</td><td data-v="1.3793">1.38×</td><td data-v="lagging"><span class="lis-badge lis-lag">lagging</span></td></tr>
<tr class="lis-lag"><td data-v="wfe-deposition-etch"><span class="lis-glo" data-key="wfe-deposition-etch"><a href="#lis-v-wfe-deposition-etch">WFE: Deposition, Etch, Implant, Metrology</a></span></td><td data-v="1.4545230227929458">145.5%</td><td data-v="0.494865">0.49</td><td data-v="55.0">55.0%</td><td data-v="115.7">115.7</td><td data-v="63.635">63.6</td><td data-v="92.56">92.6</td><td data-v="28.925">28.9</td><td data-v="1.4545">1.45×</td><td data-v="lagging"><span class="lis-badge lis-lag">lagging</span></td></tr>
<tr class="lis-lag"><td data-v="industrial-gases-water"><span class="lis-glo" data-key="industrial-gases-water"><a href="#lis-v-industrial-gases-water">Industrial Gases &amp; Water (fab inputs + DC cooling/humidification)</a></span></td><td data-v="0.22592095851371186">22.6%</td><td data-v="0.03004">0.03</td><td data-v="9.0">9.0%</td><td data-v="120.0">120.0</td><td data-v="10.8">10.8</td><td data-v="96.0">96.0</td><td data-v="85.2">85.2</td><td data-v="8.8889">8.89×</td><td data-v="lagging"><span class="lis-badge lis-lag">lagging</span></td></tr>
<tr class="lis-lag"><td data-v="datacenter-cooling-thermal"><span class="lis-glo" data-key="datacenter-cooling-thermal"><a href="#lis-v-datacenter-cooling-thermal">Datacenter Cooling — Thermal Management</a></span></td><td data-v="2.597383345185856">259.7%</td><td data-v="0.474139">0.47</td><td data-v="55.0">55.0%</td><td data-v="11.5">11.5</td><td data-v="6.325">6.3</td><td data-v="9.2">9.2</td><td data-v="2.875">2.9</td><td data-v="1.4545">1.45×</td><td data-v="lagging"><span class="lis-badge lis-lag">lagging</span></td></tr>
<tr class="lis-lag"><td data-v="hyperscalers-cloud"><span class="lis-glo" data-key="hyperscalers-cloud"><a href="#lis-v-hyperscalers-cloud">Hyperscalers &amp; Cloud</a></span></td><td data-v="1.0706203872806301">107.1%</td><td data-v="0.361529">0.36</td><td data-v="35.0">35.0%</td><td data-v="419.0">419.0</td><td data-v="146.65">146.7</td><td data-v="335.2">335.2</td><td data-v="188.55">188.6</td><td data-v="2.2857">2.29×</td><td data-v="lagging"><span class="lis-badge lis-lag">lagging</span></td></tr>
<tr class="lis-fair"><td data-v="networking-switching"><span class="lis-glo" data-key="networking-switching"><a href="#lis-v-networking-switching">Networking — Switching, Retimers, DPUs</a></span></td><td data-v="2.25714637876321">225.7%</td><td data-v="0.572423">0.57</td><td data-v="55.0">55.0%</td><td data-v="33.0">33.0</td><td data-v="18.15">18.1</td><td data-v="26.4">26.4</td><td data-v="8.25">8.2</td><td data-v="1.4545">1.45×</td><td data-v="fair"><span class="lis-badge lis-fair">fair</span></td></tr>
<tr class="lis-fair"><td data-v="ic-substrates"><span class="lis-glo" data-key="ic-substrates"><a href="#lis-v-ic-substrates">IC Substrates (ABF / FC-BGA / BT)</a></span></td><td data-v="4.234695688813026">423.5%</td><td data-v="0.085872">0.09</td><td data-v="35.0">35.0%</td><td data-v="20.0">20.0</td><td data-v="7.0">7.0</td><td data-v="16.0">16.0</td><td data-v="9.0">9.0</td><td data-v="2.2857">2.29×</td><td data-v="fair"><span class="lis-badge lis-fair">fair</span></td></tr>
<tr class="lis-fair"><td data-v="gas-turbines"><span class="lis-glo" data-key="gas-turbines"><a href="#lis-v-gas-turbines">Gas Turbines</a></span></td><td data-v="5.502772873743217">550.3%</td><td data-v="0.26297">0.26</td><td data-v="55.0">55.0%</td><td data-v="30.2">30.2</td><td data-v="16.61">16.6</td><td data-v="24.16">24.2</td><td data-v="7.55">7.5</td><td data-v="1.4545">1.45×</td><td data-v="fair"><span class="lis-badge lis-fair">fair</span></td></tr>
<tr class="lis-fair"><td data-v="eda-ip"><span class="lis-glo" data-key="eda-ip"><a href="#lis-v-eda-ip">EDA &amp; Silicon IP</a></span></td><td data-v="1.854043638224954">185.4%</td><td data-v="0.519341">0.52</td><td data-v="45.0">45.0%</td><td data-v="21.2">21.2</td><td data-v="9.54">9.5</td><td data-v="16.96">17.0</td><td data-v="7.42">7.4</td><td data-v="1.7778">1.78×</td><td data-v="fair"><span class="lis-badge lis-fair">fair</span></td></tr>
<tr class="lis-fair"><td data-v="model-labs-software"><span class="lis-glo" data-key="model-labs-software"><a href="#lis-v-model-labs-software">Inference-Consuming Software / App Layer</a></span></td><td data-v="2.6547911924460825">265.5%</td><td data-v="0.388295">0.39</td><td data-v="35.0">35.0%</td><td data-v="170.0">170.0</td><td data-v="59.5">59.5</td><td data-v="136.0">136.0</td><td data-v="76.5">76.5</td><td data-v="2.2857">2.29×</td><td data-v="fair"><span class="lis-badge lis-fair">fair</span></td></tr>
<tr class="lis-fair"><td data-v="power-semis-vrm"><span class="lis-glo" data-key="power-semis-vrm"><a href="#lis-v-power-semis-vrm">Power Semiconductors — VRM / Vertical Power Delivery</a></span></td><td data-v="1.2073348363992396">120.7%</td><td data-v="0.399088">0.40</td><td data-v="22.0">22.0%</td><td data-v="73.7">73.7</td><td data-v="16.214">16.2</td><td data-v="58.96">59.0</td><td data-v="42.746">42.7</td><td data-v="3.6364">3.64×</td><td data-v="fair"><span class="lis-badge lis-fair">fair</span></td></tr>
<tr class="lis-fair"><td data-v="advanced-packaging"><span class="lis-glo" data-key="advanced-packaging"><a href="#lis-v-advanced-packaging">Advanced Packaging (OSAT, substrates, FOPLP, backend test)</a></span></td><td data-v="4.119764275184278">412.0%</td><td data-v="0.294745">0.29</td><td data-v="35.0">35.0%</td><td data-v="50.0">50.0</td><td data-v="17.5">17.5</td><td data-v="40.0">40.0</td><td data-v="22.5">22.5</td><td data-v="2.2857">2.29×</td><td data-v="fair"><span class="lis-badge lis-fair">fair</span></td></tr>
<tr class="lis-pin"><td data-v="copper-rare-earth"><span class="lis-glo" data-key="copper-rare-earth"><a href="#lis-v-copper-rare-earth">Copper &amp; Rare Earths</a></span></td><td data-v="1.2168389908897912">121.7%</td><td data-v="0.236231">0.24</td><td data-v="4.0">4.0%</td><td data-v="280.0">280.0</td><td data-v="11.2">11.2</td><td data-v="224.0">224.0</td><td data-v="212.8">212.8</td><td data-v="20.0">20.00×</td><td data-v="priced_in"><span class="lis-badge lis-pin">priced_in</span></td></tr>
<tr class="lis-pin"><td data-v="utilities-merchant-power"><span class="lis-glo" data-key="utilities-merchant-power"><a href="#lis-v-utilities-merchant-power">Utilities &amp; Merchant Power</a></span></td><td data-v="2.3416932581704337">234.2%</td><td data-v="0.197796">0.20</td><td data-v="8.0">8.0%</td><td data-v="420.0">420.0</td><td data-v="33.6">33.6</td><td data-v="336.0">336.0</td><td data-v="302.4">302.4</td><td data-v="10.0">10.00×</td><td data-v="priced_in"><span class="lis-badge lis-pin">priced_in</span></td></tr>
<tr class="lis-pin"><td data-v="electrical-equipment"><span class="lis-glo" data-key="electrical-equipment"><a href="#lis-v-electrical-equipment">Electrical Equipment (Datacenter Power Distribution)</a></span></td><td data-v="3.7584367634964577">375.8%</td><td data-v="0.294927">0.29</td><td data-v="18.0">18.0%</td><td data-v="24.0">24.0</td><td data-v="4.32">4.3</td><td data-v="19.2">19.2</td><td data-v="14.88">14.9</td><td data-v="4.4444">4.44×</td><td data-v="priced_in"><span class="lis-badge lis-pin">priced_in</span></td></tr>
<tr class="lis-pin"><td data-v="hbm-dram"><span class="lis-glo" data-key="hbm-dram"><a href="#lis-v-hbm-dram">HBM &amp; DRAM</a></span></td><td data-v="6.310671328773599">631.1%</td><td data-v="0.208773">0.21</td><td data-v="30.0">30.0%</td><td data-v="38.0">38.0</td><td data-v="11.4">11.4</td><td data-v="30.4">30.4</td><td data-v="19.0">19.0</td><td data-v="2.6667">2.67×</td><td data-v="priced_in"><span class="lis-badge lis-pin">priced_in</span></td></tr>
<tr class="lis-pin"><td data-v="power-transformers-grid"><span class="lis-glo" data-key="power-transformers-grid"><a href="#lis-v-power-transformers-grid">Power Transformers &amp; Grid</a></span></td><td data-v="7.751420778274436">775.1%</td><td data-v="0.28026">0.28</td><td data-v="25.0">25.0%</td><td data-v="28.0">28.0</td><td data-v="7.0">7.0</td><td data-v="22.4">22.4</td><td data-v="15.4">15.4</td><td data-v="3.2">3.20×</td><td data-v="priced_in"><span class="lis-badge lis-pin">priced_in</span></td></tr>
<tr class="lis-pin"><td data-v="nuclear-smr-uranium"><span class="lis-glo" data-key="nuclear-smr-uranium"><a href="#lis-v-nuclear-smr-uranium">Nuclear — SMR &amp; Uranium</a></span></td><td data-v="4.183467628901041">418.3%</td><td data-v="0.472532">0.47</td><td data-v="8.0">8.0%</td><td data-v="200.0">200.0</td><td data-v="16.0">16.0</td><td data-v="160.0">160.0</td><td data-v="144.0">144.0</td><td data-v="10.0">10.00×</td><td data-v="priced_in"><span class="lis-badge lis-pin">priced_in</span></td></tr>
<tr class="lis-pin"><td data-v="silicon-photonics-optics"><span class="lis-glo" data-key="silicon-photonics-optics"><a href="#lis-v-silicon-photonics-optics">Silicon Photonics &amp; Datacom Optics</a></span></td><td data-v="13.511084046644738">1351.1%</td><td data-v="0.63705">0.64</td><td data-v="55.0">55.0%</td><td data-v="31.5">31.5</td><td data-v="17.325">17.3</td><td data-v="25.2">25.2</td><td data-v="7.875">7.9</td><td data-v="1.4545">1.45×</td><td data-v="priced_in"><span class="lis-badge lis-pin">priced_in</span></td></tr>
</tbody></table></div>
<script>
(function(){
  function updateHint(){
    var hint = document.getElementById('lis-scroll-hint-summary');
    if (!hint) return;
    var wrap = hint.nextElementSibling;
    if (!wrap || !wrap.classList.contains('lis-table-wrap')) return;
    var overflow = wrap.scrollWidth > wrap.clientWidth + 1;
    hint.classList.toggle('is-visible', overflow);
  }
  function init(){
    updateHint();
    window.addEventListener('resize', updateHint);
    var hint = document.getElementById('lis-scroll-hint-summary');
    var wrap = hint ? hint.nextElementSibling : null;
    if (wrap && 'ResizeObserver' in window){
      var ro = new ResizeObserver(updateHint);
      ro.observe(wrap);
    }
  }
  if (document.readyState === 'loading'){
    document.addEventListener('DOMContentLoaded', init);
  } else { init(); }
})();
</script>

</div>

<h2 id="methodology-critique">Methodology critique</h2>

<div class="lis-root">
<details class="lis-card"><summary>Critique 1 — Is <code>ai-accelerators</code> really lagging?</summary>
<div class="lis-md"><div class="lis-md-h1">Critique: is <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span> really "lagging"?</div>
<p>The ranking model places <strong><span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span></strong> in the bottom <span class="lis-glo" data-key="tercile">tercile</span> (gap = −1.485). Common sense pushes back: <span class="lis-glo" data-key="NVDA">NVDA</span> is the AI bellwether. This note stress-tests each input.</p>
<div class="lis-md-h2">1. <span class="lis-glo" data-key="vertical">Vertical</span> composition: is <span class="lis-glo" data-key="NVDA">NVDA</span>'s run being diluted?</div>
<p>The <span class="lis-glo" data-key="vertical">vertical</span> is an <strong>equal-weighted month-end index</strong> of 7 names (see <code>_notes_returns.md</code> lines 48–62). All seven names had <strong>strong</strong> 3y returns when computed from the underlying price files, anchored at 2023-05-22:</p>
<table>
<thead>
<tr>
<th>ticker</th>
<th style="text-align: right;">3y <span class="lis-glo" data-key="total return">total return</span></th>
<th style="text-align: right;">5y <span class="lis-glo" data-key="total return">total return</span></th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="lis-glo" data-key="NVDA">NVDA</span></td>
<td style="text-align: right;"><strong>591.3%</strong></td>
<td style="text-align: right;"><strong>1282.7%</strong></td>
</tr>
<tr>
<td><span class="lis-glo" data-key="2454.TW">2454.TW</span> (<span class="lis-glo" data-key="MediaTek">MediaTek</span>)</td>
<td style="text-align: right;">645.8%</td>
<td style="text-align: right;">537.7%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="AVGO">AVGO</span></td>
<td style="text-align: right;">535.3%</td>
<td style="text-align: right;">896.9%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="AMD">AMD</span></td>
<td style="text-align: right;">332.9%</td>
<td style="text-align: right;">503.7%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="MRVL">MRVL</span></td>
<td style="text-align: right;">327.0%</td>
<td style="text-align: right;">320.4%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="INTC">INTC</span></td>
<td style="text-align: right;">303.8%</td>
<td style="text-align: right;">129.9%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="GOOGL">GOOGL</span></td>
<td style="text-align: right;">208.8%</td>
<td style="text-align: right;">227.1%</td>
</tr>
</tbody>
</table>
<p>(Computed live from <code>data/prices/*.csv</code>.)</p>
<p>Critical finding: <strong>the premise that "<span class="lis-glo" data-key="INTC">INTC</span> and <span class="lis-glo" data-key="MediaTek">MediaTek</span> dragged it down" is false</strong>. <span class="lis-glo" data-key="MediaTek">MediaTek</span> (+646%) actually beat <span class="lis-glo" data-key="NVDA">NVDA</span> on 3y, and <span class="lis-glo" data-key="INTC">INTC</span> tripled. The real drag is <strong><span class="lis-glo" data-key="GOOGL">GOOGL</span></strong> (+209%), because <span class="lis-glo" data-key="GOOGL">GOOGL</span> is a mega-cap whose denominator is Alphabet's entire enterprise value, not its <span class="lis-glo" data-key="TPU">TPU</span> silicon.</p>
<table>
<thead>
<tr>
<th>Method</th>
<th style="text-align: right;">3y <span class="lis-glo" data-key="total return">total return</span></th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="lis-glo" data-key="NVDA">NVDA</span> only</td>
<td style="text-align: right;"><strong>591%</strong></td>
</tr>
<tr>
<td>Equal-weighted 7-ticker basket (raw prices)</td>
<td style="text-align: right;"><strong>421%</strong></td>
</tr>
<tr>
<td>Equal-weighted 7-ticker basket (<span class="lis-glo" data-key="vertical">vertical</span> CSV, 2023-05-31→2026-05-31 month-end)</td>
<td style="text-align: right;">376%</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="market-cap-weighted">Market-cap-weighted</span> basket (rough caps)</td>
<td style="text-align: right;"><strong>483%</strong></td>
</tr>
<tr>
<td>Pure-merchant subset <span class="lis-glo" data-key="NVDA">NVDA</span>/<span class="lis-glo" data-key="AMD">AMD</span>/<span class="lis-glo" data-key="AVGO">AVGO</span>/<span class="lis-glo" data-key="MRVL">MRVL</span> (cap-wt)</td>
<td style="text-align: right;"><strong>568%</strong></td>
</tr>
</tbody>
</table>
<p>Most fair interpretation: the equal-weighted basket return (<strong>376–421%</strong>) is not dragged down by losers — every constituent more than 3x'd. It just happens to be lower than <span class="lis-glo" data-key="NVDA">NVDA</span>-solo because no other name matched <span class="lis-glo" data-key="NVDA">NVDA</span>'s 6.9x. But it is still the <strong>3rd highest 3y return of any <span class="lis-glo" data-key="vertical">vertical</span> in the study</strong> (only <code>silicon-photonics-optics</code> at 1351% and <code>power-transformers-grid</code> at 775% beat it). So the basket is not weak; the basket is loud — just not as loud as silicon-photonics' 13.5x rip.</p>
<div class="lis-md-h2">2. Is the 85% ai_share overstated?</div>
<p>The <span class="lis-glo" data-key="vertical">vertical</span> JSON justifies 85% by <span class="lis-glo" data-key="NVDA">NVDA</span>-weighting (<span class="lis-glo" data-key="NVDA">NVDA</span> ≈70% of <span class="lis-glo" data-key="vertical">vertical</span> revenue, and 88% of <span class="lis-glo" data-key="NVDA">NVDA</span> is data-center). That is internally <span class="lis-glo" data-key="Coherent">coherent</span> if you weight by <strong>AI-accelerator revenue</strong>. But the model treats the basket's z_ret as an equal-weighted equity index — so the symmetric input would be an <strong>equal-weighted AI share</strong> of the 7 names.</p>
<p>My rough revenue-weighted recompute (<span class="lis-glo" data-key="NVDA">NVDA</span> 88% AI / <span class="lis-glo" data-key="AVGO">AVGO</span> 35% / <span class="lis-glo" data-key="GOOGL">GOOGL</span> 15% / <span class="lis-glo" data-key="AMD">AMD</span> 25% / <span class="lis-glo" data-key="MRVL">MRVL</span> 50% / <span class="lis-glo" data-key="INTC">INTC</span> 5% / <span class="lis-glo" data-key="MediaTek">MediaTek</span> 5%, weighted by FY25 revenue with <span class="lis-glo" data-key="GOOGL">GOOGL</span> ≈$350B dominating):</p>
<ul>
<li><strong>Revenue-weighted AI share: 31.1%</strong> (<span class="lis-glo" data-key="GOOGL">GOOGL</span> crushes the average)</li>
<li><strong><span class="lis-glo" data-key="market-cap-weighted">Market-cap-weighted</span> AI share: 59.5%</strong></li>
<li><strong>Equal-weighted AI share: ~32%</strong></li>
</ul>
<p>The 85% number is honest <em>if</em> you read the <span class="lis-glo" data-key="vertical">vertical</span> as "AI-accelerator dollars sold" and ignore <span class="lis-glo" data-key="GOOGL">GOOGL</span>/<span class="lis-glo" data-key="MediaTek">MediaTek</span>/<span class="lis-glo" data-key="INTC">INTC</span>'s non-accelerator revenue. It's overstated <em>if</em> you want symmetry with the equity-return basket. There is no clean answer; both views are defensible.</p>
<div class="lis-md-h2">3. <span class="lis-glo" data-key="z-score">Z-score</span> sensitivity to the ai_share input</div>
<p>The cross-vertical mean of <code>ai_share_today_pct</code> is ≈25.7% with sd ≈16.9. So:</p>
<ul>
<li>z_ai at <strong>85%</strong> = +2.20</li>
<li>z_ai at <strong>50%</strong> = +0.55</li>
<li>z_ai at <strong>45%</strong> = +0.33</li>
</ul>
<p>Re-running the gap with corrected AI share (everything else equal):</p>
<table>
<thead>
<tr>
<th style="text-align: right;">ai_share</th>
<th style="text-align: right;">gap</th>
<th style="text-align: right;">rank</th>
<th>label</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: right;">85% (current)</td>
<td style="text-align: right;">−1.485</td>
<td style="text-align: right;">3/22</td>
<td><strong>lagging</strong></td>
</tr>
<tr>
<td style="text-align: right;">70%</td>
<td style="text-align: right;">−0.911</td>
<td style="text-align: right;">5/22</td>
<td>lagging</td>
</tr>
<tr>
<td style="text-align: right;">60%</td>
<td style="text-align: right;">−0.469</td>
<td style="text-align: right;">9/22</td>
<td>fair</td>
</tr>
<tr>
<td style="text-align: right;">50%</td>
<td style="text-align: right;">+0.011</td>
<td style="text-align: right;">13/22</td>
<td><strong>fair</strong></td>
</tr>
<tr>
<td style="text-align: right;">45%</td>
<td style="text-align: right;">+0.261</td>
<td style="text-align: right;">15/22</td>
<td><strong>priced_in</strong></td>
</tr>
</tbody>
</table>
<p>The label flips on a single subjective input. <strong>That is the most damning finding.</strong> The gap formula in this model has one binary input (which AI-share definition you adopt) that swings the verdict by 1.65σ.</p>
<div class="lis-md-h2">4. 5-year horizon</div>
<p>Replacing total_return_3y with total_return_5y from <code>cagr.csv</code>:</p>
<ul>
<li><span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span> 5y <span class="lis-glo" data-key="total return">total return</span>: <strong>537%</strong> (<span class="lis-glo" data-key="vertical">vertical</span>-level; <span class="lis-glo" data-key="NVDA">NVDA</span>-solo is 1283%)</li>
<li><span class="lis-glo" data-key="silicon-photonics-optics">silicon-photonics-optics</span> 5y: 899%; <span class="lis-glo" data-key="power-transformers-grid">power-transformers-grid</span> 5y: <strong>1583%</strong></li>
<li>New gap5 for <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span>: <strong>−1.265</strong>, rank 4/22 — <strong>still lagging</strong> in this model, but less extreme</li>
</ul>
<p>Even on a 5y horizon, the +85% ai_share input dominates, so the label doesn't change.</p>
<div class="lis-md-h2">5. Robustness matrix (weights = w_ret, w_beta, w_ai)</div>
<table>
<thead>
<tr>
<th>weights</th>
<th style="text-align: right;">gap</th>
<th style="text-align: right;">rank</th>
<th>label</th>
</tr>
</thead>
<tbody>
<tr>
<td>(1.0, 0.5, −1.0) baseline</td>
<td style="text-align: right;">−1.485</td>
<td style="text-align: right;">3/22</td>
<td>lagging</td>
</tr>
<tr>
<td>(0.5, 0.5, −1.0)</td>
<td style="text-align: right;">−1.549</td>
<td style="text-align: right;">2/22</td>
<td>lagging</td>
</tr>
<tr>
<td>(1.0, 0.0, −1.0)</td>
<td style="text-align: right;">−2.076</td>
<td style="text-align: right;">2/22</td>
<td>lagging</td>
</tr>
<tr>
<td><strong>(1.0, 1.0, −0.5)</strong></td>
<td style="text-align: right;"><strong>+0.208</strong></td>
<td style="text-align: right;">15/22</td>
<td><strong>priced_in</strong></td>
</tr>
</tbody>
</table>
<p>The label is invariant to discounting return or removing <span class="lis-glo" data-key="beta">beta</span>, but <strong>flips to priced_in when you halve the AI-share penalty and double the <span class="lis-glo" data-key="beta">beta</span> reward</strong>. The −1.0 coefficient on z_ai is doing essentially all the work.</p>
<div class="lis-md-h2">6. Counter-theses (both sides)</div>
<p><strong>Why <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span> COULD still be lagging (genuine bull case):</strong>
- Custom-ASIC outsourcing is <em>just starting</em>. Google <span class="lis-glo" data-key="TPU">TPU</span> v8, Meta MTIA v2, AWS Trainium3, Microsoft <span class="lis-glo" data-key="Maia">Maia</span> 2 all ramp 2026–2028 — <span class="lis-glo" data-key="AVGO">AVGO</span> and <span class="lis-glo" data-key="MRVL">MRVL</span> revenue from those is largely unbooked.
- <span class="lis-glo" data-key="NVDA">NVDA</span> <span class="lis-glo" data-key="Blackwell">Blackwell</span> B200/B300 gross margins (70%+) are higher than priced; consensus has them compressing.
- AI infrastructure spend trajectory ($300B → $500B+ annual capex) is barely 30% complete; the durable winners (<span class="lis-glo" data-key="NVDA">NVDA</span>/<span class="lis-glo" data-key="AVGO">AVGO</span>) take fixed revenue share through 2030.</p>
<p><strong>Why <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span> is likely already priced in (genuine bear case):</strong>
- <span class="lis-glo" data-key="NVDA">NVDA</span> at $5.2T market cap is ~6% of S&amp;P. The "AI boom" is largely <em>defined as</em> <span class="lis-glo" data-key="NVDA">NVDA</span>'s run. A +591% 3y return on the world's most-followed stock is the textbook definition of fully discounted.
- The 85% ai_share is <em>the entire thesis the market spent 2023–25 pricing in</em>. It would be circular to label a <span class="lis-glo" data-key="vertical">vertical</span> "underpriced because AI" when "AI" is precisely why it ran 6x.
- <span class="lis-glo" data-key="lithography">Lithography</span>, <span class="lis-glo" data-key="datacenter-reits">datacenter-reits</span>, and <span class="lis-glo" data-key="gas-turbines">gas-turbines</span> are more genuinely "AI exposure not yet priced" stories — they have similar AI exposure but flat returns. <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span> looks "lagging" only by an artifact of its outlier z_ai.</p>
<div class="lis-md-h2">7. Verdict</div>
<p><strong>Within the model as specified, <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span> is lagging because its z_ai (+2.20σ) is the largest in the universe and a single −1.0 coefficient on that <span class="lis-glo" data-key="z-score">z-score</span> mechanically forces a −1.5σ gap regardless of what the price did.</strong> The 591% <span class="lis-glo" data-key="NVDA">NVDA</span>-solo return and 376% basket return are <em>not</em> small — they are top-3 in the study — but no realistic equity return can offset a +2σ AI input in this formula.</p>
<p><strong>Outside the model, a reasonable observer would more likely call it <span class="lis-glo" data-key="priced-in">priced-in</span></strong> — or at best "fair." The 376–591% return range <em>is</em> the AI repricing. Halving the AI-share input to a defensible 45–50% (revenue-weighted across the equal-weighted basket) flips the label to fair/priced_in, and that re-anchoring is more honest than the current 85%.</p>
<div class="lis-md-h2">Honest uncertainty</div>
<ul>
<li>Market-cap weights used in §1 are rough — order-of-magnitude only.</li>
<li>Per-ticker AI share estimates in §2 (e.g. <span class="lis-glo" data-key="AMD">AMD</span> 25%, <span class="lis-glo" data-key="MRVL">MRVL</span> 50%) are judgment calls; reasonable ranges are <span class="lis-glo" data-key="AMD">AMD</span> 15–45%, <span class="lis-glo" data-key="MRVL">MRVL</span> 35–65%. They do not affect the headline conclusion (corrected basket ai-share is 30–60%, not 85%).</li>
<li>The 2023-05-22 vs 2023-05-31 anchor explains the 421% vs 376% gap; both are valid 3y windows.</li>
</ul></div></details>
<details class="lis-card"><summary>Critique 2 — Which 'priced-in' labels are actually about AI?</summary>
<div class="lis-md"><div class="lis-md-h1">Skeptical Critique — Alternative Drivers for the "<span class="lis-glo" data-key="priced-in">Priced-In</span>" Verticals</div>
<p>The current ranking labels seven verticals as <span class="lis-glo" data-key="priced-in">priced-in</span> or rallied with positive gaps to the AI exposure score. The implicit narrative: AI demand is what drove these stocks. But AI share-of-revenue is <strong>4-30%</strong> in each, so most of the rally must logically come from something else. This note interrogates that claim and attempts an attribution split per <span class="lis-glo" data-key="vertical">vertical</span> with cited sources.</p>
<div class="lis-md-h2">1. <span class="lis-glo" data-key="copper-rare-earth">Copper-Rare-Earth</span> (gap +0.54, AI share 4%)</div>
<p>The <span class="lis-glo" data-key="vertical">vertical</span>'s 3y <span class="lis-glo" data-key="total return">total return</span> of 1.22 looks unimpressive in absolute terms — it is below the <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span> basket (3.76) — but the model flags it as <span class="lis-glo" data-key="priced-in">priced-in</span> because the AI exposure score is so low. So the question is narrower: did the modest rally that did occur come from AI, or somewhere else?</p>
<p><strong>Alternative drivers:</strong>
- <strong>Supply disruption <span class="lis-glo" data-key="stack">stack</span></strong>: First Quantum's <span class="lis-glo" data-key="Cobre Panama">Cobre Panama</span> shutdown Nov 2023 (~1.5% of global supply removed); 2025 accidents at <span class="lis-glo" data-key="Ivanhoe">Ivanhoe</span>'s <span class="lis-glo" data-key="Kamoa">Kamoa</span>-Kakula (DRC) and Freeport's <span class="lis-glo" data-key="Grasberg">Grasberg</span> (Indonesia, force majeure declared, 2026 guidance slashed). <a href="https://investingnews.com/daily/resource-investing/base-metals-investing/copper-investing/copper-price-update/">INN 2025 Year-End Review</a>
- <strong>Capex underinvestment 2015-2020</strong>: Global ore grades fell from 1-2% to &lt;0.7%; project capex was for maintenance, not new capacity. ICSG projects 150kt deficit by 2026 driven by inability to deliver supply, not demand volatility. <a href="https://www.cruxinvestor.com/posts/from-surplus-to-scarcity-how-slower-production-growth-is-driving-a-structural-copper-deficit-by-2026">Crux Investor</a>
- <strong><span class="lis-glo" data-key="China stimulus">China stimulus</span> 2024-25</strong>: Beijing's "more proactive" fiscal policy + "moderately loose" monetary policy for 2026, with grid/renewable/data-center spending all copper-intensive. <a href="https://investingnews.com/daily/resource-investing/base-metals-investing/copper-investing/copper-price-update/">INN</a>
- <strong>Trump <span class="lis-glo" data-key="Section 232">Section 232</span> tariff arbitrage (Jul 2025)</strong>: 50% tariff on semi-finished copper; pre-announcement, COMEX-LME spread blew out to $2,637/t, premium then collapsed when refined cathode was excluded. Big speculative noise. <a href="https://www.whitecase.com/insight-alert/president-trump-orders-50-percent-section-232-tariff-copper-imports">White &amp; Case</a>
- <strong><span class="lis-glo" data-key="energy transition">Energy transition</span> baseline</strong>: IEA expects clean-energy techs to lift refined copper use to 33 Mt by 2035, 37 Mt by 2050 (vs ~27 Mt in 2024). EVs + grid hardening + heat pumps dwarf AI-DC tonnage.
- <strong>Rare earth catalysts unrelated to AI</strong>: China export controls Apr 2025 + Oct 2025 expansion (paused Nov 2025-Nov 2026); <span class="lis-glo" data-key="MP">MP</span> Materials Pentagon $400M preferred + $110/kg NdPr floor (Jul 2025) — a price-floor backstop more than an AI thesis. <a href="https://www.cnbc.com/2025/07/10/pentagon-to-become-largest-shareholder-in-rare-earth-magnet-maker-mp-materials.html">CNBC</a>, <a href="https://www.csis.org/analysis/consequences-chinas-new-rare-earths-export-restrictions">CSIS</a></p>
<p><strong>Best-guess attribution (judgment)</strong>: 30% <span class="lis-glo" data-key="energy transition">energy transition</span> / EV / electrification, 25% supply disruption + capex underinvestment, 20% <span class="lis-glo" data-key="China stimulus">China stimulus</span> + tariff arbitrage, 15% rare-earth-specific geopolitics (DoD, China controls), <strong>10% AI/DC</strong>. AI is not the load-bearing narrative here; it sits atop a deeper structural copper deficit story.</p>
<div class="lis-md-h2">2. <span class="lis-glo" data-key="utilities-merchant-power">Utilities-Merchant-Power</span> (gap +0.62, AI share 8%)</div>
<p><strong>Alternative drivers:</strong>
- <strong><span class="lis-glo" data-key="PJM">PJM</span> <span class="lis-glo" data-key="capacity auction">capacity auction</span> repricing</strong>: Clearing prices jumped from $28.92/<span class="lis-glo" data-key="MW">MW</span>-day (2024/25) to $269.92 (2025/26) to $329.17 (2026/27) — a 10x repricing in two auctions. <span class="lis-glo" data-key="PJM">PJM</span>'s own forecast attributes <strong>94-97% of the 32 <span class="lis-glo" data-key="GW">GW</span> load growth 2024-2030 to data centers</strong>. <a href="https://www.utilitydive.com/news/capacity-cost-pjm-interconnection-ai-buildout/818786/">Utility Dive</a>, <a href="https://ieefa.org/resources/projected-data-center-growth-spurs-pjm-capacity-prices-factor-10">IEEFA</a>
- <strong>Coal retirement cliff</strong>: ~6 <span class="lis-glo" data-key="GW">GW</span> <span class="lis-glo" data-key="PJM">PJM</span> fossil already retired pre-2024 auction; 15 <span class="lis-glo" data-key="GW">GW</span> more coal planned by 2029. Tightening reserve margins drive auction clears even without AI.
- <strong><span class="lis-glo" data-key="ERCOT">ERCOT</span> heat-wave seasonality</strong>: 2024 set 85,559 <span class="lis-glo" data-key="MW">MW</span> peak record Aug 20; 2025 spring saw 1,600% intraday spikes. <span class="lis-glo" data-key="VST">VST</span>/<span class="lis-glo" data-key="NRG">NRG</span> unhedged capacity can earn $2-10M/hour at peak. <a href="https://fortune.com/2024/05/18/texas-power-prices-1600-percent-heat-wave-record-energy-demand-electric-grid/">Fortune</a>
- <strong>Microsoft-CEG TMI deal (Sep 2024)</strong>: drove <span class="lis-glo" data-key="CEG">CEG</span> +25% in one day, sparked re-rating across nuclear IPPs. AI-PPA is the single most cited catalyst. <a href="https://www.cnbc.com/2024/09/23/morgan-stanley-sees-upside-for-ceg-other-stocks-after-nuclear-restart.html">CNBC</a></p>
<p><strong>Best-guess attribution</strong>: 55% AI/DC capacity scarcity (<span class="lis-glo" data-key="PJM">PJM</span> data shows this is overwhelmingly the marginal load), 20% coal-retirement-driven scarcity, 15% weather/seasonal merchant cash flows, 10% other (rate-base capex). <strong>AI is the cleanest explanation here</strong> — <span class="lis-glo" data-key="PJM">PJM</span>'s own forecasting attributes 94-97% of load growth to data centers, which is much higher than the 8% revenue-share number suggests because the marginal MWh prices the whole <span class="lis-glo" data-key="stack">stack</span>.</p>
<div class="lis-md-h2">3. Electrical Equipment (gap +0.94, AI share 18%)</div>
<p><strong>Alternative drivers:</strong>
- <strong>Megaproject + <span class="lis-glo" data-key="reshoring">reshoring</span> backlog</strong>: <span class="lis-glo" data-key="ETN">ETN</span> Q4'25 disclosed <strong>54% YTD megaproject announcements were data centers, the rest US <span class="lis-glo" data-key="reshoring">reshoring</span></strong>. $3T NA megaproject backlog. <span class="lis-glo" data-key="Eaton">Eaton</span> mega-project revenue +30% 2024→2025. <a href="https://www.fool.com/earnings/call-transcripts/2026/02/03/eaton-etn-q4-2025-earnings-call-transcript/">Eaton Q4 2025 transcript</a>
- <strong><span class="lis-glo" data-key="IRA">IRA</span> + <span class="lis-glo" data-key="CHIPS Act">CHIPS Act</span></strong>: ongoing fab/factory build (TSMC AZ, Samsung TX, Intel OH, GF NY) demands MV <span class="lis-glo" data-key="switchgear">switchgear</span> and dry transformers — no AI exposure but same vendor list.
- <strong>Grid hardening post-Uri (Texas Feb 2021)</strong>: state PUCs raised resilience capex; T&amp;<span class="lis-glo" data-key="D">D</span> contractors (<span class="lis-glo" data-key="PWR">PWR</span>, <span class="lis-glo" data-key="MYRG">MYRG</span>, <span class="lis-glo" data-key="PRIM">PRIM</span>) saw multi-year backlog growth predating AI <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> narrative.
- <strong>Electrification baseline</strong>: EV charging, heat-pump conversions, building electrification.</p>
<p><strong>Best-guess attribution</strong>: ~50% data-center demand (most explicit company disclosure), 25% non-DC <span class="lis-glo" data-key="reshoring">reshoring</span>/megaprojects, 15% grid hardening + utility-side capex, 10% electrification baseline. <strong>AI is real, but ~54% of <span class="lis-glo" data-key="Eaton">Eaton</span>'s megaproject sources are explicitly DC — that includes both AI-training and conventional cloud/colo</strong>, so AI-attributable is closer to 35-40%, not the 18% in the JSON. The JSON likely under-counts AI here.</p>
<div class="lis-md-h2">4. <span class="lis-glo" data-key="hbm-dram">HBM-DRAM</span> (gap +0.99, AI share 30%)</div>
<p><strong>Alternative drivers (memory bear case):</strong>
- <strong>Classic <span class="lis-glo" data-key="DRAM">DRAM</span> cycle recovery</strong>: 2022-23 trough was a deep oversupply crash. 2024-25 was always going to recover on inventory bleed and capex discipline — the cycle is endogenous.
- <strong><span class="lis-glo" data-key="wafer">Wafer</span> reallocation, not demand</strong>: Up to 40% of advanced <span class="lis-glo" data-key="wafer">wafer</span> capacity has been redirected from commodity <span class="lis-glo" data-key="DRAM">DRAM</span> to <span class="lis-glo" data-key="HBM">HBM</span>, which <strong>shrinks</strong> commodity <span class="lis-glo" data-key="DRAM">DRAM</span> supply 3-4x per <span class="lis-glo" data-key="HBM">HBM</span> chip equivalent. The price spike on commodity DDR5 is a supply-side artefact, not new demand. <a href="https://www.trendforce.com/news/2025/12/02/news-memory-price-rally-may-run-past-2028-as-samsung-sk-hynix-reportedly-cautious-on-expansion/">TrendForce</a>
- <strong>Cyclical caution by suppliers</strong>: Samsung/<span class="lis-glo" data-key="SK Hynix">SK Hynix</span> are choosing not to expand aggressively, sustaining prices regardless of AI.</p>
<p><strong>Counter-evidence (AI bull case):</strong>
- <span class="lis-glo" data-key="HBM">HBM</span> <span class="lis-glo" data-key="TAM">TAM</span> going from $17B (2024) to $36-38B (2025) to ~$58B (2026) — pure AI demand. <a href="https://www.trendforce.com/news/2025/12/18/news-micron-hikes-capex-to-20b-with-2026-hbm-supply-fully-booked-hbm4-ramps-2q26/">TrendForce</a>
- 2026 <span class="lis-glo" data-key="HBM">HBM</span> supply fully booked.
- The <span class="lis-glo" data-key="wafer">wafer</span>-reallocation mechanism itself is <strong>caused</strong> by AI demand pulling capacity into <span class="lis-glo" data-key="HBM">HBM</span>, so it isn't really separable.</p>
<p><strong>Best-guess attribution</strong>: 60% AI-HBM demand (the pull source), 25% supply discipline / <span class="lis-glo" data-key="wafer">wafer</span>-mix repricing (which is downstream of AI anyway), 15% normal cyclical recovery from the 2022-23 trough. <strong>AI is the dominant driver, full stop</strong>. The 30% AI share number in the JSON understates this because it's measured by <span class="lis-glo" data-key="HBM">HBM</span> revenue/total <span class="lis-glo" data-key="DRAM">DRAM</span> revenue — but <span class="lis-glo" data-key="HBM">HBM</span> scarcity sets the marginal price for the entire <span class="lis-glo" data-key="DRAM">DRAM</span> <span class="lis-glo" data-key="stack">stack</span>.</p>
<div class="lis-md-h2">5. Power Transformers-Grid (gap +1.95, AI share 25%)</div>
<p><strong>Alternative drivers:</strong>
- <strong>Aging fleet</strong>: 40-year average asset life, 70% of US transmission lines nearing end of 50-80 year lifecycle. Replacement cycle would be tight regardless of AI. <a href="https://www.industrialsage.com/power-transformer-lead-times-us-grid-shortage/">Industrial Sage</a>
- <strong><span class="lis-glo" data-key="interconnection queue">Interconnection queue</span></strong>: ~2,300 <span class="lis-glo" data-key="GW">GW</span> renewables + storage in queue end of 2024; every project needs LPTs. Lead times moved from 30-60 weeks pre-pandemic to 4 years. Demand for GSU transformers +274% 2019-2025 — pre-dates the AI capex bubble.
- <strong>Renewables build (<span class="lis-glo" data-key="IRA">IRA</span>-driven 2022-onward)</strong> and <strong>EV grid upgrades</strong>.
- <strong><span class="lis-glo" data-key="GEV">GEV</span> spin-off (Apr 2, 2024) re-rating</strong>: <span class="lis-glo" data-key="GEV">GEV</span> stock has quadrupled since spin. Investor base rotation + cleaner pure-play disclosure mechanically drove multiple expansion separate from AI. <a href="https://www.gevernova.com/news/press-releases/ge-vernova-completes-spin-off-begins-trading-new-york-stock-exchange">GE Vernova press</a>
- <strong><span class="lis-glo" data-key="Siemens Energy">Siemens Energy</span> turnaround</strong>: <span class="lis-glo" data-key="ENR.DE">ENR.DE</span> +300%+ from 2024 lows largely driven by <strong>resolution of the Gamesa wind quality crisis</strong> (€1B+ provisions in 2023) plus grid order book. Without the wind crisis lift-off, baseline would be lower. <a href="https://ts2.tech/en/siemens-energy-hits-record-highs-as-analysts-boost-targets-how-ai-grid-demand-and-a-wind-turnaround-drive-the-stock-rally/">TS2.tech</a>
- <strong>Korean exporters (<span class="lis-glo" data-key="Hyundai Electric">Hyundai Electric</span>, HD)</strong>: weak KRW + tariff arbitrage + US plant ramps. Stock +900%+ off lows over 3 years, mostly from US grid orders for both AI and non-AI utility customers.</p>
<p><strong>Best-guess attribution</strong>: 35% AI/DC (acknowledged by all OEMs), 25% renewables interconnection + <span class="lis-glo" data-key="IRA">IRA</span>-driven grid build, 20% replacement / aging-fleet cycle, 10% <span class="lis-glo" data-key="GEV">GEV</span> spin re-rating + Siemens Gamesa-turnaround idiosyncratic mechanical lift, 10% <span class="lis-glo" data-key="reshoring">reshoring</span> industrial loads. <strong>AI is real but not majority</strong> — the <span class="lis-glo" data-key="transformer">transformer</span> shortage was visibly building 2019-2023 before AI capex spiked, and IEA/queue data show renewables + EVs are larger <span class="lis-glo" data-key="MW">MW</span> additions than DCs even today.</p>
<div class="lis-md-h2">6. <span class="lis-glo" data-key="nuclear-smr-uranium">Nuclear-SMR-Uranium</span> (gap +2.12, AI share 8%)</div>
<p><strong>Alternative drivers:</strong>
- <strong>Russia uranium import ban (Prohibiting Russian Uranium Imports Act, May 2024)</strong>: forced Western utilities to buy alternatives; Russia historically supplied ~35% of US enriched uranium. This is the single largest non-AI catalyst for U3O8 spot. <a href="https://theoregongroup.com/commodities/uranium/uranium-prices-how-did-we-get-here-what-comes-next/">Cameco market commentary cited in Oregon Group</a>
- <strong><span class="lis-glo" data-key="Niger coup">Niger coup</span> July 2023</strong>: removed ~5% of global uranium supply, drove spot from $50/lb to &gt;$100/lb Jan 2024 — well before any <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> nuclear <span class="lis-glo" data-key="PPA">PPA</span>. <a href="https://www.bloomberg.com/professional/insights/financial-services/uranium-back-on-investors-radar-amid-nuclear-interest-niger-coup/">Bloomberg</a>
- <strong><span class="lis-glo" data-key="Cameco">Cameco</span> supply cuts</strong>: 2023 production guidance cuts at Cigar Lake (18→16.3 Mlb) and McArthur River (15→14 Mlb).
- <strong>COP28 triple-nuclear pledge (Dec 2023)</strong>: 22-31 countries committed to triple nuclear capacity by 2050. Japan restarts, France ramp, China builds — none of this is AI. <a href="https://world-nuclear.org/news-and-media/press-statements/six-more-countries-endorse-the-declaration-to-triple-nuclear-energy-by-2050-at-cop29">WNA</a>
- <strong><span class="lis-glo" data-key="CEG">CEG</span>-Microsoft TMI deal (Sep 2024)</strong>: this is the unambiguous AI catalyst that re-rated the <span class="lis-glo" data-key="IPP">IPP</span> cohort.</p>
<p><strong>Best-guess attribution</strong>: 35% uranium-supply shock (Russia ban + Niger + <span class="lis-glo" data-key="Cameco">Cameco</span>), 30% global nuclear renaissance pledges + utility re-contracting (non-AI), 25% AI <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> PPAs (TMI, AWS-Susquehanna, Comanche Peak, Meta-Oklo, Google-Kairos), 10% <span class="lis-glo" data-key="SMR">SMR</span> speculation / Sam Altman halo on &lt;span class="lis-glo" data-key="<span class="lis-glo" data-key="Oklo">OKLO</span>"&gt;<span class="lis-glo" data-key="Oklo">OKLO</span>&lt;/span&gt;. <strong>AI is a real, important catalyst but not the dominant one</strong> — uranium spot rallied to $100+ in Jan 2024 nine months before <span class="lis-glo" data-key="MSFT">MSFT</span>-CEG, on supply factors alone.</p>
<div class="lis-md-h2">7. Silicon Photonics-Optics (gap +3.66, AI share 55%)</div>
<p>This is the most extreme gap on the board (+3.66) and the 3y return of 13.5x dominates.</p>
<p><strong>Alternative drivers (small):</strong>
- <strong>Telecom 5G last-mile cycle</strong>: <span class="lis-glo" data-key="Lumentum">Lumentum</span> telecom revenue was 54% of optical sales mid-2024 with 24% YoY growth from 5G ZR transceivers. But this is a secondary cycle and shrinking relative to cloud.
- <strong><span class="lis-glo" data-key="Coherent">Coherent</span> DCI / ZR pluggables (DC-to-DC interconnect)</strong>: a real telecom-adjacent cycle but the buyers are still hyperscalers.
- <strong>M&amp;A repricing</strong>: <span class="lis-glo" data-key="COHR">COHR</span> (II-VI acquisition), <span class="lis-glo" data-key="CIEN">CIEN</span> Nubis acquisition (Sep 2025), INFN-Nokia close (Feb 2025) — corporate actions distort comps but don't account for 13.5x.</p>
<p><strong>Counter-evidence (AI bull case):</strong>
- <span class="lis-glo" data-key="LITE">LITE</span> cloud/AI <strong>&gt;60% of revenue</strong>, climbing to 87% by 2027.
- <span class="lis-glo" data-key="800G">800G</span> <span class="lis-glo" data-key="transceiver">transceiver</span> units: 24M shipped in 2025, 63M projected 2026 (2.6x). LightCounting puts AI-specific optics at $5B (2024) → $10B+ (2026).
- <span class="lis-glo" data-key="FN">FN</span> datacom $88M → $305M/qtr on AI <span class="lis-glo" data-key="800G">800G</span>.
- <span class="lis-glo" data-key="LITE">LITE</span> +166% YTD, <span class="lis-glo" data-key="COHR">COHR</span> +97% YTD.</p>
<p><strong>Best-guess attribution</strong>: 75% AI-cloud back-end fabric demand (<span class="lis-glo" data-key="800G">800G</span>/<span class="lis-glo" data-key="1.6T">1.6T</span>), 15% optical transport + DCI <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> buildout (still ultimately AI-driven), 5% telecom 5G + <span class="lis-glo" data-key="Carrier">carrier</span>, 5% M&amp;A/idiosyncratic. <strong>This is the cleanest AI-driven rally on the entire list</strong>. The 55% AI share in the JSON is probably understated; the marginal revenue is overwhelmingly AI.</p>
<div class="lis-md-h2">Verdict: Where AI is real vs opportunistic</div>
<div class="lis-md-h3">AI is genuinely the dominant driver (the rally is mostly AI)</div>
<ol>
<li><strong>Silicon Photonics-Optics</strong> — 75%+ AI. Cleanest explanation; <span class="lis-glo" data-key="800G">800G</span>/<span class="lis-glo" data-key="1.6T">1.6T</span> cycle is real and pulled by AI.</li>
<li><strong><span class="lis-glo" data-key="hbm-dram">HBM-DRAM</span></strong> — 60%+ AI directly, plus the <span class="lis-glo" data-key="wafer">wafer</span>-reallocation mechanism is itself AI-pulled. Both the spike and the supply discipline are AI-caused.</li>
<li><strong><span class="lis-glo" data-key="utilities-merchant-power">Utilities-Merchant-Power</span></strong> — 55%+ AI by marginal-load attribution. <span class="lis-glo" data-key="PJM">PJM</span> forecasts 94-97% of load growth from data centers; the auction clears price the whole <span class="lis-glo" data-key="stack">stack</span>.</li>
</ol>
<div class="lis-md-h3">Partial AI — the rally is co-driven</div>
<ol>
<li><strong><span class="lis-glo" data-key="power-transformers-grid">Power-Transformers-Grid</span></strong> — ~35% AI. The shortage was already 4-year lead-times pre-AI (renewables + aging fleet). <span class="lis-glo" data-key="GEV">GEV</span> spin and <span class="lis-glo" data-key="Siemens Energy">Siemens Energy</span> turnaround are large idiosyncratic re-rate components.</li>
<li><strong>Electrical Equipment</strong> — ~35-50% AI/DC. Real, but 25%+ is non-DC <span class="lis-glo" data-key="reshoring">reshoring</span>/megaprojects and grid hardening. <span class="lis-glo" data-key="ETN">ETN</span> itself says 54% of megaprojects are DC, 46% are <span class="lis-glo" data-key="reshoring">reshoring</span>.</li>
<li><strong><span class="lis-glo" data-key="nuclear-smr-uranium">Nuclear-SMR-Uranium</span></strong> — ~25% AI. The uranium spot rally to $100/lb predated AI-PPA announcements; Russia ban + <span class="lis-glo" data-key="Niger coup">Niger coup</span> + COP28 pledges are bigger.</li>
</ol>
<div class="lis-md-h3">AI is mostly narrative — the rally is something else</div>
<ol>
<li><strong><span class="lis-glo" data-key="copper-rare-earth">Copper-Rare-Earth</span></strong> — ~10% AI. <span class="lis-glo" data-key="energy transition">Energy transition</span> is bigger; supply disruption <span class="lis-glo" data-key="stack">stack</span> is bigger; tariff arbitrage is bigger; <span class="lis-glo" data-key="China stimulus">China stimulus</span> is bigger; rare-earth geopolitics is bigger. AI is real at the margin but mostly retrofitted.</li>
</ol>
<div class="lis-md-h2">Implications for HTML labels</div>
<ul>
<li><strong>"<span class="lis-glo" data-key="priced-in">Priced-in</span>" can mean two different things</strong> and the model conflates them. For optics/<span class="lis-glo" data-key="HBM">HBM</span>/utilities the <span class="lis-glo" data-key="priced-in">priced-in</span> label is honest — the market correctly identified AI as the catalyst and bid up. For copper, the <span class="lis-glo" data-key="priced-in">priced-in</span> label is <em>spurious</em> — the rally happened on <span class="lis-glo" data-key="energy transition">energy transition</span> + supply, then got an AI veneer. The HTML should distinguish "AI <span class="lis-glo" data-key="priced-in">priced-in</span>" (optics, <span class="lis-glo" data-key="HBM">HBM</span>, utilities, transformers-partial, <span class="lis-glo" data-key="electrical-equipment">electrical-equipment</span>-partial) from "rallied for non-AI reasons" (copper, nuclear-spot-uranium-subset).</li>
<li><strong>The 4-30% AI share denominator misses marginal-price attribution.</strong> For commodity verticals (copper, transformers, <span class="lis-glo" data-key="DRAM">DRAM</span>, capacity auctions), the marginal MWh / tonne / chip prices the whole <span class="lis-glo" data-key="stack">stack</span>. A 4% AI share in copper translates to a much larger AI-attributable revenue contribution because deficit pricing applies to all tonnage. The model's z_ai exposure score systematically understates AI's pricing power in capacity-constrained markets — so the gap signal is too punitive on these names.</li>
</ul></div></details>
<details class="lis-card"><summary>Critique 3 — Methodology stress-test (TAM missing, AI-share dominates, middle tercile is noise)</summary>
<div class="lis-md"><div class="lis-md-h1">Critique of the LLM-Inference Supply-Chain Ranking Methodology</div>
<p>This is an adversarial review of the <code>gap = z(3y_total_return) + 0.5·z(beta_NVDA) − z(ai_share_today_pct)</code> ranking and the <span class="lis-glo" data-key="tercile">tercile</span> labels (<code>lagging</code> / <code>fair</code> / <code>priced_in</code>) it produces. All numerical claims are recomputed from <code>analysis/cagr.csv</code>, <code>analysis/risk.csv</code>, <code>analysis/tam.csv</code>, and the 22 <code>data/verticals/*.json</code> files (see <code>analysis/_critique_compute.py</code>).</p>
<div class="lis-md-h2">1. Cause vs. effect — the labels may be backwards</div>
<p>The metric is, by construction, <strong>return minus AI-share</strong>. Spearman rank-correlations of <code>gap</code> against its inputs:</p>
<ul>
<li><code>gap</code> vs. <code>total_return_3y</code>: <strong>+0.61</strong></li>
<li><code>gap</code> vs. <code>ai_share_today_pct</code>: <strong>−0.63</strong></li>
<li><code>gap</code> vs. <code>beta_nvda</code>: <strong>+0.11</strong></li>
</ul>
<p><span class="lis-glo" data-key="beta">Beta</span> is decorative. The "<span class="lis-glo" data-key="priced-in">priced-in</span>" score is roughly <em>return rank minus AI-share rank</em>. That mechanically penalises verticals whose stocks have rallied <em>because</em> they are the AI demand source. <code>ai-accelerators</code> (3y <span class="lis-glo" data-key="total return">total return</span> 376%, 85% AI share, label <code>lagging</code>) and <code>lithography</code> (115% return, 70% AI share, label <code>lagging</code>) get flagged as <em>under-priced relative to their AI exposure</em> — but those are exactly the verticals where AI demand was first capitalised. Calling <span class="lis-glo" data-key="NVDA">NVDA</span>-and-ASML "lagging" while flagging <code>silicon-photonics-optics</code> (1351% return, 55% AI share) as "priced in" is consistent with the formula but the <strong>semantic label is misleading</strong>. A more defensible reading: <code>lagging</code> means "share-of-AI-revenue has not yet shown up in the multiple" — but for verticals whose entire valuation <em>is</em> AI demand, this case is structurally impossible to detect with cross-sectional z-scores.</p>
<p>A reframed metric — "rally is on FUTURE expectation" — would label as "priced in" verticals with <strong>high return AND low AI share</strong> (e.g. <code>power-transformers-grid</code>, <code>nuclear-smr-uranium</code>, <code>silicon-photonics-optics</code>). The current formula already does this for those three, which is its main correct insight. But it incorrectly extends the same logic to <code>ai-accelerators</code>, calling them "lagging" because the formula has no way to distinguish "already monetised" from "yet to be monetised."</p>
<div class="lis-md-h2">2. <span class="lis-glo" data-key="tercile">Tercile</span> cuts at n=22 are arbitrary</div>
<p><span class="lis-glo" data-key="tercile">Tercile</span> cuts: <code>q1=−0.582</code>, <code>q2=+0.266</code>. Bordering verticals are within ±0.05 of a cut but get categorically different labels:</p>
<table>
<thead>
<tr>
<th><span class="lis-glo" data-key="vertical">vertical</span></th>
<th>gap</th>
<th>label</th>
<th>distance to cut</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="lis-glo" data-key="industrial-gases-water">industrial-gases-water</span></td>
<td>−0.695</td>
<td>lagging</td>
<td>−0.11 below q1</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="datacenter-cooling-thermal">datacenter-cooling-thermal</span></td>
<td>−0.640</td>
<td>lagging</td>
<td>−0.06 below q1</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></td>
<td>−0.582</td>
<td>lagging</td>
<td>0.00 exactly on q1</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="networking-switching">networking-switching</span></td>
<td>−0.449</td>
<td>fair</td>
<td>+0.13 above q1</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="power-semis-vrm">power-semis-vrm</span></td>
<td>+0.196</td>
<td>fair</td>
<td>−0.07 below q2</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="advanced-packaging">advanced-packaging</span></td>
<td>+0.266</td>
<td>fair</td>
<td>exactly on q2</td>
</tr>
</tbody>
</table>
<p><code>hyperscalers-cloud</code> and <code>networking-switching</code> differ by 0.13 in gap but get categorically opposite labels. Recommend: drop the <span class="lis-glo" data-key="tercile">tercile</span> labels for HTML rendering and use a <strong>continuous diverging colour scale</strong> anchored at gap=0 (e.g. red→white→green), with the numerical gap as the hover/tooltip value. Keep the three categorical bins only in <code>_notes_ranking.md</code> for narrative.</p>
<div class="lis-md-h2">3. AI-share sensitivity — 11 of 22 verticals flip on ±10pp</div>
<p><code>ai_share_today_pct</code> is partly triangulated (<span class="lis-glo" data-key="advanced-packaging">advanced-packaging</span> 35%, datacenter-cooling 55%, <span class="lis-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span> 35%, etc.). With weight <code>−1.0·z(ai_share)</code>, a 10pp shift to a single <span class="lis-glo" data-key="vertical">vertical</span>'s share — well within the uncertainty band on a non-measured estimate — flips its label for <strong>11 of 22 verticals</strong> (50% of the sample):</p>
<table>
<thead>
<tr>
<th><span class="lis-glo" data-key="vertical">vertical</span></th>
<th>shift</th>
<th>from</th>
<th>to</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="lis-glo" data-key="advanced-packaging">advanced-packaging</span></td>
<td>−10pp</td>
<td>fair</td>
<td>priced_in</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="copper-rare-earth">copper-rare-earth</span></td>
<td>+10pp</td>
<td>priced_in</td>
<td>fair</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="datacenter-cooling-thermal">datacenter-cooling-thermal</span></td>
<td>−10pp</td>
<td>lagging</td>
<td>fair</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="eda-ip">eda-ip</span></td>
<td>+10pp</td>
<td>fair</td>
<td>lagging</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="gas-turbines">gas-turbines</span></td>
<td>+10pp</td>
<td>fair</td>
<td>lagging</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></td>
<td>−10pp</td>
<td>lagging</td>
<td>fair</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="ic-substrates">ic-substrates</span></td>
<td>+10pp</td>
<td>fair</td>
<td>lagging</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="industrial-gases-water">industrial-gases-water</span></td>
<td>−10pp</td>
<td>lagging</td>
<td>fair</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="networking-switching">networking-switching</span></td>
<td>+10pp</td>
<td>fair</td>
<td>lagging</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="power-semis-vrm">power-semis-vrm</span></td>
<td>−10pp</td>
<td>fair</td>
<td>priced_in</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="utilities-merchant-power">utilities-merchant-power</span></td>
<td>+10pp</td>
<td>priced_in</td>
<td>fair</td>
</tr>
</tbody>
</table>
<p>The verticals whose labels are <em>not</em> flipped by ±10pp on their own ai_share are the extremes (<span class="lis-glo" data-key="lithography">lithography</span>, <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span>, <span class="lis-glo" data-key="silicon-photonics-optics">silicon-photonics-optics</span>, <span class="lis-glo" data-key="hbm-dram">hbm-dram</span>, etc.). Every middle-tercile assignment is, in practice, an artefact of an estimated parameter. <strong>The label is more sensitive to the analyst's prior on AI revenue mix than to anything measured from prices.</strong></p>
<div class="lis-md-h2">4. <span class="lis-glo" data-key="beta">Beta</span> term is doing almost nothing — and what it does is confounded</div>
<p>Spearman correlation of <code>gap</code> vs. <code>beta_nvda</code> is only +0.11; the 0.5·z(<span class="lis-glo" data-key="beta">beta</span>) term shifts a few orderings but never changes a top/bottom-tercile assignment alone. The conceptual problem is worse: <code>beta_nvda</code> is partly mechanical — semiconductor-adjacent names will correlate with <span class="lis-glo" data-key="NVDA">NVDA</span> simply because they share factor exposure (cyclicals, growth, dollar-yen). Utilities and copper miners have low <span class="lis-glo" data-key="NVDA">NVDA</span> <span class="lis-glo" data-key="beta">beta</span> not because they lack AI exposure but because their fundamentals are driven by power demand cycles and commodity prices. Including <span class="lis-glo" data-key="beta">beta</span> tags those verticals as "less priced in" even when their rallies (<span class="lis-glo" data-key="utilities-merchant-power">utilities-merchant-power</span> +234%, <span class="lis-glo" data-key="copper-rare-earth">copper-rare-earth</span> +122% over 3y) are AI-narrative-driven. <strong>Recommendation:</strong> drop the <span class="lis-glo" data-key="beta">beta</span> term entirely, or replace it with a "share of post-Nov-2022 return attributable to the AI factor" estimate from a two-factor regression (<span class="lis-glo" data-key="NVDA">NVDA</span> + market). Half a <span class="lis-glo" data-key="z-score">z-score</span> of an ambiguous variable is not earning its keep.</p>
<div class="lis-md-h2">5. Sample-size noise in the <span class="lis-glo" data-key="vertical">vertical</span> baskets</div>
<p>Ticker counts per <span class="lis-glo" data-key="vertical">vertical</span> range from <strong>3 to 8</strong>. The thin baskets are statistically fragile:</p>
<ul>
<li><code>eda-ip</code> — 3 tickers (<span class="lis-glo" data-key="SNPS">SNPS</span>, <span class="lis-glo" data-key="CDNS">CDNS</span>, &lt;span class="lis-glo" data-key="<span class="lis-glo" data-key="Arm">ARM</span>"&gt;<span class="lis-glo" data-key="Arm">ARM</span>&lt;/span&gt;). &lt;span class="lis-glo" data-key="<span class="lis-glo" data-key="Arm">ARM</span>"&gt;<span class="lis-glo" data-key="Arm">ARM</span>&lt;/span&gt; IPO'd 2023-09-14, so the basket's 3y <span class="lis-glo" data-key="CAGR">CAGR</span> is effectively an <span class="lis-glo" data-key="SNPS">SNPS</span>-CDNS average plus a fragment.</li>
<li><code>foundry-logic</code> — 4 tickers (<span class="lis-glo" data-key="TSM">TSM</span>, <span class="lis-glo" data-key="INTC">INTC</span>, <span class="lis-glo" data-key="GFS">GFS</span>, <span class="lis-glo" data-key="UMC">UMC</span>), three of them in non-US listings; <span class="lis-glo" data-key="GFS">GFS</span> itself IPO'd 2021-10 and just barely clears the 3y window.</li>
<li><code>datacenter-reits</code> — 6 tickers but four are foreign (<span class="lis-glo" data-key="GDS">GDS</span>, <span class="lis-glo" data-key="VNET">VNET</span>, <span class="lis-glo" data-key="AJBU.SI">AJBU.SI</span>, plus two US). Currency moves are baked into local-currency returns; no FX adjustment.</li>
<li><code>lithography</code> — 6 tickers, 5 of which are small Japanese names (<span class="lis-glo" data-key="7735.T">7735.T</span>, <span class="lis-glo" data-key="8035.T">8035.T</span>, <span class="lis-glo" data-key="6920.T">6920.T</span>, <span class="lis-glo" data-key="7731.T">7731.T</span>, <span class="lis-glo" data-key="7751.T">7751.T</span>) whose adj_close in JPY has been hammered by yen weakness. The basket return (1.15× over 3y) is <em>partly an FX artefact</em>, not an AI-pricing signal. <span class="lis-glo" data-key="ASML">ASML</span> alone returned 1.22×; the JPY tickers drag the equal-weight mean.</li>
</ul>
<p>Equal-weighting an English-listed mega-cap with a small Tokyo Section 1 name in a 3-ticker basket is not a defensible cross-sectional ranking input.</p>
<div class="lis-md-h2">6. 3y vs. 5y window — only 2 label changes, but the borderline cases matter</div>
<p>Re-running with <code>total_return_5y</code>:</p>
<table>
<thead>
<tr>
<th><span class="lis-glo" data-key="vertical">vertical</span></th>
<th>3y label</th>
<th>5y label</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="lis-glo" data-key="datacenter-cooling-thermal">datacenter-cooling-thermal</span></td>
<td>lagging</td>
<td>fair</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="gas-turbines">gas-turbines</span></td>
<td>fair</td>
<td>lagging</td>
</tr>
</tbody>
</table>
<p>Most labels are stable. The 5y window covers the pre-ChatGPT cool-off; <span class="lis-glo" data-key="gas-turbines">gas-turbines</span> look <em>worse</em> (the COVID-recovery base was richer), datacenter-cooling looks better (5y captures the <span class="lis-glo" data-key="VRT">VRT</span>/<span class="lis-glo" data-key="MOD">MOD</span> multi-year run). This suggests the methodology is <em>not</em> especially window-sensitive at the extremes, but <strong>the borderline cases are completely unstable</strong> under modest specification changes — same conclusion as §3.</p>
<div class="lis-md-h2">7. ChatGPT-baseline (2022-10-31) shifts 6 labels</div>
<p>Recomputing <span class="lis-glo" data-key="total return">total return</span> from 2022-10-31 (ChatGPT launch month-end) to today changes <strong>6 of 22 labels</strong>:</p>
<table>
<thead>
<tr>
<th><span class="lis-glo" data-key="vertical">vertical</span></th>
<th>3y-baseline label</th>
<th>ChatGPT-baseline label</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="lis-glo" data-key="datacenter-cooling-thermal">datacenter-cooling-thermal</span></td>
<td>lagging</td>
<td>fair</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="eda-ip">eda-ip</span></td>
<td>fair</td>
<td>lagging</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="gas-turbines">gas-turbines</span></td>
<td>fair</td>
<td>lagging</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="hyperscalers-cloud">hyperscalers-cloud</span></td>
<td>lagging</td>
<td>fair</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="model-labs-software">model-labs-software</span></td>
<td>fair</td>
<td>priced_in</td>
</tr>
<tr>
<td><span class="lis-glo" data-key="utilities-merchant-power">utilities-merchant-power</span></td>
<td>priced_in</td>
<td>fair</td>
</tr>
</tbody>
</table>
<p>Two are interesting:</p>
<ul>
<li><strong><code>utilities-merchant-power</code> drops out of <span class="lis-glo" data-key="priced-in">priced-in</span>.</strong> Its 3y <span class="lis-glo" data-key="total return">total return</span> is heavily weighted by the 2024 utilities rally; from 2022-10 onward the <span class="lis-glo" data-key="total return">total return</span> is only 182%, which is mid-pack. The "priced in" call is partly a window choice.</li>
<li><strong><code>model-labs-software</code> becomes <span class="lis-glo" data-key="priced-in">priced-in</span>.</strong> <span class="lis-glo" data-key="APP">APP</span>, <span class="lis-glo" data-key="PLTR">PLTR</span> drove a 747% return from ChatGPT launch — clearly an AI-narrative trade. The 3y window dilutes it with 2022 drawdowns.</li>
</ul>
<p><strong>There is genuine time-frame snooping risk here.</strong> The 2021-05 baseline encompasses the COVID/zero-rate peak, the 2022 rate-shock drawdown, then the AI rally. A baseline that starts at the <em>event</em> the user is studying (ChatGPT) is more honest. Recommend running both, presenting both, and flagging verticals whose labels disagree as "window-sensitive."</p>
<div class="lis-md-h2">8. Forward <span class="lis-glo" data-key="TAM">TAM</span> is the elephant in the room</div>
<p><code>tam_uplift_multiple</code> is in the data and nowhere in the gap. Yet it is the single most direct measure of <em>how much further AI demand can push this <span class="lis-glo" data-key="vertical">vertical</span>'s revenue</em>:</p>
<ul>
<li><code>copper-rare-earth</code>: 20.0× uplift if AI hits 80% share</li>
<li><code>utilities-merchant-power</code>: 10.0× uplift</li>
<li><code>nuclear-smr-uranium</code>: 10.0× uplift</li>
<li><code>industrial-gases-water</code>: 8.9× uplift</li>
<li><code>electrical-equipment</code>: 4.4× uplift</li>
</ul>
<p>Compare to <span class="lis-glo" data-key="lithography">lithography</span> (1.14×) or <span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span> (0.94× — already over the 80% threshold). A <span class="lis-glo" data-key="vertical">vertical</span> with a tiny AI share TODAY but a huge multiple if AI demand expands is <em>not</em> "priced in"; it is <strong>structurally early</strong>. The current formula calls <code>copper-rare-earth</code> "priced in" because returns outpaced its 4% AI share — but the <span class="lis-glo" data-key="TAM">TAM</span> math says only 5% of its potential AI exposure is realised. Adding <code>−0.5·z(log(tam_uplift_multiple))</code> to the gap (so high-uplift verticals are pulled toward <code>lagging</code>) reclassifies:</p>
<ul>
<li><code>copper-rare-earth</code>: priced_in → lagging</li>
<li><code>utilities-merchant-power</code>: priced_in → fair</li>
<li><code>datacenter-cooling-thermal</code>: lagging → fair</li>
<li><code>model-labs-software</code>: fair → priced_in</li>
<li><code>advanced-packaging</code>: fair → priced_in</li>
</ul>
<p>This is the single most consequential change. <strong>The ranking is currently a cross-section of price action vs. a static revenue mix; adding <span class="lis-glo" data-key="TAM">TAM</span> uplift converts it to price action vs. <em>forward</em> AI exposure</strong>, which is what an investor actually wants.</p>
<div class="lis-md-h2">PROPOSED IMPROVEMENT</div>
<p>Revised formula:</p>
<pre><code>gap_revised = 1.0·z(total_return_3y) + 1.0·z(total_return_chatgpt)/2
             − 1.0·z(ai_share_today_pct)
             − 0.5·z(log(tam_uplift_multiple))
</code></pre>
<p>Rationale: (a) drop the <span class="lis-glo" data-key="beta">beta</span> term — confounded and barely contributes; (b) average two return windows (3y and ChatGPT-launch) to defuse window-snooping; (c) add log-TAM-uplift with a negative sign so verticals with large forward AI revenue runway are pulled toward <code>lagging</code>; (d) report a continuous gap value with a diverging colour scale instead of terciles.</p>
<p>Under just the <strong><span class="lis-glo" data-key="TAM">TAM</span>-augmented</strong> revision (3y window only, dropping <span class="lis-glo" data-key="beta">beta</span> is left for follow-up), the top-3 lists become:</p>
<p><strong>Top-3 lagging (revised):</strong></p>
<ol>
<li><code>lithography</code> (gap −2.29) — same as before; the high-AI-share, low-return anomaly</li>
<li><code>industrial-gases-water</code> (gap −1.46) — moved <em>up</em> the lagging list because of its 8.9× <span class="lis-glo" data-key="TAM">TAM</span> uplift</li>
<li><code>datacenter-reits</code> (gap −1.38) — unchanged in position</li>
</ol>
<p><strong>Top-3 <span class="lis-glo" data-key="priced-in">priced-in</span> (revised):</strong></p>
<ol>
<li><code>silicon-photonics-optics</code> (gap +4.04) — extreme rally + modest <span class="lis-glo" data-key="TAM">TAM</span> ceiling = clearly extended</li>
<li><code>power-transformers-grid</code> (gap +1.83) — 11× return + modest <span class="lis-glo" data-key="TAM">TAM</span> uplift</li>
<li><code>nuclear-smr-uranium</code> (gap +1.29) — high return relative to both today's AI share and forward <span class="lis-glo" data-key="TAM">TAM</span></li>
</ol>
<p>Most important reclassification: <strong><code>copper-rare-earth</code> exits priced_in, becomes lagging.</strong> A 122% three-year return looks like a rally until you realise current AI share is only 4% and the addressable AI revenue if utilisation hits 80% is 20× today's level. The current methodology punishes copper for going up at all; the revised methodology recognises there is 19× of upside still on the table. That single re-label is the cleanest demonstration that the current gap formula is incomplete.</p>
<div class="lis-md-h2">Bottom line</div>
<p>The methodology is <strong>internally consistent but semantically slippery</strong>. It reliably identifies two extremes — old-economy verticals that have rallied on AI narrative with little AI revenue (correct "priced in") and high-AI-share semiconductor verticals (mislabelled "lagging" because the cross-section can't see what's already monetised). The middle is noise: 11 of 22 labels flip on a 10pp wiggle of an estimated AI share. Adding <span class="lis-glo" data-key="TAM">TAM</span> uplift and dropping <span class="lis-glo" data-key="beta">beta</span> is the highest-leverage change.</p></div></details>
</div>

<h2 id="per-vertical-detail">Per-vertical detail</h2>

<p>Hover any ticker chip for company info; click a card to expand.</p>

<div class="lis-root">

<details id="lis-v-advanced-packaging" class="lis-card">
  <summary>
    Advanced Packaging (OSAT, substrates, FOPLP, backend test)
    <span class="lis-badge lis-fair">fair</span>
    <span class="lis-kvs">3y ret 412.0% · AI share 35.0% · uplift 2.29×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">After <span class="lis-glo" data-key="HBM">HBM</span>, <span class="lis-glo" data-key="CoWoS-L">CoWoS-L</span> / <span class="lis-glo" data-key="SoIC">SoIC</span> / <span class="lis-glo" data-key="FOPLP">FOPLP</span> capacity is the hard physical bottleneck for <span class="lis-glo" data-key="AI accelerator">AI accelerator</span> output: every NVIDIA <span class="lis-glo" data-key="Blackwell">Blackwell</span>/<span class="lis-glo" data-key="Rubin">Rubin</span> and <span class="lis-glo" data-key="AMD">AMD</span> MI3xx die needs interposer + <span class="lis-glo" data-key="HBM">HBM</span> stacking + substrate before it ships. TSMC&#x27;s <span class="lis-glo" data-key="CoWoS">CoWoS</span> output is scaling from ~35k wpm (late 2024) toward ~75k wpm (end 2025) and ~130k wpm targeted by end 2026, with NVIDIA reportedly booking &gt;50% of 2026 <span class="lis-glo" data-key="CoWoS">CoWoS</span> capacity. OSATs (<span class="lis-glo" data-key="ASE">ASE</span>, <span class="lis-glo" data-key="Amkor">Amkor</span>, <span class="lis-glo" data-key="KYEC">KYEC</span>, PTI, <span class="lis-glo" data-key="Chipbond">Chipbond</span>) and <span class="lis-glo" data-key="ABF substrate">ABF substrate</span> makers (<span class="lis-glo" data-key="Unimicron">Unimicron</span>) capture the spillover — flip-chip, fan-out, <span class="lis-glo" data-key="FOPLP">FOPLP</span>, and back-end test — and are raising 2026 capex sharply (<span class="lis-glo" data-key="ASE">ASE</span> +$1B, <span class="lis-glo" data-key="Amkor">Amkor</span> to $2.5-3B vs $0.9B 2025).</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ASX" target="_blank" rel="noopener"><span class="lis-glo" data-key="ASX">ASX</span></a><span class="lis-cagr">75%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/AMKR" target="_blank" rel="noopener"><span class="lis-glo" data-key="AMKR">AMKR</span></a><span class="lis-cagr">44%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/3037.TW" target="_blank" rel="noopener"><span class="lis-glo" data-key="3037.TW">3037.TW</span></a><span class="lis-cagr">85%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/2449.TW" target="_blank" rel="noopener"><span class="lis-glo" data-key="2449.TW">2449.TW</span></a><span class="lis-cagr">96%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/6239.TW" target="_blank" rel="noopener"><span class="lis-glo" data-key="6239.TW">6239.TW</span></a><span class="lis-cagr">60%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="ASX">ASX</span></b> — <span class="lis-glo" data-key="ASE">ASE</span> Technology — world&#x27;s largest <span class="lis-glo" data-key="OSAT">OSAT</span>; LEAP (advanced <span class="lis-glo" data-key="packaging">packaging</span>) + <span class="lis-glo" data-key="CoWoS">CoWoS</span>-adjacent ATM segment</li><li><b><span class="lis-glo" data-key="AMKR">AMKR</span></b> — <span class="lis-glo" data-key="Amkor">Amkor</span> — #2 <span class="lis-glo" data-key="OSAT">OSAT</span>; flip-chip BGA + <span class="lis-glo" data-key="HBM">HBM</span>/SiP for AI accelerators; new Arizona <span class="lis-glo" data-key="advanced-packaging">advanced-packaging</span> campus</li><li><b><span class="lis-glo" data-key="3037.TW">3037.TW</span></b> — <span class="lis-glo" data-key="Unimicron">Unimicron</span> — leading <span class="lis-glo" data-key="ABF substrate">ABF substrate</span> supplier for AI GPUs/CPUs and <span class="lis-glo" data-key="CoWoS">CoWoS</span> interposer carriers</li><li><b><span class="lis-glo" data-key="2449.TW">2449.TW</span></b> — King Yuan Electronics (<span class="lis-glo" data-key="KYEC">KYEC</span>) — Taiwan back-end test specialist; <span class="lis-glo" data-key="AI accelerator">AI accelerator</span> <span class="lis-glo" data-key="wafer">wafer</span> probe / final test</li><li><b><span class="lis-glo" data-key="6239.TW">6239.TW</span></b> — <span class="lis-glo" data-key="Powertech">Powertech</span> (PTI) — <span class="lis-glo" data-key="DRAM">DRAM</span>/<span class="lis-glo" data-key="HBM">HBM</span> memory <span class="lis-glo" data-key="packaging">packaging</span> + <span class="lis-glo" data-key="FOPLP">FOPLP</span> ramp 2H 2025</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.yolegroup.com/press-release/advanced-packaging-market-set-to-reach-79-4-billion-by-2030/" target="_blank" rel="noopener">yolegroup.com</a> · <a href="https://www.trendforce.com/news/2025/10/31/news-chip-packaging-giant-ase-reportedly-to-boost-2025-capex-by-us1b-amid-strong-ai-and-hpc-demand/" target="_blank" rel="noopener">trendforce.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="129.4" x2="352" y2="129.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="132.4" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="116.8" x2="352" y2="116.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="119.8" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="104.2" x2="352" y2="104.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="107.2" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="91.6" x2="352" y2="91.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="94.6" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="78.9" x2="352" y2="78.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="81.9" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="66.3" x2="352" y2="66.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="69.3" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="53.7" x2="352" y2="53.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="56.7" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="41.1" x2="352" y2="41.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="44.1" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="28.5" x2="352" y2="28.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="31.5" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="15.9" x2="352" y2="15.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="18.9" font-size="9" text-anchor="end" fill="#888">+500%</text><polyline fill="none" stroke="#737373" stroke-width="2.0" points="36.0,142.0 67.6,138.1 99.2,139.1 130.8,141.1 162.4,136.9 194.0,130.7 225.6,123.6 257.2,123.1 288.8,129.2 320.4,100.3 352.0,12.0" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#737373" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#737373">615 (+515%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-ai-accelerators" class="lis-card">
  <summary>
    AI Accelerators (GPUs/ASICs/TPUs)
    <span class="lis-badge lis-lag">lagging</span>
    <span class="lis-kvs">3y ret 376.4% · AI share 85.0% · uplift 0.94×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">AI accelerators are the literal substrate of LLM <span class="lis-glo" data-key="inference">inference</span> — every token generated runs on a GPU, <span class="lis-glo" data-key="TPU">TPU</span>, or custom <span class="lis-glo" data-key="ASIC">ASIC</span> in this <span class="lis-glo" data-key="vertical">vertical</span>. NVIDIA&#x27;s <span class="lis-glo" data-key="Blackwell">Blackwell</span> ramp plus the <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> custom-silicon wave (<span class="lis-glo" data-key="Broadcom">Broadcom</span>-designed Google <span class="lis-glo" data-key="TPU">TPU</span> and <span class="lis-glo" data-key="OpenAI">OpenAI</span> <span class="lis-glo" data-key="ASIC">ASIC</span>, <span class="lis-glo" data-key="Marvell">Marvell</span>-designed AWS <span class="lis-glo" data-key="Trainium">Trainium</span> and Microsoft <span class="lis-glo" data-key="Maia">Maia</span>) is the single biggest dollar bucket in the entire AI capex <span class="lis-glo" data-key="stack">stack</span> and the tightest binding constraint on <span class="lis-glo" data-key="inference">inference</span> cost and capacity. Whoever owns the accelerator socket captures the highest gross margin in the chain, which is why merchant GPU economics (<span class="lis-glo" data-key="NVDA">NVDA</span> 70%+ GM) and custom-ASIC partnerships (<span class="lis-glo" data-key="AVGO">AVGO</span>/<span class="lis-glo" data-key="MRVL">MRVL</span>) both compound from here.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/NVDA" target="_blank" rel="noopener"><span class="lis-glo" data-key="NVDA">NVDA</span></a><span class="lis-cagr">90%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/AMD" target="_blank" rel="noopener"><span class="lis-glo" data-key="AMD">AMD</span></a><span class="lis-cagr">63%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/AVGO" target="_blank" rel="noopener"><span class="lis-glo" data-key="AVGO">AVGO</span></a><span class="lis-cagr">85%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/MRVL" target="_blank" rel="noopener"><span class="lis-glo" data-key="MRVL">MRVL</span></a><span class="lis-cagr">62%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/GOOGL" target="_blank" rel="noopener"><span class="lis-glo" data-key="GOOGL">GOOGL</span></a><span class="lis-cagr">46%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="NVDA">NVDA</span></b> — NVIDIA — flagship merchant GPU (<span class="lis-glo" data-key="Hopper">Hopper</span>/<span class="lis-glo" data-key="Blackwell">Blackwell</span>); ~90%+ share of <span class="lis-glo" data-key="training">training</span> and a dominant share of high-end <span class="lis-glo" data-key="inference">inference</span> accelerators</li><li><b><span class="lis-glo" data-key="AMD">AMD</span></b> — <span class="lis-glo" data-key="AMD">AMD</span> — Instinct <span class="lis-glo" data-key="MI300">MI300</span>/MI350 GPU line, the only credible merchant alternative to NVIDIA for hyperscale <span class="lis-glo" data-key="inference">inference</span></li><li><b><span class="lis-glo" data-key="AVGO">AVGO</span></b> — <span class="lis-glo" data-key="Broadcom">Broadcom</span> — co-designs and ships custom AI XPUs/ASICs for hyperscalers (Google <span class="lis-glo" data-key="TPU">TPU</span>, Meta MTIA, <span class="lis-glo" data-key="OpenAI">OpenAI</span> custom silicon, plus AI networking switches)</li><li><b><span class="lis-glo" data-key="MRVL">MRVL</span></b> — <span class="lis-glo" data-key="Marvell">Marvell</span> — #2 custom-ASIC partner; co-designs AWS Trainium2/3 and Microsoft <span class="lis-glo" data-key="Maia">Maia</span>, plus AI-DC interconnect <span class="lis-glo" data-key="SerDes">SerDes</span>/DSPs</li><li><b><span class="lis-glo" data-key="GOOGL">GOOGL</span></b> — Alphabet — designer/operator of <span class="lis-glo" data-key="TPU">TPU</span> (Ironwood/v7, v8 in flight); captive accelerator that is increasingly rented out via Google Cloud</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.sec.gov/Archives/edgar/data/0001045810/000104581025000021/q4fy25pr.htm" target="_blank" rel="noopener">sec.gov</a> · <a href="https://www.sec.gov/Archives/edgar/data/0001730168/000173016825000116/avgo-11022025x8kxex99.htm" target="_blank" rel="noopener">sec.gov</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="140.1" x2="352" y2="140.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="143.1" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="128.2" x2="352" y2="128.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="131.2" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="116.3" x2="352" y2="116.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="119.3" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="104.3" x2="352" y2="104.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="107.3" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="92.4" x2="352" y2="92.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="95.4" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="80.5" x2="352" y2="80.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="83.5" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="68.5" x2="352" y2="68.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="71.5" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="56.6" x2="352" y2="56.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="59.6" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="44.7" x2="352" y2="44.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="47.7" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="32.7" x2="352" y2="32.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="35.7" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="20.8" x2="352" y2="20.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="23.8" font-size="9" text-anchor="end" fill="#888">+500%</text><polyline fill="none" stroke="#1f7a36" stroke-width="2.0" points="36.0,140.1 67.6,130.6 99.2,138.0 130.8,142.0 162.4,132.1 194.0,127.1 225.6,106.0 257.2,97.5 288.8,95.3 320.4,60.5 352.0,12.0" /><circle cx="36.0" cy="140.1" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#1f7a36" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#1f7a36">637 (+537%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-copper-rare-earth" class="lis-card">
  <summary>
    Copper &amp; Rare Earths
    <span class="lis-badge lis-pin">priced_in</span>
    <span class="lis-kvs">3y ret 121.7% · AI share 4.0% · uplift 20.00×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Copper for AI datacenter busways, transformers, cabling and substation transmission is the single largest commodity-tonnage input enabling US/EU AI infrastructure <span class="lis-glo" data-key="scale-out">scale-out</span> — every 100 <span class="lis-glo" data-key="MW">MW</span> campus consumes ~2,700-3,300 t Cu. The S&amp;P Global &#x27;Copper in the Age of AI&#x27; (Jan 2026) report confirms data center copper is just ~1.1 Mt of 28 Mt global refined copper in 2025 (~4%), so incremental AI demand is a small share of total mined copper but matters acutely at the margin because the market is already in deficit (Wood Mackenzie: 304 kt shortfall 2025) and 30-year supply elasticity is low (declining ore grades, 15+ year mine lead times). Rare earths (NdPr for permanent magnets in HVAC fans/pumps and high-efficiency motors) are a much smaller dollar <span class="lis-glo" data-key="TAM">TAM</span> (~$4-8 Bn REE oxide market) but geopolitically critical: <span class="lis-glo" data-key="MP">MP</span>/LYC are the only non-China at-scale producers and US export-control reciprocity has made them strategic call-options.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/FCX" target="_blank" rel="noopener"><span class="lis-glo" data-key="FCX">FCX</span></a><span class="lis-cagr">22%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/SCCO" target="_blank" rel="noopener"><span class="lis-glo" data-key="SCCO">SCCO</span></a><span class="lis-cagr">44%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/TECK" target="_blank" rel="noopener"><span class="lis-glo" data-key="TECK">TECK</span></a><span class="lis-cagr">15%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/BHP" target="_blank" rel="noopener"><span class="lis-glo" data-key="BHP">BHP</span></a><span class="lis-cagr">18%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/IVN.TO" target="_blank" rel="noopener"><span class="lis-glo" data-key="IVN.TO">IVN.TO</span></a><span class="lis-cagr">5%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="FCX">FCX</span></b> — <span class="lis-glo" data-key="Freeport-McMoRan">Freeport-McMoRan</span> — largest publicly traded US-listed copper major; ~4.2 Bln lbs Cu production 2025, key <span class="lis-glo" data-key="Grasberg">Grasberg</span>/Indonesia and Arizona ops</li><li><b><span class="lis-glo" data-key="SCCO">SCCO</span></b> — <span class="lis-glo" data-key="Southern Copper">Southern Copper</span> — Grupo México affiliate; lowest-cost integrated copper producer (Peru, Mexico); ~1.0 Mt Cu/yr</li><li><b><span class="lis-glo" data-key="TECK">TECK</span></b> — <span class="lis-glo" data-key="Teck Resources">Teck Resources</span> — pure-play copper after coal sale to Glencore (2024); QB2 Chile ramp + Highland Valley Canada</li><li><b><span class="lis-glo" data-key="BHP">BHP</span></b> — <span class="lis-glo" data-key="BHP">BHP</span> Group — diversified major; Escondida (largest copper mine globally) + Oz Minerals; copper ~30% of EBITDA in 2025</li><li><b><span class="lis-glo" data-key="IVN.TO">IVN.TO</span></b> — <span class="lis-glo" data-key="Ivanhoe">Ivanhoe</span> Mines — <span class="lis-glo" data-key="Kamoa">Kamoa</span>-Kakula (DRC) high-grade copper; one of largest new copper projects worldwide</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.spglobal.com/content/dam/spglobal/global-assets/en/special-reports/copper-in-the-age-of-ai/Copper%20in%20the%20Age%20of%20AI_Full%20Report_January%202026.pdf" target="_blank" rel="noopener">spglobal.com</a> · <a href="https://press.spglobal.com/2026-01-08-Substantial-Shortfall-in-Copper-Supply-Widens-as-the-Race-for-AI-and-Growing-Defense-Spending-Add-to-Accelerating-Demand,-New-S-P-Global-Study-Finds" target="_blank" rel="noopener">press.spglobal.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="95.8" x2="352" y2="95.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="98.8" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="49.6" x2="352" y2="49.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="52.6" font-size="9" text-anchor="end" fill="#888">+100%</text><polyline fill="none" stroke="#f4b3b3" stroke-width="2.0" points="36.0,142.0 67.6,127.3 99.2,120.0 130.8,121.8 162.4,134.1 194.0,128.2 225.6,99.1 257.2,106.2 288.8,127.0 320.4,59.1 352.0,12.0" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#f4b3b3" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#f4b3b3">241 (+141%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-datacenter-cooling-thermal" class="lis-card">
  <summary>
    Datacenter Cooling — Thermal Management
    <span class="lis-badge lis-lag">lagging</span>
    <span class="lis-kvs">3y ret 259.7% · AI share 55.0% · uplift 1.45×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Rack power densities are jumping from ~10–20 kW (CPU era) to 100–250 kW (<span class="lis-glo" data-key="Blackwell">Blackwell</span> NVL72 and beyond), and air cooling physically cannot remove that heat at the chip — so direct-liquid cooling, rear-door heat exchangers, and (for some workloads) immersion become mandatory. That forces every new AI hall to add CDUs, manifolds, cold plates, and higher-temperature chillers on top of (not instead of) traditional CRAH/chiller spend, so the cooling <span class="lis-glo" data-key="vertical">vertical</span> compounds with both AI capex and AI rack density. Dell&#x27;Oro&#x27;s <span class="lis-glo" data-key="direct liquid cooling">Direct Liquid Cooling</span> segment grew 156% Y/Y in 2Q25 and is the single fastest-growing line in the entire AI supply chain.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/VRT" target="_blank" rel="noopener"><span class="lis-glo" data-key="VRT">VRT</span></a><span class="lis-cagr">171%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/MOD" target="_blank" rel="noopener"><span class="lis-glo" data-key="MOD">MOD</span></a><span class="lis-cagr">131%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/MTRS.ST" target="_blank" rel="noopener"><span class="lis-glo" data-key="MTRS.ST">MTRS.ST</span></a><span class="lis-cagr">18%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/TT" target="_blank" rel="noopener"><span class="lis-glo" data-key="TT">TT</span></a><span class="lis-cagr">40%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/CARR" target="_blank" rel="noopener"><span class="lis-glo" data-key="CARR">CARR</span></a><span class="lis-cagr">16%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="VRT">VRT</span></b> — <span class="lis-glo" data-key="Vertiv">Vertiv</span> — broadest pure-play thermal-management portfolio (CRAH/CRAC, chillers, CDUs, rear-door HX, immersion); the closest thing to a public AI-cooling pure play. Acquired PurgeRite (Dec 2025) and Coo…</li><li><b><span class="lis-glo" data-key="MOD">MOD</span></b> — <span class="lis-glo" data-key="Modine">Modine</span> — Airedale chillers (incl. TurboChill 3+<span class="lis-glo" data-key="MW">MW</span> air-cooled), 1MW CDUs, immersion. Data Center division was ~25% of FY2025 sales (&gt;$640M) and guided to $2B+ by FY2028 — fastest-growing pure-play.</li><li><b><span class="lis-glo" data-key="MTRS.ST">MTRS.ST</span></b> — <span class="lis-glo" data-key="Munters">Munters</span> — Data Center Technologies (DCT) segment supplies CRAHs, evaporative cooling, and (via Geoclima acquisition) Circlemiser chillers; secured ~$215M of US <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> orders in Q4 2025.</li><li><b><span class="lis-glo" data-key="TT">TT</span></b> — <span class="lis-glo" data-key="Trane Technologies">Trane Technologies</span> — chillers, AHUs, and now modular liquid-cooling reference designs (Oct 2025 NVIDIA Omniverse DSX Blueprint thermal system); large incumbent HVAC platform with growing AI/DC mix ins…</li><li><b><span class="lis-glo" data-key="CARR">CARR</span></b> — <span class="lis-glo" data-key="Carrier">Carrier</span> — DC business ~$1B in 2025, guided to ~$1.5B in 2026 (Q4 DC orders +400% YoY); chiller scale + investments in ZutaCore (waterless direct-to-chip) for AI density.</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.delloro.com/news/data-center-liquid-cooling-market-to-approach-7-billion-by-2029-as-ai-deployments-accelerate/" target="_blank" rel="noopener">delloro.com</a> · <a href="https://www.delloro.com/news/data-center-physical-infrastructure-market-reaches-10-9-billion-in-4q-2025-up-20-percent-y-y/" target="_blank" rel="noopener">delloro.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="138.1" x2="352" y2="138.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="141.1" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="127.0" x2="352" y2="127.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="130.0" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="116.0" x2="352" y2="116.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="119.0" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="105.0" x2="352" y2="105.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="108.0" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="94.0" x2="352" y2="94.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="97.0" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="83.0" x2="352" y2="83.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="86.0" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="72.0" x2="352" y2="72.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="75.0" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="60.9" x2="352" y2="60.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="63.9" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="49.9" x2="352" y2="49.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="52.9" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="38.9" x2="352" y2="38.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="41.9" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="27.9" x2="352" y2="27.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="30.9" font-size="9" text-anchor="end" fill="#888">+500%</text><line x1="36" y1="16.9" x2="352" y2="16.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="19.9" font-size="9" text-anchor="end" fill="#888">+550%</text><polyline fill="none" stroke="#2e8b4d" stroke-width="2.0" points="36.0,138.1 67.6,138.5 99.2,142.0 130.8,133.6 162.4,118.9 194.0,105.2 225.6,36.1 257.2,66.3 288.8,71.0 320.4,53.9 352.0,12.0" /><circle cx="36.0" cy="138.1" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#2e8b4d" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#2e8b4d">672 (+572%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-datacenter-reits" class="lis-card">
  <summary>
    Datacenter REITs (Colocation + Wholesale)
    <span class="lis-badge lis-lag">lagging</span>
    <span class="lis-kvs">3y ret 103.7% · AI share 45.0% · uplift 1.78×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Datacenter REITs are the physical real estate layer of LLM <span class="lis-glo" data-key="inference">inference</span> — every token served runs inside one of these facilities or a <span class="lis-glo" data-key="hyperscaler">hyperscaler</span>-owned equivalent. AI demand has flipped the cycle from oversupply to severe undersupply: CBRE/JLL/Cushman all show <span class="lis-glo" data-key="colocation">colocation</span> preleasing at 70-80%+, hyperscale <span class="lis-glo" data-key="wholesale">wholesale</span> rents up double-digits YoY, and bookings concentrated in AI tenants (50-60%+ of new leases at <span class="lis-glo" data-key="EQIX">EQIX</span>/<span class="lis-glo" data-key="DLR">DLR</span> Q3-Q4 2025). The investability question for this <span class="lis-glo" data-key="vertical">vertical</span> is whether power, grid interconnects, and zoning let the REITs deliver against backlogs at promised cap rates, or whether private capital (Blackstone QTS, KKR-GIP CyrusOne, DigitalBridge, Compass) ends up capturing most of the AI growth offshore from public-equity investors.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/EQIX" target="_blank" rel="noopener"><span class="lis-glo" data-key="EQIX">EQIX</span></a><span class="lis-cagr">17%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/DLR" target="_blank" rel="noopener"><span class="lis-glo" data-key="DLR">DLR</span></a><span class="lis-cagr">32%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/IRM" target="_blank" rel="noopener"><span class="lis-glo" data-key="IRM">IRM</span></a><span class="lis-cagr">37%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/GDS" target="_blank" rel="noopener"><span class="lis-glo" data-key="GDS">GDS</span></a><span class="lis-cagr">48%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/VNET" target="_blank" rel="noopener"><span class="lis-glo" data-key="VNET">VNET</span></a><span class="lis-cagr">50%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="EQIX">EQIX</span></b> — <span class="lis-glo" data-key="Equinix">Equinix</span> — global retail <span class="lis-glo" data-key="colocation">colocation</span> + interconnection leader; ~270+ IBX facilities, fastest AI growth in the &gt;1MW xScale + AI Solutions retail tier</li><li><b><span class="lis-glo" data-key="DLR">DLR</span></b> — <span class="lis-glo" data-key="Digital Realty">Digital Realty</span> — <span class="lis-glo" data-key="wholesale">wholesale</span> + hyperscale <span class="lis-glo" data-key="colocation">colocation</span>; ~300 facilities, ~3 <span class="lis-glo" data-key="GW">GW</span> IT capacity, the prototypical AI <span class="lis-glo" data-key="training">training</span>-cluster landlord</li><li><b><span class="lis-glo" data-key="IRM">IRM</span></b> — <span class="lis-glo" data-key="Iron Mountain">Iron Mountain</span> — records-storage incumbent now scaling <span class="lis-glo" data-key="Iron Mountain">Iron Mountain</span> Data Centers (IMDC); DC segment ~$800M / 2025 (~12% of consolidated), targeting &gt;$1B in 2026 with hyperscale AI leases</li><li><b><span class="lis-glo" data-key="GDS">GDS</span></b> — <span class="lis-glo" data-key="GDS">GDS</span> Holdings — leading <span class="lis-glo" data-key="Carrier">carrier</span>-neutral hyperscale operator in China; large pre-lease backlog to Chinese hyperscalers for AI, plus C-REIT (508060.SS) capital recycling vehicle launched Aug 2025</li><li><b><span class="lis-glo" data-key="VNET">VNET</span></b> — <span class="lis-glo" data-key="VNET">VNET</span> Group — China #2 <span class="lis-glo" data-key="Carrier">carrier</span>-neutral <span class="lis-glo" data-key="colocation">colocation</span>; aggressive AI-wholesale pivot, 889 <span class="lis-glo" data-key="MW">MW</span> <span class="lis-glo" data-key="wholesale">wholesale</span> in service end-2025, CATL battery-to-compute partnership</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.fool.com/earnings/call-transcripts/2025/10/29/equinix-eqix-q3-2025-earnings-call-transcript/" target="_blank" rel="noopener">fool.com</a> · <a href="https://finance.yahoo.com/news/equinix-inc-eqix-q4-2025-050459123.html" target="_blank" rel="noopener">finance.yahoo.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="90.8" x2="352" y2="90.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="93.8" font-size="9" text-anchor="end" fill="#888">+0%</text><polyline fill="none" stroke="#9ce4be" stroke-width="2.0" points="36.0,90.8 67.6,107.9 99.2,130.3 130.8,141.1 162.4,142.0 194.0,123.6 225.6,111.7 257.2,42.1 288.8,65.6 320.4,70.8 352.0,12.0" /><circle cx="36.0" cy="90.8" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#9ce4be" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#9ce4be">145 (+45%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-eda-ip" class="lis-card">
  <summary>
    EDA &amp; Silicon IP
    <span class="lis-badge lis-fair">fair</span>
    <span class="lis-kvs">3y ret 185.4% · AI share 45.0% · uplift 1.78×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Every <span class="lis-glo" data-key="AI accelerator">AI accelerator</span> on earth is designed with tools from <span class="lis-glo" data-key="Synopsys">Synopsys</span> or <span class="lis-glo" data-key="Cadence">Cadence</span> and licenses IP from <span class="lis-glo" data-key="Arm">Arm</span>, <span class="lis-glo" data-key="Synopsys">Synopsys</span> DesignWare, or <span class="lis-glo" data-key="Cadence">Cadence</span> — making the <span class="lis-glo" data-key="EDA">EDA</span>/IP layer the highest-margin, lowest-capex chokepoint in the LLM-inference <span class="lis-glo" data-key="stack">stack</span>. The Big-3 <span class="lis-glo" data-key="EDA">EDA</span> vendors hold &gt;85% combined share with effectively no credible new entrants (<span class="lis-glo" data-key="Synopsys">Synopsys</span>&#x27; Ansys close in Jul 2025 further consolidated multi-physics), and <span class="lis-glo" data-key="EDA">EDA</span> has outgrown semiconductor R&amp;<span class="lis-glo" data-key="D">D</span> by ~6pp/yr since 2018 as <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> custom-silicon programs multiply the number of design starts and verification compute hours. Owning <span class="lis-glo" data-key="SNPS">SNPS</span>+<span class="lis-glo" data-key="CDNS">CDNS</span>+&lt;span class="lis-glo" data-key="<span class="lis-glo" data-key="Arm">ARM</span>"&gt;<span class="lis-glo" data-key="Arm">ARM</span>&lt;/span&gt; gives picks-and-shovels exposure to every AI silicon shop simultaneously, with subscription revenue models that smooth the <span class="lis-glo" data-key="wafer">wafer</span> cycle.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/SNPS" target="_blank" rel="noopener"><span class="lis-glo" data-key="SNPS">SNPS</span></a><span class="lis-cagr">9%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/CDNS" target="_blank" rel="noopener"><span class="lis-glo" data-key="CDNS">CDNS</span></a><span class="lis-cagr">21%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ARM" target="_blank" rel="noopener"><span class="lis-glo" data-key="ARM">ARM</span></a><span class="lis-cagr"></span></span></div>
      <ul><li><b><span class="lis-glo" data-key="SNPS">SNPS</span></b> — <span class="lis-glo" data-key="Synopsys">Synopsys</span> — #1 <span class="lis-glo" data-key="EDA">EDA</span> vendor (~31% share); full digital/custom/verification flow plus DesignWare IP; closed Ansys acquisition Jul 17 2025, adding multi-physics simulation; ~$8B CY2025 revenue including An…</li><li><b><span class="lis-glo" data-key="CDNS">CDNS</span></b> — <span class="lis-glo" data-key="Cadence Design Systems">Cadence Design Systems</span> — #2 <span class="lis-glo" data-key="EDA">EDA</span> vendor (~30% share); digital flow (Innovus/Genus), Palladium emulation, Tensilica/IP, System Design &amp; Analysis; ~$5.3B CY2025 revenue with IP segment growing 40% YoY</li><li><b><span class="lis-glo" data-key="ARM">ARM</span></b> — <span class="lis-glo" data-key="Arm Holdings">Arm Holdings</span> — dominant CPU IP licensor (~50%+ of silicon IP market with <span class="lis-glo" data-key="Synopsys">Synopsys</span>); v9 + Neoverse CSS powers NVIDIA Grace, AWS Graviton, Microsoft Cobalt, Google Axion; data-center royalties doubling …</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://newsletter.semianalysis.com/p/eda-market-primer" target="_blank" rel="noopener">newsletter.semianalysis.com</a> · <a href="https://www.sec.gov/Archives/edgar/data/0000813672/000081367225000046/cdns4282025ex9901.htm" target="_blank" rel="noopener">sec.gov</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="115.8" x2="352" y2="115.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="118.8" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="76.5" x2="352" y2="76.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="79.5" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="37.3" x2="352" y2="37.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="40.3" font-size="9" text-anchor="end" fill="#888">+150%</text><polyline fill="none" stroke="#b5b5b5" stroke-width="2.0" points="36.0,142.0 99.2,110.7 162.4,101.8 225.6,114.1 288.8,108.6 352.0,12.0" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#b5b5b5" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#b5b5b5">282 (+182%)</text><text x="36" y="156" font-size="9" fill="#888">2023-11</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-electrical-equipment" class="lis-card">
  <summary>
    Electrical Equipment (Datacenter Power Distribution)
    <span class="lis-badge lis-pin">priced_in</span>
    <span class="lis-kvs">3y ret 375.8% · AI share 18.0% · uplift 4.44×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Hyperscale AI halls are 100-300 <span class="lis-glo" data-key="MW">MW</span> each and require an integrated <span class="lis-glo" data-key="stack">stack</span> of medium-voltage <span class="lis-glo" data-key="switchgear">switchgear</span>, transformers, busways, <span class="lis-glo" data-key="UPS">UPS</span>, PDUs, and (increasingly) coolant distribution units — exactly the catalog of <span class="lis-glo" data-key="Eaton">Eaton</span>, Schneider, <span class="lis-glo" data-key="ABB">ABB</span>, and the rack-level specialists <span class="lis-glo" data-key="nVent">nVent</span> and <span class="lis-glo" data-key="Vertiv">Vertiv</span>. Lead times have stretched from ~12 weeks pre-2023 to 50-80+ weeks for MV gear and large <span class="lis-glo" data-key="UPS">UPS</span> modules, so backlogs (<span class="lis-glo" data-key="Eaton">Eaton</span> $19.6B, Powell $1.6B) are effectively pre-booked revenue through 2027. The <span class="lis-glo" data-key="vertical">vertical</span> is the most direct industrial-economy chokepoint between an <span class="lis-glo" data-key="AI accelerator">AI accelerator</span> order and an actual running cluster, which is why every name here re-rated 3-5x off 2022 lows even as their non-DC end markets stayed flat.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ETN" target="_blank" rel="noopener"><span class="lis-glo" data-key="ETN">ETN</span></a><span class="lis-cagr">33%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/SU.PA" target="_blank" rel="noopener"><span class="lis-glo" data-key="SU.PA">SU.PA</span></a><span class="lis-cagr">20%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ABBNY" target="_blank" rel="noopener"><span class="lis-glo" data-key="ABBNY">ABBNY</span></a><span class="lis-cagr">45%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/HUBB" target="_blank" rel="noopener"><span class="lis-glo" data-key="HUBB">HUBB</span></a><span class="lis-cagr">20%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/NVT" target="_blank" rel="noopener"><span class="lis-glo" data-key="NVT">NVT</span></a><span class="lis-cagr">58%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="ETN">ETN</span></b> — <span class="lis-glo" data-key="Eaton">Eaton</span> — global #1 in datacenter electrical infrastructure (<span class="lis-glo" data-key="switchgear">switchgear</span>, busways, <span class="lis-glo" data-key="UPS">UPS</span>, PDUs); Data Center + Distributed IT was ~21% of sales in FY25 with orders up ~200% in Q4 FY25</li><li><b><span class="lis-glo" data-key="SU.PA">SU.PA</span></b> — <span class="lis-glo" data-key="Schneider Electric">Schneider Electric</span> (Paris listing) — co-leader with <span class="lis-glo" data-key="Eaton">Eaton</span> in DC power management; data center &amp; networks ~30% of orders in FY25, single largest end-market</li><li><b><span class="lis-glo" data-key="ABBNY">ABBNY</span></b> — <span class="lis-glo" data-key="ABB">ABB</span> ADR — global MV/LV gear, transformers, drives; data centers ~9% of group revenue with triple-digit electrification order growth in Q1 2026</li><li><b><span class="lis-glo" data-key="HUBB">HUBB</span></b> — <span class="lis-glo" data-key="Hubbell">Hubbell</span> — utility T&amp;<span class="lis-glo" data-key="D">D</span> plus enclosures/connectors/grounding feeding DC sites; data centers a key driver inside the Electrical Solutions segment</li><li><b><span class="lis-glo" data-key="NVT">NVT</span></b> — <span class="lis-glo" data-key="nVent">nVent</span> Electric — Data Solutions liquid-cooling and high-density rack power; organic orders +65% in Q3 25 driven by <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> liquid-cooling programs</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.utilitydive.com/news/data-centers-remain-standout-industry-for-schneider-electric/813629/" target="_blank" rel="noopener">utilitydive.com</a> · <a href="https://futurumgroup.com/insights/abb-q1-fy-2026-earnings-driven-by-data-center-and-grid-demand/" target="_blank" rel="noopener">futurumgroup.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="141.0" x2="352" y2="141.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="144.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="129.2" x2="352" y2="129.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="132.2" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="117.5" x2="352" y2="117.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="120.5" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="105.8" x2="352" y2="105.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="108.8" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="94.1" x2="352" y2="94.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="97.1" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="82.3" x2="352" y2="82.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="85.3" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="70.6" x2="352" y2="70.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="73.6" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="58.9" x2="352" y2="58.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="61.9" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="47.1" x2="352" y2="47.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="50.1" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="35.4" x2="352" y2="35.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="38.4" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="23.7" x2="352" y2="23.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="26.7" font-size="9" text-anchor="end" fill="#888">+500%</text><polyline fill="none" stroke="#e57f7f" stroke-width="2.0" points="36.0,141.0 67.6,139.4 99.2,142.0 130.8,138.5 162.4,132.4 194.0,126.4 225.6,105.5 257.2,92.8 288.8,107.1 320.4,81.5 352.0,12.0" /><circle cx="36.0" cy="141.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#e57f7f" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#e57f7f">650 (+550%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-foundry-logic" class="lis-card">
  <summary>
    Foundry — Logic
    <span class="lis-badge lis-lag">lagging</span>
    <span class="lis-kvs">3y ret 254.2% · AI share 58.0% · uplift 1.38×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">AI accelerators are produced almost exclusively on TSMC&#x27;s N5/N4/N3 (and soon N2) lines, making the leading-edge logic <span class="lis-glo" data-key="foundry">foundry</span> the single largest physical chokepoint in the LLM-inference supply chain. Demand is supply-constrained, not demand-constrained: capacity utilization at advanced nodes is sold out through 2026 and capex is being pulled forward. The only credible competitive risk to TSMC&#x27;s near-monopoly is Intel <span class="lis-glo" data-key="foundry">Foundry</span>&#x27;s 18A/14A ramp, which is why <span class="lis-glo" data-key="INTC">INTC</span> is in the basket as an asymmetric option even though most logic-foundry AI revenue today still lands at <span class="lis-glo" data-key="TSM">TSM</span>.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/TSM" target="_blank" rel="noopener"><span class="lis-glo" data-key="TSM">TSM</span></a><span class="lis-cagr">66%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/INTC" target="_blank" rel="noopener"><span class="lis-glo" data-key="INTC">INTC</span></a><span class="lis-cagr">59%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/GFS" target="_blank" rel="noopener"><span class="lis-glo" data-key="GFS">GFS</span></a><span class="lis-cagr">14%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/UMC" target="_blank" rel="noopener"><span class="lis-glo" data-key="UMC">UMC</span></a><span class="lis-cagr">41%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="TSM">TSM</span></b> — Taiwan Semiconductor ADR — dominant ~70% share of global <span class="lis-glo" data-key="foundry">foundry</span>, sole source for leading-edge N3/N2 dies used in every major <span class="lis-glo" data-key="AI accelerator">AI accelerator</span> (NVIDIA, <span class="lis-glo" data-key="AMD">AMD</span>, <span class="lis-glo" data-key="Broadcom">Broadcom</span>, Google <span class="lis-glo" data-key="TPU">TPU</span>, AWS <span class="lis-glo" data-key="Trainium">Trainium</span>)</li><li><b><span class="lis-glo" data-key="INTC">INTC</span></b> — Intel — Intel <span class="lis-glo" data-key="foundry">Foundry</span> building 18A/14A as the only credible non-Asian leading-edge alternative; Microsoft is a named 18A design win, courting <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> AI chips</li><li><b><span class="lis-glo" data-key="GFS">GFS</span></b> — <span class="lis-glo" data-key="GlobalFoundries">GlobalFoundries</span> — mature/specialty <span class="lis-glo" data-key="foundry">foundry</span> (no sub-7nm); AI exposure is indirect via silicon photonics, power management, and custom accelerator support chips</li><li><b><span class="lis-glo" data-key="UMC">UMC</span></b> — United Microelectronics — Taiwan pure-play at mature nodes (22/28nm and above); peripheral AI exposure via interposers, power, and analog companions</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://futurumgroup.com/insights/tsmc-q4-fy-2025-results-and-fy-2026-outlook-signal-ai-led-growth/" target="_blank" rel="noopener">futurumgroup.com</a> · <a href="https://www.ainvest.com/news/tsmc-31-revenue-surge-q3-2025-ai-hpc-fuel-semiconductor-growth-2510/" target="_blank" rel="noopener">ainvest.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="125.2" x2="352" y2="125.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="128.2" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="94.9" x2="352" y2="94.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="97.9" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="64.7" x2="352" y2="64.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="67.7" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="34.4" x2="352" y2="34.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="37.4" font-size="9" text-anchor="end" fill="#888">+150%</text><polyline fill="none" stroke="#3da068" stroke-width="2.0" points="36.0,125.2 67.6,122.1 99.2,133.4 130.8,142.0 162.4,136.7 194.0,131.3 225.6,124.8 257.2,124.5 288.8,122.1 320.4,94.6 352.0,12.0" /><circle cx="36.0" cy="125.2" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#3da068" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#3da068">287 (+187%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-gas-turbines" class="lis-card">
  <summary>
    Gas Turbines
    <span class="lis-badge lis-fair">fair</span>
    <span class="lis-kvs">3y ret 550.3% · AI share 55.0% · uplift 1.45×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis"><span class="lis-glo" data-key="behind-the-meter">Behind-the-meter</span> and near-meter gas peakers/CCGTs are the fastest-deployable answer to the multi-year grid-interconnect queue that is the binding constraint on AI campus buildouts; this has driven gas-turbine new-unit orders to ~70 <span class="lis-glo" data-key="GW">GW</span> in 2025 with backlogs at the big-three OEMs stretching to 2029-2030 and prices up 195% by 2027 (Wood Mackenzie). The <span class="lis-glo" data-key="vertical">vertical</span> is structurally supply-constrained — global mfg capacity ~60-70 <span class="lis-glo" data-key="GW">GW</span> vs. ~110 <span class="lis-glo" data-key="GW">GW</span> order book — which gives <span class="lis-glo" data-key="GE Vernova">GE Vernova</span>, <span class="lis-glo" data-key="Siemens Energy">Siemens Energy</span> and MHI durable pricing power and visibility unmatched anywhere else in the energy <span class="lis-glo" data-key="stack">stack</span>. Gensets (<span class="lis-glo" data-key="CAT">CAT</span>/<span class="lis-glo" data-key="CMI">CMI</span>/<span class="lis-glo" data-key="GNRC">GNRC</span>) and fuel cells (<span class="lis-glo" data-key="BE">BE</span>) ride the same demand wave at the smaller / faster-deploy tier and are included as a barbell to the three large OEMs.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/GEV" target="_blank" rel="noopener"><span class="lis-glo" data-key="GEV">GEV</span></a><span class="lis-cagr"></span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ENR.DE" target="_blank" rel="noopener"><span class="lis-glo" data-key="ENR.DE">ENR.DE</span></a><span class="lis-cagr">95%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/SIEGY" target="_blank" rel="noopener"><span class="lis-glo" data-key="SIEGY">SIEGY</span></a><span class="lis-cagr">24%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/7011.T" target="_blank" rel="noopener"><span class="lis-glo" data-key="7011.T">7011.T</span></a><span class="lis-cagr">90%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/CAT" target="_blank" rel="noopener"><span class="lis-glo" data-key="CAT">CAT</span></a><span class="lis-cagr">63%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="GEV">GEV</span></b> — <span class="lis-glo" data-key="GE Vernova">GE Vernova</span> — #1 <span class="lis-glo" data-key="HDGT">HDGT</span> OEM (7HA/9HA F-class &amp; H-class) plus LM2500/LM6000/LM9000 aeroderivatives; Gas Power FY2025 revenue $16.0B; 80 <span class="lis-glo" data-key="GW">GW</span> <span class="lis-glo" data-key="gas turbine">gas turbine</span> backlog stretching into 2029; named supplier to Cruso…</li><li><b><span class="lis-glo" data-key="ENR.DE">ENR.DE</span></b> — <span class="lis-glo" data-key="Siemens Energy">Siemens Energy</span> — #2 <span class="lis-glo" data-key="HDGT">HDGT</span> OEM (SGT5/SGT6 F/H-class) + <span class="lis-glo" data-key="aeroderivative">aeroderivative</span> SGT-A series via former Rolls-Royce gas-turbine biz; Gas Services major parts of book sold out into 2030; primary listing</li><li><b><span class="lis-glo" data-key="SIEGY">SIEGY</span></b> — <span class="lis-glo" data-key="Siemens Energy">Siemens Energy</span> ADR — same economics as <span class="lis-glo" data-key="ENR.DE">ENR.DE</span> for US-resident investors; lower liquidity than <span class="lis-glo" data-key="ENR.DE">ENR.DE</span></li><li><b><span class="lis-glo" data-key="7011.T">7011.T</span></b> — <span class="lis-glo" data-key="Mitsubishi Heavy">Mitsubishi Heavy</span> Industries — #3 <span class="lis-glo" data-key="HDGT">HDGT</span> OEM via Mitsubishi Power (M501JAC/M701JAC J-class, world-leading 64%+ efficiency); 23 large frame GTCC units booked H1 FY2025, doubling production capacity over 2…</li><li><b><span class="lis-glo" data-key="CAT">CAT</span></b> — Caterpillar — <span class="lis-glo" data-key="Solar Turbines">Solar Turbines</span> small/industrial gas turbines (Mercury, Titan, Centaur, Taurus, Mars; 1-23 <span class="lis-glo" data-key="MW">MW</span>) plus reciprocating gensets (3500/3600/G3500); Nov 2025 <span class="lis-glo" data-key="Vertiv">Vertiv</span> reference-architecture partner…</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.power-eng.com/gas/turbines/data-centers-drive-record-surge-in-ge-vernova-power-equipment-orders-as-turbine-slots-tighten-through-2030/" target="_blank" rel="noopener">power-eng.com</a> · <a href="https://www.utilitydive.com/news/ge-vernova-gas-turbine-investor/807662/" target="_blank" rel="noopener">utilitydive.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="139.3" x2="352" y2="139.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="142.3" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="126.7" x2="352" y2="126.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="129.7" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="114.0" x2="352" y2="114.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="117.0" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="101.4" x2="352" y2="101.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="104.4" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="88.7" x2="352" y2="88.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="91.7" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="76.1" x2="352" y2="76.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="79.1" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="63.4" x2="352" y2="63.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="66.4" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="50.8" x2="352" y2="50.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="53.8" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="38.1" x2="352" y2="38.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="41.1" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="25.4" x2="352" y2="25.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="28.4" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="12.8" x2="352" y2="12.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="15.8" font-size="9" text-anchor="end" fill="#888">+500%</text><polyline fill="none" stroke="#444444" stroke-width="2.0" points="36.0,139.3 67.6,140.4 99.2,142.0 130.8,141.4 162.4,141.2 194.0,138.8 225.6,126.7 257.2,108.4 288.8,92.2 320.4,59.8 352.0,12.0" /><circle cx="36.0" cy="139.3" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#444444" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#444444">603 (+503%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-hbm-dram" class="lis-card">
  <summary>
    HBM &amp; DRAM
    <span class="lis-badge lis-pin">priced_in</span>
    <span class="lis-kvs">3y ret 631.1% · AI share 30.0% · uplift 2.67×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis"><span class="lis-glo" data-key="HBM3E">HBM3E</span> (and ramping <span class="lis-glo" data-key="HBM4">HBM4</span>) is the gating bottleneck for AI <span class="lis-glo" data-key="inference">inference</span> throughput: every Nvidia H100/H200/B200 and <span class="lis-glo" data-key="AMD">AMD</span> <span class="lis-glo" data-key="MI300">MI300</span>/MI355 carries 6-8 <span class="lis-glo" data-key="HBM">HBM</span> stacks, and <span class="lis-glo" data-key="SK Hynix">SK Hynix</span>/Samsung/<span class="lis-glo" data-key="Micron">Micron</span> have sold out 2025 and largely 2026 capacity. Unlike commodity <span class="lis-glo" data-key="DRAM">DRAM</span>, <span class="lis-glo" data-key="HBM">HBM</span> is sold on multi-quarter LTAs at 3-5x <span class="lis-glo" data-key="ASP">ASP</span> premium, so the AI-cycle revenue mix inside <span class="lis-glo" data-key="DRAM">DRAM</span>-makers is shifting rapidly upward. The <span class="lis-glo" data-key="vertical">vertical</span> compounds two signals: (1) commodity <span class="lis-glo" data-key="DRAM">DRAM</span> cycle, (2) AI-specific <span class="lis-glo" data-key="HBM">HBM</span> scarcity rent — only <span class="lis-glo" data-key="SK Hynix">SK Hynix</span> is currently capturing the latter at scale.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/MU" target="_blank" rel="noopener"><span class="lis-glo" data-key="MU">MU</span></a><span class="lis-cagr">126%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/000660.KS" target="_blank" rel="noopener"><span class="lis-glo" data-key="000660.KS">000660.KS</span></a><span class="lis-cagr">168%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/005930.KS" target="_blank" rel="noopener"><span class="lis-glo" data-key="005930.KS">005930.KS</span></a><span class="lis-cagr">65%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/2408.TW" target="_blank" rel="noopener"><span class="lis-glo" data-key="2408.TW">2408.TW</span></a><span class="lis-cagr">63%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/2344.TW" target="_blank" rel="noopener"><span class="lis-glo" data-key="2344.TW">2344.TW</span></a><span class="lis-cagr">79%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="MU">MU</span></b> — US <span class="lis-glo" data-key="DRAM">DRAM</span>/<span class="lis-glo" data-key="HBM3E">HBM3E</span> maker; #3 <span class="lis-glo" data-key="HBM">HBM</span> share, ramping to ~24% by end-2025</li><li><b><span class="lis-glo" data-key="000660.KS">000660.KS</span></b> — <span class="lis-glo" data-key="SK Hynix">SK Hynix</span> — #1 <span class="lis-glo" data-key="HBM">HBM</span> supplier (~57% Q3 2025 share); lead Nvidia partner</li><li><b><span class="lis-glo" data-key="005930.KS">005930.KS</span></b> — <span class="lis-glo" data-key="Samsung Electronics">Samsung Electronics</span> — <span class="lis-glo" data-key="DRAM">DRAM</span> #2/<span class="lis-glo" data-key="HBM">HBM</span> #2; qualifying <span class="lis-glo" data-key="HBM3E">HBM3E</span> 12-Hi for Nvidia</li><li><b><span class="lis-glo" data-key="2408.TW">2408.TW</span></b> — <span class="lis-glo" data-key="Nanya">Nanya</span> Technology — Taiwanese commodity DDR4/DDR5 <span class="lis-glo" data-key="DRAM">DRAM</span>; no <span class="lis-glo" data-key="HBM">HBM</span> exposure (proxy for non-AI <span class="lis-glo" data-key="DRAM">DRAM</span> pricing)</li><li><b><span class="lis-glo" data-key="2344.TW">2344.TW</span></b> — <span class="lis-glo" data-key="Winbond">Winbond</span> Electronics — niche/specialty <span class="lis-glo" data-key="DRAM">DRAM</span> (mobile, IoT); benefits from leading-edge capacity diverted to <span class="lis-glo" data-key="HBM">HBM</span></li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.trendforce.com/presscenter/news/20251126-12802.html" target="_blank" rel="noopener">trendforce.com</a> · <a href="https://www.trendforce.com/news/2025/06/26/news-micron-scales-up-hbm-to-four-major-gpuasic-clients-targets-24-market-share-by-year-end/" target="_blank" rel="noopener">trendforce.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="136.8" x2="352" y2="136.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="139.8" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="126.1" x2="352" y2="126.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="129.1" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="115.5" x2="352" y2="115.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="118.5" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="104.8" x2="352" y2="104.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="107.8" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="94.1" x2="352" y2="94.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="97.1" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="83.4" x2="352" y2="83.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="86.4" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="72.8" x2="352" y2="72.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="75.8" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="62.1" x2="352" y2="62.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="65.1" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="51.4" x2="352" y2="51.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="54.4" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="40.7" x2="352" y2="40.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="43.7" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="30.1" x2="352" y2="30.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="33.1" font-size="9" text-anchor="end" fill="#888">+500%</text><line x1="36" y1="19.4" x2="352" y2="19.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="22.4" font-size="9" text-anchor="end" fill="#888">+550%</text><polyline fill="none" stroke="#c84a4a" stroke-width="2.0" points="36.0,136.8 67.6,138.0 99.2,139.4 130.8,142.0 162.4,138.2 194.0,135.5 225.6,131.9 257.2,137.6 288.8,136.3 320.4,108.8 352.0,12.0" /><circle cx="36.0" cy="136.8" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#c84a4a" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#c84a4a">685 (+585%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-hyperscalers-cloud" class="lis-card">
  <summary>
    Hyperscalers &amp; Cloud
    <span class="lis-badge lis-lag">lagging</span>
    <span class="lis-kvs">3y ret 107.1% · AI share 35.0% · uplift 2.29×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Hyperscalers are the demand pull of the entire LLM <span class="lis-glo" data-key="inference">inference</span> supply chain — every dollar of <span class="lis-glo" data-key="NVDA">NVDA</span>/<span class="lis-glo" data-key="AVGO">AVGO</span>/TSMC/<span class="lis-glo" data-key="HBM">HBM</span> revenue ultimately traces back to a capex line on one of these eight balance sheets. Their stocks therefore encode the market&#x27;s belief about AI return-on-invested-capital rather than AI <span class="lis-glo" data-key="inference">inference</span> volumes per se: when <span class="lis-glo" data-key="MSFT">MSFT</span>/<span class="lis-glo" data-key="GOOGL">GOOGL</span>/<span class="lis-glo" data-key="AMZN">AMZN</span>/<span class="lis-glo" data-key="META">META</span> capex compounds at 30-50% YoY but cloud AI revenue grows slower than capex, multiples compress (the 2025 Q3 &#x27;where&#x27;s the ROI?&#x27; selloff). Critical cause-vs-effect caveat: a falling <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> stock can mean either (a) AI <span class="lis-glo" data-key="inference">inference</span> is structurally less profitable than hoped, OR (b) capital intensity is reaccelerating ahead of monetization — only (a) is bearish for the rest of the supply chain, and (b) is in fact bullish for accelerators, power, and DC REITs. So this basket is the AI-ROI sentiment proxy, not the AI-inference-volume proxy.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/MSFT" target="_blank" rel="noopener"><span class="lis-glo" data-key="MSFT">MSFT</span></a><span class="lis-cagr">10%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/GOOGL" target="_blank" rel="noopener"><span class="lis-glo" data-key="GOOGL">GOOGL</span></a><span class="lis-cagr">46%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/AMZN" target="_blank" rel="noopener"><span class="lis-glo" data-key="AMZN">AMZN</span></a><span class="lis-cagr">32%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/META" target="_blank" rel="noopener"><span class="lis-glo" data-key="META">META</span></a><span class="lis-cagr">35%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ORCL" target="_blank" rel="noopener"><span class="lis-glo" data-key="ORCL">ORCL</span></a><span class="lis-cagr">25%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="MSFT">MSFT</span></b> — Microsoft — Azure (#2 cloud); $75B+ Azure FY25 revenue, ~$37B AI annualized run rate (Q2 FY26); largest single LLM-inference operator via <span class="lis-glo" data-key="OpenAI">OpenAI</span> partnership and <span class="lis-glo" data-key="foundry">Foundry</span></li><li><b><span class="lis-glo" data-key="GOOGL">GOOGL</span></b> — Alphabet — Google Cloud (#3); $17.7B Q4 2025 revenue (+48% YoY), ~$70B run rate, $155B <span class="lis-glo" data-key="RPO">RPO</span> backlog; only <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> with internal <span class="lis-glo" data-key="TPU">TPU</span> + Gemini <span class="lis-glo" data-key="stack">stack</span> end-to-end</li><li><b><span class="lis-glo" data-key="AMZN">AMZN</span></b> — Amazon — AWS (#1 cloud); ~$142B annualized run rate Q4 2025, AI run rate &gt;$15B; <span class="lis-glo" data-key="Anthropic">Anthropic</span> anchor tenant (Project Rainier, 500k <span class="lis-glo" data-key="Trainium">Trainium</span> chips)</li><li><b><span class="lis-glo" data-key="META">META</span></b> — Meta — captive <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> (no external cloud sales); $70-72B 2025 capex on AI infra, MTIA v2 in-house accelerator; pure AI ROI proxy via ads monetization</li><li><b><span class="lis-glo" data-key="ORCL">ORCL</span></b> — Oracle — OCI; FY25 OCI ~$18B (+77%), $553B <span class="lis-glo" data-key="RPO">RPO</span> backlog driven by multi-year AI capacity deals ($300B <span class="lis-glo" data-key="OpenAI">OpenAI</span>, $20B Meta); GPU revenue +177% YoY</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://news.microsoft.com/source/2026/01/28/microsoft-cloud-and-ai-strength-drives-second-quarter-results-3/" target="_blank" rel="noopener">news.microsoft.com</a> · <a href="https://www.sec.gov/Archives/edgar/data/1652044/000165204426000012/googexhibit991q42025.htm" target="_blank" rel="noopener">sec.gov</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="113.1" x2="352" y2="113.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="116.1" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="60.8" x2="352" y2="60.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="63.8" font-size="9" text-anchor="end" fill="#888">+50%</text><polyline fill="none" stroke="#7dd8aa" stroke-width="2.0" points="36.0,113.1 67.6,106.7 99.2,134.4 130.8,142.0 162.4,118.4 194.0,105.0 225.6,84.9 257.2,58.7 288.8,53.8 320.4,13.5 352.0,12.0" /><circle cx="36.0" cy="113.1" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#7dd8aa" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#7dd8aa">197 (+97%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-ic-substrates" class="lis-card">
  <summary>
    IC Substrates (ABF / FC-BGA / BT)
    <span class="lis-badge lis-fair">fair</span>
    <span class="lis-kvs">3y ret 423.5% · AI share 35.0% · uplift 2.29×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">IC substrates — specifically high-layer-count ABF/<span class="lis-glo" data-key="FC-BGA">FC-BGA</span> substrates — are the chokepoint that sits between the silicon die and the PCB on every <span class="lis-glo" data-key="AI accelerator">AI accelerator</span> package: <span class="lis-glo" data-key="CoWoS">CoWoS</span> interposers ride on these substrates, and the substrate sub-segment is currently sold out with multi-quarter lead times. Capacity is concentrated in a tight oligopoly (<span class="lis-glo" data-key="Ibiden">Ibiden</span>, <span class="lis-glo" data-key="Unimicron">Unimicron</span>, <span class="lis-glo" data-key="Samsung Electro-Mechanics">Samsung Electro-Mechanics</span>, AT&amp;S, <span class="lis-glo" data-key="Kinsus">Kinsus</span>, <span class="lis-glo" data-key="Nan Ya PCB">Nan Ya PCB</span>) where greenfield lines take 2-3 years and require <span class="lis-glo" data-key="Ajinomoto">Ajinomoto</span>&#x27;s proprietary ABF film as a sole-sourced input. As AI server unit volumes scale and package sizes grow (more substrate area per accelerator), this <span class="lis-glo" data-key="vertical">vertical</span>&#x27;s AI mix should keep climbing through 2027-2028 even before any <span class="lis-glo" data-key="TAM">TAM</span> expansion from co-packaged optics and glass-core substrates.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/4062.T" target="_blank" rel="noopener"><span class="lis-glo" data-key="4062.T">4062.T</span></a><span class="lis-cagr">80%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/2802.T" target="_blank" rel="noopener"><span class="lis-glo" data-key="2802.T">2802.T</span></a><span class="lis-cagr">27%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/3037.TW" target="_blank" rel="noopener"><span class="lis-glo" data-key="3037.TW">3037.TW</span></a><span class="lis-cagr">85%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/3189.TW" target="_blank" rel="noopener"><span class="lis-glo" data-key="3189.TW">3189.TW</span></a><span class="lis-cagr">87%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/8046.TW" target="_blank" rel="noopener"><span class="lis-glo" data-key="8046.TW">8046.TW</span></a><span class="lis-cagr">50%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="4062.T">4062.T</span></b> — <span class="lis-glo" data-key="Ibiden">Ibiden</span> — dominant <span class="lis-glo" data-key="FC-BGA">FC-BGA</span> / <span class="lis-glo" data-key="ABF substrate">ABF substrate</span> supplier for Nvidia &amp; Intel AI packages; ~70-80% share in sold-out AI substrate segment per Oct-2025 analyst day commentary</li><li><b><span class="lis-glo" data-key="2802.T">2802.T</span></b> — <span class="lis-glo" data-key="Ajinomoto">Ajinomoto</span> — sole-source supplier of ABF (<span class="lis-glo" data-key="Ajinomoto">Ajinomoto</span> Build-up Film) dielectric used in every advanced <span class="lis-glo" data-key="FC-BGA">FC-BGA</span> substrate (Fine-Techno electronic-materials sub-segment)</li><li><b><span class="lis-glo" data-key="3037.TW">3037.TW</span></b> — <span class="lis-glo" data-key="Unimicron">Unimicron</span> — #1 Taiwanese ABF/<span class="lis-glo" data-key="FC-BGA">FC-BGA</span> substrate maker; AI-server exposure 30-40% of revenue per BofA, expanding to 40-50%+ in 2026-27</li><li><b><span class="lis-glo" data-key="3189.TW">3189.TW</span></b> — <span class="lis-glo" data-key="Kinsus">Kinsus</span> — Taiwanese <span class="lis-glo" data-key="ABF substrate">ABF substrate</span> maker; most advanced lines reportedly reserved for AI clients per Digitimes</li><li><b><span class="lis-glo" data-key="8046.TW">8046.TW</span></b> — <span class="lis-glo" data-key="Nan Ya PCB">Nan Ya PCB</span> — Taiwanese IC substrate / <span class="lis-glo" data-key="FC-BGA">FC-BGA</span> supplier scaling AI capacity; 2025 revenue +24% YoY</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.digitimes.com/news/a20260130PD220/unimicron-abf-substrate-ai-server-market-capacity.html" target="_blank" rel="noopener">digitimes.com</a> · <a href="https://www.investing.com/news/analyst-ratings/bofa-securities-upgrades-unimicron-stock-to-buy-on-ai-growth-prospects-93CH-4398316" target="_blank" rel="noopener">investing.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="131.1" x2="352" y2="131.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="134.1" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="120.2" x2="352" y2="120.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="123.2" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="109.4" x2="352" y2="109.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="112.4" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="98.5" x2="352" y2="98.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="101.5" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="87.6" x2="352" y2="87.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="90.6" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="76.7" x2="352" y2="76.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="79.7" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="65.9" x2="352" y2="65.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="68.9" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="55.0" x2="352" y2="55.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="58.0" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="44.1" x2="352" y2="44.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="47.1" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="33.2" x2="352" y2="33.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="36.2" font-size="9" text-anchor="end" fill="#888">+500%</text><line x1="36" y1="22.3" x2="352" y2="22.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="25.3" font-size="9" text-anchor="end" fill="#888">+550%</text><polyline fill="none" stroke="#5b5b5b" stroke-width="2.0" points="36.0,142.0 67.6,128.5 99.2,133.5 130.8,137.9 162.4,134.8 194.0,135.9 225.6,136.9 257.2,140.6 288.8,139.5 320.4,125.3 352.0,12.0" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#5b5b5b" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#5b5b5b">698 (+598%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-industrial-gases-water" class="lis-card">
  <summary>
    Industrial Gases &amp; Water (fab inputs + DC cooling/humidification)
    <span class="lis-badge lis-lag">lagging</span>
    <span class="lis-kvs">3y ret 22.6% · AI share 9.0% · uplift 8.89×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Industrial gases are an under-appreciated picks-and-shovels exposure: every leading-edge fab consumes huge volumes of high-purity N2, Ar, He, H2, and specialty gases on long-dated on-site contracts, and <span class="lis-glo" data-key="Linde">Linde</span>/<span class="lis-glo" data-key="APD">APD</span>/<span class="lis-glo" data-key="Air Liquide">Air Liquide</span> are an oligopoly with rate-base-like economics. Water is the second-derivative bet — AI data centers and the new US/EU fab buildouts are the marginal load that strains local water tables, but the pure water-utility names (<span class="lis-glo" data-key="AWK">AWK</span>, <span class="lis-glo" data-key="WTRG">WTRG</span>) get paid on regulated tariffs that lag and barely move on AI demand, so the cleaner AI exposure inside this <span class="lis-glo" data-key="vertical">vertical</span> sits in the gas majors plus water-tech (<span class="lis-glo" data-key="XYL">XYL</span>, <span class="lis-glo" data-key="PNR">PNR</span>) rather than in the rate-based utilities.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/LIN" target="_blank" rel="noopener"><span class="lis-glo" data-key="LIN">LIN</span></a><span class="lis-cagr">14%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/APD" target="_blank" rel="noopener"><span class="lis-glo" data-key="APD">APD</span></a><span class="lis-cagr">4%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/AIQUY" target="_blank" rel="noopener"><span class="lis-glo" data-key="AIQUY">AIQUY</span></a><span class="lis-cagr">8%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/AWK" target="_blank" rel="noopener"><span class="lis-glo" data-key="AWK">AWK</span></a><span class="lis-cagr">-2%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/WTRG" target="_blank" rel="noopener"><span class="lis-glo" data-key="WTRG">WTRG</span></a><span class="lis-cagr">1%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="LIN">LIN</span></b> — <span class="lis-glo" data-key="Linde">Linde</span> — #1 global industrial gas major; supplies high-purity N2/Ar/H2/specialty gases to fabs and bulk gases + on-site plants near data center campuses</li><li><b><span class="lis-glo" data-key="APD">APD</span></b> — <span class="lis-glo" data-key="Air Products">Air Products</span> — #3 industrial gas major; Electronics is a named reporting segment (~17% of FY25 sales) selling specialty/process gases to leading-edge fabs (Samsung, TSMC, Intel, <span class="lis-glo" data-key="Micron">Micron</span>)</li><li><b><span class="lis-glo" data-key="AIQUY">AIQUY</span></b> — <span class="lis-glo" data-key="Air Liquide">Air Liquide</span> (ADR) — #2 global industrial gas major; Electronics business line ~€2.5B in 2024 with <span class="lis-glo" data-key="Carrier">carrier</span>-gas sales growing &gt;10% on AI-driven fab capex</li><li><b><span class="lis-glo" data-key="AWK">AWK</span></b> — <span class="lis-glo" data-key="American Water Works">American Water Works</span> — largest US investor-owned regulated water/wastewater utility; rate-base operator with growing data-center industrial customer exposure (pending merger with <span class="lis-glo" data-key="WTRG">WTRG</span>)</li><li><b><span class="lis-glo" data-key="WTRG">WTRG</span></b> — <span class="lis-glo" data-key="Essential Utilities">Essential Utilities</span> — #2 US investor-owned water utility (Aqua) plus Peoples natural gas; pending all-stock merger into <span class="lis-glo" data-key="AWK">AWK</span> announced Oct 2025</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://assets.linde.com/-/media/global/corporate/corporate/documents/investors/full-year-financial-reports/2024-annual-report-to-shareholders.pdf" target="_blank" rel="noopener">assets.linde.com</a> · <a href="https://www.airproducts.com/company/news-center/2025/11/1106-air-products-fiscal-2025-fourth-quarter-earnings" target="_blank" rel="noopener">airproducts.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="108.4" x2="352" y2="108.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="111.4" font-size="9" text-anchor="end" fill="#888">+0%</text><polyline fill="none" stroke="#bcedd2" stroke-width="2.0" points="36.0,108.4 67.6,96.2 99.2,142.0 130.8,116.1 162.4,117.9 194.0,95.2 225.6,48.2 257.2,14.5 288.8,12.0 320.4,21.0 352.0,27.8" /><circle cx="36.0" cy="108.4" r="2.2" fill="#888" /><circle cx="352.0" cy="27.8" r="2.8" fill="#bcedd2" /><text x="348.0" y="21.8" font-size="10" text-anchor="end" font-weight="600" fill="#bcedd2">120 (+20%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-lithography" class="lis-card">
  <summary>
    Lithography
    <span class="lis-badge lis-lag">lagging</span>
    <span class="lis-kvs">3y ret 115.3% · AI share 70.0% · uplift 1.14×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis"><span class="lis-glo" data-key="lithography">Lithography</span> — and specifically <span class="lis-glo" data-key="EUV">EUV</span> — is the narrowest bottleneck in the LLM <span class="lis-glo" data-key="inference">inference</span> <span class="lis-glo" data-key="stack">stack</span>: <span class="lis-glo" data-key="ASML">ASML</span> has a 100% monopoly on <span class="lis-glo" data-key="EUV">EUV</span> scanners required for 5nm/3nm/2nm logic and <span class="lis-glo" data-key="HBM4">HBM4</span> <span class="lis-glo" data-key="DRAM">DRAM</span>, while <span class="lis-glo" data-key="Lasertec">Lasertec</span> has a near-monopoly on the actinic <span class="lis-glo" data-key="mask">mask</span>-inspection that gates every <span class="lis-glo" data-key="EUV">EUV</span> <span class="lis-glo" data-key="mask">mask</span>. Without these tools no <span class="lis-glo" data-key="AI accelerator">AI accelerator</span> (NVIDIA <span class="lis-glo" data-key="Blackwell">Blackwell</span>/<span class="lis-glo" data-key="Rubin">Rubin</span>, <span class="lis-glo" data-key="AMD">AMD</span> MI400, Google <span class="lis-glo" data-key="TPU">TPU</span> v7) and no <span class="lis-glo" data-key="HBM3E">HBM3E</span>/<span class="lis-glo" data-key="HBM4">HBM4</span> <span class="lis-glo" data-key="stack">stack</span> can be manufactured at volume, making this the single most concentrated supply-chain choke point. The <span class="lis-glo" data-key="vertical">vertical</span> is also among the most-priced-in: <span class="lis-glo" data-key="ASML">ASML</span> 2025 backlog hit €38.8B and <span class="lis-glo" data-key="EUV">EUV</span> revenue grew 39% YoY, but China export controls and lumpy <span class="lis-glo" data-key="High-NA">High-NA</span> ramp create asymmetric risk versus the broader AI capex bull case.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ASML" target="_blank" rel="noopener"><span class="lis-glo" data-key="ASML">ASML</span></a><span class="lis-cagr">34%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/7735.T" target="_blank" rel="noopener"><span class="lis-glo" data-key="7735.T">7735.T</span></a><span class="lis-cagr">47%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/8035.T" target="_blank" rel="noopener"><span class="lis-glo" data-key="8035.T">8035.T</span></a><span class="lis-cagr">41%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/6920.T" target="_blank" rel="noopener"><span class="lis-glo" data-key="6920.T">6920.T</span></a><span class="lis-cagr">23%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/7731.T" target="_blank" rel="noopener"><span class="lis-glo" data-key="7731.T">7731.T</span></a><span class="lis-cagr">12%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="ASML">ASML</span></b> — Sole <span class="lis-glo" data-key="EUV">EUV</span> scanner supplier (incl. <span class="lis-glo" data-key="High-NA">High-NA</span> EXE:5000); dominant <span class="lis-glo" data-key="ArFi">ArFi</span>/<span class="lis-glo" data-key="ArF">ArF</span>/<span class="lis-glo" data-key="KrF">KrF</span> <span class="lis-glo" data-key="DUV">DUV</span> maker; ~82% of global photolitho revenue</li><li><b><span class="lis-glo" data-key="7735.T">7735.T</span></b> — <span class="lis-glo" data-key="SCREEN Holdings">SCREEN Holdings</span> — <span class="lis-glo" data-key="wafer">wafer</span>-cleaning and coater/developer/track tools complementary to litho cell; <span class="lis-glo" data-key="advanced-packaging">advanced-packaging</span> litho (LeVina direct-write)</li><li><b><span class="lis-glo" data-key="8035.T">8035.T</span></b> — Tokyo Electron — near-100% global share in <span class="lis-glo" data-key="EUV">EUV</span> coater/developer track tools that sit attached to every <span class="lis-glo" data-key="ASML">ASML</span> <span class="lis-glo" data-key="EUV">EUV</span> scanner; also etch/deposition</li><li><b><span class="lis-glo" data-key="6920.T">6920.T</span></b> — <span class="lis-glo" data-key="Lasertec">Lasertec</span> — ~90%+ monopoly in actinic <span class="lis-glo" data-key="EUV">EUV</span> <span class="lis-glo" data-key="mask">mask</span> blank and patterned-mask inspection (ACTIS) and <span class="lis-glo" data-key="EUV">EUV</span> pellicle inspection (PELMIS)</li><li><b><span class="lis-glo" data-key="7731.T">7731.T</span></b> — <span class="lis-glo" data-key="Nikon">Nikon</span> — distant #2 <span class="lis-glo" data-key="ArF">ArF</span> immersion / <span class="lis-glo" data-key="ArF">ArF</span> dry / <span class="lis-glo" data-key="KrF">KrF</span> <span class="lis-glo" data-key="DUV">DUV</span> scanner maker (~3% <span class="lis-glo" data-key="ArFi">ArFi</span>, ~19% <span class="lis-glo" data-key="ArF">ArF</span> dry by units in 2024); plans new <span class="lis-glo" data-key="ArFi">ArFi</span> system FY28</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.asml.com/en/news/press-releases/2026/q4-2025-financial-results" target="_blank" rel="noopener">asml.com</a> · <a href="https://www.tomshardware.com/tech-industry/semiconductors/asml-projects-usd71-billion-in-revenue-by-2030-as-demand-for-euv-lithography-machines-intensifies-due-to-ai-boom-china-sales-lag-behind-while-company-cashes-in-on-high-end-twinscan-systems" target="_blank" rel="noopener">tomshardware.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="106.1" x2="352" y2="106.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="109.1" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="70.3" x2="352" y2="70.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="73.3" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="34.4" x2="352" y2="34.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="37.4" font-size="9" text-anchor="end" fill="#888">+150%</text><polyline fill="none" stroke="#62c896" stroke-width="2.0" points="36.0,142.0 67.6,129.7 99.2,130.4 130.8,135.2 162.4,120.1 194.0,100.4 225.6,65.5 257.2,102.2 288.8,104.7 320.4,70.3 352.0,12.0" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#62c896" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#62c896">281 (+181%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-model-labs-software" class="lis-card">
  <summary>
    Inference-Consuming Software / App Layer
    <span class="lis-badge lis-fair">fair</span>
    <span class="lis-kvs">3y ret 265.5% · AI share 35.0% · uplift 2.29×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">This is the demand side of LLM <span class="lis-glo" data-key="inference">inference</span> — the application-layer companies whose product economics depend on calling models in production at scale. The cleanest exposures are AI-native ad-tech (<span class="lis-glo" data-key="APP">APP</span>) and pure &#x27;sell AI to the enterprise&#x27; platforms (<span class="lis-glo" data-key="PLTR">PLTR</span>), backed by software incumbents monetizing <span class="lis-glo" data-key="inference">inference</span> through AI add-on SKUs (<span class="lis-glo" data-key="NOW">NOW</span> Now Assist) and <span class="lis-glo" data-key="inference">inference</span>-adjacent picks-and-shovels (<span class="lis-glo" data-key="DDOG">DDOG</span> observability, <span class="lis-glo" data-key="SNOW">SNOW</span> Cortex, <span class="lis-glo" data-key="MDB">MDB</span> vector DB). Most pure model labs (<span class="lis-glo" data-key="OpenAI">OpenAI</span>, <span class="lis-glo" data-key="Anthropic">Anthropic</span>, <span class="lis-glo" data-key="xAI">xAI</span>, Mistral, Cohere) are private; public exposure is via these consumption-layer proxies where genuine AI-driven revenue is being disclosed in earnings.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/APP" target="_blank" rel="noopener"><span class="lis-glo" data-key="APP">APP</span></a><span class="lis-cagr">168%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/PLTR" target="_blank" rel="noopener"><span class="lis-glo" data-key="PLTR">PLTR</span></a><span class="lis-cagr">126%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/NOW" target="_blank" rel="noopener"><span class="lis-glo" data-key="NOW">NOW</span></a><span class="lis-cagr">-0%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/DDOG" target="_blank" rel="noopener"><span class="lis-glo" data-key="DDOG">DDOG</span></a><span class="lis-cagr">33%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/SNOW" target="_blank" rel="noopener"><span class="lis-glo" data-key="SNOW">SNOW</span></a><span class="lis-cagr">-1%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="APP">APP</span></b> — <span class="lis-glo" data-key="AppLovin">AppLovin</span> — pure-play AI-driven mobile ad platform; AXON 2.0 ML/<span class="lis-glo" data-key="inference">inference</span> engine runs &gt;2M ad auctions/sec; post-2025 apps divestiture nearly 100% advertising-software revenue</li><li><b><span class="lis-glo" data-key="PLTR">PLTR</span></b> — <span class="lis-glo" data-key="Palantir">Palantir</span> — AIP (Artificial Intelligence Platform) is the explicit growth driver of US commercial (+121% YoY Q3 2025) and government segments; explicit <span class="lis-glo" data-key="inference">inference</span>-monetization narrative</li><li><b><span class="lis-glo" data-key="NOW">NOW</span></b> — <span class="lis-glo" data-key="ServiceNow">ServiceNow</span> — Now Assist GenAI offerings on track for &gt;$600M ACV exiting 2025, $1B ACV target 2026; AI add-on SKU on top of installed base</li><li><b><span class="lis-glo" data-key="DDOG">DDOG</span></b> — <span class="lis-glo" data-key="Datadog">Datadog</span> — AI-native customer cohort = ~12% of revenue Q3 2025 (up from ~4% a year earlier); benefits from observability of <span class="lis-glo" data-key="inference">inference</span> workloads (<span class="lis-glo" data-key="OpenAI">OpenAI</span> alone ~$240M ARR)</li><li><b><span class="lis-glo" data-key="SNOW">SNOW</span></b> — <span class="lis-glo" data-key="Snowflake">Snowflake</span> — Cortex AI suite turns the data warehouse into an <span class="lis-glo" data-key="inference">inference</span> endpoint; ~9,100 customers using at least one AI feature (2x YoY)</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.sec.gov/Archives/edgar/data/0001751008/000175100825000069/exhibit991-2q25earningspre.htm" target="_blank" rel="noopener">sec.gov</a> · <a href="https://www.sec.gov/Archives/edgar/data/0001321655/000132165525000130/a2025q3ex991earningsrelease.htm" target="_blank" rel="noopener">sec.gov</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="122.6" x2="352" y2="122.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="125.6" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="100.6" x2="352" y2="100.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="103.6" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="78.6" x2="352" y2="78.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="81.6" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="56.6" x2="352" y2="56.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="59.6" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="34.5" x2="352" y2="34.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="37.5" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="12.5" x2="352" y2="12.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="15.5" font-size="9" text-anchor="end" fill="#888">+250%</text><polyline fill="none" stroke="#8a8a8a" stroke-width="2.0" points="36.0,122.6 67.6,103.6 99.2,135.3 130.8,142.0 162.4,130.9 194.0,120.3 225.6,122.5 257.2,69.9 288.8,49.4 320.4,12.0 352.0,36.0" /><circle cx="36.0" cy="122.6" r="2.2" fill="#888" /><circle cx="352.0" cy="36.0" r="2.8" fill="#8a8a8a" /><text x="348.0" y="30.0" font-size="10" text-anchor="end" font-weight="600" fill="#8a8a8a">297 (+197%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-networking-switching" class="lis-card">
  <summary>
    Networking — Switching, Retimers, DPUs
    <span class="lis-badge lis-fair">fair</span>
    <span class="lis-kvs">3y ret 225.7% · AI share 55.0% · uplift 1.45×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">GPU clusters scale only as fast as their fabric: every <span class="lis-glo" data-key="Hopper">Hopper</span>/<span class="lis-glo" data-key="Blackwell">Blackwell</span>/<span class="lis-glo" data-key="MI300">MI300</span> rack needs ~$0.20-0.30 of switching, retiming and optics per $1 of compute, and a meaningful fraction of <span class="lis-glo" data-key="inference">inference</span> <span class="lis-glo" data-key="latency">latency</span> lives in the network. Dell&#x27;Oro pegs cumulative AI back-end switch spend at &gt;$100B over 2025-2029, with <span class="lis-glo" data-key="Ethernet">Ethernet</span> rapidly displacing <span class="lis-glo" data-key="InfiniBand">InfiniBand</span> (&gt;2/3 of back-end ports in 3Q25). The basket is built to capture both the OEM layer (<span class="lis-glo" data-key="ANET">ANET</span>, <span class="lis-glo" data-key="CSCO">CSCO</span>, <span class="lis-glo" data-key="HPE">HPE</span>) that monetizes shipped boxes and the silicon/connectivity layer (<span class="lis-glo" data-key="MRVL">MRVL</span>, <span class="lis-glo" data-key="CRDO">CRDO</span>, <span class="lis-glo" data-key="ALAB">ALAB</span>) that monetizes per-bit <span class="lis-glo" data-key="SerDes">serdes</span> growth from 100G -&gt; 200G -&gt; 400G/lane.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ANET" target="_blank" rel="noopener"><span class="lis-glo" data-key="ANET">ANET</span></a><span class="lis-cagr">62%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/CSCO" target="_blank" rel="noopener"><span class="lis-glo" data-key="CSCO">CSCO</span></a><span class="lis-cagr">39%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/HPE" target="_blank" rel="noopener"><span class="lis-glo" data-key="HPE">HPE</span></a><span class="lis-cagr">41%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/CRDO" target="_blank" rel="noopener"><span class="lis-glo" data-key="CRDO">CRDO</span></a><span class="lis-cagr">173%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/MRVL" target="_blank" rel="noopener"><span class="lis-glo" data-key="MRVL">MRVL</span></a><span class="lis-cagr">62%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="ANET">ANET</span></b> — <span class="lis-glo" data-key="Arista">Arista</span> Networks — #1 merchant <span class="lis-glo" data-key="Ethernet">Ethernet</span> data-center switch OEM; Etherlink AI platform on <span class="lis-glo" data-key="Broadcom">Broadcom</span> Tomahawk/Jericho silicon; ~$2.75B AI back-end revenue in 2025 (Meta, Microsoft, Oracle named cloud tita…</li><li><b><span class="lis-glo" data-key="CSCO">CSCO</span></b> — <span class="lis-glo" data-key="Cisco">Cisco</span> Systems — incumbent switch/router OEM; Nexus/Silicon One for AI fabrics; &gt;$2B AI infrastructure orders from webscalers in FY2025 (more than 2x original $1B target)</li><li><b><span class="lis-glo" data-key="HPE">HPE</span></b> — Hewlett Packard Enterprise — closed $14B Juniper Networks acquisition July 2025 (JNPR delisted); combined entity owns Juniper QFX/PTX + Apstra + Mist AIOps for AI fabrics, plus <span class="lis-glo" data-key="HPE">HPE</span> Slingshot 11 (Cray)…</li><li><b><span class="lis-glo" data-key="CRDO">CRDO</span></b> — <span class="lis-glo" data-key="Credo Technology">Credo Technology</span> — dominant ~73% share of Active Electrical Cable (<span class="lis-glo" data-key="AEC">AEC</span>) market per 650 Group; FY2025 revenue $436.8M (+126% YoY); FY2026 guide &gt;$800M, almost entirely <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> AI-driven</li><li><b><span class="lis-glo" data-key="MRVL">MRVL</span></b> — <span class="lis-glo" data-key="Marvell">Marvell</span> Technology — custom AI <span class="lis-glo" data-key="ASIC">ASIC</span> silicon (AWS <span class="lis-glo" data-key="Trainium">Trainium</span>/<span class="lis-glo" data-key="Inferentia">Inferentia</span>, Microsoft <span class="lis-glo" data-key="Maia">Maia</span> partner) + Teralynx/Innovium switch chips + electro-optics DSPs; data center ~74% of FY2026 revenue ($8.2B total)</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.delloro.com/news/data-center-switch-market-doubled-in-three-years-hits-record-3q-2025/" target="_blank" rel="noopener">delloro.com</a> · <a href="https://www.delloro.com/news/ai-back-end-networks-continue-their-shift-to-ethernet-now-accounting-for-over-two-thirds-of-3q-2025-switch-sales-in-ai-clusters/" target="_blank" rel="noopener">delloro.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="121.6" x2="352" y2="121.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="124.6" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="101.2" x2="352" y2="101.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="104.2" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="80.9" x2="352" y2="80.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="83.9" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="60.5" x2="352" y2="60.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="63.5" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="40.1" x2="352" y2="40.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="43.1" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="19.7" x2="352" y2="19.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="22.7" font-size="9" text-anchor="end" fill="#888">+300%</text><polyline fill="none" stroke="#a1a1a1" stroke-width="2.0" points="36.0,142.0 67.6,132.8 99.2,138.8 130.8,134.9 162.4,130.3 194.0,122.8 225.6,110.1 257.2,86.4 288.8,102.1 320.4,67.9 352.0,12.0" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#a1a1a1" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#a1a1a1">419 (+319%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-nuclear-smr-uranium" class="lis-card">
  <summary>
    Nuclear — SMR &amp; Uranium
    <span class="lis-badge lis-pin">priced_in</span>
    <span class="lis-kvs">3y ret 418.3% · AI share 8.0% · uplift 10.00×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Hyperscalers have moved from &#x27;we need green PPAs&#x27; to &#x27;we need 24/7 firm power and we will pay double <span class="lis-glo" data-key="wholesale">wholesale</span> for it&#x27; — and there is no other large carbon-free baseload source. That re-rates existing US nuclear operators (<span class="lis-glo" data-key="CEG">CEG</span>, <span class="lis-glo" data-key="VST">VST</span>, <span class="lis-glo" data-key="TLN">TLN</span>) on long-dated PPAs at premium prices, opens a venture-style optionality on the <span class="lis-glo" data-key="SMR">SMR</span> designers (&lt;span class="lis-glo" data-key="<span class="lis-glo" data-key="Oklo">OKLO</span>"&gt;<span class="lis-glo" data-key="Oklo">OKLO</span>&lt;/span&gt;, <span class="lis-glo" data-key="SMR">SMR</span>), and tightens the fuel cycle (<span class="lis-glo" data-key="CCJ">CCJ</span> uranium, <span class="lis-glo" data-key="LEU">LEU</span>/<span class="lis-glo" data-key="BWXT">BWXT</span> for <span class="lis-glo" data-key="HALEU">HALEU</span> and components). The actual AI-tied revenue today is single-digit percent of the <span class="lis-glo" data-key="vertical">vertical</span>, but the marginal buyer of every incremental <span class="lis-glo" data-key="MW">MW</span> and pound of U3O8 is now AI infrastructure, which is what the equity prices already partially discount.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/CEG" target="_blank" rel="noopener"><span class="lis-glo" data-key="CEG">CEG</span></a><span class="lis-cagr">53%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/VST" target="_blank" rel="noopener"><span class="lis-glo" data-key="VST">VST</span></a><span class="lis-cagr">88%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/TLN" target="_blank" rel="noopener"><span class="lis-glo" data-key="TLN">TLN</span></a><span class="lis-cagr"></span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/OKLO" target="_blank" rel="noopener"><span class="lis-glo" data-key="OKLO">OKLO</span></a><span class="lis-cagr">84%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/SMR" target="_blank" rel="noopener"><span class="lis-glo" data-key="SMR">SMR</span></a><span class="lis-cagr">12%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="CEG">CEG</span></b> — <span class="lis-glo" data-key="Constellation Energy">Constellation Energy</span> — largest US nuclear operator (~22 <span class="lis-glo" data-key="GW">GW</span> post-Calpine close in Jan 2026); signed the 20-year, 835 <span class="lis-glo" data-key="MW">MW</span> Crane/Three Mile Island Unit 1 restart <span class="lis-glo" data-key="PPA">PPA</span> with Microsoft (2028 target) and 380 M…</li><li><b><span class="lis-glo" data-key="VST">VST</span></b> — <span class="lis-glo" data-key="Vistra">Vistra</span> — Texas <span class="lis-glo" data-key="IPP">IPP</span> with 6.4 <span class="lis-glo" data-key="GW">GW</span> nuclear (Comanche Peak + Perry/Beaver Valley); signed 20-year 1,200 <span class="lis-glo" data-key="MW">MW</span> Comanche Peak <span class="lis-glo" data-key="PPA">PPA</span> in Aug 2025 with an unnamed investment-grade <span class="lis-glo" data-key="hyperscaler">hyperscaler</span>, deliveries 4Q27–2032</li><li><b><span class="lis-glo" data-key="TLN">TLN</span></b> — <span class="lis-glo" data-key="Talen Energy">Talen Energy</span> — owner of 2.5 <span class="lis-glo" data-key="GW">GW</span> Susquehanna nuclear plant; June 2025 expanded <span class="lis-glo" data-key="PPA">PPA</span> with AWS for up to 1,920 <span class="lis-glo" data-key="MW">MW</span> through 2042 (~$1.4 B/yr at full ramp) — pure-play <span class="lis-glo" data-key="hyperscaler">hyperscaler</span>-nuclear trade. Re-listed on …</li><li><b><span class="lis-glo" data-key="OKLO">OKLO</span></b> — <span class="lis-glo" data-key="Oklo">Oklo</span> — advanced <span class="lis-glo" data-key="SMR">SMR</span> developer (Aurora powerhouse, fast-spectrum); LOIs/MOUs covering ~14 <span class="lis-glo" data-key="GW">GW</span> including Switch (12 <span class="lis-glo" data-key="GW">GW</span>), <span class="lis-glo" data-key="Equinix">Equinix</span> (500 <span class="lis-glo" data-key="MW">MW</span> + $25 M prepay), Prometheus Hyperscale (100 <span class="lis-glo" data-key="MW">MW</span>), Meta partner sele…</li><li><b><span class="lis-glo" data-key="SMR">SMR</span></b> — <span class="lis-glo" data-key="NuScale Power">NuScale Power</span> — only NRC-design-approved light-water <span class="lis-glo" data-key="SMR">SMR</span> (50 MWe in 2023, uprated 77 MWe in May 2025); 12 modules in fabrication for 2030 delivery; in dialogue with Tier-1 hyperscalers but no binding …</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.utilitydive.com/news/talen-amazon-aws-susquehanna-nuclear-data-centert/750440/" target="_blank" rel="noopener">utilitydive.com</a> · <a href="https://www.constellationenergy.com/news/2024/Constellation-to-Launch-Crane-Clean-Energy-Center-Restoring-Jobs-and-Carbon-Free-Power-to-The-Grid.html" target="_blank" rel="noopener">constellationenergy.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="132.5" x2="352" y2="132.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="135.5" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="123.1" x2="352" y2="123.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="126.1" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="113.6" x2="352" y2="113.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="116.6" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="104.1" x2="352" y2="104.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="107.1" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="94.6" x2="352" y2="94.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="97.6" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="85.2" x2="352" y2="85.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="88.2" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="75.7" x2="352" y2="75.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="78.7" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="66.2" x2="352" y2="66.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="69.2" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="56.7" x2="352" y2="56.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="59.7" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="47.3" x2="352" y2="47.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="50.3" font-size="9" text-anchor="end" fill="#888">+500%</text><line x1="36" y1="37.8" x2="352" y2="37.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="40.8" font-size="9" text-anchor="end" fill="#888">+550%</text><line x1="36" y1="28.3" x2="352" y2="28.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="31.3" font-size="9" text-anchor="end" fill="#888">+600%</text><line x1="36" y1="18.8" x2="352" y2="18.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="21.8" font-size="9" text-anchor="end" fill="#888">+650%</text><polyline fill="none" stroke="#d96363" stroke-width="2.0" points="36.0,142.0 67.6,134.0 99.2,137.7 130.8,134.8 162.4,135.8 194.0,121.9 225.6,98.1 257.2,65.5 288.8,57.9 320.4,12.0 352.0,30.4" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="30.4" r="2.8" fill="#d96363" /><text x="348.0" y="24.4" font-size="10" text-anchor="end" font-weight="600" fill="#d96363">689 (+589%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-power-semis-vrm" class="lis-card">
  <summary>
    Power Semiconductors — VRM / Vertical Power Delivery
    <span class="lis-badge lis-fair">fair</span>
    <span class="lis-kvs">3y ret 120.7% · AI share 22.0% · uplift 3.64×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Each next-gen <span class="lis-glo" data-key="AI accelerator">AI accelerator</span> socket is pulling 600-1000A today and &gt;1500A on the 2026-27 roadmaps, so the only way to keep IR-drop and conversion losses tolerable is to move the final DC-DC stage from the motherboard edge to directly under the die — <span class="lis-glo" data-key="vertical">Vertical</span> Power Delivery. That structural shift, combined with the industry-wide migration to 800VDC rack architectures (NVIDIA <span class="lis-glo" data-key="AI Factory">AI Factory</span>), is forcing a near-complete redesign of the power tree and pulls in more silicon content per rack (<span class="lis-glo" data-key="Infineon">Infineon</span> guides $12-15k of power-semi BOM per 130kW rack vs. low-single-digit-thousands for traditional server racks). The basket combines the incumbent <span class="lis-glo" data-key="VRM">VRM</span> specialists (<span class="lis-glo" data-key="MPWR">MPWR</span>, <span class="lis-glo" data-key="VICR">VICR</span>) with the broad-line analog/power players (IFX, <span class="lis-glo" data-key="ADI">ADI</span>, <span class="lis-glo" data-key="TXN">TXN</span>, <span class="lis-glo" data-key="ON">ON</span>) and the wide-bandgap optionality (<span class="lis-glo" data-key="POWI">POWI</span>, <span class="lis-glo" data-key="NVTS">NVTS</span>) where <span class="lis-glo" data-key="GaN">GaN</span>/<span class="lis-glo" data-key="SiC">SiC</span> content scales fastest.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/MPWR" target="_blank" rel="noopener"><span class="lis-glo" data-key="MPWR">MPWR</span></a><span class="lis-cagr">54%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/VICR" target="_blank" rel="noopener"><span class="lis-glo" data-key="VICR">VICR</span></a><span class="lis-cagr">75%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/IFX.DE" target="_blank" rel="noopener"><span class="lis-glo" data-key="IFX.DE">IFX.DE</span></a><span class="lis-cagr">31%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ADI" target="_blank" rel="noopener"><span class="lis-glo" data-key="ADI">ADI</span></a><span class="lis-cagr">30%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/TXN" target="_blank" rel="noopener"><span class="lis-glo" data-key="TXN">TXN</span></a><span class="lis-cagr">25%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="MPWR">MPWR</span></b> — <span class="lis-glo" data-key="Monolithic Power">Monolithic Power</span> Systems — leading merchant supplier of multi-phase <span class="lis-glo" data-key="VRM">VRM</span> controllers and integrated power modules for NVIDIA <span class="lis-glo" data-key="Hopper">Hopper</span>/<span class="lis-glo" data-key="Blackwell">Blackwell</span> GPUs and custom <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> ASICs; AI/datacenter is the com…</li><li><b><span class="lis-glo" data-key="VICR">VICR</span></b> — <span class="lis-glo" data-key="Vicor">Vicor</span> — factorized power architecture and <span class="lis-glo" data-key="vertical">Vertical</span> Power Delivery (VPD) modules (current multipliers placed directly beneath the GPU socket) targeting 1000A+ <span class="lis-glo" data-key="point-of-load">point-of-load</span> for next-gen AI accelerators</li><li><b><span class="lis-glo" data-key="IFX.DE">IFX.DE</span></b> — <span class="lis-glo" data-key="Infineon">Infineon</span> Technologies — broad power-semi portfolio (Si MOSFETs, multi-phase controllers, OptiMOS, EiceDRIVER, <span class="lis-glo" data-key="SiC">SiC</span>, <span class="lis-glo" data-key="GaN">GaN</span>) co-developing 800VDC AI rack power with NVIDIA; PSD division explicitly guides A…</li><li><b><span class="lis-glo" data-key="ADI">ADI</span></b> — <span class="lis-glo" data-key="Analog Devices">Analog Devices</span> — server power management ICs, hot-swap, digital power and isolated DC-DC for AI rack PSUs; Communications/datacenter segment growing 25-40% YoY on AI buildout</li><li><b><span class="lis-glo" data-key="TXN">TXN</span></b> — <span class="lis-glo" data-key="Texas Instruments">Texas Instruments</span> — broadest analog and PMIC catalog (<span class="lis-glo" data-key="point-of-load">point-of-load</span>, controllers, gate drivers, eFuses) with 300mm capacity expansion (Sherman TX) explicitly tied to datacenter and industrial power de…</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://simplywall.st/community/narratives/us/semiconductors/nasdaq-mpwr/monolithic-power-systems/cafbznfq-monolithic-power-systems-mpwr-powering-the-hyperscale-era-the-efficiency-moat" target="_blank" rel="noopener">simplywall.st</a> · <a href="https://www.sec.gov/Archives/edgar/data/0001280452/000143774925032411/ex_854757.htm" target="_blank" rel="noopener">sec.gov</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="102.3" x2="352" y2="102.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="105.3" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="62.6" x2="352" y2="62.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="65.6" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="22.9" x2="352" y2="22.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="25.9" font-size="9" text-anchor="end" fill="#888">+150%</text><polyline fill="none" stroke="#c8c8c8" stroke-width="2.0" points="36.0,142.0 67.6,116.0 99.2,136.4 130.8,135.1 162.4,126.6 194.0,132.1 225.6,118.1 257.2,126.0 288.8,134.2 320.4,115.3 352.0,12.0" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#c8c8c8" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#c8c8c8">264 (+164%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-power-transformers-grid" class="lis-card">
  <summary>
    Power Transformers &amp; Grid
    <span class="lis-badge lis-pin">priced_in</span>
    <span class="lis-kvs">3y ret 775.1% · AI share 25.0% · uplift 3.20×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Large power transformers (3-5 year lead times, 77% price increases since 2019, Wood Mackenzie projecting a 30% global supply deficit for power transformers in 2025) are the silent physical chokepoint of the AI build-out — every gigawatt of hyperscale capacity needs MV/HV step-down hardware that only a handful of OEMs can produce, and U.S. demand is up 119% since 2019. The basket pairs the four global <span class="lis-glo" data-key="transformer">transformer</span> oligopolists (<span class="lis-glo" data-key="GEV">GEV</span>/Prolec, <span class="lis-glo" data-key="Hitachi Energy">Hitachi Energy</span> via <span class="lis-glo" data-key="6501.T">6501.T</span>, <span class="lis-glo" data-key="Siemens Energy">Siemens Energy</span>, HD <span class="lis-glo" data-key="Hyundai Electric">Hyundai Electric</span>) with the three largest U.S. T&amp;<span class="lis-glo" data-key="D">D</span> contractors who must physically install grid upgrades for AI campuses (<span class="lis-glo" data-key="PWR">PWR</span>, <span class="lis-glo" data-key="MYRG">MYRG</span>, <span class="lis-glo" data-key="PRIM">PRIM</span>), plus <span class="lis-glo" data-key="Hammond Power">Hammond Power</span> as a pure-play dry-type / specialty exposure. Capacity expansions (<span class="lis-glo" data-key="GEV">GEV</span> Prolec, <span class="lis-glo" data-key="Hitachi">Hitachi</span> $457M VA plant, Hyundai Alabama, Siemens $1B U.S. capex) won&#x27;t materially relieve the shortage until 2028+, so the supply-constrained pricing regime should persist through the 2026-2027 <span class="lis-glo" data-key="inference">inference</span>-capex peak.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/GEV" target="_blank" rel="noopener"><span class="lis-glo" data-key="GEV">GEV</span></a><span class="lis-cagr"></span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ENR.DE" target="_blank" rel="noopener"><span class="lis-glo" data-key="ENR.DE">ENR.DE</span></a><span class="lis-cagr">95%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/6501.T" target="_blank" rel="noopener"><span class="lis-glo" data-key="6501.T">6501.T</span></a><span class="lis-cagr">48%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/267260.KS" target="_blank" rel="noopener"><span class="lis-glo" data-key="267260.KS">267260.KS</span></a><span class="lis-cagr">191%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/HPS-A.TO" target="_blank" rel="noopener"><span class="lis-glo" data-key="HPS-A.TO">HPS-A.TO</span></a><span class="lis-cagr">97%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="GEV">GEV</span></b> — <span class="lis-glo" data-key="GE Vernova">GE Vernova</span> — <span class="lis-glo" data-key="transformer">transformer</span> OEM via Prolec <span class="lis-glo" data-key="GE">GE</span> (acquired Feb 2026; ~$3B 2025 <span class="lis-glo" data-key="transformer">transformer</span> revenue at ~25% EBITDA) + Grid Solutions HV/MV <span class="lis-glo" data-key="switchgear">switchgear</span>; Electrification backlog $45B and growing</li><li><b><span class="lis-glo" data-key="ENR.DE">ENR.DE</span></b> — <span class="lis-glo" data-key="Siemens Energy">Siemens Energy</span> — Grid Technologies segment (transformers, <span class="lis-glo" data-key="switchgear">switchgear</span>, <span class="lis-glo" data-key="HVDC">HVDC</span>); record group backlog ~EUR 138B, AI-datacenter-driven, booking orders past 2028</li><li><b><span class="lis-glo" data-key="6501.T">6501.T</span></b> — <span class="lis-glo" data-key="Hitachi">Hitachi</span> Ltd. — parent of <span class="lis-glo" data-key="Hitachi Energy">Hitachi Energy</span> (ex-ABB Power Grids), #1 global power <span class="lis-glo" data-key="transformer">transformer</span> OEM by revenue; $1B U.S. investment incl. $457M Virginia <span class="lis-glo" data-key="LPT">LPT</span> plant for data centers (2028)</li><li><b><span class="lis-glo" data-key="267260.KS">267260.KS</span></b> — HD <span class="lis-glo" data-key="Hyundai Electric">Hyundai Electric</span> — Korean <span class="lis-glo" data-key="transformer">transformer</span> OEM, U.S. now 40% of revenue, Alabama plant ramp to 150 <span class="lis-glo" data-key="LPT">LPT</span>/yr by 2027, 765kV high-margin wins, backlog booked into 2031</li><li><b><span class="lis-glo" data-key="HPS-A.TO">HPS-A.TO</span></b> — <span class="lis-glo" data-key="Hammond Power">Hammond Power</span> Solutions — Canadian dry-type &amp; specialty <span class="lis-glo" data-key="transformer">transformer</span> OEM; 2025 sales $898M (+14%), year-end backlog +122% YoY, data-center orders = 53% of Q3 closing backlog</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.spglobal.com/market-intelligence/en/news-insights/research/2026/02/ge-vernova-to-ride-electrification-wave-as-ai-power-demand-accelerates" target="_blank" rel="noopener">spglobal.com</a> · <a href="https://www.marketscreener.com/news/siemens-energy-books-record-order-backlog-driven-by-ai-data-center-boom-ce7e5adcd08bfe2c" target="_blank" rel="noopener">marketscreener.com</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="137.9" x2="352" y2="137.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="140.9" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="133.8" x2="352" y2="133.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="136.8" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="129.7" x2="352" y2="129.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="132.7" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="125.6" x2="352" y2="125.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="128.6" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="121.5" x2="352" y2="121.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="124.5" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="117.4" x2="352" y2="117.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="120.4" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="113.3" x2="352" y2="113.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="116.3" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="109.2" x2="352" y2="109.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="112.2" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="105.0" x2="352" y2="105.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="108.0" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="100.9" x2="352" y2="100.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="103.9" font-size="9" text-anchor="end" fill="#888">+500%</text><line x1="36" y1="96.8" x2="352" y2="96.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="99.8" font-size="9" text-anchor="end" fill="#888">+550%</text><line x1="36" y1="92.7" x2="352" y2="92.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="95.7" font-size="9" text-anchor="end" fill="#888">+600%</text><line x1="36" y1="88.6" x2="352" y2="88.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="91.6" font-size="9" text-anchor="end" fill="#888">+650%</text><line x1="36" y1="84.5" x2="352" y2="84.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="87.5" font-size="9" text-anchor="end" fill="#888">+700%</text><line x1="36" y1="80.4" x2="352" y2="80.4" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="83.4" font-size="9" text-anchor="end" fill="#888">+750%</text><line x1="36" y1="76.3" x2="352" y2="76.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="79.3" font-size="9" text-anchor="end" fill="#888">+800%</text><line x1="36" y1="72.2" x2="352" y2="72.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="75.2" font-size="9" text-anchor="end" fill="#888">+850%</text><line x1="36" y1="68.1" x2="352" y2="68.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="71.1" font-size="9" text-anchor="end" fill="#888">+900%</text><line x1="36" y1="64.0" x2="352" y2="64.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="67.0" font-size="9" text-anchor="end" fill="#888">+950%</text><line x1="36" y1="59.9" x2="352" y2="59.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="62.9" font-size="9" text-anchor="end" fill="#888">+1000%</text><line x1="36" y1="55.8" x2="352" y2="55.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="58.8" font-size="9" text-anchor="end" fill="#888">+1050%</text><line x1="36" y1="51.7" x2="352" y2="51.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="54.7" font-size="9" text-anchor="end" fill="#888">+1100%</text><line x1="36" y1="47.6" x2="352" y2="47.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="50.6" font-size="9" text-anchor="end" fill="#888">+1150%</text><line x1="36" y1="43.5" x2="352" y2="43.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="46.5" font-size="9" text-anchor="end" fill="#888">+1200%</text><line x1="36" y1="39.3" x2="352" y2="39.3" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="42.3" font-size="9" text-anchor="end" fill="#888">+1250%</text><line x1="36" y1="35.2" x2="352" y2="35.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="38.2" font-size="9" text-anchor="end" fill="#888">+1300%</text><line x1="36" y1="31.1" x2="352" y2="31.1" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="34.1" font-size="9" text-anchor="end" fill="#888">+1350%</text><line x1="36" y1="27.0" x2="352" y2="27.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="30.0" font-size="9" text-anchor="end" fill="#888">+1400%</text><line x1="36" y1="22.9" x2="352" y2="22.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="25.9" font-size="9" text-anchor="end" fill="#888">+1450%</text><line x1="36" y1="18.8" x2="352" y2="18.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="21.8" font-size="9" text-anchor="end" fill="#888">+1500%</text><line x1="36" y1="14.7" x2="352" y2="14.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="17.7" font-size="9" text-anchor="end" fill="#888">+1550%</text><polyline fill="none" stroke="#b53636" stroke-width="2.0" points="36.0,142.0 67.6,141.5 99.2,141.1 130.8,139.0 162.4,134.4 194.0,127.2 225.6,107.1 257.2,96.5 288.8,98.7 320.4,59.8 352.0,12.0" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#b53636" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#b53636">1683 (+1583%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-silicon-photonics-optics" class="lis-card">
  <summary>
    Silicon Photonics &amp; Datacom Optics
    <span class="lis-badge lis-pin">priced_in</span>
    <span class="lis-kvs">3y ret 1351.1% · AI share 55.0% · uplift 1.45×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Optical interconnects are the rate-limiter for <span class="lis-glo" data-key="scale-out">scale-out</span> AI clusters once GPU and <span class="lis-glo" data-key="HBM">HBM</span> ship: each XPU now needs multiple <span class="lis-glo" data-key="800G">800G</span> or <span class="lis-glo" data-key="1.6T">1.6T</span> ports for back-end fabric, and roadmaps to <span class="lis-glo" data-key="3.2T">3.2T</span> plus co-packaged optics (<span class="lis-glo" data-key="CPO">CPO</span>) collapse pluggable margins toward the laser/<span class="lis-glo" data-key="EML">EML</span> and <span class="lis-glo" data-key="packaging">packaging</span> layers. <span class="lis-glo" data-key="Lumentum">Lumentum</span> and <span class="lis-glo" data-key="Coherent">Coherent</span> control the scarce 200 Gbps-per-lane <span class="lis-glo" data-key="EML">EML</span> supply that gates the <span class="lis-glo" data-key="1.6T">1.6T</span> ramp; <span class="lis-glo" data-key="Fabrinet">Fabrinet</span> captures the <span class="lis-glo" data-key="packaging">packaging</span>-as-a-service rent for Nvidia/<span class="lis-glo" data-key="Cisco">Cisco</span>/Ciena. The <span class="lis-glo" data-key="vertical">vertical</span> is at ~55% AI exposure today and is the highest-conviction leveraged bet on cluster <span class="lis-glo" data-key="bandwidth">bandwidth</span> growth, but is also where <span class="lis-glo" data-key="CPO">CPO</span> disruption (Nvidia/<span class="lis-glo" data-key="Broadcom">Broadcom</span>/TSMC) could compress the pluggable <span class="lis-glo" data-key="TAM">TAM</span> after 2027.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/COHR" target="_blank" rel="noopener"><span class="lis-glo" data-key="COHR">COHR</span></a><span class="lis-cagr">128%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/LITE" target="_blank" rel="noopener"><span class="lis-glo" data-key="LITE">LITE</span></a><span class="lis-cagr">170%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/FN" target="_blank" rel="noopener"><span class="lis-glo" data-key="FN">FN</span></a><span class="lis-cagr">93%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/AAOI" target="_blank" rel="noopener"><span class="lis-glo" data-key="AAOI">AAOI</span></a><span class="lis-cagr">369%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/CIEN" target="_blank" rel="noopener"><span class="lis-glo" data-key="CIEN">CIEN</span></a><span class="lis-cagr">134%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="COHR">COHR</span></b> — Vertically integrated optical <span class="lis-glo" data-key="transceiver">transceiver</span> vendor (<span class="lis-glo" data-key="800G">800G</span>/<span class="lis-glo" data-key="1.6T">1.6T</span> datacom), InP/<span class="lis-glo" data-key="EML">EML</span> lasers, materials; #1 datacom optics share. Formed by II-VI acquisition of <span class="lis-glo" data-key="Coherent">Coherent</span> in July 2022 (IIVI ticker retired).</li><li><b><span class="lis-glo" data-key="LITE">LITE</span></b> — <span class="lis-glo" data-key="Lumentum">Lumentum</span> — 200 Gbps-per-lane <span class="lis-glo" data-key="EML">EML</span> laser chips, pump lasers, <span class="lis-glo" data-key="800G">800G</span>/<span class="lis-glo" data-key="1.6T">1.6T</span> <span class="lis-glo" data-key="transceiver">transceiver</span> modules; cloud/AI now &gt;60% of revenue.</li><li><b><span class="lis-glo" data-key="FN">FN</span></b> — <span class="lis-glo" data-key="Fabrinet">Fabrinet</span> — contract manufacturer / optical <span class="lis-glo" data-key="packaging">packaging</span> for Nvidia, <span class="lis-glo" data-key="Cisco">Cisco</span>, Ciena, <span class="lis-glo" data-key="Lumentum">Lumentum</span>; AI-driven <span class="lis-glo" data-key="800G">800G</span> datacom ramp.</li><li><b><span class="lis-glo" data-key="AAOI">AAOI</span></b> — <span class="lis-glo" data-key="Applied Optoelectronics">Applied Optoelectronics</span> — <span class="lis-glo" data-key="hyperscaler">hyperscaler</span>-focused 400G/<span class="lis-glo" data-key="800G">800G</span> datacenter transceivers; vertically integrated lasers.</li><li><b><span class="lis-glo" data-key="CIEN">CIEN</span></b> — Ciena — <span class="lis-glo" data-key="Coherent">coherent</span> DCI/WaveLogic pluggables (ZR/ZR+), acquiring Nubis Communications (<span class="lis-glo" data-key="CPO">CPO</span>) Sep 2025; cloud-provider revenue 38% of total.</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.lightcounting.com/newsletter/en/july-2025-cloud-data-center-optics-330" target="_blank" rel="noopener">lightcounting.com</a> · <a href="https://cignal.ai/2025/05/800gbe-optics-shipments-to-grow-60-in-2025/" target="_blank" rel="noopener">cignal.ai</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="137.6" x2="352" y2="137.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="140.6" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="130.7" x2="352" y2="130.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="133.7" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="123.7" x2="352" y2="123.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="126.7" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="116.7" x2="352" y2="116.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="119.7" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="109.7" x2="352" y2="109.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="112.7" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="102.7" x2="352" y2="102.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="105.7" font-size="9" text-anchor="end" fill="#888">+250%</text><line x1="36" y1="95.7" x2="352" y2="95.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="98.7" font-size="9" text-anchor="end" fill="#888">+300%</text><line x1="36" y1="88.7" x2="352" y2="88.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="91.7" font-size="9" text-anchor="end" fill="#888">+350%</text><line x1="36" y1="81.7" x2="352" y2="81.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="84.7" font-size="9" text-anchor="end" fill="#888">+400%</text><line x1="36" y1="74.8" x2="352" y2="74.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="77.8" font-size="9" text-anchor="end" fill="#888">+450%</text><line x1="36" y1="67.8" x2="352" y2="67.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="70.8" font-size="9" text-anchor="end" fill="#888">+500%</text><line x1="36" y1="60.8" x2="352" y2="60.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="63.8" font-size="9" text-anchor="end" fill="#888">+550%</text><line x1="36" y1="53.8" x2="352" y2="53.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="56.8" font-size="9" text-anchor="end" fill="#888">+600%</text><line x1="36" y1="46.8" x2="352" y2="46.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="49.8" font-size="9" text-anchor="end" fill="#888">+650%</text><line x1="36" y1="39.8" x2="352" y2="39.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="42.8" font-size="9" text-anchor="end" fill="#888">+700%</text><line x1="36" y1="32.8" x2="352" y2="32.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="35.8" font-size="9" text-anchor="end" fill="#888">+750%</text><line x1="36" y1="25.8" x2="352" y2="25.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="28.8" font-size="9" text-anchor="end" fill="#888">+800%</text><line x1="36" y1="18.8" x2="352" y2="18.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="21.8" font-size="9" text-anchor="end" fill="#888">+850%</text><polyline fill="none" stroke="#a02323" stroke-width="2.0" points="36.0,137.6 67.6,138.0 99.2,140.2 130.8,141.8 162.4,142.0 194.0,138.9 225.6,136.6 257.2,123.3 288.8,131.8 320.4,106.7 352.0,12.0" /><circle cx="36.0" cy="137.6" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#a02323" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#a02323">999 (+899%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-utilities-merchant-power" class="lis-card">
  <summary>
    Utilities &amp; Merchant Power
    <span class="lis-badge lis-pin">priced_in</span>
    <span class="lis-kvs">3y ret 234.2% · AI share 8.0% · uplift 10.00×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Utilities and IPPs are the physical bottleneck for AI <span class="lis-glo" data-key="inference">inference</span>: <span class="lis-glo" data-key="training">training</span>/<span class="lis-glo" data-key="inference">inference</span> racks need 24/7 firm power within transmission-feasible distance of fiber backbones, and new generation + interconnect takes 4-7 years to bring online. The merchant <span class="lis-glo" data-key="IPP">IPP</span> cohort (<span class="lis-glo" data-key="VST">VST</span>, <span class="lis-glo" data-key="TLN">TLN</span>, <span class="lis-glo" data-key="CEG">CEG</span>) is being rerated as a quasi-infrastructure asset class because long-dated PPAs with investment-grade <span class="lis-glo" data-key="hyperscaler">hyperscaler</span> counterparties convert previously-cyclical merchant cash flows into bond-like contracted revenue, while regulated utilities in data-center alleys (<span class="lis-glo" data-key="D">D</span> in Virginia, <span class="lis-glo" data-key="AEP">AEP</span> in Ohio, <span class="lis-glo" data-key="PEG">PEG</span> in NJ, <span class="lis-glo" data-key="DUK">DUK</span> in the Carolinas) capture growth via rate-based capex on transmission upgrades, gas peakers, and large-load tariffs. The risk asymmetry favors owners of existing dispatchable capacity (nuclear, CCGT, coal-to-gas conversions) over greenfield developers.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/VST" target="_blank" rel="noopener"><span class="lis-glo" data-key="VST">VST</span></a><span class="lis-cagr">88%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/TLN" target="_blank" rel="noopener"><span class="lis-glo" data-key="TLN">TLN</span></a><span class="lis-cagr"></span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/CEG" target="_blank" rel="noopener"><span class="lis-glo" data-key="CEG">CEG</span></a><span class="lis-cagr">53%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/NRG" target="_blank" rel="noopener"><span class="lis-glo" data-key="NRG">NRG</span></a><span class="lis-cagr">63%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/D" target="_blank" rel="noopener"><span class="lis-glo" data-key="D">D</span></a><span class="lis-cagr">15%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="VST">VST</span></b> — <span class="lis-glo" data-key="Vistra">Vistra</span> — merchant <span class="lis-glo" data-key="IPP">IPP</span> (Texas/<span class="lis-glo" data-key="ERCOT">ERCOT</span> + <span class="lis-glo" data-key="PJM">PJM</span>/NYISO); largest US competitive generator post-Energy Harbor; 20-yr Amazon <span class="lis-glo" data-key="PPA">PPA</span> at Comanche Peak (up to 1,200 <span class="lis-glo" data-key="MW">MW</span>) and 2,600+ <span class="lis-glo" data-key="MW">MW</span> Meta PPAs; AI bellwether</li><li><b><span class="lis-glo" data-key="TLN">TLN</span></b> — <span class="lis-glo" data-key="Talen Energy">Talen Energy</span> — pure-play merchant <span class="lis-glo" data-key="IPP">IPP</span> centered on Susquehanna nuclear; 17-yr $18B AWS <span class="lis-glo" data-key="PPA">PPA</span> expanded to 1,920 <span class="lis-glo" data-key="MW">MW</span> front-of-meter; archetypal AI data-center <span class="lis-glo" data-key="IPP">IPP</span></li><li><b><span class="lis-glo" data-key="CEG">CEG</span></b> — <span class="lis-glo" data-key="Constellation Energy">Constellation Energy</span> — largest US merchant nuclear fleet; Microsoft TMI restart <span class="lis-glo" data-key="PPA">PPA</span> + Meta Clinton <span class="lis-glo" data-key="PPA">PPA</span> + January 2026 Calpine close making it 55 <span class="lis-glo" data-key="GW">GW</span> (largest private US producer)</li><li><b><span class="lis-glo" data-key="NRG">NRG</span></b> — <span class="lis-glo" data-key="NRG">NRG</span> Energy — merchant generator + retail (Texas/East); diversified gas/coal fleet positioned for <span class="lis-glo" data-key="ERCOT">ERCOT</span> data-center load growth; less nuclear-overlapped than <span class="lis-glo" data-key="VST">VST</span>/<span class="lis-glo" data-key="CEG">CEG</span>/<span class="lis-glo" data-key="TLN">TLN</span></li><li><b><span class="lis-glo" data-key="D">D</span></b> — Dominion Energy — regulated utility in Virginia/<span class="lis-glo" data-key="PJM">PJM</span>-DOM zone; ~24% of Virginia sales are data-center load (2024); 47+ <span class="lis-glo" data-key="GW">GW</span> in various stages of data-center contracting</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.spglobal.com/energy/en/news-research/latest-news/electric-power/101425-data-center-grid-power-demand-to-rise-22-in-2025-nearly-triple-by-2030" target="_blank" rel="noopener">spglobal.com</a> · <a href="https://www.eia.gov/pressroom/releases/press582.php" target="_blank" rel="noopener">eia.gov</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="120.2" x2="352" y2="120.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="123.2" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="98.5" x2="352" y2="98.5" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="101.5" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="76.7" x2="352" y2="76.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="79.7" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="55.0" x2="352" y2="55.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="58.0" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="33.2" x2="352" y2="33.2" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="36.2" font-size="9" text-anchor="end" fill="#888">+250%</text><polyline fill="none" stroke="#ee9999" stroke-width="2.0" points="36.0,142.0 67.6,139.8 99.2,128.6 130.8,134.2 162.4,138.8 194.0,129.0 225.6,84.1 257.2,42.9 288.8,29.1 320.4,12.0 352.0,29.2" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="29.2" r="2.8" fill="#ee9999" /><text x="348.0" y="23.2" font-size="10" text-anchor="end" font-weight="600" fill="#ee9999">359 (+259%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


<details id="lis-v-wfe-deposition-etch" class="lis-card">
  <summary>
    WFE: Deposition, Etch, Implant, Metrology
    <span class="lis-badge lis-lag">lagging</span>
    <span class="lis-kvs">3y ret 145.5% · AI share 55.0% · uplift 1.45×</span>
  </summary>
  <div class="lis-detail-body">
    <div>
      <p class="lis-thesis">Every <span class="lis-glo" data-key="wafer">wafer</span> that ends up in an LLM accelerator or <span class="lis-glo" data-key="HBM">HBM</span> <span class="lis-glo" data-key="stack">stack</span> passes through deposition, etch, implant, clean, CMP, and metrology tools — making this the broadest, least-bypassable layer of the AI silicon supply chain after litho. The Big Five (<span class="lis-glo" data-key="AMAT">AMAT</span>, <span class="lis-glo" data-key="LRCX">LRCX</span>, <span class="lis-glo" data-key="KLAC">KLAC</span>, <span class="lis-glo" data-key="TEL">TEL</span>, <span class="lis-glo" data-key="ASML">ASML</span>) are an oligopoly with high switching costs, and AI is steepening the <span class="lis-glo" data-key="WFE">WFE</span> intensity per <span class="lis-glo" data-key="wafer">wafer</span> (more layers, more <span class="lis-glo" data-key="EUV">EUV</span>-adjacent steps, more 3D stacking, tighter process-control budgets). Advanced <span class="lis-glo" data-key="packaging">packaging</span> metrology (<span class="lis-glo" data-key="KLAC">KLAC</span>, <span class="lis-glo" data-key="ONTO">ONTO</span>) and <span class="lis-glo" data-key="HBM">HBM</span>-specific deposition/etch backlogs (<span class="lis-glo" data-key="LRCX">LRCX</span>, <span class="lis-glo" data-key="AMAT">AMAT</span>) are the highest-beta sub-segments to AI capex.</p>
      <div><span class="lis-chip"><a href="https://finance.yahoo.com/quote/AMAT" target="_blank" rel="noopener"><span class="lis-glo" data-key="AMAT">AMAT</span></a><span class="lis-cagr">52%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/LRCX" target="_blank" rel="noopener"><span class="lis-glo" data-key="LRCX">LRCX</span></a><span class="lis-cagr">75%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/KLAC" target="_blank" rel="noopener"><span class="lis-glo" data-key="KLAC">KLAC</span></a><span class="lis-cagr">66%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/8035.T" target="_blank" rel="noopener"><span class="lis-glo" data-key="8035.T">8035.T</span></a><span class="lis-cagr">41%/yr</span></span><span class="lis-chip"><a href="https://finance.yahoo.com/quote/ONTO" target="_blank" rel="noopener"><span class="lis-glo" data-key="ONTO">ONTO</span></a><span class="lis-cagr">38%/yr</span></span></div>
      <ul><li><b><span class="lis-glo" data-key="AMAT">AMAT</span></b> — Broadest <span class="lis-glo" data-key="WFE">WFE</span>: deposition (<span class="lis-glo" data-key="PVD">PVD</span>/<span class="lis-glo" data-key="CVD">CVD</span>/<span class="lis-glo" data-key="ALD">ALD</span>/epi), etch, implant, CMP, advanced <span class="lis-glo" data-key="packaging">packaging</span>; <span class="lis-glo" data-key="HBM">HBM</span>/<span class="lis-glo" data-key="CoWoS">CoWoS</span> share leader</li><li><b><span class="lis-glo" data-key="LRCX">LRCX</span></b> — Etch leader (<span class="lis-glo" data-key="NAND">NAND</span> staircase, <span class="lis-glo" data-key="DRAM">DRAM</span> capacitor, <span class="lis-glo" data-key="GAA">GAA</span>), dry resist, advanced <span class="lis-glo" data-key="packaging">packaging</span> deposition</li><li><b><span class="lis-glo" data-key="KLAC">KLAC</span></b> — Process control/metrology/<span class="lis-glo" data-key="wafer">wafer</span> inspection (~50-60% share); gating <span class="lis-glo" data-key="HBM">HBM</span> and 2.5D/3D yield</li><li><b><span class="lis-glo" data-key="8035.T">8035.T</span></b> — Tokyo Electron (<span class="lis-glo" data-key="TEL">TEL</span>): coater/developer track (~90% share), etch, deposition, cleaning, <span class="lis-glo" data-key="wafer">wafer</span> probe</li><li><b><span class="lis-glo" data-key="ONTO">ONTO</span></b> — Advanced <span class="lis-glo" data-key="packaging">packaging</span> inspection + <span class="lis-glo" data-key="lithography">lithography</span> (3Di), <span class="lis-glo" data-key="HBM">HBM</span> bump metrology, specialty device metrology</li></ul>
      <p class="lis-note">AI-share sources:<a href="https://www.semi.org/en/semi-press-release/semi-reports-global-total-semiconductor-equipment-sales-forecast-to-reach-125.5-billion-dollars-in-2025" target="_blank" rel="noopener">semi.org</a> · <a href="https://www.sec.gov/Archives/edgar/data/0000006951/000162828025051998/exhibit991q42025earningsre.htm" target="_blank" rel="noopener">sec.gov</a></p>
    </div>
    <div><svg viewBox="0 0 360 160" width="360" height="160" xmlns="http://www.w3.org/2000/svg" class="lis-spark" role="img" aria-label="vertical index sparkline"><rect x="0" y="0" width="360" height="160" fill="#fafafa" /><line x1="36" y1="142.0" x2="352" y2="142.0" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="145.0" font-size="9" text-anchor="end" fill="#888">+0%</text><line x1="36" y1="118.9" x2="352" y2="118.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="121.9" font-size="9" text-anchor="end" fill="#888">+50%</text><line x1="36" y1="95.9" x2="352" y2="95.9" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="98.9" font-size="9" text-anchor="end" fill="#888">+100%</text><line x1="36" y1="72.8" x2="352" y2="72.8" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="75.8" font-size="9" text-anchor="end" fill="#888">+150%</text><line x1="36" y1="49.7" x2="352" y2="49.7" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="52.7" font-size="9" text-anchor="end" fill="#888">+200%</text><line x1="36" y1="26.6" x2="352" y2="26.6" stroke="#e0e0e0" stroke-width="0.5" /><text x="32" y="29.6" font-size="9" text-anchor="end" fill="#888">+250%</text><polyline fill="none" stroke="#4cb582" stroke-width="2.0" points="36.0,142.0 67.6,130.5 99.2,137.6 130.8,138.7 162.4,116.4 194.0,112.4 225.6,91.5 257.2,114.3 288.8,123.6 320.4,88.0 352.0,12.0" /><circle cx="36.0" cy="142.0" r="2.2" fill="#888" /><circle cx="352.0" cy="12.0" r="2.8" fill="#4cb582" /><text x="348.0" y="6.0" font-size="10" text-anchor="end" font-weight="600" fill="#4cb582">382 (+282%)</text><text x="36" y="156" font-size="9" fill="#888">2021-05</text><text x="352" y="156" font-size="9" text-anchor="end" fill="#888">2026-05</text></svg>
<div class="lis-kvs">vertical index (level=100 at baseline)</div></div>
  </div>
</details>


</div>

<h2 id="takeaways">Takeaways</h2>

<div class="lis-root">
<ul class="lis-takeaways">
<li>Top-3 LAGGING (most under-priced, gap ascending): <b><span class="lis-glo" data-key="lithography">lithography</span></b> (gap -2.82), <b><span class="lis-glo" data-key="datacenter-reits">datacenter-reits</span></b> (gap -1.63), <b><span class="lis-glo" data-key="ai-accelerators">ai-accelerators</span></b> (gap -1.48)</li>
<li>Top-3 <span class="lis-glo" data-key="priced-in">PRICED-IN</span> (most over-priced, gap descending): <b><span class="lis-glo" data-key="silicon-photonics-optics">silicon-photonics-optics</span></b> (gap 3.66), <b><span class="lis-glo" data-key="nuclear-smr-uranium">nuclear-smr-uranium</span></b> (gap 2.12), <b><span class="lis-glo" data-key="power-transformers-grid">power-transformers-grid</span></b> (gap 1.95)</li>
<li>Sum of <span class="lis-glo" data-key="TAM">TAM</span> uplift across all 22 verticals = <b>$1267.7B</b> (≈$1.27T) if AI penetration reaches 80%.</li>
<li>Most extreme uplift multiple: <b><span class="lis-glo" data-key="copper-rare-earth">copper-rare-earth</span></b> at 20.00× (212.80B uplift); largest absolute uplift: <b><span class="lis-glo" data-key="utilities-merchant-power">utilities-merchant-power</span></b> at $302B.</li>
<li>Methodology: gap = 1.0·z(3y_return) + 0.5·z(beta_NVDA) − 1.0·z(ai_share); negative = under-priced relative to AI exposure. See Methodology critique section.</li>
<li><b>With market <span class="lis-glo" data-key="detrended">detrended</span>:</b> top real AI <span class="lis-glo" data-key="alpha">alpha</span> → <b><span class="lis-glo" data-key="silicon-photonics-optics">silicon-photonics-optics</span></b> (+712%), <b><span class="lis-glo" data-key="power-transformers-grid">power-transformers-grid</span></b> (+390%), <b><span class="lis-glo" data-key="hbm-dram">hbm-dram</span></b> (+309%) over 3y; <b><span class="lis-glo" data-key="industrial-gases-water">industrial-gases-water</span></b> (-33% 5y) and <b><span class="lis-glo" data-key="datacenter-reits">datacenter-reits</span></b> (-19% 5y) actually LOST to the market.</li>
</ul>
</div>

<h2 id="research-method--pipeline">Research method / pipeline</h2>

<p>Full pipeline that produced this v2 build: plan → 22 vertical-fact agents → price fetch → 4 parallel analyses → HTML v1 → user feedback → critique trio + chart-library + glossary → exec summary → HTML v2 → inline Jekyll v2 (this article).</p>

<div class="lis-root">
<div class="lis-mermaid-research"><pre class="mermaid">%%{init: {'themeVariables': {'fontSize':'14px','fontFamily':'system-ui'}, 'flowchart':{'curve':'basis'}}}%%
flowchart TD
  P[Plan: vertical taxonomy<br />plan/MASTER_PLAN.md] --&gt; A[22 parallel vertical-fact agents<br />tickers + AI share + thesis]
  A --&gt; V1{Verify JSON schema}
  V1 --&gt; F[Price fetch: yfinance<br />141 tickers · 2021-05 → 2026-05]
  F --&gt; V2{Verify ≥36mo history}
  V2 --&gt; R1[returns_vertical.csv<br />equal-weight indices]
  V2 --&gt; R2[risk.csv<br />vol, beta_NVDA, max DD]
  V2 --&gt; R3[ranking.csv<br />z-scores + gap]
  V2 --&gt; R4[tam.csv<br />uplift if AI hits 80%]
  R1 --&gt; V3{Verify CSVs · cross-check}
  R2 --&gt; V3
  R3 --&gt; V3
  R4 --&gt; V3
  V3 --&gt; H1[HTML v1 build]
  H1 --&gt; FB[User feedback]
  FB --&gt; C1[Critique: ai-accelerators]
  FB --&gt; C2[Critique: priced-in drivers]
  FB --&gt; C3[Critique: methodology]
  FB --&gt; CL[Chart lib research → uPlot]
  FB --&gt; GL[Glossary builder: 387 entries]
  C1 --&gt; ES[Exec-summary draft]
  C2 --&gt; ES
  C3 --&gt; ES
  CL --&gt; H2[HTML v2 build]
  GL --&gt; H2
  ES --&gt; H2
  H2 --&gt; V4{Verify v2}
  V4 --&gt; Z[Open in Zen browser]
</pre></div>


<p class="lis-note">Source: data/verticals/*.json (22 hand-curated fact sheets); analysis/*.csv
(computed from yfinance Adj Close, 2021-05 → 2026-05); critiques in analysis/critique_*.md;
glossary 387 entries (137 tickers · 100 concepts · 126 companies · 22 verticals · 2 indices).
See plan/MASTER_PLAN.md for full pipeline. Run 2026-05-26.</p>
</div>

<h2 id="reproducibility">Reproducibility</h2>

<details>
<summary>The two largest prompts used to generate this report</summary>

<div class="lis-reproducibility">
<h4>Prompt 1 — initial orchestration brief</h4>
<pre><code>Spawn army of parallels of agents in four rounds. Uh, first, trying to go over what you want to search for, what is the full supply chain, what are the options. then refining those gases. The goal, gain utter and complete understanding of LLM inference. So completely everything that is needed for LLM inference. Full stack from building, the chips, everything that's needed in a data center, the energy generation, etcetera.

Once you got the complete understanding of what are the verticals that will be touched for LLM inference, get their historical data from the last three years so it's enough to have a data point every six months, say, for all the major companies in every single vertical that is involved in increasing the LLM inference on Earth. From this, use statistical methods to figure out and which parts of the complete LLM inference build up are already already increased in price since three years ago and which ones are still lacking. Well, to create after that in another subagent is a joint graph that merges together all of the company's stock price from baseline, where baseline is three years ago. Also, if it's easy already, we get the data that is five years back, not three years. About three years is absolute requirement. So you merge the data per vertical and then plot the increase or decrease every six months from the baseline up until now per vertical in a single graph.

The goal is to get complete insight into which verticals that are needed to grow for LLM build up are already priced in and which are still waiting to be properly priced because there will probably become bottleneck in the build up. So you can do... go deeper and say how important, how much is the volume of AI within each of the verticals. And because if we expect it to increase to eighty percent of all the volume in these verticals, how much would overall there be?

  ---

  approach implementation as an orchestrator, you shouldn't be implementing or testing anything by yourself for every piece of work, spawn, uh, general agent that is oppose and, uh, let it do, uh, the clearly defined scoped task.

  first agent subagent you have to spawn is the planning agent with the following instructions:
  Research meta workflow -- full top level plan that's takes my rough textual ideas and expands on if, fills the holes to have full pipeline of research and rounds of subagents (all general subagent) to get to the goal.

  goal : From there, spawned the parallel implementations/research (all general agent) agents in many rounds repeatedly until the task is done and verified. Task is done only when we have clear actual no corners cut results collected -- hard data, no mockups, no guesses, fetched real data, statistics run and single glimpsable HTML generated.

  ---

  Once all of that is done, spawn a subagent to generate HTML that uses HTML features to create glimsable document with all of the steps and trials and errors that were, uh, met during the development, each step being two to eight words of description   as a mermaid graph. the whole document should be glimpse that will show the architecture of the research, the path ot thinking clearly, the final results, takeaways, and present the collected data using appropriate graph so that almost no text has to be read to gain perfect understanding of     this whole exploration.

  Open the HTML in Zen.</code></pre>

<h4>Prompt 2 — HTML improvements + critique batch</h4>
<pre><code>sponsor or sub agents to do this following improvements, fully researched for the HTML. First, all named entities when I hover on them, there should be well rendered little pop up that explains them in two to five sentences. I think anything that's helpful so that I understand the term in simpler terms. All short short hands have to be explained, etcetera. Make sure that the pop up doesn't overflow the the page or, like, the the hover info doesn't overflow the page when the entity is at the end of the page or or gap of the page... corner of the page.

Second, the section 4. Summary table — sorted by gap (most lagging first); click any header to re-sort
When I hover on the name of the section, there should be a hover pop up with, uh, all of the companies that were considered for it. including link to their whatever stock name and the stock name is linked to whatever they are traded at.

further to the l l m supply chain stack has to be rendered differently so that it's easier to follow. It has to be more compact. It's currently too small to view and understand, or the text have to be larger up there.

4th: 3. Joint vertical-index chart (22 lines, log scale) idea to what is the best library to make interactive graph while still shipping a single HTML.

5th: spawn three separate agents that try to critique the methodology of deciding what is lagging and what is spending. Not that they have to turn around the result, but have to be critical of, for example, Nvidia being lagging. That sounds so weird that it's lagging within the AI space. One would say that Nvidia has all of the AI boom and height and AI future priced in fully -- maybe it does not, but the thesis should be revisited -- from the data. These subagents should Act as a critical thinking partner.

Do not agree blindly.
Challenge assumptions.
Point out weak logic.
Suggest alternatives.
Identify risks.
Improve the idea.
Propose better direction.

in this dimension and direction, are there other reasons why, for example, that copper is so up other than AI, or is it based on other sources and why to research using sub agents into the different die... directions that the copper and other priced in materials are really because of AI, even though AI currently is very small portion of their usage?

6th:
The 5. Per-vertical detail (collapsed) graphs should have more Y line lines, every 50 %. Make the graphs vertically larger to use the space.

7th:  Write executive summary at the start of the doc. 3-7 sentences of overview, actionable investment guidance based on that. Collapsable section WHY (another 3-9 sentences, clear language -- go deep into why the laggers are real laggers, why it makes sense from the Task #5 summary).

8th Move 1. Research pipeline to the end of the document "Research method/pipeline" -- add the new steps.

---

use claude task tool to schedule each task after another in linear fasion. Leverage subagents for performing every single task. Don't leak much context into the main thread. You are an orchestrator.

  Open updated HTML once done.</code></pre>
</div>
</details>]]></content><author><name>Ronald Luc</name></author><category term="Research" /><category term="Investing" /><category term="AI" /><category term="Semiconductors" /><category term="Research" /><summary type="html"><![CDATA[22 verticals, 141 tickers, real fetched data. Inline interactive report — hover tooltips, market-detrend toggle, per-vertical drill-downs.]]></summary></entry><entry><title type="html">20 za 20 — JCMM talent list</title><link href="https://ronaldluc.com/personal/20-za-20-recognition/" rel="alternate" type="text/html" title="20 za 20 — JCMM talent list" /><published>2025-12-02T09:00:00+00:00</published><updated>2025-12-02T09:00:00+00:00</updated><id>https://ronaldluc.com/personal/20-za-20-recognition</id><content type="html" xml:base="https://ronaldluc.com/personal/20-za-20-recognition/"><![CDATA[<style>.page__hero--overlay{background-position:center 18% !important}</style>

<p><a href="https://www.jcmm.cz/">JCMM</a> (Jihomoravské centrum pro mezinárodní mobilitu) is turning <strong>20</strong> this year. To mark it they picked <strong>20 alumni</strong> who went through their programs over the past two decades and put them up on <a href="https://20za20.cz/">20za20.cz</a>. I’m one of them — profile at <a href="https://20za20.cz/talenti/mgr-ronald-luc/">20za20.cz/talenti/mgr-ronald-luc</a>.</p>

<p>The medallion they wrote leans on <strong>Fabrica AI</strong> ‒&gt; the startup I co-founded four years ago with two friends to make robot development faster. We’re now spread across three continents, which is also the part Forbes flagged this April.</p>

<figure style="max-width:360px;margin:1.5em auto"><a href="../../images/2025/12/20-za-20-headshot.jpg"><img src="../../images/2025/12/20-za-20-headshot.jpg" alt="20za20.cz profile photo" /></a><figcaption>Source: <a href="https://20za20.cz/talenti/mgr-ronald-luc/">20za20.cz</a>.</figcaption></figure>

<p>The honest version: JCMM is the reason a kid from Brno gets to peek at international research before deciding what to do with their life. Most of what I’m building today traces back to one of those programs.</p>

<p>Díky, JCMM. Here’s to another 20.</p>]]></content><author><name>Ronald Luc</name></author><category term="Personal" /><category term="Recognition" /><category term="Awards" /><category term="Czech" /><summary type="html"><![CDATA[JCMM turns 20 ‒> picks 20 alumni talents ‒> I'm one of them.]]></summary></entry><entry><title type="html">Forbes 30 Under 30 Europe — Technology</title><link href="https://ronaldluc.com/personal/forbes-30-under-30/" rel="alternate" type="text/html" title="Forbes 30 Under 30 Europe — Technology" /><published>2025-04-23T09:00:00+00:00</published><updated>2025-04-23T09:00:00+00:00</updated><id>https://ronaldluc.com/personal/forbes-30-under-30</id><content type="html" xml:base="https://ronaldluc.com/personal/forbes-30-under-30/"><![CDATA[<p>Last week Forbes published the <strong>2025 30 Under 30 Europe</strong> list and put <strong>Fabrica AI</strong> on it in the <strong>Technology</strong> category. Profile: <a href="https://www.forbes.com/profile/fabrica-ai/">forbes.com/profile/fabrica-ai</a>.</p>

<blockquote>
  <p>Fabrica AI is building software to make robot development one hundred times faster, and to support that mission it’s raised $3 million. Its <strong>Fabricator</strong> design tool has been developed on the back of the company’s own machines: tile grouting robots that were initially deployed in Singapore. The company is now spread across offices in Czechia, Singapore and the U.S.</p>
</blockquote>

<p>The recognition is for the three of us – co-founders <strong>Jakub Suchánek</strong>, <strong>Keefe Wayne Teo</strong> and me. Five years from “let’s try to make robots cheaper” to a Forbes badge feels weirdly fast and weirdly slow at the same time.</p>

<figure><a href="../../images/2025/04/forbes-hero.jpg"><img src="../../images/2025/04/forbes-hero.jpg" alt="Forbes 30 Under 30 Europe — Technology" /></a><figcaption>30 Under 30 Summit, Ohio. Source: own work.</figcaption></figure>

<h2 id="what-we-actually-do">What we actually do</h2>

<p>Fabricator is a design tool for new mobile robots. The pitch: skip the year of CAD + integration + iteration and <strong>go from spec to a working prototype in days</strong>. We bootstrapped the tool on our own tile-grouting robots in Singapore – if the dogfood doesn’t ship, the customer’s robot won’t either.</p>

<p>We <strong>sold 7 robots in 2025</strong>, which sounds small until you remember each one is a 300 kg autonomous machine that has to survive a construction site.</p>

<p>Today the team is split across <strong>Czechia, Singapore and the U.S.</strong>, which is the part Forbes flagged. Coordinating across three time zones is its own engineering problem and we are not yet good at it.</p>

<p>Thanks to everyone who put us on the list, to the team, and to the investors who backed the boring middle years. Onwards ‒&gt; the robots aren’t going to build themselves.</p>]]></content><author><name>Ronald Luc</name></author><category term="Personal" /><category term="Recognition" /><category term="Awards" /><category term="Forbes" /><category term="Startups" /><summary type="html"><![CDATA[Fabrica AI ‒> Forbes 30 Under 30 Europe ‒> Technology, 2025.]]></summary></entry><entry><title type="html">Retail stock market bubble simulation</title><link href="https://ronaldluc.com/ml/system-models/" rel="alternate" type="text/html" title="Retail stock market bubble simulation" /><published>2021-06-04T06:47:00+00:00</published><updated>2021-06-04T06:47:00+00:00</updated><id>https://ronaldluc.com/ml/system-models</id><content type="html" xml:base="https://ronaldluc.com/ml/system-models/"><![CDATA[<p>In collaboration with <a href="493127@muni">Tomáš Macháček</a></p>

<p><a href="https://github.com/ronaldluc/retail-bubble-stock-market-simulation">Code: github.com/ronaldluc/retail-bubble-stock-market-simulation</a></p>

<p><a href="https://colab.research.google.com/drive/1BscDMEW5yGmxJyO1lsfXYtUJDRXFKxzy?usp=sharing">Google Collab: 🤮 url</a></p>

<h1 id="stock-market-simulation">Stock market simulation</h1>
<h2 id="introduction">Introduction</h2>
<p>In the past few months, the mania has taken over the world markets. Many countries have decided to use monetary expansion to battle the economic burdens of COVID‒19. This rapid increase of money printing has brought unusual amounts of money, especially to US households, resulting in quick asset price increases. First, the wave has taken over normal and rather safer assets, like Fortune 500 companies. After some time, the greediness of investors rose, and so did the proportion of money flowing into risky assets. As a result, we have seen rises in cryptocurrency and prices of small companies.  In the end, many retail investors stopped investing and started participating in extremely risky strategies. This kind of behavior is present in the markets most of the time. The difference that made us take an interest in this was that usually, when these kinds of events happen, they tend to die out quickly, and there aren’t multiple assets getting “pumped up” at once. This time there were multiple assets over multiple markets with the same behavior, and the whole scheme did not stop for a couple of months.</p>

<p><strong>Definitions</strong></p>

<ul>
  <li>Stock (Equity) — security that represents the ownership of a fraction of a corporation</li>
  <li>Investor — real-world entity buying equities</li>
  <li>Retail investor — individual, non-professional investor</li>
  <li>Momentum — velocity of stock price change over time period</li>
  <li>Price action — the price of the stock over time</li>
  <li>Pump and dump —  is a scheme that attempts to boost the price of a stock through recommendations based on false, misleading, or greatly exaggerated statements</li>
</ul>

<h2 id="problem-formulation">Problem formulation</h2>
<p>How the overall strategies of investors and market parameters change the price action of stock during pump and dump events.
Gains and losses with respect to the investment strategy.
What seems to be the best investment strategy in these types of environments.</p>

<figure>
    <a href="../../images/2021/06/GME.png"><img src="../../images/2021/06/GME.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<figure>
    <a href="../../images/2021/06/GNUS.png"><img src="../../images/2021/06/GNUS.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<figure>
    <a href="../../images/2021/06/HTZQ.png"><img src="../../images/2021/06/HTZQ.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<h2 id="real-life-examples">Real-life examples</h2>
<p>In the real markets, pump and dump events are common occurrences. They usually occur on small, mostly worthless stocks. Usually, a small group of investors buy at a very low price and convince more investors to get in, with a vision of huge profit. This kind of thinking spreads like an epidemic since all of these new investors convince some of their friends to invest. This kind of behavior continues until most of the people willing to invest in this kind of scheme get in or until the hype dies out and people get bored, hence sell everything.</p>

<!-- #### Shorting
We could separate them into many categories, but for simplicity, we will focus on short-squeezes because recent events were mostly short-squeezes. In the real world, there are multiple strategies on how to make money in the markets; one of them is called shorting the stock. Shorting means borrowing shares and selling them to whom you have borrowed them from and then buying them back at a different price and returning them. This type of strategy is used when you expect the stock price to plummet. On rare occasions, for example, now some stocks get shorted for obnoxious %, even above 100%. This is a perfect opportunity for a pump and dump scheme to arise. The idea is that person who is shorting can lose more than 100% of their investment even to the point where they have to liquidate their other assets to cover for one short. People running the scheme buy in at very low prices and spread the hype; this causes shorts to cover, which causes the price to go up, which causes more shorts to cover… At a certain point, people running the scheme sell everything and cause the price to drop, or people start losing interest. -->

<h2 id="model-definition">Model definition</h2>
<p>In order to simulate the real market, we had to first create our artificial stock market. The price of the stock is simulated by an exponential curve with a very small base. Each tick of the model, investors may choose to buy or sell.</p>

<p><strong>To buy</strong></p>

<ol>
  <li>At the start of each tick, the amount of money to be traded is calculated.</li>
  <li>Using a geometric sum, the total amount of shares to be bought is calculated.</li>
  <li>The shares are distributed between investors in proportion to the money spent.</li>
  <li>The new price per share is set, and the transaction is completed.</li>
</ol>

<p>Likewise, to sell stocks.</p>

<p><strong>For such stock market simulation holds</strong></p>

<ul>
  <li>All investors selling all stocks at once results in everyone getting a proportion of the current market cap.</li>
  <li>If the same investor solo-buys in one tick and solo-sells in the next, nothing changes.</li>
  <li>More generally, if investors sell in the reverse order to how they bought, everyone ends up with the same amount of money.</li>
</ul>

<p>In the real stock market, price calculation works differently and depends on many variables that we are not considering in this model, such as share structure, spreads, and volatility.</p>

<p>We have decided to use an agent-based model for investors. Every investor starts with basic parameters that affect their trading decisions. In the beginning, there are only a couple of investors that are aware of the stock. Each tick, they have a small chance of telling someone else about the stock, hence spreading the hype. This so-called hype epidemic quickly spreads through all potential investors and causes the stock price to skyrocket since most of them wouldn’t want to miss on this investment opportunity. On the other hand, these investors are not stupid, and when the price is rising too quickly they have a chance to sell their shares. These decisions to sell and buy are based on investor behavioral function. The final factor contributing to our model functionality is boredom. After the scheme has been active for some time, some investors get bored and sell everything they have.</p>

<h3 id="behavior-function">Behavior function</h3>
<p>Behavior function is our way of representing the internal thoughts of an investor in a stock market. Every investor bases his decisions on his own parameters and the current stock price change, stock price delta. When the price is trending up or down slowly, most of the investors go along with the momentum; however, if the price starts rising or falling too quickly, some of the investors start thinking smart and do the opposite of what the rest of the investors are doing.</p>

<p>Input is <code class="language-plaintext highlighter-rouge">delta_price</code> (x-axis), ouput is buy/sell probability (y-axis). Best viewed with grid on full screen.
<!-- <iframe src="https://www.geogebra.org/geometry/eehs5tpw?embed" width="1200" height="600" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe> --></p>

<!-- <div style="overflow: hidden">
<iframe src="https://www.geogebra.org/geometry/eehs5tpw?embed"  allowfullscreen style="border: 1px solid #e4e4e4; border-radius: 4px; width: 150%; height: 900px;transform: scale(0.75) translate(-75%, -75%); margin-bottom: -450px;" frameborder="0"></iframe>
</div> -->

<div style="overflow: hidden">
<iframe src="https://www.geogebra.org/geometry/eehs5tpw?embed" allowfullscreen="" style="border: 1px solid #e4e4e4; border-radius: 4px; width: 134%; height: 720px;transform: scale(0.8) translate(-20%, -10%); margin-bottom: -140px;" frameborder="0"></iframe>
</div>

<h3 id="hyperparameters">Hyperparameters</h3>
<ul>
  <li>“_exp” in name means the value is searched in \(10^x\) space</li>
  <li><em>name (range for search/substitution study): description</em></li>
  <li>ranges are chosen to be the wides reasonable (e.g., numerical stability in behavioral function)</li>
</ul>

<p>Behavior hyperparameters</p>
<ul>
  <li>mean_break_point_exp (-2, 0): mean of <code class="language-plaintext highlighter-rouge">break</code> distribution</li>
  <li>std_break_point_exp (-3, 0): std of <code class="language-plaintext highlighter-rouge">break</code> distribution</li>
  <li>std_optimism_exp (-3, 0): std of <code class="language-plaintext highlighter-rouge">optimism</code> distribution</li>
  <li>behavior_scale (1, 50): <code class="language-plaintext highlighter-rouge">scale</code></li>
  <li>behavior_linearity_exp (-1, 2): <code class="language-plaintext highlighter-rouge">linearity</code></li>
</ul>

<p>Market hyperparameters</p>
<ul>
  <li>past_impact_weight (1, 80): weight of history in <code class="language-plaintext highlighter-rouge">delta_price</code> calculation</li>
  <li>free_money_multiple (0.1, 100): how many times more money should all investors together have compared to the initial market cap</li>
  <li>stock_buy_extra_exp (-6, -2): additional price of the next share compared to the previous one ( \(share_{(n+1)} = share_n * (1 + stock\_buy\_extra )\) )</li>
  <li>transmission_prob_exp (-2, -0.9): a chance for each aware agent to spread the knowledge about to any other agent per tick</li>
  <li>boredom_prob_exp (-4, -2): a chance for each aware agent to get bored, sell all shares and never look back</li>
  <li>delta_price_exp (-6, 0): initial <code class="language-plaintext highlighter-rouge">delta_price</code></li>
</ul>

<h2 id="feedback-loop-diagram">Feedback loop diagram</h2>
<!-- Similar to https://www.fi.muni.cz/~xpelanek/IV109/slidy/zpetna-vazba.pdf
Created here: Flowchart Maker & Online Diagram Software -->
<p>The backbone is a SIR model making an exponentially growing amount of people aware of the stock at the beginning</p>
<ul>
  <li>S ~ unaware of the stock</li>
  <li>I ~ aware of the stock (and interested in investing)</li>
  <li>R ~ bored of the stock</li>
</ul>

<figure>
    <a href="../../images/2021/06/feedback_loop.png"><img src="../../images/2021/06/feedback_loop.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<h1 id="evaluation">Evaluation</h1>

<h2 id="a-single-run">A single run</h2>

<p>All values are normalized to &lt;-1, 1&gt; to be shown in one diagram.</p>
<figure>
    <a href="../../images/2021/06/single_run.png"><img src="../../images/2021/06/single_run.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<figure>
    <a href="../../images/2021/06/single_run_labeled2.png"><img src="../../images/2021/06/single_run_labeled2.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<h2 id="selecting-baseline">Selecting baseline</h2>
<p>We want a set of hyperparameters that lead to models behavior similar to the one seen in reality. After analyzing a few pumps and dump stock price examples from reality, 4 peaks were chosen with ratios 2:4:18:9 and in-between drops with ratios 1:2:5. Those ratios were used to create a loss, for weights and implementation details see the ipython notebook.</p>

<p>GNUS pump and dump peak ratios examination</p>
<figure>
    <a href="../../images/2021/06/GNUS_peaks.png"><img src="../../images/2021/06/GNUS_peaks.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<p>A hyperparameter search using <a href="https://github.com/fmfn/BayesianOptimization">bayes optimization</a> with 3700 steps was used. The simulation is stochastic; therefore, each step is the average loss over 7 runs. The #1 in search is selected as the baseline.</p>

<figure>
    <a href="../../images/2021/06/hyper_search_results.png"><img src="../../images/2021/06/hyper_search_results.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<p>The models seems to be unable to perform 2 peaks before the main one. Then if there is a pre-peak, it is always around the linear part of <code class="language-plaintext highlighter-rouge">I</code> curve (awareness spread).</p>

<h2 id="abstracting-the-time">Abstracting the time</h2>
<p>We are looking for the leverage points and phase transitions in the model. To achieve this, we create multiple market and agent markers. Each marker is a single number that represents a property over one market simulation.</p>

<p>Market markers</p>
<ul>
  <li>first_peak [ticks]: tick of the first peak</li>
  <li>mean_peak [ticks]: mean tick of a peak</li>
  <li>last_peak [ticks]: tick of the last peak</li>
  <li>peaks_num [#]: number of peaks per simulation</li>
  <li>max_market_penetration [fraction]: the maximum fraction of money put into the stock at one time</li>
</ul>

<p>Agent markers</p>
<ul>
  <li>max_gain [money]: the most a single agent gained at the end of the simulation</li>
  <li>investore_lost_proportion [fraction]: the fraction of agents to end with less money than they started with</li>
  <li>money:optimism correlation [corr]: pearson correlation of the gained money to the optimism of agents</li>
  <li>money:initial_money correlation [corr]: pearson correlation of the gained money to initial_money of agents</li>
  <li>money:break_point correlation [corr]: pearson correlation of the gained money to break_point of agents</li>
</ul>

<p>Each hyperparameter is evaluated on 1000 evenly spread values of a hyperparameter (x-axis). Shown is mean +- 2× std from rolling window of 50. Beware of relative y-axes.</p>
<figure>
    <a href="../../images/2021/06/graphs_explanation.png"><img src="../../images/2021/06/graphs_explanation.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<h2 id="results">Results</h2>

<h3 id="the-most-influential-params">The most influential params</h3>
<figure>
    <a href="../../images/2021/06/past_impact_weight.png"><img src="../../images/2021/06/past_impact_weight.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<figure>
    <a href="../../images/2021/06/std_optimism_exp.png"><img src="../../images/2021/06/std_optimism_exp.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<p>Changing <code class="language-plaintext highlighter-rouge">past_impact_weight</code> or <code class="language-plaintext highlighter-rouge">std_optimism_exp</code> makes the market penetration and money:optimism corelation undergo similar phase change. Worth noting is also the stable market behavior for any std of optimism over \(10^{-1} = 0.1\) (the optimism is always a normal distribution with 0 mean, so the change is done by a higher diversity in the optimism between people) with 1‒2 peaks.</p>

<h3 id="less-influential-params">Less influential params</h3>
<figure>
    <a href="../../images/2021/06/stock_buy_extra_exp.png"><img src="../../images/2021/06/stock_buy_extra_exp.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<figure>
    <a href="../../images/2021/06/behavior_linearoty_exp.png"><img src="../../images/2021/06/behavior_linearoty_exp.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<figure>
    <a href="../../images/2021/06/free_money_multiple.png"><img src="../../images/2021/06/free_money_multiple.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<p>Changing <code class="language-plaintext highlighter-rouge">free_money_multiple</code>, <code class="language-plaintext highlighter-rouge">behavior_linearity_exp</code>, or <code class="language-plaintext highlighter-rouge">stock_buy_extra_exp</code> does not impact the market behavior much for most of the values used in hyperparameter search. If the <code class="language-plaintext highlighter-rouge">free_money_multiple</code> or <code class="language-plaintext highlighter-rouge">stock_buy_extra_exp</code> is small, agents cannot change the stock price too much \(\Rightarrow\) agents cannot gain/lose too much, and the money:<code class="language-plaintext highlighter-rouge">initial_money</code> correlation is high. Higher <code class="language-plaintext highlighter-rouge">behavior_linearoty_exp</code> increases the chance to trade \(\Rightarrow\) from a certain eagerness to trade the market behavior does not change much.</p>

<h3 id="sir-params">SIR params</h3>
<figure>
    <a href="../../images/2021/06/transmission_prob_exp.png"><img src="../../images/2021/06/transmission_prob_exp.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<figure>
    <a href="../../images/2021/06/boredom_prob_exp.png"><img src="../../images/2021/06/boredom_prob_exp.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<p>If the <code class="language-plaintext highlighter-rouge">transmission_prob_exp</code>, <code class="language-plaintext highlighter-rouge">boredom_prob_exp</code> are close together, the model oscillates a lot (hundreds of peaks). If the <code class="language-plaintext highlighter-rouge">boredom_prob_exp</code> is too low, not many people buy the stock, but the ones who trade are completely stripped of money by just a few agents. Changing <code class="language-plaintext highlighter-rouge">transmission_prob_exp</code> causes a phase change on money:optimism correlation \(\Rightarrow\) In a slowly spreading bubble, it is worth being a pessimist, and there are plenty of speculations (high # peaks), and most susceptible agents get involved. With quickly spreading hype, it is good to be slightly optimistic, and there are the same ~5 peaks before the meme stock is dead, with fewer people having time to get involved.</p>

<h3 id="break-point">Break point</h3>
<figure>
    <a href="../../images/2021/06/mean_break_point.png"><img src="../../images/2021/06/mean_break_point.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<figure>
    <a href="../../images/2021/06/std_break_point_exp.png"><img src="../../images/2021/06/std_break_point_exp.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<p>Based on the graphs shown, it might have been a good idea to search over an even wider range of <code class="language-plaintext highlighter-rouge">break_point</code> normal distributions. This was not done as <code class="language-plaintext highlighter-rouge">break_point == 1</code> means a change in behavior only for <code class="language-plaintext highlighter-rouge">delta_price &gt; 1</code>. With the search done, diversity in <code class="language-plaintext highlighter-rouge">break_point</code> is more important than the mean value.</p>

<h3 id="no-effect">No effect</h3>
<figure>
    <a href="../../images/2021/06/delta_price_exp.png"><img src="../../images/2021/06/delta_price_exp.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>
<figure>
    <a href="../../images/2021/06/behavior_scale.png"><img src="../../images/2021/06/behavior_scale.png" /></a>
    <figcaption>  <br />
    Source: own work</figcaption>
</figure>

<p><code class="language-plaintext highlighter-rouge">delta_price_exp</code> and <code class="language-plaintext highlighter-rouge">behavior_scale</code> show little impact on the model behavior.</p>

<h1 id="conclusions">Conclusions</h1>

<p>Overall, we were able to create a solid model that, with our level of abstraction, answered the questions we set out to answer at the beginning.</p>

<h2 id="general-questions-about-the-market">General questions about the market</h2>

<p>Our first goal was to determine what are the most critical factors for the whole bubble to arise in the first place.
Looking back at <code class="language-plaintext highlighter-rouge">past_impact_weight</code> and <code class="language-plaintext highlighter-rouge">std_optimism_exp</code>, it becomes clear that these kinds of bubbles occur when people use the stock market as a casino. The two critical conditions for the bubble to arise seem to be the rash decisions, represented by low <code class="language-plaintext highlighter-rouge">past_impact_weight</code> where one looks only at low timeframes and herd mentality, represented by small deviations from base <code class="language-plaintext highlighter-rouge">optimism</code>. Even small changes in these parameters cause investors to act as if there was no bubble and the market was acting rationally. We can mostly see it in the <code class="language-plaintext highlighter-rouge">past_impact_weight</code> parameter, where even mid-ranged time frames simulate normal asset behavior. The best strategy in this type of market is to buy in and hold regardless of short-term events and price changes. We can see the same stabilizing effects with higher <code class="language-plaintext highlighter-rouge">std_optimism_exp</code>. In this case, it is less obvious why this stabilization happens. The point seems to be that more significant differences in personalities cause investors to act more rationally overall. When the stock goes up too quickly, pessimistic investors hold it down, so it can’t turn into a bubble, and optimistic investors buy even small dips, so the price cannot drop too quickly.</p>

<p>Our next goal was to determine which parameters contribute the most to investors losing money in these events.
Looking at our model and the real world, the basic answer to this question is that most people lose money because they risk. As we can see, the most influential parameters concerning the overall percentage of people who lost their money are the ones critical for a bubble to arise. From this, we conclude that participating in risky assets is what makes most people lose money.
Our model provides even more insight into this problem when we look at <code class="language-plaintext highlighter-rouge">free_money_multiple'and </code>stock_buy_extra_exp<code class="language-plaintext highlighter-rouge">. These two parameters represent the two reasons for stock volatility. Higher </code>free_money_multiple<code class="language-plaintext highlighter-rouge"> gives people more money, so they can get a bigger part of the company early on.  This negatively affects overall investors because when these "whales" eventually sell their shares, they cause the market to crash on their own, hence hurt a larger amount of people in the process. </code>stock_buy_extra_exp` has similar effects. In this case, the first investors get in at a low price and get a big share of the company, while the next investors get a disproportionally lower share of the company for the same amount. This again means that when the first investors sell, the crash inevitably happens.</p>

<h2 id="question-about-investor-behavior">Question about investor behavior</h2>

<p>Our last goal was to look and try to figure out good strategies in bubble stocks.
We can’t fully answer this question using our simple model, but we can look at some interesting readings to try to determine the best behavior. First, looking at the critical conditions for the bubble to arise, we can see that optimism and cautiousness represented by low <code class="language-plaintext highlighter-rouge">break_point</code> positively predict success in the bubble market.
Next, looking at <code class="language-plaintext highlighter-rouge">free_money_multiple</code> and <code class="language-plaintext highlighter-rouge">stock_buy_extra_exp</code>, we can see that being optimistic in a low market cap environment is proficient.</p>

<h2 id="possible-extensions">Possible extensions</h2>

<p>General market</p>

<ul>
  <li>Price spread model</li>
  <li>Share structure model</li>
  <li>Model epidemic outbursts (stock mentioned in the news)</li>
</ul>

<p>Investor behavior</p>

<ul>
  <li>Add wealthy investors</li>
  <li>Change every parameter into a distribution sample for each agent</li>
  <li>Add more parameters into the behavioral function</li>
</ul>

<h2 id="tldr">TLDR</h2>

<p>Taking into consideration what we had found out, <strong>the single best strategy is to never invest in assets with this behavior</strong>.</p>]]></content><author><name>Ronald Luc</name></author><category term="ML" /><category term="Tips" /><category term="Notes" /><category term="Projects" /><summary type="html"><![CDATA[What behavioral traits are important to :win: and what impacts the overall market behavior]]></summary></entry></feed>