<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Michał Adamczyk</title>
<link>https://adamczyk.ai/blog.html</link>
<atom:link href="https://adamczyk.ai/blog.xml" rel="self" type="application/rss+xml"/>
<description>Data science portfolio &amp; writing — applied ML, analytics, and the numbers behind the industry.</description>
<generator>quarto-1.9.38</generator>
<lastBuildDate>Thu, 04 Jun 2026 22:00:00 GMT</lastBuildDate>
<item>
  <title>The Method of Reflections: Reading Economic Complexity from Trade Flows</title>
  <dc:creator>Michał Adamczyk</dc:creator>
  <link>https://adamczyk.ai/posts/method-of-reflections/</link>
  <description><![CDATA[ 






<blockquote class="blockquote">
<p><strong>Summary.</strong> The Method of Reflections is, mathematically, an eigendecomposition of a normalised country-product trade matrix; it ranks countries and products by recursive sophistication, and at HS2 resolution it reproduces the qualitative findings of the original paper — but it has two well-known failure modes that change the story for both the smallest and the very largest exporters.</p>
</blockquote>
<div class="lead">
<p>In 2009 César Hidalgo and Ricardo Hausmann published a paper in <em>PNAS</em> with a provocative idea: you can read what an economy <em>knows how to make</em> from the structure of its exports alone, and a simple iterative scheme on the country-product matrix recovers a meaningful ranking. The construct they introduced — the Economic Complexity Index — has since become a small industry.</p>
</div>
<p>What follows takes the method apart and re-builds it from scratch on real trade data. The maths is two equations; the implementation is forty lines of pandas and NumPy. The interesting parts are the empirical residuals — where the algorithm agrees with intuition, where it doesn’t, and what those discrepancies tell us about both economies and the algorithm.</p>
<p>The case study throughout is China. There’s a clean story to tell: between 1995 and 2010 China’s complexity ranking roughly doubled, and the iteration itself explains <em>how</em> — not because China entered new sectors, but because the sectors it specialised in shifted from textiles to machinery to electronics.</p>
<section id="the-basic-idea" class="level2">
<h2 class="anchored" data-anchor-id="the-basic-idea">1. The basic idea</h2>
<p>What does it mean for an economy to be “complex”? Plenty of intuitive proxies — GDP per capita, value-added per worker, R&amp;D intensity — work fine for the obvious cases (Switzerland complex, Chad not), but they don’t generalise well: a high-income oil exporter has lots of value-added per worker but is doing exactly one thing.</p>
<p>Hidalgo &amp; Hausmann’s move is to look at the <em>structure</em> of what a country exports, not the headline numbers. The intuition has two pieces:</p>
<ul>
<li><strong>Diversity.</strong> A complex economy can make many different things; a simple one can make few.</li>
<li><strong>Ubiquity.</strong> Some products can be made by almost anyone (clothing, basic agricultural goods). Others require knowledge that very few countries have (aircraft, lithography equipment). A complex economy is one that does the rare things.</li>
</ul>
<p>These two ideas pull in opposite directions when used naively. Many countries have high diversity of <em>common</em> products; very few countries have low diversity of <em>rare</em> ones. The Method of Reflections is the iteration that resolves this tension into a single ranking.</p>
</section>
<section id="the-matrix-and-the-iteration" class="level2">
<h2 class="anchored" data-anchor-id="the-matrix-and-the-iteration">2. The matrix and the iteration</h2>
<p>Start with bilateral trade data: country <code>c</code> exports value <img src="https://latex.codecogs.com/png.latex?x_%7Bcp%7D"> of product <img src="https://latex.codecogs.com/png.latex?p"> in some reference year. Define <strong>Revealed Comparative Advantage</strong> (Balassa 1965) as:</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cmathrm%7BRCA%7D_%7Bcp%7D%20%5C;=%5C;%20%5Cfrac%7Bx_%7Bcp%7D%20/%20%5Csum_%7Bp'%7D%20x_%7Bcp'%7D%7D%7B%5Csum_%7Bc'%7D%20x_%7Bc'p%7D%20%5C;%20/%20%5C;%20%5Csum_%7Bc',p'%7D%20x_%7Bc'p'%7D%7D%0A"></p>
<p>In words: <img src="https://latex.codecogs.com/png.latex?%5Cmathrm%7BRCA%7D_%7Bcp%7D"> is country <code>c</code>’s share of product <code>p</code>’s world exports, divided by country <code>c</code>’s share of all world trade. If country <code>c</code> specialises in product <code>p</code> more than its overall trade footprint would predict, <img src="https://latex.codecogs.com/png.latex?%5Cmathrm%7BRCA%7D_%7Bcp%7D%20%3E%201">.</p>
<p>Binarise to get the <strong>specialisation matrix</strong>:</p>
<p><img src="https://latex.codecogs.com/png.latex?%0AM_%7Bcp%7D%20%5C;=%5C;%20%5Cmathbb%7B1%7D%5C%7B%5Cmathrm%7BRCA%7D_%7Bcp%7D%20%5Cgeq%201%5C%7D%0A"></p>
<p>This is the only place magnitude is collapsed into a yes/no. From <img src="https://latex.codecogs.com/png.latex?M"> we get diversity and ubiquity directly as row and column sums:</p>
<p><img src="https://latex.codecogs.com/png.latex?%0Ak_%7Bc,0%7D%20%5C;=%5C;%20%5Csum_p%20M_%7Bcp%7D%20%5Cquad%5Ctext%7B(diversity%20of%20%7Dc%5Ctext%7B)%7D,%20%5Cqquad%0Ak_%7Bp,0%7D%20%5C;=%5C;%20%5Csum_c%20M_%7Bcp%7D%20%5Cquad%5Ctext%7B(ubiquity%20of%20%7Dp%5Ctext%7B)%7D.%0A"></p>
<p>The Method of Reflections refines these by iteratively averaging each side against the other:</p>
<p><img src="https://latex.codecogs.com/png.latex?%0Ak_%7Bc,N%7D%20%5C;=%5C;%20%5Cfrac%7B1%7D%7Bk_%7Bc,0%7D%7D%20%5Csum_p%20M_%7Bcp%7D%5C,%20k_%7Bp,N-1%7D%0A"> <img src="https://latex.codecogs.com/png.latex?%0Ak_%7Bp,N%7D%20%5C;=%5C;%20%5Cfrac%7B1%7D%7Bk_%7Bp,0%7D%7D%20%5Csum_c%20M_%7Bcp%7D%5C,%20k_%7Bc,N-1%7D%0A"></p>
<p>The semantics shift at every step. At <img src="https://latex.codecogs.com/png.latex?N%7B=%7D1">, <img src="https://latex.codecogs.com/png.latex?k_%7Bc,1%7D"> is “the average ubiquity of my products” — high if I export common things, low if I export rare ones. At <img src="https://latex.codecogs.com/png.latex?N%7B=%7D2">, <img src="https://latex.codecogs.com/png.latex?k_%7Bc,2%7D"> is “the average diversity of the countries that make my products” — high if my products are made by economies that themselves make many things. Continue this and the iteration converges; the <strong>Economic Complexity Index</strong> is the converged <img src="https://latex.codecogs.com/png.latex?k_c"> (z-scored), the <strong>Product Complexity Index</strong> is the converged <img src="https://latex.codecogs.com/png.latex?k_p"> (z-scored).</p>
<div class="takeaway">
<p><strong>The method is recursive co-clustering.</strong> It treats the trade matrix as a bipartite graph between countries and products, and each iteration is one round of belief propagation: countries pass diversity messages to their products; products pass ubiquity messages back. ECI is the steady-state of this message-passing.</p>
</div>
</section>
<section id="from-iteration-to-eigenvector" class="level2">
<h2 class="anchored" data-anchor-id="from-iteration-to-eigenvector">3. From iteration to eigenvector</h2>
<p>The iteration has a closed form. Stack the country values into the country-side similarity matrix:</p>
<p><img src="https://latex.codecogs.com/png.latex?%0AW_c%20%5C;=%5C;%20D_c%5E%7B-1%7D%5C,%20M%5C,%20D_p%5E%7B-1%7D%5C,%20M%5E%5Ctop%0A"></p>
<p>where <img src="https://latex.codecogs.com/png.latex?D_c"> and <img src="https://latex.codecogs.com/png.latex?D_p"> are diagonal matrices of diversity and ubiquity. Then <img src="https://latex.codecogs.com/png.latex?k_%7Bc,N+2%7D%20=%20W_c%5C,%20k_%7Bc,N%7D">, so iterating the Method of Reflections is the same as repeatedly multiplying by <img src="https://latex.codecogs.com/png.latex?W_c">.</p>
<p><img src="https://latex.codecogs.com/png.latex?W_c"> is row-stochastic (its rows sum to 1, by construction), so its largest eigenvalue is exactly 1 and its largest eigenvector is the constant vector. The <strong>second eigenvector</strong> carries the only useful structure — the relative positions of countries within the second-largest eigendirection. That eigenvector, standardised to mean zero and unit variance, <strong>is the Economic Complexity Index.</strong></p>
<p>Symmetrically, <img src="https://latex.codecogs.com/png.latex?W_p%20=%20D_p%5E%7B-1%7D%20M%5E%5Ctop%20D_c%5E%7B-1%7D%20M"> gives PCI as its second eigenvector.</p>
<div class="takeaway">
<p><strong>This is PCA’s cousin.</strong> ECI is to a normalised trade-similarity matrix what the second principal component is to a centred covariance matrix: the eigendirection that maximally separates the rows. The dominant component carries no information (it’s constant); the second carries everything.</p>
</div>
</section>
<section id="implementing-it" class="level2">
<h2 class="anchored" data-anchor-id="implementing-it">4. Implementing it</h2>
<p>Forty lines of pandas, give or take. Load the Atlas HS92 country × HS2 × year trade data, compute RCA, binarise, build <img src="https://latex.codecogs.com/png.latex?W_c"> and <img src="https://latex.codecogs.com/png.latex?W_p">, take their second eigenvectors:</p>
<div id="e3df50e4" class="cell" data-execution_count="2">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb1-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Illustrative implementation — RCA, Mcp, and the eigendecomposition.</span></span>
<span id="cb1-2"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> numpy <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> np, pandas <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pd</span>
<span id="cb1-3"></span>
<span id="cb1-4">df <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pd.read_csv(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"hs92_country_product_year_2.csv"</span>,</span>
<span id="cb1-5">                 dtype<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>{<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"product_hs92_code"</span>: <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">str</span>})</span>
<span id="cb1-6"></span>
<span id="cb1-7"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> compute_mcp_for_year(df_year, min_country_total<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.0</span>):</span>
<span id="cb1-8">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Country filter (drop tiny exporters)</span></span>
<span id="cb1-9">    country_totals <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> df_year.groupby(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"country_iso3_code"</span>)[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"export_value"</span>].<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>()</span>
<span id="cb1-10">    qualifying <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> country_totals[country_totals <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> min_country_total].index</span>
<span id="cb1-11">    df_year <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> df_year[df_year[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"country_iso3_code"</span>].isin(qualifying)]</span>
<span id="cb1-12"></span>
<span id="cb1-13">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Balassa RCA</span></span>
<span id="cb1-14">    c_tot <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> df_year.groupby(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"country_iso3_code"</span>)[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"export_value"</span>].<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>()</span>
<span id="cb1-15">    p_tot <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> df_year.groupby(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"product_hs92_code"</span>)[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"export_value"</span>].<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>()</span>
<span id="cb1-16">    w_tot <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> df_year[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"export_value"</span>].<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>()</span>
<span id="cb1-17"></span>
<span id="cb1-18">    d <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> df_year.copy()</span>
<span id="cb1-19">    d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"c_tot"</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"country_iso3_code"</span>].<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">map</span>(c_tot)</span>
<span id="cb1-20">    d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"p_tot"</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"product_hs92_code"</span>].<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">map</span>(p_tot)</span>
<span id="cb1-21">    d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"rca"</span>]   <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"export_value"</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"c_tot"</span>]) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> (d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"p_tot"</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> w_tot)</span>
<span id="cb1-22">    d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"mcp"</span>]   <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (d[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"rca"</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>).astype(<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">int</span>)</span>
<span id="cb1-23"></span>
<span id="cb1-24">    M <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> d.pivot(index<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"country_iso3_code"</span>, columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"product_hs92_code"</span>,</span>
<span id="cb1-25">                values<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"mcp"</span>).fillna(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>).astype(<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">int</span>)</span>
<span id="cb1-26">    d_c <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> M.<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>(axis<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span> u_p <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> M.<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>(axis<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)</span>
<span id="cb1-27">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Drop countries with no qualifying products</span></span>
<span id="cb1-28">    M <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> M.loc[d_c[d_c <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>].index, u_p[u_p <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>].index]</span>
<span id="cb1-29">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> M, M.<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>(axis<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>), M.<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>(axis<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)</span>
<span id="cb1-30"></span>
<span id="cb1-31"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> eci_pci(M, d_c, u_p):</span>
<span id="cb1-32">    M_np <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> M.values.astype(<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">float</span>)</span>
<span id="cb1-33">    W_c <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>d_c.values[:, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">None</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> M_np) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">@</span> (<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>u_p.values[:, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">None</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> M_np.T)</span>
<span id="cb1-34">    W_p <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>u_p.values[:, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">None</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> M_np.T) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">@</span> (<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>d_c.values[:, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">None</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> M_np)</span>
<span id="cb1-35"></span>
<span id="cb1-36">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Second-largest eigenvector of each</span></span>
<span id="cb1-37">    ev_c, vec_c <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> np.linalg.eig(W_c)</span>
<span id="cb1-38">    ev_p, vec_p <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> np.linalg.eig(W_p)</span>
<span id="cb1-39">    eci_raw <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> vec_c[:, np.argsort(<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span>ev_c.real)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]].real</span>
<span id="cb1-40">    pci_raw <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> vec_p[:, np.argsort(<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span>ev_p.real)[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>]].real</span>
<span id="cb1-41"></span>
<span id="cb1-42">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Standardise</span></span>
<span id="cb1-43">    eci <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (eci_raw <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> eci_raw.mean()) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> eci_raw.std()</span>
<span id="cb1-44">    pci <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (pci_raw <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span> pci_raw.mean()) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> pci_raw.std()</span>
<span id="cb1-45">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> pd.Series(eci, index<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>M.index), pd.Series(pci, index<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>M.columns)</span></code></pre></div></div>
</div>
<p>Validation: the Atlas of Economic Complexity ships its own ECI per country-year and PCI per product-year. Both should match a clean implementation up to a sign flip (eigenvectors are defined up to sign) and a standardisation convention. Run this across 30 years (1995–2024) and we get:</p>
<div class="cell" data-execution_count="3">
<div id="tbl-validation" class="cell quarto-float quarto-figure quarto-figure-center anchored" data-execution_count="3">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-validation-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;1: Mean correlation with Atlas’s shipped ECI and PCI, by Mcp regime. Country-level filter ($1B/yr total exports minimum) substantially improves agreement.
</figcaption>
<div aria-describedby="tbl-validation-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="2">
<table class="cell caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 36%">
<col style="width: 21%">
<col style="width: 21%">
<col style="width: 21%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;">Regime</th>
<th style="text-align: right;">Mean ECI–Atlas correlation</th>
<th style="text-align: right;">Mean PCI–Atlas correlation</th>
<th style="text-align: right;">Mean # of countries in Mcp</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Vanilla (RCA ≥ 1, no filter)</td>
<td style="text-align: right;">0.72</td>
<td style="text-align: right;">0.7</td>
<td style="text-align: right;">225</td>
</tr>
<tr class="even">
<td style="text-align: left;">Country-filtered (RCA ≥ 1, total exports ≥ $1B/yr)</td>
<td style="text-align: right;">0.78</td>
<td style="text-align: right;">0.71</td>
<td style="text-align: right;">153</td>
</tr>
</tbody>
</table>
</div>
</div>
</figure>
</div>
</div>
<p>A few things to notice. First, no implementation of the <em>linear</em> Method of Reflections at HS2 resolution will match Atlas to numerical precision, because Atlas’s published ECI is computed at HS4 (~1240 product categories) and uses a non-linear refinement (Tacchella et al.&nbsp;2012) — more on that in section 7. A ~0.72 correlation on the linear, HS2 version is what the paper-canonical algorithm produces. Second, the country filter helps a lot in recent years and modestly in older ones; we’ll see why in section 6.</p>
<p>For context, the top 15 countries by ECI in 2022 under the country-filtered regime are:</p>
<div class="cell" data-execution_count="4">
<div id="tbl-top15-2022" class="cell quarto-float quarto-figure quarto-figure-center anchored" data-execution_count="4">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-top15-2022-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;2: Top 15 countries by computed ECI (country-filtered MoR), 2022. The ‘usual suspects’ (Taiwan, Japan, Korea, Germany, Switzerland) cluster at the top; China sits at #13 — also where Atlas places it (#14).
</figcaption>
<div aria-describedby="tbl-top15-2022-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="3">
<table class="cell caption-top table table-sm table-striped small">
<thead>
<tr class="header">
<th style="text-align: left;">Country</th>
<th style="text-align: left;">ISO</th>
<th style="text-align: right;">Our ECI (z-score)</th>
<th style="text-align: right;">Atlas ECI</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Taiwan</td>
<td style="text-align: left;">TWN</td>
<td style="text-align: right;">2.78</td>
<td style="text-align: right;">1.84</td>
</tr>
<tr class="even">
<td style="text-align: left;">Japan</td>
<td style="text-align: left;">JPN</td>
<td style="text-align: right;">2.28</td>
<td style="text-align: right;">1.99</td>
</tr>
<tr class="odd">
<td style="text-align: left;">South Korea</td>
<td style="text-align: left;">KOR</td>
<td style="text-align: right;">2.16</td>
<td style="text-align: right;">1.77</td>
</tr>
<tr class="even">
<td style="text-align: left;">Hong Kong</td>
<td style="text-align: left;">HKG</td>
<td style="text-align: right;">2.1</td>
<td style="text-align: right;">1.33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Germany</td>
<td style="text-align: left;">DEU</td>
<td style="text-align: right;">2.09</td>
<td style="text-align: right;">1.52</td>
</tr>
<tr class="even">
<td style="text-align: left;">Switzerland</td>
<td style="text-align: left;">CHE</td>
<td style="text-align: right;">1.88</td>
<td style="text-align: right;">1.75</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Czech Republic</td>
<td style="text-align: left;">CZE</td>
<td style="text-align: right;">1.88</td>
<td style="text-align: right;">1.46</td>
</tr>
<tr class="even">
<td style="text-align: left;">Singapore</td>
<td style="text-align: left;">SGP</td>
<td style="text-align: right;">1.8</td>
<td style="text-align: right;">1.65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Slovenia</td>
<td style="text-align: left;">SVN</td>
<td style="text-align: right;">1.63</td>
<td style="text-align: right;">1.34</td>
</tr>
<tr class="even">
<td style="text-align: left;">Ireland</td>
<td style="text-align: left;">IRL</td>
<td style="text-align: right;">1.5</td>
<td style="text-align: right;">1.3</td>
</tr>
<tr class="odd">
<td style="text-align: left;">United Kingdom</td>
<td style="text-align: left;">GBR</td>
<td style="text-align: right;">1.44</td>
<td style="text-align: right;">1.4</td>
</tr>
<tr class="even">
<td style="text-align: left;">Mexico</td>
<td style="text-align: left;">MEX</td>
<td style="text-align: right;">1.36</td>
<td style="text-align: right;">0.91</td>
</tr>
<tr class="odd">
<td style="text-align: left;">China</td>
<td style="text-align: left;">CHN</td>
<td style="text-align: right;">1.3</td>
<td style="text-align: right;">1.36</td>
</tr>
<tr class="even">
<td style="text-align: left;">Austria</td>
<td style="text-align: left;">AUT</td>
<td style="text-align: right;">1.29</td>
<td style="text-align: right;">1.36</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Slovakia</td>
<td style="text-align: left;">SVK</td>
<td style="text-align: right;">1.26</td>
<td style="text-align: right;">1.21</td>
</tr>
</tbody>
</table>
</div>
</div>
</figure>
</div>
</div>
<p>The qualitative agreement with Atlas is very strong — Taiwan, Japan, Korea, Germany, Switzerland are the canonical “complex economies” of the trade literature, and they’re at the top under both implementations.</p>
</section>
<section id="china-hs85-tracing-the-iteration" class="level2">
<h2 class="anchored" data-anchor-id="china-hs85-tracing-the-iteration">5. China × HS85: tracing the iteration</h2>
<p>The empirical headline of the original paper was that high-ECI economies grow faster than their income would predict. China is the most-cited example: ECI rising sharply 1995–2010, GDP per capita following with a lag. Let me trace that rise mechanistically using the iteration values, picking <em>one specific product</em> to track alongside.</p>
<p>China’s biggest manufactured export in 2024 is HS85 — electrical machinery and electronics (27.9% of world exports of HS85 originated in China). Tracking <img src="https://latex.codecogs.com/png.latex?k_c%5B%5Ctext%7BCHN%7D%5D"> and <img src="https://latex.codecogs.com/png.latex?k_p%5B%5Ctext%7BHS85%7D%5D"> across iterations and years, here’s what happens to the key inputs:</p>
<div class="cell" data-execution_count="5">
<div id="tbl-china-hs85-summary" class="cell quarto-float quarto-figure quarto-figure-center anchored" data-execution_count="5">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-china-hs85-summary-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;3: Year-by-year summary of inputs and converged values for China × HS85. Note that China’s diversity (k_{c,0}) is essentially flat over 30 years — yet its complexity ranking nearly doubles.
</figcaption>
<div aria-describedby="tbl-china-hs85-summary-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="4">
<table class="cell caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 4%">
<col style="width: 12%">
<col style="width: 14%">
<col style="width: 14%">
<col style="width: 10%">
<col style="width: 17%">
<col style="width: 25%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: right;">Year</th>
<th style="text-align: right;"># countries in Mcp</th>
<th style="text-align: right;">Diversity(CHN) = k_c,0</th>
<th style="text-align: right;">Ubiquity(HS85) = k_p,0</th>
<th style="text-align: right;">Mcp[CHN, HS85]</th>
<th style="text-align: right;">k_c[CHN]_z at N=10 (≈ ECI)</th>
<th style="text-align: right;">k_p[HS85]_z at N=10 (sign-flipped, ≈ PCI)</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: right;">1995</td>
<td style="text-align: right;">109</td>
<td style="text-align: right;">46</td>
<td style="text-align: right;">15</td>
<td style="text-align: right;">0</td>
<td style="text-align: right;">0.82</td>
<td style="text-align: right;">1.99</td>
</tr>
<tr class="even">
<td style="text-align: right;">2000</td>
<td style="text-align: right;">117</td>
<td style="text-align: right;">45</td>
<td style="text-align: right;">18</td>
<td style="text-align: right;">1</td>
<td style="text-align: right;">0.76</td>
<td style="text-align: right;">2.02</td>
</tr>
<tr class="odd">
<td style="text-align: right;">2005</td>
<td style="text-align: right;">136</td>
<td style="text-align: right;">44</td>
<td style="text-align: right;">20</td>
<td style="text-align: right;">1</td>
<td style="text-align: right;">1.12</td>
<td style="text-align: right;">1.8</td>
</tr>
<tr class="even">
<td style="text-align: right;">2010</td>
<td style="text-align: right;">145</td>
<td style="text-align: right;">44</td>
<td style="text-align: right;">23</td>
<td style="text-align: right;">1</td>
<td style="text-align: right;">1.19</td>
<td style="text-align: right;">1.6</td>
</tr>
<tr class="odd">
<td style="text-align: right;">2015</td>
<td style="text-align: right;">150</td>
<td style="text-align: right;">43</td>
<td style="text-align: right;">20</td>
<td style="text-align: right;">1</td>
<td style="text-align: right;">1.3</td>
<td style="text-align: right;">1.49</td>
</tr>
<tr class="even">
<td style="text-align: right;">2020</td>
<td style="text-align: right;">154</td>
<td style="text-align: right;">41</td>
<td style="text-align: right;">20</td>
<td style="text-align: right;">1</td>
<td style="text-align: right;">1.68</td>
<td style="text-align: right;">1.7</td>
</tr>
<tr class="odd">
<td style="text-align: right;">2024</td>
<td style="text-align: right;">155</td>
<td style="text-align: right;">47</td>
<td style="text-align: right;">24</td>
<td style="text-align: right;">1</td>
<td style="text-align: right;">1.29</td>
<td style="text-align: right;">1.77</td>
</tr>
</tbody>
</table>
</div>
</div>
</figure>
</div>
</div>
<p>Three observations:</p>
<ol type="1">
<li><strong>China’s raw diversity barely moves.</strong> 46 sectors in 1995, 47 in 2024. The number of HS2 chapters China specialises in is essentially flat over the entire period.</li>
<li><strong>HS85 ubiquity rises</strong>: 15 countries in 1995 → 24 in 2024. More countries entered electronics over the period.</li>
<li><strong><code>Mcp[CHN, HS85]</code> flipped from 0 to 1 between 1995 and 2000.</strong> China didn’t have RCA in electrical machinery in 1995; it did from 2000.</li>
</ol>
<p>If you stopped at the raw counts, the obvious story would be “China stayed at the same complexity; HS85 got less exclusive”. Both wrong. Look at iteration <img src="https://latex.codecogs.com/png.latex?N%7B=%7D1"> specifically:</p>
<div class="cell" data-execution_count="6">
<div id="tbl-china-iteration" class="cell quarto-float quarto-figure quarto-figure-center anchored" data-execution_count="6">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-china-iteration-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;4: Iteration trajectory for China and HS85 in two snapshot years. The N=1 value for China — the average ubiquity of its products — drops sharply between 1995 and 2024, meaning China’s product mix became substantially rarer.
</figcaption>
<div aria-describedby="tbl-china-iteration-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="5">
<table class="cell caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 15%">
<col style="width: 20%">
<col style="width: 20%">
<col style="width: 21%">
<col style="width: 21%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: right;">Iteration N</th>
<th style="text-align: right;">1995 k_c[CHN]_z</th>
<th style="text-align: right;">2024 k_c[CHN]_z</th>
<th style="text-align: right;">1995 k_p[HS85]_z</th>
<th style="text-align: right;">2024 k_p[HS85]_z</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: right;">0</td>
<td style="text-align: right;">2.03</td>
<td style="text-align: right;">2.03</td>
<td style="text-align: right;">-1.01</td>
<td style="text-align: right;">-0.67</td>
</tr>
<tr class="even">
<td style="text-align: right;">1</td>
<td style="text-align: right;">-0.87</td>
<td style="text-align: right;">-2.25</td>
<td style="text-align: right;">-1.62</td>
<td style="text-align: right;">-1.39</td>
</tr>
<tr class="odd">
<td style="text-align: right;">2</td>
<td style="text-align: right;">0.98</td>
<td style="text-align: right;">1.37</td>
<td style="text-align: right;">-2.13</td>
<td style="text-align: right;">-1.62</td>
</tr>
<tr class="even">
<td style="text-align: right;">3</td>
<td style="text-align: right;">-0.52</td>
<td style="text-align: right;">-1.68</td>
<td style="text-align: right;">-0.61</td>
<td style="text-align: right;">0.12</td>
</tr>
<tr class="odd">
<td style="text-align: right;">4</td>
<td style="text-align: right;">0.84</td>
<td style="text-align: right;">1.31</td>
<td style="text-align: right;">-2.17</td>
<td style="text-align: right;">-1.87</td>
</tr>
<tr class="even">
<td style="text-align: right;">5</td>
<td style="text-align: right;">-0.39</td>
<td style="text-align: right;">-1.5</td>
<td style="text-align: right;">0.09</td>
<td style="text-align: right;">0.69</td>
</tr>
<tr class="odd">
<td style="text-align: right;">6</td>
<td style="text-align: right;">0.83</td>
<td style="text-align: right;">1.29</td>
<td style="text-align: right;">-2.1</td>
<td style="text-align: right;">-1.88</td>
</tr>
<tr class="even">
<td style="text-align: right;">7</td>
<td style="text-align: right;">-0.33</td>
<td style="text-align: right;">-1.43</td>
<td style="text-align: right;">0.62</td>
<td style="text-align: right;">0.95</td>
</tr>
<tr class="odd">
<td style="text-align: right;">8</td>
<td style="text-align: right;">0.82</td>
<td style="text-align: right;">1.29</td>
<td style="text-align: right;">-2.04</td>
<td style="text-align: right;">-1.83</td>
</tr>
<tr class="even">
<td style="text-align: right;">9</td>
<td style="text-align: right;">-0.3</td>
<td style="text-align: right;">-1.4</td>
<td style="text-align: right;">0.99</td>
<td style="text-align: right;">1.09</td>
</tr>
<tr class="odd">
<td style="text-align: right;">10</td>
<td style="text-align: right;">0.82</td>
<td style="text-align: right;">1.29</td>
<td style="text-align: right;">-1.99</td>
<td style="text-align: right;">-1.77</td>
</tr>
<tr class="even">
<td style="text-align: right;">11</td>
<td style="text-align: right;">-0.27</td>
<td style="text-align: right;">-1.38</td>
<td style="text-align: right;">1.26</td>
<td style="text-align: right;">1.18</td>
</tr>
<tr class="odd">
<td style="text-align: right;">12</td>
<td style="text-align: right;">0.81</td>
<td style="text-align: right;">1.3</td>
<td style="text-align: right;">-1.95</td>
<td style="text-align: right;">-1.73</td>
</tr>
</tbody>
</table>
</div>
</div>
</figure>
</div>
</div>
<p>The iteration alternates between “averaging the ubiquity of my products” (odd <img src="https://latex.codecogs.com/png.latex?N">, <img src="https://latex.codecogs.com/png.latex?k_c"> row) and “averaging the diversity of my products’ countries” (even <img src="https://latex.codecogs.com/png.latex?N">). In 1995, China’s <img src="https://latex.codecogs.com/png.latex?k_%7Bc,1%7D"> value is z-score <img src="https://latex.codecogs.com/png.latex?-0.87"> — its products are slightly below the global mean of ubiquity. By 2024, <img src="https://latex.codecogs.com/png.latex?k_%7Bc,1%7D"> is <img src="https://latex.codecogs.com/png.latex?-2.25"> — China’s products are <strong>much rarer than average</strong>. That single number is the whole story.</p>
<p>Concretely: in 1995, China specialised in textiles, apparel, and basic manufactured goods — the kind of products that 30+ other countries also export with RCA. By 2024, China’s basket still includes those, but also HS84 (machinery), HS85 (electronics), HS86 (railway equipment), HS90 (instruments). These are products only 15–25 countries specialise in. The composition shift — not the count — is what drives the iteration deeper into the “low ubiquity” direction.</p>
<p>By iteration <img src="https://latex.codecogs.com/png.latex?N%7B=%7D10">, this has compounded through the recursive structure (“rare products of countries that themselves make rare products”) and China’s complexity z-score has climbed from <img src="https://latex.codecogs.com/png.latex?+0.82"> to <img src="https://latex.codecogs.com/png.latex?+1.29">, with a peak of <img src="https://latex.codecogs.com/png.latex?+1.68"> around 2020.</p>
<div class="takeaway">
<p><strong>China’s rise in ECI is not diversification — it’s substitution.</strong> The algorithm doesn’t reward China for entering many new sectors (it didn’t); it rewards the shift in <em>what</em> it specialises in. A single bit flip (<img src="https://latex.codecogs.com/png.latex?M_%7B%5Ctext%7BCHN%7D,%20%5Ctext%7BHS85%7D%7D%20=%200%20%5Cto%201">), repeated across a handful of similar sectors, propagates through the recursion into a near-doubling of the complexity z-score. That is what the Method of Reflections is <em>for</em>: turning the identity of co-specialisations into a continuous quantity.</p>
</div>
<p>The full iteration trajectory across years:</p>
<div id="fig-iteration" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-iteration-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://adamczyk.ai/posts/method-of-reflections/hs85_iteration.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-iteration-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: China’s k_c and HS85’s k_p across iterations N, by year. Top: country values rise across iterations and years; bottom: HS85’s converged complexity drifts slightly as the sector becomes more ubiquitous.
</figcaption>
</figure>
</div>
<p>And the resulting ECI trajectory for China, against Atlas’s shipped values:</p>
<div id="fig-eci-traj" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-eci-traj-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://adamczyk.ai/posts/method-of-reflections/eci_trajectory.png" class="img-fluid figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-eci-traj-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: China’s ECI, 1995–2024. Both vanilla and country-filtered MoR reproduce the qualitative finding (rapid rise 1995–2010, plateau after). Country-filter is slightly closer to Atlas’s trajectory in recent years.
</figcaption>
</figure>
</div>
<p>The vanilla and country-filtered curves diverge in the 2005–2015 window — that’s the period where the vanilla algorithm starts amplifying micro-state noise (next section).</p>
</section>
<section id="where-it-bends-and-where-it-breaks" class="level2">
<h2 class="anchored" data-anchor-id="where-it-bends-and-where-it-breaks">6. Where it bends and where it breaks</h2>
<p>The two failure modes the original paper does not address. Both are intrinsic to the Balassa-RCA-plus-binarisation construction.</p>
<section id="failure-mode-1-micro-state-amplification" class="level3">
<h3 class="anchored" data-anchor-id="failure-mode-1-micro-state-amplification">Failure mode 1: micro-state amplification</h3>
<p>The vanilla top-15 in 2022 (no country filter):</p>
<div class="cell" data-execution_count="7">
<div id="tbl-vanilla-top15" class="cell quarto-float quarto-figure quarto-figure-center anchored" data-execution_count="7">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-vanilla-top15-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;5: Top 15 countries by ECI under vanilla MoR (no country filter), 2022. Six of fifteen are micro-territories — Tokelau, S. Georgia, Andorra, Cocos Islands, Bouvet Island, Vatican, Niue — that have no plausible claim to being world-leading complex economies.
</figcaption>
<div aria-describedby="tbl-vanilla-top15-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="6">
<table class="cell caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 39%">
<col style="width: 30%">
<col style="width: 13%">
<col style="width: 16%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;">Country</th>
<th style="text-align: left;">Population (approx.)</th>
<th style="text-align: right;">Our ECI</th>
<th style="text-align: right;">Atlas ECI</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Tokelau</td>
<td style="text-align: left;">1,500</td>
<td style="text-align: right;">3.06</td>
<td style="text-align: right;">0.97</td>
</tr>
<tr class="even">
<td style="text-align: left;">Taiwan</td>
<td style="text-align: left;">23M</td>
<td style="text-align: right;">2.47</td>
<td style="text-align: right;">1.84</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Japan</td>
<td style="text-align: left;">125M</td>
<td style="text-align: right;">1.98</td>
<td style="text-align: right;">1.99</td>
</tr>
<tr class="even">
<td style="text-align: left;">Hong Kong</td>
<td style="text-align: left;">7.5M</td>
<td style="text-align: right;">1.96</td>
<td style="text-align: right;">1.33</td>
</tr>
<tr class="odd">
<td style="text-align: left;">South Korea</td>
<td style="text-align: left;">52M</td>
<td style="text-align: right;">1.9</td>
<td style="text-align: right;">1.77</td>
</tr>
<tr class="even">
<td style="text-align: left;">S. Georgia &amp; Sandwich Islands</td>
<td style="text-align: left;">30</td>
<td style="text-align: right;">1.8</td>
<td style="text-align: right;">0.65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Germany</td>
<td style="text-align: left;">84M</td>
<td style="text-align: right;">1.77</td>
<td style="text-align: right;">1.52</td>
</tr>
<tr class="even">
<td style="text-align: left;">Andorra</td>
<td style="text-align: left;">80k</td>
<td style="text-align: right;">1.76</td>
<td style="text-align: right;">1.13</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Czech Republic</td>
<td style="text-align: left;">10.5M</td>
<td style="text-align: right;">1.65</td>
<td style="text-align: right;">1.46</td>
</tr>
<tr class="even">
<td style="text-align: left;">Cocos Islands</td>
<td style="text-align: left;">600</td>
<td style="text-align: right;">1.59</td>
<td style="text-align: right;">1.4</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Bouvet Island</td>
<td style="text-align: left;">0</td>
<td style="text-align: right;">1.57</td>
<td style="text-align: right;">0.51</td>
</tr>
<tr class="even">
<td style="text-align: left;">Vatican City</td>
<td style="text-align: left;">800</td>
<td style="text-align: right;">1.56</td>
<td style="text-align: right;">0.97</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Switzerland</td>
<td style="text-align: left;">8.7M</td>
<td style="text-align: right;">1.52</td>
<td style="text-align: right;">1.75</td>
</tr>
<tr class="even">
<td style="text-align: left;">Singapore</td>
<td style="text-align: left;">5.6M</td>
<td style="text-align: right;">1.47</td>
<td style="text-align: right;">1.65</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Niue</td>
<td style="text-align: left;">1,600</td>
<td style="text-align: right;">1.45</td>
<td style="text-align: right;">1.11</td>
</tr>
</tbody>
</table>
</div>
</div>
</figure>
</div>
</div>
<p>Tokelau (population 1,500), Bouvet Island (uninhabited), Vatican City — these aren’t credible “complex economies”; they’re algorithmic artefacts. They appear because vanilla RCA is permissive: a tiny exporter only needs to capture a tiny share of world exports of <em>some</em> product to qualify as “specialised” in it. Bouvet Island shipping a single container of a niche good in one year is enough to push its RCA above 1 for that product.</p>
<p>The Method of Reflections then amplifies this: a country with low diversity but <em>very specific</em> specialisations has its complexity boosted by every iteration that asks “what kind of company do your products keep?” — because the products that match the noise tend to be made by complex economies.</p>
<p><strong>The fix that doesn’t work.</strong> A first instinct is to add a per-flow filter: require <code>Mcp = 1</code> only if both <code>RCA ≥ 1</code> and the country has at least some absolute share (say 1%) of that product’s world exports. This banishes the micro-states from the top, but creates a <em>different</em> bias: it now rewards medium-sized economies that are heavily concentrated in a few large sectors. Bangladesh and Cambodia float to the top because they easily exceed 1% global share in apparel categories — at the expense of small but diverse economies like Switzerland or Slovenia.</p>
<p>The correlation with Atlas’s ECI under this regime drops from 0.72 to 0.29. The filter solved the visible problem and introduced an invisible one.</p>
<p><strong>The fix that works.</strong> Apply the filter at the <strong>country level</strong> instead: drop countries whose total annual exports are below some threshold ($1B is a reasonable starting point) <strong>before</strong> building <img src="https://latex.codecogs.com/png.latex?M">. This eliminates the micro-state noise source cleanly without touching the comparative-advantage mechanism. ECI–Atlas correlation in recent years jumps from 0.72 → 0.81; the top-15 looks like a real complex-economy list (table in section 4).</p>
</section>
<section id="failure-mode-2-hidden-giants" class="level3">
<h3 class="anchored" data-anchor-id="failure-mode-2-hidden-giants">Failure mode 2: hidden giants</h3>
<p>The mirror image. A country that dominates a sector <em>absolutely</em> but whose share of total world trade is large can fail the RCA test in sectors it actually leads.</p>
<p>China in 2022 had <strong>15.46% of all world exports</strong>. For RCA in any product to exceed 1, China needs <img src="https://latex.codecogs.com/png.latex?%5Cgeq%2015.46%5C%25"> of that product’s world exports. Anywhere below that threshold, the algorithm records <img src="https://latex.codecogs.com/png.latex?M_%7B%5Ctext%7BCHN%7D,%20p%7D%20=%200"> — China is “not specialised” — even when China is the world’s largest exporter of that product in dollar terms.</p>
<div class="cell" data-execution_count="8">
<div id="tbl-hidden-giants" class="cell quarto-float quarto-figure quarto-figure-center anchored" data-execution_count="8">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-hidden-giants-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;6: Sectors where China has ≥10% of world exports in 2022 but Mcp = 0. China is the world’s largest exporter of iron &amp; steel and a top-3 exporter of optical / medical instruments — but the algorithm counts neither as a Chinese specialisation.
</figcaption>
<div aria-describedby="tbl-hidden-giants-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output cell-output-display cell-output-markdown" data-execution_count="7">
<table class="cell caption-top table table-sm table-striped small">
<colgroup>
<col style="width: 6%">
<col style="width: 44%">
<col style="width: 30%">
<col style="width: 12%">
<col style="width: 6%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: right;">HS2</th>
<th style="text-align: left;">Sector</th>
<th style="text-align: left;">China share of world exports</th>
<th style="text-align: right;">China RCA</th>
<th style="text-align: right;">Mcp</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: right;">40</td>
<td style="text-align: left;">Rubber and articles</td>
<td style="text-align: left;">14.53%</td>
<td style="text-align: right;">0.94</td>
<td style="text-align: right;">0</td>
</tr>
<tr class="even">
<td style="text-align: right;">72</td>
<td style="text-align: left;">Iron and steel</td>
<td style="text-align: left;">13.77%</td>
<td style="text-align: right;">0.89</td>
<td style="text-align: right;">0</td>
</tr>
<tr class="odd">
<td style="text-align: right;">35</td>
<td style="text-align: left;">Albuminoidal substances; glues; enzymes</td>
<td style="text-align: left;">13.08%</td>
<td style="text-align: right;">0.85</td>
<td style="text-align: right;">0</td>
</tr>
<tr class="even">
<td style="text-align: right;">20</td>
<td style="text-align: left;">Preparations of vegetables, fruit, nuts</td>
<td style="text-align: left;">13.07%</td>
<td style="text-align: right;">0.85</td>
<td style="text-align: right;">0</td>
</tr>
<tr class="odd">
<td style="text-align: right;">90</td>
<td style="text-align: left;">Optical, photographic, medical instruments</td>
<td style="text-align: left;">12.35%</td>
<td style="text-align: right;">0.8</td>
<td style="text-align: right;">0</td>
</tr>
<tr class="even">
<td style="text-align: right;">07</td>
<td style="text-align: left;">Edible vegetables, roots and tubers</td>
<td style="text-align: left;">12.02%</td>
<td style="text-align: right;">0.78</td>
<td style="text-align: right;">0</td>
</tr>
<tr class="odd">
<td style="text-align: right;">49</td>
<td style="text-align: left;">Printed books, newspapers, pictures</td>
<td style="text-align: left;">11.88%</td>
<td style="text-align: right;">0.77</td>
<td style="text-align: right;">0</td>
</tr>
<tr class="even">
<td style="text-align: right;">32</td>
<td style="text-align: left;">Tanning/dyeing extracts; dyes, pigments; inks</td>
<td style="text-align: left;">11.71%</td>
<td style="text-align: right;">0.76</td>
<td style="text-align: right;">0</td>
</tr>
<tr class="odd">
<td style="text-align: right;">44</td>
<td style="text-align: left;">Wood and articles of wood</td>
<td style="text-align: left;">10.27%</td>
<td style="text-align: right;">0.67</td>
<td style="text-align: right;">0</td>
</tr>
</tbody>
</table>
</div>
</div>
</figure>
</div>
</div>
<p>Iron and steel (HS72) is the clean example. China produces more than half of the world’s crude steel and is the world’s largest steel exporter by a wide margin. But its <strong>export share</strong> of HS72 in 2022 was 13.77%, below its 15.46% overall trade share. So <img src="https://latex.codecogs.com/png.latex?%5Cmathrm%7BRCA%7D_%7B%5Ctext%7BCHN%7D,%2072%7D%20=%200.89"> and the algorithm records China as <em>unspecialised</em> in steel.</p>
<p>This is not a bug in the implementation; it is a feature of the Balassa formula. RCA measures <strong>specialisation relative to a country’s own size</strong>: it asks whether the country is more focused on this product than its general trade footprint would predict. China is so big across so many sectors that even sectors it dominates absolutely look “unspecialised” by Balassa’s standard.</p>
<p>For Hidalgo &amp; Hausmann’s stated purpose — measuring <em>capability structure</em> — this is conceptually defensible. The argument is that a country with diffuse high market share isn’t <em>specialised</em> in any single product; it has a wide capability base. China doing 13.77% of steel and 13.07% of canned vegetables <em>does</em> suggest a wider capability base than Brazil doing 50% of iron ore and nothing else.</p>
<p>But for any analysis whose question is <strong>“who dominates which sectors”</strong> — sectoral market structure, geopolitical concentration, supply-chain fragility — the binarised RCA + MoR pipeline is exactly the wrong tool. China’s hidden-giant sectors don’t enter the complexity story at all, even though they are the centre of every other narrative about Chinese export power.</p>
<div class="takeaway">
<p><strong>The two failure modes are symmetric.</strong> Micro-states get <em>too many</em> products counted as specialisations (Tokelau’s noise can clear the low RCA bar); hidden giants get <em>too few</em> (China’s iron-and-steel can’t clear the high RCA bar). Both originate in the same mechanism: the RCA threshold scales with country size, and Balassa’s formula was designed for a question — what is a country relatively focused on? — that breaks at both extremes of size.</p>
</div>
</section>
</section>
<section id="what-works-better-and-where-the-field-went" class="level2">
<h2 class="anchored" data-anchor-id="what-works-better-and-where-the-field-went">7. What works better, and where the field went</h2>
<p>The micro-state fix from section 6.1 (country-level threshold) is necessary and sufficient for clean rankings on the <em>linear</em> Method of Reflections. The hidden-giant issue is not fixable inside the Balassa + binarisation paradigm — it’s a property of the construction. The follow-up literature has gone in two directions.</p>
<p><strong>Non-linear iterations.</strong> Tacchella, Cristelli, Caldarelli, Gabrielli &amp; Pietronero (2012, <em>Scientific Reports</em>) propose a non-linear update that dampens the micro-state amplification algorithmically rather than via a pre-filter. Their “fitness” measure also handles some hidden-giant cases more gracefully because a country’s fitness depends on the <em>complexity</em> of its products in a multiplicative way that doesn’t binarise on RCA in quite the same way.</p>
<p><strong>Higher resolution.</strong> The Harvard Atlas computes its canonical ECI at HS4 (~1240 products) rather than HS2 (~97 chapters). At HS4, the hidden-giant problem shrinks: HS85 contains sub-codes like HS8542 (integrated circuits), HS8517 (telephones), HS8528 (monitors) — each its own product. China’s share of HS8542 is much higher than 15.46%, so RCA clears comfortably and Mcp = 1. The micro-state problem also softens at higher resolution, because random products at HS4 are far less likely to hit RCA ≥ 1 spuriously than at HS2.</p>
<p>In other words: the original paper’s algorithm works best on <strong>fine product resolution, after country-level filtering, possibly with a non-linear refinement</strong>. Each of these three choices is its own research thread.</p>
</section>
<section id="what-i-built-and-what-id-build-next" class="level2">
<h2 class="anchored" data-anchor-id="what-i-built-and-what-id-build-next">What I built and what I’d build next</h2>
<p>For a reader interested in actually running this — the full pipeline is ~150 lines: data download from Harvard Dataverse, RCA + Mcp + eigendecomposition, validation against Atlas, one figure of China’s iteration trajectory. Total compute is a few seconds on a laptop for the full 30-year × 232-country × 97-product matrix at HS2.</p>
<p>The natural next steps from here, in increasing difficulty:</p>
<ol type="1">
<li><strong>Repeat at HS4</strong> to see whether China’s ECI rise looks the same, and to recover the hidden giants. The Atlas ships an HS4 file; the same code reads it after changing one filename.</li>
<li><strong>Implement the Tacchella et al.&nbsp;(2012) non-linear iteration</strong> and compare its rankings with both vanilla MoR and Atlas.</li>
<li><strong>Replace Balassa with an alternative RCA</strong> that doesn’t scale with country size — Hoen &amp; Oosterhaven (2006) propose an additive version. Compare ECI under each.</li>
<li><strong>Apply the framework to a different question entirely</strong> — for example, ranking <em>cities</em> within a country by complexity of their patent applications. The method generalises to any bipartite specialisation matrix.</li>
</ol>
<p>The deepest takeaway from running this end-to-end is that the Method of Reflections is <strong>simple, robust, and computationally trivial — but it requires two non-obvious pre-processing choices to give defensible answers</strong> (country filter, fine resolution). The original paper does not flag either of these, and the failure modes you observe without them are not subtle.</p>
</section>
<section id="sources" class="level2">
<h2 class="anchored" data-anchor-id="sources">Sources</h2>
<ul>
<li>Hidalgo, C. A., &amp; Hausmann, R. (2009). <em>The building blocks of economic complexity</em>. <strong>PNAS</strong>, 106(26), 10570–10575. <a href="https://doi.org/10.1073/pnas.0900943106">DOI</a></li>
<li>Balassa, B. (1965). <em>Trade liberalisation and “revealed” comparative advantage</em>. <strong>The Manchester School</strong>, 33(2), 99–123.</li>
<li>Tacchella, A., Cristelli, M., Caldarelli, G., Gabrielli, A., &amp; Pietronero, L. (2012). <em>A new metrics for countries’ fitness and products’ complexity</em>. <strong>Scientific Reports</strong>, 2, 723.</li>
<li>Hoen, A. R., &amp; Oosterhaven, J. (2006). <em>On the measurement of comparative advantage</em>. <strong>The Annals of Regional Science</strong>, 40(3), 677–691.</li>
<li>Harvard Growth Lab. <em>Atlas of Economic Complexity — International Trade Data (HS, 92)</em>. <strong>Harvard Dataverse</strong>, doi:10.7910/DVN/T4CHWJ, v18.0.</li>
</ul>


</section>

 ]]></description>
  <category>Economic complexity</category>
  <category>Spectral methods</category>
  <category>Python</category>
  <category>Trade data</category>
  <guid>https://adamczyk.ai/posts/method-of-reflections/</guid>
  <pubDate>Thu, 04 Jun 2026 22:00:00 GMT</pubDate>
  <media:content url="https://adamczyk.ai/posts/method-of-reflections/eci_trajectory.png" medium="image" type="image/png" height="65" width="144"/>
</item>
<item>
  <title>The Anatomy of Amazon: A Retailer That Earns Like a Cloud Company</title>
  <dc:creator>Michał Adamczyk</dc:creator>
  <link>https://adamczyk.ai/posts/amazon-anatomy/</link>
  <description><![CDATA[ 






<blockquote class="blockquote">
<p><strong>Summary.</strong> Amazon looks like the world’s biggest store, but it is run, financially, like a cloud-computing company with a very large logistics hobby. In 2025, <strong>AWS was ~18% of revenue and ~57% of operating profit.</strong></p>
</blockquote>
<p>Amazon is the rare company that is simultaneously a low-margin retailer, a high-margin software business, and a fast-growing advertising platform — all consolidated into a single income statement. That combination makes its headline numbers genuinely misleading: total revenue growth says almost nothing about why Amazon is profitable, because the profit lives somewhere very specific. The segment mix tells the real story.</p>
<p>What follows decomposes that story — where the revenue comes from, where the costs go, how the picture has shifted since 2021, and whether the reported profits actually turn into cash. The segment and cost figures are taken from Amazon’s FY2025 Form 10-K and Q1 2026 results; the stock prices are pulled live from Yahoo Finance.</p>
<section id="the-headline-contradiction" class="level2">
<h2 class="anchored" data-anchor-id="the-headline-contradiction">1. The headline contradiction</h2>
<p>The single chart that frames everything: for fiscal 2025, each segment’s share of <strong>revenue</strong> sits next to its share of <strong>operating profit</strong>.</p>
<div id="cell-fig-mix" class="cell" data-execution_count="2">
<div class="cell-output cell-output-display">
<div id="fig-mix" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-mix-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://adamczyk.ai/posts/amazon-anatomy/index_files/figure-html/fig-mix-output-1.png" width="807" height="372" class="figure-img">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-mix-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: Revenue mix vs.&nbsp;operating-profit mix, FY2025. AWS punches far above its revenue weight.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="takeaway">
<p><strong>AWS is ~18% of sales but ~57% of operating profit.</strong> North America does the opposite: ~59% of sales, ~37% of profit. The retail machine generates the <em>volume</em>; the cloud generates the <em>margin</em>.</p>
</div>
</section>
<section id="where-the-money-goes" class="level2">
<h2 class="anchored" data-anchor-id="where-the-money-goes">2. Where the money goes</h2>
<p>The cleanest way to show a company’s cost structure is a <strong>waterfall</strong> from net sales down to operating income — each step is a category of spend that Amazon discloses on the face of its income statement.</p>
<div id="cell-fig-waterfall" class="cell" data-execution_count="3">
<div id="fig-waterfall" class="cell-output cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-waterfall-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>            <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG"></script><script>if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}</script>                <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script>                <div id="e2006b3e-25eb-4d72-a410-ffc4c61298c1" class="plotly-graph-div" style="height:460px; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("e2006b3e-25eb-4d72-a410-ffc4c61298c1")) {                    Plotly.newPlot(                        "e2006b3e-25eb-4d72-a410-ffc4c61298c1",                        [{"connector":{"line":{"color":"rgb(160,160,160)"}},"decreasing":{"marker":{"color":"#d1604a"}},"increasing":{"marker":{"color":"#2c6e9b"}},"measure":["relative","relative","relative","relative","relative","relative","relative","total"],"orientation":"v","text":["$717B","$-356B","$-109B","$-109B","$-47B","$-11B","$-5B","$80B"],"textposition":"outside","totals":{"marker":{"color":"#3a3a3a"}},"x":["Net sales","Cost of sales","Fulfillment","Technology & infrastructure","Sales & marketing","General & administrative","Other operating, net","Operating income"],"y":[716.924,-356.414,-109.074,-108.521,-47.129,-11.172,-4.639,79.975],"type":"waterfall"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"margin":{"b":0,"l":0,"r":0,"t":30},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"margin":{"t":60,"b":40},"title":{"text":"What happens to every dollar of Amazon revenue (FY2025)"},"yaxis":{"title":{"text":"US$ billions"}},"height":460},                        {"responsive": true}                    ).then(function(){
                            
var gd = document.getElementById('e2006b3e-25eb-4d72-a410-ffc4c61298c1');
var x = new MutationObserver(function (mutations, observer) {{
        var display = window.getComputedStyle(gd).display;
        if (!display || display === 'none') {{
            console.log([gd, 'removed!']);
            Plotly.purge(gd);
            observer.disconnect();
        }}
}});

// Listen for the removal of the full notebook cells
var notebookContainer = gd.closest('#notebook-container');
if (notebookContainer) {{
    x.observe(notebookContainer, {childList: true});
}}

// Listen for the clearing of the current output cell
var outputEl = gd.closest('.output');
if (outputEl) {{
    x.observe(outputEl, {childList: true});
}}

                        })                };            </script>        </div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-waterfall-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: From $716.9B of net sales to <img src="https://latex.codecogs.com/png.latex?80.0B%20of%20operating%20income,%20FY2025%20(US"> billions).
</figcaption>
</figure>
</div>
</div>
<p>A couple of things jump out. <strong>Cost of sales</strong> (≈50% of revenue) is the physical reality of being a retailer — the goods themselves and shipping. But notice <strong>technology &amp; infrastructure</strong>: at ~$109B it has nearly caught up with <strong>fulfillment</strong> (~$109B) and is the fastest-growing line, reflecting the capex and depreciation behind AWS and the current AI build-out.</p>
</section>
<section id="the-trend-how-the-mix-shifted-20212025" class="level2">
<h2 class="anchored" data-anchor-id="the-trend-how-the-mix-shifted-20212025">3. The trend: how the mix shifted, 2021–2025</h2>
<p>A single year is a snapshot. The interesting story is the <em>trajectory</em>.</p>
<div id="cell-fig-revtrend" class="cell" data-execution_count="4">
<div id="fig-revtrend" class="cell-output cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-revtrend-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>            <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG"></script><script>if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}</script>                <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script>                <div id="c9a24785-0336-4a56-a74a-13b8c204a883" class="plotly-graph-div" style="height:440px; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("c9a24785-0336-4a56-a74a-13b8c204a883")) {                    Plotly.newPlot(                        "c9a24785-0336-4a56-a74a-13b8c204a883",                        [{"fillpattern":{"shape":""},"hovertemplate":"segment=North America\u003cbr\u003e=%{x}\u003cbr\u003eNet sales (US$B)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"North America","line":{"color":"#2c6e9b"},"marker":{"symbol":"circle"},"mode":"lines","name":"North America","orientation":"v","showlegend":true,"stackgroup":"1","x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"F9nO91N9cUCuR+F6FL5zQGiR7Xw\u002fDXZAy6FFtvM3eEB7FK5H4aR6QA=="},"yaxis":"y","type":"scatter"},{"fillpattern":{"shape":""},"hovertemplate":"segment=International\u003cbr\u003e=%{x}\u003cbr\u003eNet sales (US$B)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"International","line":{"color":"#6aa9c9"},"marker":{"symbol":"circle"},"mode":"lines","name":"International","orientation":"v","showlegend":true,"stackgroup":"1","x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"7nw\u002fNV7yX0CcxCCwcoBdQGZmZmZmZmBAokW28\u002f3cYUD4U+OlmzxkQA=="},"yaxis":"y","type":"scatter"},{"fillpattern":{"shape":""},"hovertemplate":"segment=AWS\u003cbr\u003e=%{x}\u003cbr\u003eNet sales (US$B)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"AWS","line":{"color":"#e8833a"},"marker":{"symbol":"circle"},"mode":"lines","name":"AWS","orientation":"v","showlegend":true,"stackgroup":"1","x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"YOXQItsZT0CgGi\u002fdJAZUQJzEILBysFZA3SQGgZXjWkAzMzMzMxdgQA=="},"yaxis":"y","type":"scatter"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"margin":{"b":0,"l":0,"r":0,"t":30},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":""},"tickvals":[2021,2022,2023,2024,2025]},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Net sales (US$B)"}},"legend":{"title":{"text":"segment"},"tracegroupgap":0},"title":{"text":"Amazon net sales by segment, 2021–2025"},"hovermode":"x unified","height":440},                        {"responsive": true}                    ).then(function(){
                            
var gd = document.getElementById('c9a24785-0336-4a56-a74a-13b8c204a883');
var x = new MutationObserver(function (mutations, observer) {{
        var display = window.getComputedStyle(gd).display;
        if (!display || display === 'none') {{
            console.log([gd, 'removed!']);
            Plotly.purge(gd);
            observer.disconnect();
        }}
}});

// Listen for the removal of the full notebook cells
var notebookContainer = gd.closest('#notebook-container');
if (notebookContainer) {{
    x.observe(notebookContainer, {childList: true});
}}

// Listen for the clearing of the current output cell
var outputEl = gd.closest('.output');
if (outputEl) {{
    x.observe(outputEl, {childList: true});
}}

                        })                };            </script>        </div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-revtrend-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: Segment revenue, 2021–2025 (US$ billions). Hover for exact values; click legend to isolate a segment.
</figcaption>
</figure>
</div>
</div>
<p>Revenue growth is broad-based — every segment is bigger. But revenue is the boring part. Operating income is where the real regime change lives:</p>
<div id="cell-fig-oitrend" class="cell" data-execution_count="5">
<div id="fig-oitrend" class="cell-output cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-oitrend-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>            <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG"></script><script>if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}</script>                <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script>                <div id="8ca5a254-3ae1-48ad-a358-276faef233f5" class="plotly-graph-div" style="height:440px; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("8ca5a254-3ae1-48ad-a358-276faef233f5")) {                    Plotly.newPlot(                        "8ca5a254-3ae1-48ad-a358-276faef233f5",                        [{"alignmentgroup":"True","hovertemplate":"segment=North America\u003cbr\u003e=%{x}\u003cbr\u003eOperating income (US$B)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"North America","marker":{"color":"#2c6e9b","pattern":{"shape":""}},"name":"North America","offsetgroup":"North America","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"L90kBoEVHUAtsp3vp8YGwBsv3SQGwS1AZDvfT433OEBYObTIdp49QA=="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"segment=International\u003cbr\u003e=%{x}\u003cbr\u003eOperating income (US$B)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"International","marker":{"color":"#6aa9c9","pattern":{"shape":""}},"name":"International","offsetgroup":"International","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"xSCwcmiR7b+WQ4ts5\u002fsewHNoke18PwXAvHSTGARWDkAAAAAAAAATQA=="},"yaxis":"y","type":"bar"},{"alignmentgroup":"True","hovertemplate":"segment=AWS\u003cbr\u003e=%{x}\u003cbr\u003eOperating income (US$B)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"AWS","marker":{"color":"#e8833a","pattern":{"shape":""}},"name":"AWS","offsetgroup":"AWS","orientation":"v","showlegend":true,"textposition":"auto","x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"1XjpJjGIMkCe76fGS9c2QKjGSzeJoThAmG4Sg8DqQ0AhsHJokc1GQA=="},"yaxis":"y","type":"bar"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"margin":{"b":0,"l":0,"r":0,"t":30},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":""},"tickvals":[2021,2022,2023,2024,2025]},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Operating income (US$B)"}},"legend":{"title":{"text":"segment"},"tracegroupgap":0},"title":{"text":"Amazon operating income by segment, 2021–2025"},"barmode":"group","shapes":[{"line":{"color":"black","width":1},"type":"line","x0":0,"x1":1,"xref":"x domain","y0":0,"y1":0,"yref":"y"}],"hovermode":"x unified","height":440},                        {"responsive": true}                    ).then(function(){
                            
var gd = document.getElementById('8ca5a254-3ae1-48ad-a358-276faef233f5');
var x = new MutationObserver(function (mutations, observer) {{
        var display = window.getComputedStyle(gd).display;
        if (!display || display === 'none') {{
            console.log([gd, 'removed!']);
            Plotly.purge(gd);
            observer.disconnect();
        }}
}});

// Listen for the removal of the full notebook cells
var notebookContainer = gd.closest('#notebook-container');
if (notebookContainer) {{
    x.observe(notebookContainer, {childList: true});
}}

// Listen for the clearing of the current output cell
var outputEl = gd.closest('.output');
if (outputEl) {{
    x.observe(outputEl, {childList: true});
}}

                        })                };            </script>        </div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-oitrend-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: Segment operating income, 2021–2025 (US$ billions). 2022 was a near-death experience for the retail segments.
</figcaption>
</figure>
</div>
</div>
<div class="takeaway">
<p><strong>2022 was brutal for retail.</strong> North America (−$2.8B) and International (−$7.7B) both lost money as Amazon over-built capacity during the pandemic boom and then ate the fixed costs. AWS profit ($22.8B) is the only reason the company stayed comfortably profitable that year. By 2025 retail had recovered, but AWS still earns more than the other two segments <em>combined</em>.</p>
</div>
<p>To make the margin story explicit, here are segment <strong>operating margins</strong> — operating income as a percentage of that segment’s own sales:</p>
<div id="cell-fig-margin" class="cell" data-execution_count="6">
<div id="fig-margin" class="cell-output cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-margin-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>            <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG"></script><script>if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}</script>                <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script>                <div id="524694e6-0215-478e-a0a7-628326518423" class="plotly-graph-div" style="height:440px; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("524694e6-0215-478e-a0a7-628326518423")) {                    Plotly.newPlot(                        "524694e6-0215-478e-a0a7-628326518423",                        [{"hovertemplate":"segment=North America\u003cbr\u003e=%{x}\u003cbr\u003eOperating margin (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"North America","line":{"color":"#2c6e9b","dash":"solid"},"marker":{"symbol":"circle"},"mode":"lines+markers","name":"North America","orientation":"v","showlegend":true,"x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"m6DFFmTJBED7jDuLYdfsvyv3bLmy3RBA0Au2PMjFGUD4cec5l8obQA=="},"yaxis":"y","type":"scatter"},{"hovertemplate":"segment=International\u003cbr\u003e=%{x}\u003cbr\u003eOperating margin (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"International","line":{"color":"#6aa9c9","dash":"solid"},"marker":{"symbol":"circle"},"mode":"lines+markers","name":"International","orientation":"v","showlegend":true,"x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"Z3sg\u002fnQj579LET3GjUEawDI4H4PzMQDAyJhcR1o6BUADuGi43ngHQA=="},"yaxis":"y","type":"scatter"},{"hovertemplate":"segment=AWS\u003cbr\u003e=%{x}\u003cbr\u003eOperating margin (%)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"AWS","line":{"color":"#e8833a","dash":"solid"},"marker":{"symbol":"circle"},"mode":"lines+markers","name":"AWS","orientation":"v","showlegend":true,"x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"e+KptRLLPUCIsK4MXIQ8QNxUTI+2IztAGnbzPI6EQkA2X4n56bZBQA=="},"yaxis":"y","type":"scatter"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"margin":{"b":0,"l":0,"r":0,"t":30},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":""},"tickvals":[2021,2022,2023,2024,2025]},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Operating margin (%)"}},"legend":{"title":{"text":"segment"},"tracegroupgap":0},"title":{"text":"Operating margin by segment, 2021–2025"},"shapes":[{"line":{"color":"gray","dash":"dot","width":1},"type":"line","x0":0,"x1":1,"xref":"x domain","y0":0,"y1":0,"yref":"y"}],"hovermode":"x unified","height":440},                        {"responsive": true}                    ).then(function(){
                            
var gd = document.getElementById('524694e6-0215-478e-a0a7-628326518423');
var x = new MutationObserver(function (mutations, observer) {{
        var display = window.getComputedStyle(gd).display;
        if (!display || display === 'none') {{
            console.log([gd, 'removed!']);
            Plotly.purge(gd);
            observer.disconnect();
        }}
}});

// Listen for the removal of the full notebook cells
var notebookContainer = gd.closest('#notebook-container');
if (notebookContainer) {{
    x.observe(notebookContainer, {childList: true});
}}

// Listen for the clearing of the current output cell
var outputEl = gd.closest('.output');
if (outputEl) {{
    x.observe(outputEl, {childList: true});
}}

                        })                };            </script>        </div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-margin-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;5: Segment operating margin, 2021–2025. AWS operates on a different plane entirely.
</figcaption>
</figure>
</div>
</div>
<p>AWS runs at a <strong>~35% operating margin</strong> — software economics. North America has clawed its way to ~7%, and International to ~3%. These are <em>structurally</em> different businesses stapled together.</p>
</section>
<section id="what-the-market-did-with-all-this" class="level2">
<h2 class="anchored" data-anchor-id="what-the-market-did-with-all-this">4. What the market did with all this</h2>
<div id="cell-fig-stock" class="cell" data-execution_count="7">
<div id="fig-stock" class="cell-output cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-stock-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>            <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG"></script><script>if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}</script>                <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script>                <div id="9c35698f-572c-4aca-bb56-25880541127f" class="plotly-graph-div" style="height:440px; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("9c35698f-572c-4aca-bb56-25880541127f")) {                    Plotly.newPlot(                        "9c35698f-572c-4aca-bb56-25880541127f",                        [{"line":{"color":"#e8833a","width":1.6},"mode":"lines","name":"AMZN close","x":["2021-06-07T00:00:00-04:00","2021-06-08T00:00:00-04:00","2021-06-09T00:00:00-04:00","2021-06-10T00:00:00-04:00","2021-06-11T00:00:00-04:00","2021-06-14T00:00:00-04:00","2021-06-15T00:00:00-04:00","2021-06-16T00:00:00-04:00","2021-06-17T00:00:00-04:00","2021-06-18T00:00:00-04:00","2021-06-21T00:00:00-04:00","2021-06-22T00:00:00-04:00","2021-06-23T00:00:00-04:00","2021-06-24T00:00:00-04:00","2021-06-25T00:00:00-04:00","2021-06-28T00:00:00-04:00","2021-06-29T00:00:00-04:00","2021-06-30T00:00:00-04:00","2021-07-01T00:00:00-04:00","2021-07-02T00:00:00-04:00","2021-07-06T00:00:00-04:00","2021-07-07T00:00:00-04:00","2021-07-08T00:00:00-04:00","2021-07-09T00:00:00-04:00","2021-07-12T00:00:00-04:00","2021-07-13T00:00:00-04:00","2021-07-14T00:00:00-04:00","2021-07-15T00:00:00-04:00","2021-07-16T00:00:00-04:00","2021-07-19T00:00:00-04:00","2021-07-20T00:00:00-04:00","2021-07-21T00:00:00-04:00","2021-07-22T00:00:00-04:00","2021-07-23T00:00:00-04:00","2021-07-26T00:00:00-04:00","2021-07-27T00:00:00-04:00","2021-07-28T00:00:00-04:00","2021-07-29T00:00:00-04:00","2021-07-30T00:00:00-04:00","2021-08-02T00:00:00-04:00","2021-08-03T00:00:00-04:00","2021-08-04T00:00:00-04:00","2021-08-05T00:00:00-04:00","2021-08-06T00:00:00-04:00","2021-08-09T00:00:00-04:00","2021-08-10T00:00:00-04:00","2021-08-11T00:00:00-04:00","2021-08-12T00:00:00-04:00","2021-08-13T00:00:00-04:00","2021-08-16T00:00:00-04:00","2021-08-17T00:00:00-04:00","2021-08-18T00:00:00-04:00","2021-08-19T00:00:00-04:00","2021-08-20T00:00:00-04:00","2021-08-23T00:00:00-04:00","2021-08-24T00:00:00-04:00","2021-08-25T00:00:00-04:00","2021-08-26T00:00:00-04:00","2021-08-27T00:00:00-04:00","2021-08-30T00:00:00-04:00","2021-08-31T00:00:00-04:00","2021-09-01T00:00:00-04:00","2021-09-02T00:00:00-04:00","2021-09-03T00:00:00-04:00","2021-09-07T00:00:00-04:00","2021-09-08T00:00:00-04:00","2021-09-09T00:00:00-04:00","2021-09-10T00:00:00-04:00","2021-09-13T00:00:00-04:00","2021-09-14T00:00:00-04:00","2021-09-15T00:00:00-04:00","2021-09-16T00:00:00-04:00","2021-09-17T00:00:00-04:00","2021-09-20T00:00:00-04:00","2021-09-21T00:00:00-04:00","2021-09-22T00:00:00-04:00","2021-09-23T00:00:00-04:00","2021-09-24T00:00:00-04:00","2021-09-27T00:00:00-04:00","2021-09-28T00:00:00-04:00","2021-09-29T00:00:00-04:00","2021-09-30T00:00:00-04:00","2021-10-01T00:00:00-04:00","2021-10-04T00:00:00-04:00","2021-10-05T00:00:00-04:00","2021-10-06T00:00:00-04:00","2021-10-07T00:00:00-04:00","2021-10-08T00:00:00-04:00","2021-10-11T00:00:00-04:00","2021-10-12T00:00:00-04:00","2021-10-13T00:00:00-04:00","2021-10-14T00:00:00-04:00","2021-10-15T00:00:00-04:00","2021-10-18T00:00:00-04:00","2021-10-19T00:00:00-04:00","2021-10-20T00:00:00-04:00","2021-10-21T00:00:00-04:00","2021-10-22T00:00:00-04:00","2021-10-25T00:00:00-04:00","2021-10-26T00:00:00-04:00","2021-10-27T00:00:00-04:00","2021-10-28T00:00:00-04:00","2021-10-29T00:00:00-04:00","2021-11-01T00:00:00-04:00","2021-11-02T00:00:00-04:00","2021-11-03T00:00:00-04:00","2021-11-04T00:00:00-04:00","2021-11-05T00:00:00-04:00","2021-11-08T00:00:00-05:00","2021-11-09T00:00:00-05:00","2021-11-10T00:00:00-05:00","2021-11-11T00:00:00-05:00","2021-11-12T00:00:00-05:00","2021-11-15T00:00:00-05:00","2021-11-16T00:00:00-05:00","2021-11-17T00:00:00-05:00","2021-11-18T00:00:00-05:00","2021-11-19T00:00:00-05:00","2021-11-22T00:00:00-05:00","2021-11-23T00:00:00-05:00","2021-11-24T00:00:00-05:00","2021-11-26T00:00:00-05:00","2021-11-29T00:00:00-05:00","2021-11-30T00:00:00-05:00","2021-12-01T00:00:00-05:00","2021-12-02T00:00:00-05:00","2021-12-03T00:00:00-05:00","2021-12-06T00:00:00-05:00","2021-12-07T00:00:00-05:00","2021-12-08T00:00:00-05:00","2021-12-09T00:00:00-05:00","2021-12-10T00:00:00-05:00","2021-12-13T00:00:00-05:00","2021-12-14T00:00:00-05:00","2021-12-15T00:00:00-05:00","2021-12-16T00:00:00-05:00","2021-12-17T00:00:00-05:00","2021-12-20T00:00:00-05:00","2021-12-21T00:00:00-05:00","2021-12-22T00:00:00-05:00","2021-12-23T00:00:00-05:00","2021-12-27T00:00:00-05:00","2021-12-28T00:00:00-05:00","2021-12-29T00:00:00-05:00","2021-12-30T00:00:00-05:00","2021-12-31T00:00:00-05:00","2022-01-03T00:00:00-05:00","2022-01-04T00:00:00-05:00","2022-01-05T00:00:00-05:00","2022-01-06T00:00:00-05:00","2022-01-07T00:00:00-05:00","2022-01-10T00:00:00-05:00","2022-01-11T00:00:00-05:00","2022-01-12T00:00:00-05:00","2022-01-13T00:00:00-05:00","2022-01-14T00:00:00-05:00","2022-01-18T00:00:00-05:00","2022-01-19T00:00:00-05:00","2022-01-20T00:00:00-05:00","2022-01-21T00:00:00-05:00","2022-01-24T00:00:00-05:00","2022-01-25T00:00:00-05:00","2022-01-26T00:00:00-05:00","2022-01-27T00:00:00-05:00","2022-01-28T00:00:00-05:00","2022-01-31T00:00:00-05:00","2022-02-01T00:00:00-05:00","2022-02-02T00:00:00-05:00","2022-02-03T00:00:00-05:00","2022-02-04T00:00:00-05:00","2022-02-07T00:00:00-05:00","2022-02-08T00:00:00-05:00","2022-02-09T00:00:00-05:00","2022-02-10T00:00:00-05:00","2022-02-11T00:00:00-05:00","2022-02-14T00:00:00-05:00","2022-02-15T00:00:00-05:00","2022-02-16T00:00:00-05:00","2022-02-17T00:00:00-05:00","2022-02-18T00:00:00-05:00","2022-02-22T00:00:00-05:00","2022-02-23T00:00:00-05:00","2022-02-24T00:00:00-05:00","2022-02-25T00:00:00-05:00","2022-02-28T00:00:00-05:00","2022-03-01T00:00:00-05:00","2022-03-02T00:00:00-05:00","2022-03-03T00:00:00-05:00","2022-03-04T00:00:00-05:00","2022-03-07T00:00:00-05:00","2022-03-08T00:00:00-05:00","2022-03-09T00:00:00-05:00","2022-03-10T00:00:00-05:00","2022-03-11T00:00:00-05:00","2022-03-14T00:00:00-04:00","2022-03-15T00:00:00-04:00","2022-03-16T00:00:00-04:00","2022-03-17T00:00:00-04:00","2022-03-18T00:00:00-04:00","2022-03-21T00:00:00-04:00","2022-03-22T00:00:00-04:00","2022-03-23T00:00:00-04:00","2022-03-24T00:00:00-04:00","2022-03-25T00:00:00-04:00","2022-03-28T00:00:00-04:00","2022-03-29T00:00:00-04:00","2022-03-30T00:00:00-04:00","2022-03-31T00:00:00-04:00","2022-04-01T00:00:00-04:00","2022-04-04T00:00:00-04:00","2022-04-05T00:00:00-04:00","2022-04-06T00:00:00-04:00","2022-04-07T00:00:00-04:00","2022-04-08T00:00:00-04:00","2022-04-11T00:00:00-04:00","2022-04-12T00:00:00-04:00","2022-04-13T00:00:00-04:00","2022-04-14T00:00:00-04:00","2022-04-18T00:00:00-04:00","2022-04-19T00:00:00-04:00","2022-04-20T00:00:00-04:00","2022-04-21T00:00:00-04:00","2022-04-22T00:00:00-04:00","2022-04-25T00:00:00-04:00","2022-04-26T00:00:00-04:00","2022-04-27T00:00:00-04:00","2022-04-28T00:00:00-04:00","2022-04-29T00:00:00-04:00","2022-05-02T00:00:00-04:00","2022-05-03T00:00:00-04:00","2022-05-04T00:00:00-04:00","2022-05-05T00:00:00-04:00","2022-05-06T00:00:00-04:00","2022-05-09T00:00:00-04:00","2022-05-10T00:00:00-04:00","2022-05-11T00:00:00-04:00","2022-05-12T00:00:00-04:00","2022-05-13T00:00:00-04:00","2022-05-16T00:00:00-04:00","2022-05-17T00:00:00-04:00","2022-05-18T00:00:00-04:00","2022-05-19T00:00:00-04:00","2022-05-20T00:00:00-04:00","2022-05-23T00:00:00-04:00","2022-05-24T00:00:00-04:00","2022-05-25T00:00:00-04:00","2022-05-26T00:00:00-04:00","2022-05-27T00:00:00-04:00","2022-05-31T00:00:00-04:00","2022-06-01T00:00:00-04:00","2022-06-02T00:00:00-04:00","2022-06-03T00:00:00-04:00","2022-06-06T00:00:00-04:00","2022-06-07T00:00:00-04:00","2022-06-08T00:00:00-04:00","2022-06-09T00:00:00-04:00","2022-06-10T00:00:00-04:00","2022-06-13T00:00:00-04:00","2022-06-14T00:00:00-04:00","2022-06-15T00:00:00-04:00","2022-06-16T00:00:00-04:00","2022-06-17T00:00:00-04:00","2022-06-21T00:00:00-04:00","2022-06-22T00:00:00-04:00","2022-06-23T00:00:00-04:00","2022-06-24T00:00:00-04:00","2022-06-27T00:00:00-04:00","2022-06-28T00:00:00-04:00","2022-06-29T00:00:00-04:00","2022-06-30T00:00:00-04:00","2022-07-01T00:00:00-04:00","2022-07-05T00:00:00-04:00","2022-07-06T00:00:00-04:00","2022-07-07T00:00:00-04:00","2022-07-08T00:00:00-04:00","2022-07-11T00:00:00-04:00","2022-07-12T00:00:00-04:00","2022-07-13T00:00:00-04:00","2022-07-14T00:00:00-04:00","2022-07-15T00:00:00-04:00","2022-07-18T00:00:00-04:00","2022-07-19T00:00:00-04:00","2022-07-20T00:00:00-04:00","2022-07-21T00:00:00-04:00","2022-07-22T00:00:00-04:00","2022-07-25T00:00:00-04:00","2022-07-26T00:00:00-04:00","2022-07-27T00:00:00-04:00","2022-07-28T00:00:00-04:00","2022-07-29T00:00:00-04:00","2022-08-01T00:00:00-04:00","2022-08-02T00:00:00-04:00","2022-08-03T00:00:00-04:00","2022-08-04T00:00:00-04:00","2022-08-05T00:00:00-04:00","2022-08-08T00:00:00-04:00","2022-08-09T00:00:00-04:00","2022-08-10T00:00:00-04:00","2022-08-11T00:00:00-04:00","2022-08-12T00:00:00-04:00","2022-08-15T00:00:00-04:00","2022-08-16T00:00:00-04:00","2022-08-17T00:00:00-04:00","2022-08-18T00:00:00-04:00","2022-08-19T00:00:00-04:00","2022-08-22T00:00:00-04:00","2022-08-23T00:00:00-04:00","2022-08-24T00:00:00-04:00","2022-08-25T00:00:00-04:00","2022-08-26T00:00:00-04:00","2022-08-29T00:00:00-04:00","2022-08-30T00:00:00-04:00","2022-08-31T00:00:00-04:00","2022-09-01T00:00:00-04:00","2022-09-02T00:00:00-04:00","2022-09-06T00:00:00-04:00","2022-09-07T00:00:00-04:00","2022-09-08T00:00:00-04:00","2022-09-09T00:00:00-04:00","2022-09-12T00:00:00-04:00","2022-09-13T00:00:00-04:00","2022-09-14T00:00:00-04:00","2022-09-15T00:00:00-04:00","2022-09-16T00:00:00-04:00","2022-09-19T00:00:00-04:00","2022-09-20T00:00:00-04:00","2022-09-21T00:00:00-04:00","2022-09-22T00:00:00-04:00","2022-09-23T00:00:00-04:00","2022-09-26T00:00:00-04:00","2022-09-27T00:00:00-04:00","2022-09-28T00:00:00-04:00","2022-09-29T00:00:00-04:00","2022-09-30T00:00:00-04:00","2022-10-03T00:00:00-04:00","2022-10-04T00:00:00-04:00","2022-10-05T00:00:00-04:00","2022-10-06T00:00:00-04:00","2022-10-07T00:00:00-04:00","2022-10-10T00:00:00-04:00","2022-10-11T00:00:00-04:00","2022-10-12T00:00:00-04:00","2022-10-13T00:00:00-04:00","2022-10-14T00:00:00-04:00","2022-10-17T00:00:00-04:00","2022-10-18T00:00:00-04:00","2022-10-19T00:00:00-04:00","2022-10-20T00:00:00-04:00","2022-10-21T00:00:00-04:00","2022-10-24T00:00:00-04:00","2022-10-25T00:00:00-04:00","2022-10-26T00:00:00-04:00","2022-10-27T00:00:00-04:00","2022-10-28T00:00:00-04:00","2022-10-31T00:00:00-04:00","2022-11-01T00:00:00-04:00","2022-11-02T00:00:00-04:00","2022-11-03T00:00:00-04:00","2022-11-04T00:00:00-04:00","2022-11-07T00:00:00-05:00","2022-11-08T00:00:00-05:00","2022-11-09T00:00:00-05:00","2022-11-10T00:00:00-05:00","2022-11-11T00:00:00-05:00","2022-11-14T00:00:00-05:00","2022-11-15T00:00:00-05:00","2022-11-16T00:00:00-05:00","2022-11-17T00:00:00-05:00","2022-11-18T00:00:00-05:00","2022-11-21T00:00:00-05:00","2022-11-22T00:00:00-05:00","2022-11-23T00:00:00-05:00","2022-11-25T00:00:00-05:00","2022-11-28T00:00:00-05:00","2022-11-29T00:00:00-05:00","2022-11-30T00:00:00-05:00","2022-12-01T00:00:00-05:00","2022-12-02T00:00:00-05:00","2022-12-05T00:00:00-05:00","2022-12-06T00:00:00-05:00","2022-12-07T00:00:00-05:00","2022-12-08T00:00:00-05:00","2022-12-09T00:00:00-05:00","2022-12-12T00:00:00-05:00","2022-12-13T00:00:00-05:00","2022-12-14T00:00:00-05:00","2022-12-15T00:00:00-05:00","2022-12-16T00:00:00-05:00","2022-12-19T00:00:00-05:00","2022-12-20T00:00:00-05:00","2022-12-21T00:00:00-05:00","2022-12-22T00:00:00-05:00","2022-12-23T00:00:00-05:00","2022-12-27T00:00:00-05:00","2022-12-28T00:00:00-05:00","2022-12-29T00:00:00-05:00","2022-12-30T00:00:00-05:00","2023-01-03T00:00:00-05:00","2023-01-04T00:00:00-05:00","2023-01-05T00:00:00-05:00","2023-01-06T00:00:00-05:00","2023-01-09T00:00:00-05:00","2023-01-10T00:00:00-05:00","2023-01-11T00:00:00-05:00","2023-01-12T00:00:00-05:00","2023-01-13T00:00:00-05:00","2023-01-17T00:00:00-05:00","2023-01-18T00:00:00-05:00","2023-01-19T00:00:00-05:00","2023-01-20T00:00:00-05:00","2023-01-23T00:00:00-05:00","2023-01-24T00:00:00-05:00","2023-01-25T00:00:00-05:00","2023-01-26T00:00:00-05:00","2023-01-27T00:00:00-05:00","2023-01-30T00:00:00-05:00","2023-01-31T00:00:00-05:00","2023-02-01T00:00:00-05:00","2023-02-02T00:00:00-05:00","2023-02-03T00:00:00-05:00","2023-02-06T00:00:00-05:00","2023-02-07T00:00:00-05:00","2023-02-08T00:00:00-05:00","2023-02-09T00:00:00-05:00","2023-02-10T00:00:00-05:00","2023-02-13T00:00:00-05:00","2023-02-14T00:00:00-05:00","2023-02-15T00:00:00-05:00","2023-02-16T00:00:00-05:00","2023-02-17T00:00:00-05:00","2023-02-21T00:00:00-05:00","2023-02-22T00:00:00-05:00","2023-02-23T00:00:00-05:00","2023-02-24T00:00:00-05:00","2023-02-27T00:00:00-05:00","2023-02-28T00:00:00-05:00","2023-03-01T00:00:00-05:00","2023-03-02T00:00:00-05:00","2023-03-03T00:00:00-05:00","2023-03-06T00:00:00-05:00","2023-03-07T00:00:00-05:00","2023-03-08T00:00:00-05:00","2023-03-09T00:00:00-05:00","2023-03-10T00:00:00-05:00","2023-03-13T00:00:00-04:00","2023-03-14T00:00:00-04:00","2023-03-15T00:00:00-04:00","2023-03-16T00:00:00-04:00","2023-03-17T00:00:00-04:00","2023-03-20T00:00:00-04:00","2023-03-21T00:00:00-04:00","2023-03-22T00:00:00-04:00","2023-03-23T00:00:00-04:00","2023-03-24T00:00:00-04:00","2023-03-27T00:00:00-04:00","2023-03-28T00:00:00-04:00","2023-03-29T00:00:00-04:00","2023-03-30T00:00:00-04:00","2023-03-31T00:00:00-04:00","2023-04-03T00:00:00-04:00","2023-04-04T00:00:00-04:00","2023-04-05T00:00:00-04:00","2023-04-06T00:00:00-04:00","2023-04-10T00:00:00-04:00","2023-04-11T00:00:00-04:00","2023-04-12T00:00:00-04:00","2023-04-13T00:00:00-04:00","2023-04-14T00:00:00-04:00","2023-04-17T00:00:00-04:00","2023-04-18T00:00:00-04:00","2023-04-19T00:00:00-04:00","2023-04-20T00:00:00-04:00","2023-04-21T00:00:00-04:00","2023-04-24T00:00:00-04:00","2023-04-25T00:00:00-04:00","2023-04-26T00:00:00-04:00","2023-04-27T00:00:00-04:00","2023-04-28T00:00:00-04:00","2023-05-01T00:00:00-04:00","2023-05-02T00:00:00-04:00","2023-05-03T00:00:00-04:00","2023-05-04T00:00:00-04:00","2023-05-05T00:00:00-04:00","2023-05-08T00:00:00-04:00","2023-05-09T00:00:00-04:00","2023-05-10T00:00:00-04:00","2023-05-11T00:00:00-04:00","2023-05-12T00:00:00-04:00","2023-05-15T00:00:00-04:00","2023-05-16T00:00:00-04:00","2023-05-17T00:00:00-04:00","2023-05-18T00:00:00-04:00","2023-05-19T00:00:00-04:00","2023-05-22T00:00:00-04:00","2023-05-23T00:00:00-04:00","2023-05-24T00:00:00-04:00","2023-05-25T00:00:00-04:00","2023-05-26T00:00:00-04:00","2023-05-30T00:00:00-04:00","2023-05-31T00:00:00-04:00","2023-06-01T00:00:00-04:00","2023-06-02T00:00:00-04:00","2023-06-05T00:00:00-04:00","2023-06-06T00:00:00-04:00","2023-06-07T00:00:00-04:00","2023-06-08T00:00:00-04:00","2023-06-09T00:00:00-04:00","2023-06-12T00:00:00-04:00","2023-06-13T00:00:00-04:00","2023-06-14T00:00:00-04:00","2023-06-15T00:00:00-04:00","2023-06-16T00:00:00-04:00","2023-06-20T00:00:00-04:00","2023-06-21T00:00:00-04:00","2023-06-22T00:00:00-04:00","2023-06-23T00:00:00-04:00","2023-06-26T00:00:00-04:00","2023-06-27T00:00:00-04:00","2023-06-28T00:00:00-04:00","2023-06-29T00:00:00-04:00","2023-06-30T00:00:00-04:00","2023-07-03T00:00:00-04:00","2023-07-05T00:00:00-04:00","2023-07-06T00:00:00-04:00","2023-07-07T00:00:00-04:00","2023-07-10T00:00:00-04:00","2023-07-11T00:00:00-04:00","2023-07-12T00:00:00-04:00","2023-07-13T00:00:00-04:00","2023-07-14T00:00:00-04:00","2023-07-17T00:00:00-04:00","2023-07-18T00:00:00-04:00","2023-07-19T00:00:00-04:00","2023-07-20T00:00:00-04:00","2023-07-21T00:00:00-04:00","2023-07-24T00:00:00-04:00","2023-07-25T00:00:00-04:00","2023-07-26T00:00:00-04:00","2023-07-27T00:00:00-04:00","2023-07-28T00:00:00-04:00","2023-07-31T00:00:00-04:00","2023-08-01T00:00:00-04:00","2023-08-02T00:00:00-04:00","2023-08-03T00:00:00-04:00","2023-08-04T00:00:00-04:00","2023-08-07T00:00:00-04:00","2023-08-08T00:00:00-04:00","2023-08-09T00:00:00-04:00","2023-08-10T00:00:00-04:00","2023-08-11T00:00:00-04:00","2023-08-14T00:00:00-04:00","2023-08-15T00:00:00-04:00","2023-08-16T00:00:00-04:00","2023-08-17T00:00:00-04:00","2023-08-18T00:00:00-04:00","2023-08-21T00:00:00-04:00","2023-08-22T00:00:00-04:00","2023-08-23T00:00:00-04:00","2023-08-24T00:00:00-04:00","2023-08-25T00:00:00-04:00","2023-08-28T00:00:00-04:00","2023-08-29T00:00:00-04:00","2023-08-30T00:00:00-04:00","2023-08-31T00:00:00-04:00","2023-09-01T00:00:00-04:00","2023-09-05T00:00:00-04:00","2023-09-06T00:00:00-04:00","2023-09-07T00:00:00-04:00","2023-09-08T00:00:00-04:00","2023-09-11T00:00:00-04:00","2023-09-12T00:00:00-04:00","2023-09-13T00:00:00-04:00","2023-09-14T00:00:00-04:00","2023-09-15T00:00:00-04:00","2023-09-18T00:00:00-04:00","2023-09-19T00:00:00-04:00","2023-09-20T00:00:00-04:00","2023-09-21T00:00:00-04:00","2023-09-22T00:00:00-04:00","2023-09-25T00:00:00-04:00","2023-09-26T00:00:00-04:00","2023-09-27T00:00:00-04:00","2023-09-28T00:00:00-04:00","2023-09-29T00:00:00-04:00","2023-10-02T00:00:00-04:00","2023-10-03T00:00:00-04:00","2023-10-04T00:00:00-04:00","2023-10-05T00:00:00-04:00","2023-10-06T00:00:00-04:00","2023-10-09T00:00:00-04:00","2023-10-10T00:00:00-04:00","2023-10-11T00:00:00-04:00","2023-10-12T00:00:00-04:00","2023-10-13T00:00:00-04:00","2023-10-16T00:00:00-04:00","2023-10-17T00:00:00-04:00","2023-10-18T00:00:00-04:00","2023-10-19T00:00:00-04:00","2023-10-20T00:00:00-04:00","2023-10-23T00:00:00-04:00","2023-10-24T00:00:00-04:00","2023-10-25T00:00:00-04:00","2023-10-26T00:00:00-04:00","2023-10-27T00:00:00-04:00","2023-10-30T00:00:00-04:00","2023-10-31T00:00:00-04:00","2023-11-01T00:00:00-04:00","2023-11-02T00:00:00-04:00","2023-11-03T00:00:00-04:00","2023-11-06T00:00:00-05:00","2023-11-07T00:00:00-05:00","2023-11-08T00:00:00-05:00","2023-11-09T00:00:00-05:00","2023-11-10T00:00:00-05:00","2023-11-13T00:00:00-05:00","2023-11-14T00:00:00-05:00","2023-11-15T00:00:00-05:00","2023-11-16T00:00:00-05:00","2023-11-17T00:00:00-05:00","2023-11-20T00:00:00-05:00","2023-11-21T00:00:00-05:00","2023-11-22T00:00:00-05:00","2023-11-24T00:00:00-05:00","2023-11-27T00:00:00-05:00","2023-11-28T00:00:00-05:00","2023-11-29T00:00:00-05:00","2023-11-30T00:00:00-05:00","2023-12-01T00:00:00-05:00","2023-12-04T00:00:00-05:00","2023-12-05T00:00:00-05:00","2023-12-06T00:00:00-05:00","2023-12-07T00:00:00-05:00","2023-12-08T00:00:00-05:00","2023-12-11T00:00:00-05:00","2023-12-12T00:00:00-05:00","2023-12-13T00:00:00-05:00","2023-12-14T00:00:00-05:00","2023-12-15T00:00:00-05:00","2023-12-18T00:00:00-05:00","2023-12-19T00:00:00-05:00","2023-12-20T00:00:00-05:00","2023-12-21T00:00:00-05:00","2023-12-22T00:00:00-05:00","2023-12-26T00:00:00-05:00","2023-12-27T00:00:00-05:00","2023-12-28T00:00:00-05:00","2023-12-29T00:00:00-05:00","2024-01-02T00:00:00-05:00","2024-01-03T00:00:00-05:00","2024-01-04T00:00:00-05:00","2024-01-05T00:00:00-05:00","2024-01-08T00:00:00-05:00","2024-01-09T00:00:00-05:00","2024-01-10T00:00:00-05:00","2024-01-11T00:00:00-05:00","2024-01-12T00:00:00-05:00","2024-01-16T00:00:00-05:00","2024-01-17T00:00:00-05:00","2024-01-18T00:00:00-05:00","2024-01-19T00:00:00-05:00","2024-01-22T00:00:00-05:00","2024-01-23T00:00:00-05:00","2024-01-24T00:00:00-05:00","2024-01-25T00:00:00-05:00","2024-01-26T00:00:00-05:00","2024-01-29T00:00:00-05:00","2024-01-30T00:00:00-05:00","2024-01-31T00:00:00-05:00","2024-02-01T00:00:00-05:00","2024-02-02T00:00:00-05:00","2024-02-05T00:00:00-05:00","2024-02-06T00:00:00-05:00","2024-02-07T00:00:00-05:00","2024-02-08T00:00:00-05:00","2024-02-09T00:00:00-05:00","2024-02-12T00:00:00-05:00","2024-02-13T00:00:00-05:00","2024-02-14T00:00:00-05:00","2024-02-15T00:00:00-05:00","2024-02-16T00:00:00-05:00","2024-02-20T00:00:00-05:00","2024-02-21T00:00:00-05:00","2024-02-22T00:00:00-05:00","2024-02-23T00:00:00-05:00","2024-02-26T00:00:00-05:00","2024-02-27T00:00:00-05:00","2024-02-28T00:00:00-05:00","2024-02-29T00:00:00-05:00","2024-03-01T00:00:00-05:00","2024-03-04T00:00:00-05:00","2024-03-05T00:00:00-05:00","2024-03-06T00:00:00-05:00","2024-03-07T00:00:00-05:00","2024-03-08T00:00:00-05:00","2024-03-11T00:00:00-04:00","2024-03-12T00:00:00-04:00","2024-03-13T00:00:00-04:00","2024-03-14T00:00:00-04:00","2024-03-15T00:00:00-04:00","2024-03-18T00:00:00-04:00","2024-03-19T00:00:00-04:00","2024-03-20T00:00:00-04:00","2024-03-21T00:00:00-04:00","2024-03-22T00:00:00-04:00","2024-03-25T00:00:00-04:00","2024-03-26T00:00:00-04:00","2024-03-27T00:00:00-04:00","2024-03-28T00:00:00-04:00","2024-04-01T00:00:00-04:00","2024-04-02T00:00:00-04:00","2024-04-03T00:00:00-04:00","2024-04-04T00:00:00-04:00","2024-04-05T00:00:00-04:00","2024-04-08T00:00:00-04:00","2024-04-09T00:00:00-04:00","2024-04-10T00:00:00-04:00","2024-04-11T00:00:00-04:00","2024-04-12T00:00:00-04:00","2024-04-15T00:00:00-04:00","2024-04-16T00:00:00-04:00","2024-04-17T00:00:00-04:00","2024-04-18T00:00:00-04:00","2024-04-19T00:00:00-04:00","2024-04-22T00:00:00-04:00","2024-04-23T00:00:00-04:00","2024-04-24T00:00:00-04:00","2024-04-25T00:00:00-04:00","2024-04-26T00:00:00-04:00","2024-04-29T00:00:00-04:00","2024-04-30T00:00:00-04:00","2024-05-01T00:00:00-04:00","2024-05-02T00:00:00-04:00","2024-05-03T00:00:00-04:00","2024-05-06T00:00:00-04:00","2024-05-07T00:00:00-04:00","2024-05-08T00:00:00-04:00","2024-05-09T00:00:00-04:00","2024-05-10T00:00:00-04:00","2024-05-13T00:00:00-04:00","2024-05-14T00:00:00-04:00","2024-05-15T00:00:00-04:00","2024-05-16T00:00:00-04:00","2024-05-17T00:00:00-04:00","2024-05-20T00:00:00-04:00","2024-05-21T00:00:00-04:00","2024-05-22T00:00:00-04:00","2024-05-23T00:00:00-04:00","2024-05-24T00:00:00-04:00","2024-05-28T00:00:00-04:00","2024-05-29T00:00:00-04:00","2024-05-30T00:00:00-04:00","2024-05-31T00:00:00-04:00","2024-06-03T00:00:00-04:00","2024-06-04T00:00:00-04:00","2024-06-05T00:00:00-04:00","2024-06-06T00:00:00-04:00","2024-06-07T00:00:00-04:00","2024-06-10T00:00:00-04:00","2024-06-11T00:00:00-04:00","2024-06-12T00:00:00-04:00","2024-06-13T00:00:00-04:00","2024-06-14T00:00:00-04:00","2024-06-17T00:00:00-04:00","2024-06-18T00:00:00-04:00","2024-06-20T00:00:00-04:00","2024-06-21T00:00:00-04:00","2024-06-24T00:00:00-04:00","2024-06-25T00:00:00-04:00","2024-06-26T00:00:00-04:00","2024-06-27T00:00:00-04:00","2024-06-28T00:00:00-04:00","2024-07-01T00:00:00-04:00","2024-07-02T00:00:00-04:00","2024-07-03T00:00:00-04:00","2024-07-05T00:00:00-04:00","2024-07-08T00:00:00-04:00","2024-07-09T00:00:00-04:00","2024-07-10T00:00:00-04:00","2024-07-11T00:00:00-04:00","2024-07-12T00:00:00-04:00","2024-07-15T00:00:00-04:00","2024-07-16T00:00:00-04:00","2024-07-17T00:00:00-04:00","2024-07-18T00:00:00-04:00","2024-07-19T00:00:00-04:00","2024-07-22T00:00:00-04:00","2024-07-23T00:00:00-04:00","2024-07-24T00:00:00-04:00","2024-07-25T00:00:00-04:00","2024-07-26T00:00:00-04:00","2024-07-29T00:00:00-04:00","2024-07-30T00:00:00-04:00","2024-07-31T00:00:00-04:00","2024-08-01T00:00:00-04:00","2024-08-02T00:00:00-04:00","2024-08-05T00:00:00-04:00","2024-08-06T00:00:00-04:00","2024-08-07T00:00:00-04:00","2024-08-08T00:00:00-04:00","2024-08-09T00:00:00-04:00","2024-08-12T00:00:00-04:00","2024-08-13T00:00:00-04:00","2024-08-14T00:00:00-04:00","2024-08-15T00:00:00-04:00","2024-08-16T00:00:00-04:00","2024-08-19T00:00:00-04:00","2024-08-20T00:00:00-04:00","2024-08-21T00:00:00-04:00","2024-08-22T00:00:00-04:00","2024-08-23T00:00:00-04:00","2024-08-26T00:00:00-04:00","2024-08-27T00:00:00-04:00","2024-08-28T00:00:00-04:00","2024-08-29T00:00:00-04:00","2024-08-30T00:00:00-04:00","2024-09-03T00:00:00-04:00","2024-09-04T00:00:00-04:00","2024-09-05T00:00:00-04:00","2024-09-06T00:00:00-04:00","2024-09-09T00:00:00-04:00","2024-09-10T00:00:00-04:00","2024-09-11T00:00:00-04:00","2024-09-12T00:00:00-04:00","2024-09-13T00:00:00-04:00","2024-09-16T00:00:00-04:00","2024-09-17T00:00:00-04:00","2024-09-18T00:00:00-04:00","2024-09-19T00:00:00-04:00","2024-09-20T00:00:00-04:00","2024-09-23T00:00:00-04:00","2024-09-24T00:00:00-04:00","2024-09-25T00:00:00-04:00","2024-09-26T00:00:00-04:00","2024-09-27T00:00:00-04:00","2024-09-30T00:00:00-04:00","2024-10-01T00:00:00-04:00","2024-10-02T00:00:00-04:00","2024-10-03T00:00:00-04:00","2024-10-04T00:00:00-04:00","2024-10-07T00:00:00-04:00","2024-10-08T00:00:00-04:00","2024-10-09T00:00:00-04:00","2024-10-10T00:00:00-04:00","2024-10-11T00:00:00-04:00","2024-10-14T00:00:00-04:00","2024-10-15T00:00:00-04:00","2024-10-16T00:00:00-04:00","2024-10-17T00:00:00-04:00","2024-10-18T00:00:00-04:00","2024-10-21T00:00:00-04:00","2024-10-22T00:00:00-04:00","2024-10-23T00:00:00-04:00","2024-10-24T00:00:00-04:00","2024-10-25T00:00:00-04:00","2024-10-28T00:00:00-04:00","2024-10-29T00:00:00-04:00","2024-10-30T00:00:00-04:00","2024-10-31T00:00:00-04:00","2024-11-01T00:00:00-04:00","2024-11-04T00:00:00-05:00","2024-11-05T00:00:00-05:00","2024-11-06T00:00:00-05:00","2024-11-07T00:00:00-05:00","2024-11-08T00:00:00-05:00","2024-11-11T00:00:00-05:00","2024-11-12T00:00:00-05:00","2024-11-13T00:00:00-05:00","2024-11-14T00:00:00-05:00","2024-11-15T00:00:00-05:00","2024-11-18T00:00:00-05:00","2024-11-19T00:00:00-05:00","2024-11-20T00:00:00-05:00","2024-11-21T00:00:00-05:00","2024-11-22T00:00:00-05:00","2024-11-25T00:00:00-05:00","2024-11-26T00:00:00-05:00","2024-11-27T00:00:00-05:00","2024-11-29T00:00:00-05:00","2024-12-02T00:00:00-05:00","2024-12-03T00:00:00-05:00","2024-12-04T00:00:00-05:00","2024-12-05T00:00:00-05:00","2024-12-06T00:00:00-05:00","2024-12-09T00:00:00-05:00","2024-12-10T00:00:00-05:00","2024-12-11T00:00:00-05:00","2024-12-12T00:00:00-05:00","2024-12-13T00:00:00-05:00","2024-12-16T00:00:00-05:00","2024-12-17T00:00:00-05:00","2024-12-18T00:00:00-05:00","2024-12-19T00:00:00-05:00","2024-12-20T00:00:00-05:00","2024-12-23T00:00:00-05:00","2024-12-24T00:00:00-05:00","2024-12-26T00:00:00-05:00","2024-12-27T00:00:00-05:00","2024-12-30T00:00:00-05:00","2024-12-31T00:00:00-05:00","2025-01-02T00:00:00-05:00","2025-01-03T00:00:00-05:00","2025-01-06T00:00:00-05:00","2025-01-07T00:00:00-05:00","2025-01-08T00:00:00-05:00","2025-01-10T00:00:00-05:00","2025-01-13T00:00:00-05:00","2025-01-14T00:00:00-05:00","2025-01-15T00:00:00-05:00","2025-01-16T00:00:00-05:00","2025-01-17T00:00:00-05:00","2025-01-21T00:00:00-05:00","2025-01-22T00:00:00-05:00","2025-01-23T00:00:00-05:00","2025-01-24T00:00:00-05:00","2025-01-27T00:00:00-05:00","2025-01-28T00:00:00-05:00","2025-01-29T00:00:00-05:00","2025-01-30T00:00:00-05:00","2025-01-31T00:00:00-05:00","2025-02-03T00:00:00-05:00","2025-02-04T00:00:00-05:00","2025-02-05T00:00:00-05:00","2025-02-06T00:00:00-05:00","2025-02-07T00:00:00-05:00","2025-02-10T00:00:00-05:00","2025-02-11T00:00:00-05:00","2025-02-12T00:00:00-05:00","2025-02-13T00:00:00-05:00","2025-02-14T00:00:00-05:00","2025-02-18T00:00:00-05:00","2025-02-19T00:00:00-05:00","2025-02-20T00:00:00-05:00","2025-02-21T00:00:00-05:00","2025-02-24T00:00:00-05:00","2025-02-25T00:00:00-05:00","2025-02-26T00:00:00-05:00","2025-02-27T00:00:00-05:00","2025-02-28T00:00:00-05:00","2025-03-03T00:00:00-05:00","2025-03-04T00:00:00-05:00","2025-03-05T00:00:00-05:00","2025-03-06T00:00:00-05:00","2025-03-07T00:00:00-05:00","2025-03-10T00:00:00-04:00","2025-03-11T00:00:00-04:00","2025-03-12T00:00:00-04:00","2025-03-13T00:00:00-04:00","2025-03-14T00:00:00-04:00","2025-03-17T00:00:00-04:00","2025-03-18T00:00:00-04:00","2025-03-19T00:00:00-04:00","2025-03-20T00:00:00-04:00","2025-03-21T00:00:00-04:00","2025-03-24T00:00:00-04:00","2025-03-25T00:00:00-04:00","2025-03-26T00:00:00-04:00","2025-03-27T00:00:00-04:00","2025-03-28T00:00:00-04:00","2025-03-31T00:00:00-04:00","2025-04-01T00:00:00-04:00","2025-04-02T00:00:00-04:00","2025-04-03T00:00:00-04:00","2025-04-04T00:00:00-04:00","2025-04-07T00:00:00-04:00","2025-04-08T00:00:00-04:00","2025-04-09T00:00:00-04:00","2025-04-10T00:00:00-04:00","2025-04-11T00:00:00-04:00","2025-04-14T00:00:00-04:00","2025-04-15T00:00:00-04:00","2025-04-16T00:00:00-04:00","2025-04-17T00:00:00-04:00","2025-04-21T00:00:00-04:00","2025-04-22T00:00:00-04:00","2025-04-23T00:00:00-04:00","2025-04-24T00:00:00-04:00","2025-04-25T00:00:00-04:00","2025-04-28T00:00:00-04:00","2025-04-29T00:00:00-04:00","2025-04-30T00:00:00-04:00","2025-05-01T00:00:00-04:00","2025-05-02T00:00:00-04:00","2025-05-05T00:00:00-04:00","2025-05-06T00:00:00-04:00","2025-05-07T00:00:00-04:00","2025-05-08T00:00:00-04:00","2025-05-09T00:00:00-04:00","2025-05-12T00:00:00-04:00","2025-05-13T00:00:00-04:00","2025-05-14T00:00:00-04:00","2025-05-15T00:00:00-04:00","2025-05-16T00:00:00-04:00","2025-05-19T00:00:00-04:00","2025-05-20T00:00:00-04:00","2025-05-21T00:00:00-04:00","2025-05-22T00:00:00-04:00","2025-05-23T00:00:00-04:00","2025-05-27T00:00:00-04:00","2025-05-28T00:00:00-04:00","2025-05-29T00:00:00-04:00","2025-05-30T00:00:00-04:00","2025-06-02T00:00:00-04:00","2025-06-03T00:00:00-04:00","2025-06-04T00:00:00-04:00","2025-06-05T00:00:00-04:00","2025-06-06T00:00:00-04:00","2025-06-09T00:00:00-04:00","2025-06-10T00:00:00-04:00","2025-06-11T00:00:00-04:00","2025-06-12T00:00:00-04:00","2025-06-13T00:00:00-04:00","2025-06-16T00:00:00-04:00","2025-06-17T00:00:00-04:00","2025-06-18T00:00:00-04:00","2025-06-20T00:00:00-04:00","2025-06-23T00:00:00-04:00","2025-06-24T00:00:00-04:00","2025-06-25T00:00:00-04:00","2025-06-26T00:00:00-04:00","2025-06-27T00:00:00-04:00","2025-06-30T00:00:00-04:00","2025-07-01T00:00:00-04:00","2025-07-02T00:00:00-04:00","2025-07-03T00:00:00-04:00","2025-07-07T00:00:00-04:00","2025-07-08T00:00:00-04:00","2025-07-09T00:00:00-04:00","2025-07-10T00:00:00-04:00","2025-07-11T00:00:00-04:00","2025-07-14T00:00:00-04:00","2025-07-15T00:00:00-04:00","2025-07-16T00:00:00-04:00","2025-07-17T00:00:00-04:00","2025-07-18T00:00:00-04:00","2025-07-21T00:00:00-04:00","2025-07-22T00:00:00-04:00","2025-07-23T00:00:00-04:00","2025-07-24T00:00:00-04:00","2025-07-25T00:00:00-04:00","2025-07-28T00:00:00-04:00","2025-07-29T00:00:00-04:00","2025-07-30T00:00:00-04:00","2025-07-31T00:00:00-04:00","2025-08-01T00:00:00-04:00","2025-08-04T00:00:00-04:00","2025-08-05T00:00:00-04:00","2025-08-06T00:00:00-04:00","2025-08-07T00:00:00-04:00","2025-08-08T00:00:00-04:00","2025-08-11T00:00:00-04:00","2025-08-12T00:00:00-04:00","2025-08-13T00:00:00-04:00","2025-08-14T00:00:00-04:00","2025-08-15T00:00:00-04:00","2025-08-18T00:00:00-04:00","2025-08-19T00:00:00-04:00","2025-08-20T00:00:00-04:00","2025-08-21T00:00:00-04:00","2025-08-22T00:00:00-04:00","2025-08-25T00:00:00-04:00","2025-08-26T00:00:00-04:00","2025-08-27T00:00:00-04:00","2025-08-28T00:00:00-04:00","2025-08-29T00:00:00-04:00","2025-09-02T00:00:00-04:00","2025-09-03T00:00:00-04:00","2025-09-04T00:00:00-04:00","2025-09-05T00:00:00-04:00","2025-09-08T00:00:00-04:00","2025-09-09T00:00:00-04:00","2025-09-10T00:00:00-04:00","2025-09-11T00:00:00-04:00","2025-09-12T00:00:00-04:00","2025-09-15T00:00:00-04:00","2025-09-16T00:00:00-04:00","2025-09-17T00:00:00-04:00","2025-09-18T00:00:00-04:00","2025-09-19T00:00:00-04:00","2025-09-22T00:00:00-04:00","2025-09-23T00:00:00-04:00","2025-09-24T00:00:00-04:00","2025-09-25T00:00:00-04:00","2025-09-26T00:00:00-04:00","2025-09-29T00:00:00-04:00","2025-09-30T00:00:00-04:00","2025-10-01T00:00:00-04:00","2025-10-02T00:00:00-04:00","2025-10-03T00:00:00-04:00","2025-10-06T00:00:00-04:00","2025-10-07T00:00:00-04:00","2025-10-08T00:00:00-04:00","2025-10-09T00:00:00-04:00","2025-10-10T00:00:00-04:00","2025-10-13T00:00:00-04:00","2025-10-14T00:00:00-04:00","2025-10-15T00:00:00-04:00","2025-10-16T00:00:00-04:00","2025-10-17T00:00:00-04:00","2025-10-20T00:00:00-04:00","2025-10-21T00:00:00-04:00","2025-10-22T00:00:00-04:00","2025-10-23T00:00:00-04:00","2025-10-24T00:00:00-04:00","2025-10-27T00:00:00-04:00","2025-10-28T00:00:00-04:00","2025-10-29T00:00:00-04:00","2025-10-30T00:00:00-04:00","2025-10-31T00:00:00-04:00","2025-11-03T00:00:00-05:00","2025-11-04T00:00:00-05:00","2025-11-05T00:00:00-05:00","2025-11-06T00:00:00-05:00","2025-11-07T00:00:00-05:00","2025-11-10T00:00:00-05:00","2025-11-11T00:00:00-05:00","2025-11-12T00:00:00-05:00","2025-11-13T00:00:00-05:00","2025-11-14T00:00:00-05:00","2025-11-17T00:00:00-05:00","2025-11-18T00:00:00-05:00","2025-11-19T00:00:00-05:00","2025-11-20T00:00:00-05:00","2025-11-21T00:00:00-05:00","2025-11-24T00:00:00-05:00","2025-11-25T00:00:00-05:00","2025-11-26T00:00:00-05:00","2025-11-28T00:00:00-05:00","2025-12-01T00:00:00-05:00","2025-12-02T00:00:00-05:00","2025-12-03T00:00:00-05:00","2025-12-04T00:00:00-05:00","2025-12-05T00:00:00-05:00","2025-12-08T00:00:00-05:00","2025-12-09T00:00:00-05:00","2025-12-10T00:00:00-05:00","2025-12-11T00:00:00-05:00","2025-12-12T00:00:00-05:00","2025-12-15T00:00:00-05:00","2025-12-16T00:00:00-05:00","2025-12-17T00:00:00-05:00","2025-12-18T00:00:00-05:00","2025-12-19T00:00:00-05:00","2025-12-22T00:00:00-05:00","2025-12-23T00:00:00-05:00","2025-12-24T00:00:00-05:00","2025-12-26T00:00:00-05:00","2025-12-29T00:00:00-05:00","2025-12-30T00:00:00-05:00","2025-12-31T00:00:00-05:00","2026-01-02T00:00:00-05:00","2026-01-05T00:00:00-05:00","2026-01-06T00:00:00-05:00","2026-01-07T00:00:00-05:00","2026-01-08T00:00:00-05:00","2026-01-09T00:00:00-05:00","2026-01-12T00:00:00-05:00","2026-01-13T00:00:00-05:00","2026-01-14T00:00:00-05:00","2026-01-15T00:00:00-05:00","2026-01-16T00:00:00-05:00","2026-01-20T00:00:00-05:00","2026-01-21T00:00:00-05:00","2026-01-22T00:00:00-05:00","2026-01-23T00:00:00-05:00","2026-01-26T00:00:00-05:00","2026-01-27T00:00:00-05:00","2026-01-28T00:00:00-05:00","2026-01-29T00:00:00-05:00","2026-01-30T00:00:00-05:00","2026-02-02T00:00:00-05:00","2026-02-03T00:00:00-05:00","2026-02-04T00:00:00-05:00","2026-02-05T00:00:00-05:00","2026-02-06T00:00:00-05:00","2026-02-09T00:00:00-05:00","2026-02-10T00:00:00-05:00","2026-02-11T00:00:00-05:00","2026-02-12T00:00:00-05:00","2026-02-13T00:00:00-05:00","2026-02-17T00:00:00-05:00","2026-02-18T00:00:00-05:00","2026-02-19T00:00:00-05:00","2026-02-20T00:00:00-05:00","2026-02-23T00:00:00-05:00","2026-02-24T00:00:00-05:00","2026-02-25T00:00:00-05:00","2026-02-26T00:00:00-05:00","2026-02-27T00:00:00-05:00","2026-03-02T00:00:00-05:00","2026-03-03T00:00:00-05:00","2026-03-04T00:00:00-05:00","2026-03-05T00:00:00-05:00","2026-03-06T00:00:00-05:00","2026-03-09T00:00:00-04:00","2026-03-10T00:00:00-04:00","2026-03-11T00:00:00-04:00","2026-03-12T00:00:00-04:00","2026-03-13T00:00:00-04:00","2026-03-16T00:00:00-04:00","2026-03-17T00:00:00-04:00","2026-03-18T00:00:00-04:00","2026-03-19T00:00:00-04:00","2026-03-20T00:00:00-04:00","2026-03-23T00:00:00-04:00","2026-03-24T00:00:00-04:00","2026-03-25T00:00:00-04:00","2026-03-26T00:00:00-04:00","2026-03-27T00:00:00-04:00","2026-03-30T00:00:00-04:00","2026-03-31T00:00:00-04:00","2026-04-01T00:00:00-04:00","2026-04-02T00:00:00-04:00","2026-04-06T00:00:00-04:00","2026-04-07T00:00:00-04:00","2026-04-08T00:00:00-04:00","2026-04-09T00:00:00-04:00","2026-04-10T00:00:00-04:00","2026-04-13T00:00:00-04:00","2026-04-14T00:00:00-04:00","2026-04-15T00:00:00-04:00","2026-04-16T00:00:00-04:00","2026-04-17T00:00:00-04:00","2026-04-20T00:00:00-04:00","2026-04-21T00:00:00-04:00","2026-04-22T00:00:00-04:00","2026-04-23T00:00:00-04:00","2026-04-24T00:00:00-04:00","2026-04-27T00:00:00-04:00","2026-04-28T00:00:00-04:00","2026-04-29T00:00:00-04:00","2026-04-30T00:00:00-04:00","2026-05-01T00:00:00-04:00","2026-05-04T00:00:00-04:00","2026-05-05T00:00:00-04:00","2026-05-06T00:00:00-04:00","2026-05-07T00:00:00-04:00","2026-05-08T00:00:00-04:00","2026-05-11T00:00:00-04:00","2026-05-12T00:00:00-04:00","2026-05-13T00:00:00-04:00","2026-05-14T00:00:00-04:00","2026-05-15T00:00:00-04:00","2026-05-18T00:00:00-04:00","2026-05-19T00:00:00-04:00","2026-05-20T00:00:00-04:00","2026-05-21T00:00:00-04:00","2026-05-22T00:00:00-04:00","2026-05-26T00:00:00-04:00","2026-05-27T00:00:00-04:00","2026-05-28T00:00:00-04:00","2026-05-29T00:00:00-04:00","2026-06-01T00:00:00-04:00","2026-06-02T00:00:00-04:00","2026-06-03T00:00:00-04:00","2026-06-04T00:00:00-04:00","2026-06-05T00:00:00-04:00"],"y":{"dtype":"f8","bdata":"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\u002fJUQAAAAAAAUFVAAAAAYI\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"},"type":"scatter"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"margin":{"b":0,"l":0,"r":0,"t":30},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"margin":{"t":60},"title":{"text":"Amazon (AMZN) closing price — last close $253.59 on 2026-06-05"},"yaxis":{"title":{"text":"Price (US$, split-adjusted)"}},"height":440},                        {"responsive": true}                    ).then(function(){
                            
var gd = document.getElementById('9c35698f-572c-4aca-bb56-25880541127f');
var x = new MutationObserver(function (mutations, observer) {{
        var display = window.getComputedStyle(gd).display;
        if (!display || display === 'none') {{
            console.log([gd, 'removed!']);
            Plotly.purge(gd);
            observer.disconnect();
        }}
}});

// Listen for the removal of the full notebook cells
var notebookContainer = gd.closest('#notebook-container');
if (notebookContainer) {{
    x.observe(notebookContainer, {childList: true});
}}

// Listen for the clearing of the current output cell
var outputEl = gd.closest('.output');
if (outputEl) {{
    x.observe(outputEl, {childList: true});
}}

                        })                };            </script>        </div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-stock-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;6: Amazon (AMZN) daily close, last 5 years. Pulled live via yfinance at render time.
</figcaption>
</figure>
</div>
</div>
<p>The daily chart is noise on top of signal, though. To see what actually drives the price over years rather than days, the right lens is <strong>per-share metrics</strong> — because an investor doesn’t own “Amazon,” they own a <em>share</em> of it.</p>
<section id="revenue-per-share-vs.-earnings-per-share" class="level3">
<h3 class="anchored" data-anchor-id="revenue-per-share-vs.-earnings-per-share">Revenue per share vs.&nbsp;earnings per share</h3>
<p>Two KPIs matter to a shareholder: how much <strong>revenue</strong> and how much <strong>profit</strong> the business generates <em>per share they hold</em>. (The “per share” part isn’t cosmetic — share count drifts up over time as stock-based compensation dilutes existing holders, a quiet headwind to per-share growth. Amazon’s diluted share count rose ~5% over this window.)</p>
<div id="cell-fig-pershare" class="cell" data-execution_count="8">
<div id="fig-pershare" class="cell-output cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pershare-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>            <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG"></script><script>if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}</script>                <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script>                <div id="a3c7983e-992e-4b46-8989-4335d2af5733" class="plotly-graph-div" style="height:450px; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("a3c7983e-992e-4b46-8989-4335d2af5733")) {                    Plotly.newPlot(                        "a3c7983e-992e-4b46-8989-4335d2af5733",                        [{"marker":{"color":"#6aa9c9"},"name":"Revenue per share","text":["$46","$50","$55","$60","$66"],"textposition":"outside","x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"y":{"dtype":"f8","bdata":"VQuSjZDORkDVlZb9TzhJQEiYEByVZUtArxfPv2vBTUBEzoOEq4xQQA=="},"type":"bar","xaxis":"x","yaxis":"y"},{"line":{"color":"#e8833a","width":3},"mode":"lines+markers+text","name":"Diluted EPS","text":["$3.24","$-0.27","$2.90","$5.53","$7.17"],"textposition":"top center","x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"y":{"dtype":"f8","bdata":"7FG4HoXrCUBI4XoUrkfRvzMzMzMzMwdAH4XrUbgeFkCuR+F6FK4cQA=="},"type":"scatter","xaxis":"x","yaxis":"y2"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"margin":{"b":0,"l":0,"r":0,"t":30},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"xaxis":{"anchor":"y","domain":[0.0,0.94],"tickvals":[2021,2022,2023,2024,2025]},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Revenue per share (US$)"}},"yaxis2":{"anchor":"x","overlaying":"y","side":"right","title":{"text":"Diluted EPS (US$)"}},"shapes":[{"line":{"color":"gray","dash":"dot","width":1},"type":"line","x0":0,"x1":1,"xref":"x domain","y0":0,"y1":0,"yref":"y2"}],"margin":{"t":60},"title":{"text":"Amazon per-share KPIs, 2021–2025"},"hovermode":"x unified","height":450},                        {"responsive": true}                    ).then(function(){
                            
var gd = document.getElementById('a3c7983e-992e-4b46-8989-4335d2af5733');
var x = new MutationObserver(function (mutations, observer) {{
        var display = window.getComputedStyle(gd).display;
        if (!display || display === 'none') {{
            console.log([gd, 'removed!']);
            Plotly.purge(gd);
            observer.disconnect();
        }}
}});

// Listen for the removal of the full notebook cells
var notebookContainer = gd.closest('#notebook-container');
if (notebookContainer) {{
    x.observe(notebookContainer, {childList: true});
}}

// Listen for the clearing of the current output cell
var outputEl = gd.closest('.output');
if (outputEl) {{
    x.observe(outputEl, {childList: true});
}}

                        })                };            </script>        </div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pershare-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;7: Revenue per share vs.&nbsp;diluted EPS, 2021–2025 (split-adjusted). Revenue per share climbs steadily; earnings per share is far more volatile.
</figcaption>
</figure>
</div>
</div>
<p>The contrast is the whole point. <strong>Revenue per share rose ~45%</strong> over the period (≈$46 → $66) in an almost straight line. <strong>Earnings per share went on a rollercoaster:</strong> positive in 2021, <em>negative</em> in 2022 as the retail segments lost money, then more than doubling to $7.17 by 2025 — a <strong>+121%</strong> gain versus 2021. Same company, same years: the top line was placid while the bottom line lurched.</p>
</section>
<section id="which-kpi-does-the-share-price-follow" class="level3">
<h3 class="anchored" data-anchor-id="which-kpi-does-the-share-price-follow">Which KPI does the share price follow?</h3>
<p>Overlaying year-end price on those KPIs answers the question directly.</p>
<div id="cell-fig-kpi-price" class="cell" data-execution_count="9">
<div id="fig-kpi-price" class="cell-output cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-kpi-price-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>            <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG"></script><script>if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}</script>                <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script>                <div id="e595de34-9847-4799-ba44-ab0ee0de2159" class="plotly-graph-div" style="height:460px; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("e595de34-9847-4799-ba44-ab0ee0de2159")) {                    Plotly.newPlot(                        "e595de34-9847-4799-ba44-ab0ee0de2159",                        [{"hovertemplate":"metric=Revenue per share\u003cbr\u003e=%{x}\u003cbr\u003eIndexed to 100 (year-end 2021)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Revenue per share","line":{"color":"#6aa9c9","dash":"solid","width":3},"marker":{"symbol":"circle"},"mode":"lines+markers","name":"Revenue per share","orientation":"v","showlegend":true,"x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAAAAAWUAbaX97JqVbQEIKi94BCF5Av1D0kvROYECjzbFCESRiQA=="},"yaxis":"y","type":"scatter"},{"hovertemplate":"metric=Diluted EPS\u003cbr\u003e=%{x}\u003cbr\u003eIndexed to 100 (year-end 2021)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Diluted EPS","line":{"color":"#e8833a","dash":"solid","width":3},"marker":{"symbol":"circle"},"mode":"lines+markers","name":"Diluted EPS","orientation":"v","showlegend":true,"x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAAAAAWUCqqqqqqqogwFvzwyJlYFZAsUgZeLpVZUCX0F5Ce6lrQA=="},"yaxis":"y","type":"scatter"},{"hovertemplate":"metric=Year-end share price\u003cbr\u003e=%{x}\u003cbr\u003eIndexed to 100 (year-end 2021)=%{y}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Year-end share price","line":{"color":"#2c6e9b","dash":"solid","width":3},"marker":{"symbol":"circle"},"mode":"lines+markers","name":"Year-end share price","orientation":"v","showlegend":true,"x":{"dtype":"i2","bdata":"5QfmB+cH6AfpBw=="},"xaxis":"x","y":{"dtype":"f8","bdata":"AAAAAAAAWUDydALjIjFJQKihvyqhyFZACoyLxPByYEAthBuIU05hQA=="},"yaxis":"y","type":"scatter"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"margin":{"b":0,"l":0,"r":0,"t":30},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":""},"tickvals":[2021,2022,2023,2024,2025]},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Indexed to 100 (year-end 2021)"}},"legend":{"title":{"text":"metric"},"tracegroupgap":0},"title":{"text":"Price vs. fundamentals, rebased to 100 at year-end 2021"},"shapes":[{"line":{"color":"gray","dash":"dot","width":1},"type":"line","x0":0,"x1":1,"xref":"x domain","y0":100,"y1":100,"yref":"y"}],"margin":{"t":60},"hovermode":"x unified","height":460},                        {"responsive": true}                    ).then(function(){
                            
var gd = document.getElementById('e595de34-9847-4799-ba44-ab0ee0de2159');
var x = new MutationObserver(function (mutations, observer) {{
        var display = window.getComputedStyle(gd).display;
        if (!display || display === 'none') {{
            console.log([gd, 'removed!']);
            Plotly.purge(gd);
            observer.disconnect();
        }}
}});

// Listen for the removal of the full notebook cells
var notebookContainer = gd.closest('#notebook-container');
if (notebookContainer) {{
    x.observe(notebookContainer, {childList: true});
}}

// Listen for the clearing of the current output cell
var outputEl = gd.closest('.output');
if (outputEl) {{
    x.observe(outputEl, {childList: true});
}}

                        })                };            </script>        </div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-kpi-price-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;8: Per-share KPIs and share price, indexed to 100 at year-end 2021. Price tracks the earnings path, not the smooth revenue line.
</figcaption>
</figure>
</div>
</div>
<div class="takeaway">
<p><strong>The price follows earnings, not revenue.</strong> In 2022 the stock nearly <em>halved</em> even though revenue per share kept rising — because EPS went negative. As profit recovered through 2023–2025, the price re-rated alongside it. Revenue growth is necessary, but the market pays for <em>profit</em>.</p>
</div>
<p>There’s a second, subtler signal in that chart. Over the full window the share price rose <strong>+38%</strong>, while EPS rose <strong>+121%</strong>. Price went <em>up</em>, yet it rose far less than earnings did — which means the <strong>valuation multiple compressed</strong>: Amazon’s price-to-earnings ratio fell from roughly <strong>51× (end-2021)</strong> to about <strong>32× (end-2025)</strong>. The market rewarded the profit growth, but grew steadily less willing to pay a premium <em>multiple</em> for each dollar of it — the classic signature of a hyper-growth company maturing into a merely-very-good one. Combined with the segment analysis, the pattern is consistent: Amazon is re-rated on <strong>profitability and its durability</strong>, far more than on headline sales.</p>
</section>
</section>
<section id="do-the-profits-actually-turn-into-cash" class="level2">
<h2 class="anchored" data-anchor-id="do-the-profits-actually-turn-into-cash">5. Do the profits actually turn into cash?</h2>
<p>There’s an old auditor’s saying: <strong>“Profit is an opinion; cash is a fact.”</strong> Everything above — revenue, operating income, margins — comes from <em>accrual</em> accounting, which records sales when they’re <em>earned</em> and costs when they’re <em>incurred</em>, not when money actually changes hands. That’s the right way to measure economic activity, but it opens a gap between the profit a company <em>reports</em> and the cash it <em>collects</em>. A healthy skeptic always asks: do the earnings show up as real money?</p>
<p>There are three distinct things people worry about behind “great results on paper, but where’s the cash?” — and each has a different diagnostic:</p>
<table class="caption-top table">
<colgroup>
<col style="width: 33%">
<col style="width: 33%">
<col style="width: 33%">
</colgroup>
<thead>
<tr class="header">
<th>The worry</th>
<th>What it actually means</th>
<th>The tell-tale sign</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><strong>Fictional revenue</strong></td>
<td>Booking sales that won’t convert to cash (channel-stuffing, round-tripping, bill-and-hold). Outright aggressive or fraudulent recognition.</td>
<td>Operating cash flow runs <em>persistently below</em> net income; <strong>receivables grow faster than sales</strong>.</td>
</tr>
<tr class="even">
<td><strong>Delayed payments</strong></td>
<td>Customers paying late (bad → receivables balloon) — or the company stretching its <em>own</em> suppliers (good → it’s free financing).</td>
<td>Rising days-sales-outstanding is the danger; rising days-payable is a <em>benefit</em>.</td>
</tr>
<tr class="odd">
<td><strong>Non-cash earnings</strong></td>
<td>Profit propped up by accounting estimates (e.g.&nbsp;low depreciation) or depressed by non-cash charges (stock comp, write-downs).</td>
<td>Net income and cash flow drift apart for “paper” reasons like <strong>useful-life assumptions</strong>.</td>
</tr>
</tbody>
</table>
<p>The way to settle the question is to walk from net income down to <strong>free cash flow</strong> — the cash left after running <em>and</em> maintaining and expanding the business. Here is that bridge for Amazon in FY2025.</p>
<div id="cell-fig-cashbridge" class="cell" data-execution_count="10">
<div id="fig-cashbridge" class="cell-output cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-cashbridge-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>            <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG"></script><script>if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}</script>                <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script>                <div id="168b73a3-3f00-41f9-b248-4dcf7771a8b1" class="plotly-graph-div" style="height:470px; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("168b73a3-3f00-41f9-b248-4dcf7771a8b1")) {                    Plotly.newPlot(                        "168b73a3-3f00-41f9-b248-4dcf7771a8b1",                        [{"connector":{"line":{"color":"rgb(160,160,160)"}},"decreasing":{"marker":{"color":"#d1604a"}},"increasing":{"marker":{"color":"#2c6e9b"}},"measure":["total","relative","relative","relative","total","relative","total"],"orientation":"v","text":["$77.7B","$65.8B","$19.5B","$-23.5B","$139.5B","$-131.8B","$7.7B"],"textposition":"outside","totals":{"marker":{"color":"#3a3a3a"}},"x":["Net income","+ Depreciation & amort.","+ Stock-based comp.","Working capital & other","Operating cash flow","− Capital expenditure","Free cash flow"],"y":[77.7,65.8,19.5,-23.5,139.5,-131.8,7.7],"type":"waterfall"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"margin":{"b":0,"l":0,"r":0,"t":30},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"margin":{"t":60,"b":40},"title":{"text":"Amazon FY2025: net income → operating cash flow → free cash flow"},"yaxis":{"title":{"text":"US$ billions"}},"height":470},                        {"responsive": true}                    ).then(function(){
                            
var gd = document.getElementById('168b73a3-3f00-41f9-b248-4dcf7771a8b1');
var x = new MutationObserver(function (mutations, observer) {{
        var display = window.getComputedStyle(gd).display;
        if (!display || display === 'none') {{
            console.log([gd, 'removed!']);
            Plotly.purge(gd);
            observer.disconnect();
        }}
}});

// Listen for the removal of the full notebook cells
var notebookContainer = gd.closest('#notebook-container');
if (notebookContainer) {{
    x.observe(notebookContainer, {childList: true});
}}

// Listen for the clearing of the current output cell
var outputEl = gd.closest('.output');
if (outputEl) {{
    x.observe(outputEl, {childList: true});
}}

                        })                };            </script>        </div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-cashbridge-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;9: From net income to free cash flow, FY2025 (US$ billions). The non-cash add-backs make operating cash flow far exceed reported profit — but capex swallows almost all of it.
</figcaption>
</figure>
</div>
</div>
<p>Read the bridge left to right and the answer falls out:</p>
<ul>
<li><strong>The operating cash is real — emphatically so.</strong> Operating cash flow ($139.5B) is <em>nearly double</em> reported net income ($77.7B). That is the <em>opposite</em> of the fictional-revenue signature, where cash lags profit. Most of the gap is <strong>depreciation &amp; amortization</strong> ($65.8B): a genuine expense on the income statement, but one where no cash leaves the building this year — so it’s added back. Stock-based comp ($19.5B) works the same way (it dilutes shareholders rather than spending cash).</li>
<li><strong>“Delayed payments” actually works in Amazon’s favour.</strong> Amazon runs on <strong>negative working capital</strong>: customers pay instantly (card on file), while Amazon pays its suppliers weeks later. So its own slow payments are a source of cash — suppliers and customers effectively finance the business. The dangerous version (Amazon’s <em>own</em> customers stalling, receivables ballooning faster than sales) simply isn’t visible in the numbers.</li>
</ul>
<p>So the popular “they have no cash!” worry, in the fraud sense, does not apply to Amazon. But there <em>is</em> a real catch — it’s just a different one:</p>
<div id="cell-fig-cashtrend" class="cell" data-execution_count="11">
<div id="fig-cashtrend" class="cell-output cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-cashtrend-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>            <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG"></script><script>if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: "STIX-Web"}});}</script>                <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
        <script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script>                <div id="434b599b-1e62-4363-8279-82e3ec7c1dbc" class="plotly-graph-div" style="height:450px; width:100%;"></div>            <script>                window.PLOTLYENV=window.PLOTLYENV || {};                                if (document.getElementById("434b599b-1e62-4363-8279-82e3ec7c1dbc")) {                    Plotly.newPlot(                        "434b599b-1e62-4363-8279-82e3ec7c1dbc",                        [{"marker":{"color":"#2c6e9b"},"name":"Operating cash flow","x":{"dtype":"i2","bdata":"5gfnB+gH6Qc="},"y":{"dtype":"f8","bdata":"ZmZmZmZmR0CamZmZmTlVQJqZmZmZ+VxAAAAAAABwYUA="},"type":"bar"},{"marker":{"color":"#e8833a"},"name":"Capex (reinvested)","x":{"dtype":"i2","bdata":"5gfnB+gH6Qc="},"y":{"dtype":"f8","bdata":"zczMzMzMT0CamZmZmVlKQAAAAAAAwFRAmpmZmZl5YEA="},"type":"bar"},{"line":{"color":"#d1604a","width":3},"mode":"lines+markers+text","name":"Free cash flow","text":["$-16.9B","$32.2B","$32.9B","$7.7B"],"textposition":"top center","x":{"dtype":"i2","bdata":"5gfnB+gH6Qc="},"y":{"dtype":"f8","bdata":"ZmZmZmbmMMCamZmZmRlAQDMzMzMzc0BAzczMzMzMHkA="},"type":"scatter"}],                        {"template":{"data":{"barpolar":[{"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"white","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"#C8D4E3","linecolor":"#C8D4E3","minorgridcolor":"#C8D4E3","startlinecolor":"#2a3f5f"},"type":"carpet"}],"choropleth":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"choropleth"}],"contourcarpet":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"contourcarpet"}],"contour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"contour"}],"heatmap":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"heatmap"}],"histogram2dcontour":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2dcontour"}],"histogram2d":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"histogram2d"}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"mesh3d":[{"colorbar":{"outlinewidth":0,"ticks":""},"type":"mesh3d"}],"parcoords":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"parcoords"}],"pie":[{"automargin":true,"type":"pie"}],"scatter3d":[{"line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatter3d"}],"scattercarpet":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattercarpet"}],"scattergeo":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergeo"}],"scattergl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattergl"}],"scattermapbox":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermapbox"}],"scattermap":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scattermap"}],"scatterpolargl":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolargl"}],"scatterpolar":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterpolar"}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"scatterternary":[{"marker":{"colorbar":{"outlinewidth":0,"ticks":""}},"type":"scatterternary"}],"surface":[{"colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"type":"surface"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}]},"layout":{"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"autotypenumbers":"strict","coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]],"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]},"colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"geo":{"bgcolor":"white","lakecolor":"white","landcolor":"white","showlakes":true,"showland":true,"subunitcolor":"#C8D4E3"},"hoverlabel":{"align":"left"},"hovermode":"closest","mapbox":{"style":"light"},"margin":{"b":0,"l":0,"r":0,"t":30},"paper_bgcolor":"white","plot_bgcolor":"white","polar":{"angularaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""},"bgcolor":"white","radialaxis":{"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":""}},"scene":{"xaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"yaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"},"zaxis":{"backgroundcolor":"white","gridcolor":"#DFE8F3","gridwidth":2,"linecolor":"#EBF0F8","showbackground":true,"ticks":"","zerolinecolor":"#EBF0F8"}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"ternary":{"aaxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"baxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""},"bgcolor":"white","caxis":{"gridcolor":"#DFE8F3","linecolor":"#A2B1C6","ticks":""}},"title":{"x":0.05},"xaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2},"yaxis":{"automargin":true,"gridcolor":"#EBF0F8","linecolor":"#EBF0F8","ticks":"","title":{"standoff":15},"zerolinecolor":"#EBF0F8","zerolinewidth":2}}},"shapes":[{"line":{"color":"black","width":1},"type":"line","x0":0,"x1":1,"xref":"x domain","y0":0,"y1":0,"yref":"y"}],"margin":{"t":60},"title":{"text":"Amazon: operating cash flow vs. capex vs. free cash flow"},"yaxis":{"title":{"text":"US$ billions"}},"barmode":"group","hovermode":"x unified","height":450,"xaxis":{"tickvals":[2022,2023,2024,2025]}},                        {"responsive": true}                    ).then(function(){
                            
var gd = document.getElementById('434b599b-1e62-4363-8279-82e3ec7c1dbc');
var x = new MutationObserver(function (mutations, observer) {{
        var display = window.getComputedStyle(gd).display;
        if (!display || display === 'none') {{
            console.log([gd, 'removed!']);
            Plotly.purge(gd);
            observer.disconnect();
        }}
}});

// Listen for the removal of the full notebook cells
var notebookContainer = gd.closest('#notebook-container');
if (notebookContainer) {{
    x.observe(notebookContainer, {childList: true});
}}

// Listen for the clearing of the current output cell
var outputEl = gd.closest('.output');
if (outputEl) {{
    x.observe(outputEl, {childList: true});
}}

                        })                };            </script>        </div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-cashtrend-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;10: Operating cash flow vs.&nbsp;capex vs.&nbsp;free cash flow, 2022–2025 (US$ billions). The AI build-out has eaten almost all the free cash flow.
</figcaption>
</figure>
</div>
</div>
<div class="takeaway">
<p><strong>The cash is real, but almost none of it is <em>free</em>.</strong> In 2025 Amazon turned $139.5B of operating cash flow into just <strong>$7.7B of free cash flow</strong> — because it plowed <strong>$131.8B into capex</strong>, overwhelmingly AI data centres and chips. So the honest version of the concern isn’t “the profits are fake.” It’s that the profits are real, but the company is reinvesting nearly all of its cash, so there’s little left over — and the whole thesis now rests on those AI investments earning a return.</p>
</div>
<section id="the-accounting-subtlety-worth-knowing-about" class="level3">
<h3 class="anchored" data-anchor-id="the-accounting-subtlety-worth-knowing-about">The accounting subtlety worth knowing about</h3>
<p>This is where <strong>depreciation and amortization timing</strong> becomes an earnings-quality issue, and it’s the part most people miss. When Amazon spends $132B on servers, the <em>cash</em> leaves immediately (it hits free cash flow right away), but the <em>income statement</em> only feels it gradually — spread out as depreciation over the asset’s “useful life,” typically 5–6 years. The mechanical consequence: in a year of heavy investment, <strong>reported operating income looks far healthier than free cash flow</strong>, because most of this year’s spending hasn’t yet shown up as depreciation. As today’s capex ages, that depreciation load climbs and becomes a growing drag on <em>future</em> operating income.</p>
<p>And “useful life” is an <em>estimate</em> — a management judgement that directly moves reported profit:</p>
<ul>
<li>In <strong>2024</strong>, Amazon <em>extended</em> the assumed life of servers from 5 to 6 years, which <strong>lowered</strong> annual depreciation and <strong>boosted</strong> reported income.</li>
<li>In <strong>2025</strong>, it <em>reversed course</em> (6 → 5 years), citing the faster pace of AI hardware obsolescence — <strong>reducing</strong> 2025 operating income by roughly <strong>$0.7B</strong>.</li>
<li>Over the same period <strong>Meta went the other way</strong>, extending server life to ~5.5 years and cutting its depreciation expense by ~$2.9B.</li>
</ul>
<p>Same physical hardware, opposite accounting calls — and each one changes reported profit by billions. None of this is fraud; it’s the legitimate latitude in accounting estimates. But it’s exactly why a careful analyst treats reported earnings as a <em>starting point</em> and always reconciles them to cash.</p>
<div class="takeaway">
<p><strong>Verdict on the “no real cash” worry:</strong> for Amazon it’s largely a myth in the fraud sense — operating cash flow exceeds profit, and its working-capital float generates cash rather than hiding a hole. The legitimate concerns are (1) <strong>capital intensity</strong> — free cash flow is thin because nearly everything is being reinvested in AI, and (2) <strong>depreciation timing</strong> — today’s strong operating income partly reflects spending that hasn’t hit the income statement yet. The question isn’t “is the cash real?” It’s “<strong>will the AI capex earn its keep?</strong>”</p>
</div>
<hr>
</section>
<section id="data-sources" class="level3 unnumbered">
<h3 class="unnumbered anchored" data-anchor-id="data-sources">Data &amp; sources</h3>
<ul>
<li><strong>Segment revenue &amp; operating income (2021–2025):</strong> Amazon.com, Inc.&nbsp;Form 10-K (FY2025) and prior annual filings, via SEC EDGAR.</li>
<li><strong>Consolidated cost lines &amp; cash-flow statement (FY2025):</strong> Amazon FY2025 Form 10-K.</li>
<li><strong>Q1 2026 results:</strong> Amazon Q1 2026 earnings release (reported Apr 29, 2026).</li>
<li><strong>Stock prices:</strong> Yahoo Finance via the <code>yfinance</code> Python package, pulled at render time.</li>
</ul>
<p><em>All figures are as reported by Amazon. This article is for educational and illustrative purposes and is not investment advice.</em></p>


</section>
</section>

 ]]></description>
  <category>Equity analysis</category>
  <category>Data visualization</category>
  <category>Python</category>
  <guid>https://adamczyk.ai/posts/amazon-anatomy/</guid>
  <pubDate>Sat, 30 May 2026 22:00:00 GMT</pubDate>
  <media:content url="https://adamczyk.ai/posts/amazon-anatomy/thumbnail.png" medium="image" type="image/png" height="66" width="144"/>
</item>
</channel>
</rss>
