historyofmarket.com · Free chart embeds

Embed our charts on your site.

30 live, attribution-only iframe embeds covering a century of U.S. equity history — S&P 500 returns and drawdowns, Shiller CAPE, VIX, Nasdaq Composite, Nasdaq 100 / QQQ, Magnificent 7. Data refreshes daily. Copy a snippet and paste it into any blog, Substack post, or page.

30 charts available Free · attribution required Daily refresh via GitHub Actions → Cloudflare CDN No API key · no signup

How to embed

  1. Pick a chart below and click Show iframe code.
  2. Copy the snippet and paste it into your blog editor's HTML view (Substack, Ghost, Notion, WordPress, Hashnode, custom Markdown sites — any platform that allows raw HTML).
  3. Customise via URL params: ?lang=en|cn, ?theme=light|dark. The default is English + light.
  4. Resize freely — the iframe is fluid up to its max-width; only the height is fixed. Pick the size that suits your column width.

Each embed renders the same live chart you'd see on historyofmarket.com, with a thin historyofmarket.com → attribution strip beneath. The strip is the only thing we ask: please leave it visible. The data behind every chart is also exposed as raw JSON under https://historyofmarket.com/api/<dataset>.json — see llms.txt if you want the full catalog.

S&P 500

Twenty-one chart embeds covering returns, drawdowns, valuation, and anatomy of the broad U.S. equity market.

S&P 500 — Annual Returns Since 1928 preview
Returns · 720×420

S&P 500 — Annual Returns Since 1928

73 positive years, 26 negative — the full annual ledger on a bar chart.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/annual?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — annual chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Annual Return Distribution preview
Returns · 720×420

S&P 500 — Annual Return Distribution

Average 11.8% — but only 7 of 99 years actually landed near it.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/annual-dist?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — annual-dist chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Buy-Year × Sell-Year Annualized preview
Returns · 520×520

S&P 500 — Buy-Year × Sell-Year Annualized

Hold-period heatmap: every entry-year × exit-year combination.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/annualized-matrix?lang=en&theme=light"
  width="520"
  height="520"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — annualized-matrix chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Five-Year Rolling Annualized preview
Returns · 720×420

S&P 500 — Five-Year Rolling Annualized

Fewer than 1-in-10 rolling 5-year windows finished negative.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/rolling?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — rolling chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Total Return = Price + Dividend + Buyback preview
Returns · 720×420

S&P 500 — Total Return = Price + Dividend + Buyback

Buybacks now rival dividends as the second pillar of total return.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/return-details?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — return-details chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Log YoY (Bull/Bear Boundary) preview
Returns · 720×420

S&P 500 — Log YoY (Bull/Bear Boundary)

Fourteen zero-line crossings since 1928 — the macro pulse.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/sp500-logyoy?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — sp500-logyoy chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Every Major Drawdown Since 1929 preview
Crisis · 720×420

S&P 500 — Every Major Drawdown Since 1929

Every named decline with depth, duration, and recovery in days.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/drawdown?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — drawdown chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Intrayear Drop vs Year-End Outcome preview
Crisis · 720×420

S&P 500 — Intrayear Drop vs Year-End Outcome

Average intrayear pullback −14%; year-end average still positive.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/intrayear-dd?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — intrayear-dd chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Realized Volatility (20d / 60d) preview
Crisis · 720×420

S&P 500 — Realized Volatility (20d / 60d)

Long-term median ~15%; >30% marks transitional regimes.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/volatility?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — volatility chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
VIX vs S&P 500 — The Bill for Hedging preview
Crisis · 720×420

VIX vs S&P 500 — The Bill for Hedging

Above 30, the market is already paying to hedge the next risk.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/vix?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — vix chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Monthly Heatmap & Win Rates preview
Crisis · 720×420

S&P 500 — Monthly Heatmap & Win Rates

Twelve months, twelve temperaments — November friendliest, September cruelest.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/monthly?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — monthly chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Shiller CAPE — Cycle-Smoothed P/E preview
Valuation · 720×420

Shiller CAPE — Cycle-Smoothed P/E

Historical mean ~17×; today's reading sits near a century high.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/pe?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — pe chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
AIAE — America's Equity Allocation preview
Valuation · 720×420

AIAE — America's Equity Allocation

A sharper 10-year return predictor than Shiller CAPE.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/aiae?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — aiae chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Earnings Per Share (TTM) preview
Valuation · 720×420

S&P 500 — Earnings Per Share (TTM)

The numerator behind every multiple.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/eps?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — eps chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Return on Equity preview
Valuation · 720×420

S&P 500 — Return on Equity

Remarkably steady near 15% across two decades.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/roe?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — roe chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — Trailing PE (TTM) preview
Valuation · 720×420

S&P 500 — Trailing PE (TTM)

Ten years of trailing twelve-month earnings multiples with mean reference.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/forward-pe?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — forward-pe chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
S&P 500 — GICS 11-Sector Weights preview
Anatomy · 520×520

S&P 500 — GICS 11-Sector Weights

Tech dominant; the rest of the economy trailing.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/sectors?lang=en&theme=light"
  width="520"
  height="520"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — sectors chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>

Magnificent 7

The seven names rewriting the index — equal-weight reference series.

Magnificent 7 — Equal-Weight Index preview
Anatomy · 720×420

Magnificent 7 — Equal-Weight Index

AAPL, MSFT, NVDA, GOOGL, AMZN, META, TSLA — indexed to 2022-01-03.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/m7?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — m7 chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>

Nasdaq Composite

Half a century of the broader Nasdaq market, including the canonical bubble footprint.

Nasdaq Composite — From 100 to 16,000+ preview
The Long Lens · 720×420

Nasdaq Composite — From 100 to 16,000+

Half a century of innovation in one curve, since Feb 5, 1971.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/nasdaq-composite?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — nasdaq-composite chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Nasdaq — Log YoY: Footprints of a Bubble preview
The Long Lens · 720×420

Nasdaq — Log YoY: Footprints of a Bubble

Dot-com 2000 and tightening 2022 are the two deepest red stretches.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/nasdaq-logyoy?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — nasdaq-logyoy chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>

Nasdaq 100 / QQQ

Eleven embeds tracking the tech asset class — returns, risk, and the seven names that already take half the index.

Nasdaq 100 — Annual Returns preview
Returns · 720×420

Nasdaq 100 — Annual Returns

~15% average since 1999; −42% in 2008.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/nasdaq100-annual?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — nasdaq100-annual chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Nasdaq 100 — Annual Return Distribution preview
Returns · 720×420

Nasdaq 100 — Annual Return Distribution

Thicker tails than the broad market — tech's native shape.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/ndx-annual-dist?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — ndx-annual-dist chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Nasdaq 100 — Buy × Sell Annualized Matrix preview
Returns · 520×520

Nasdaq 100 — Buy × Sell Annualized Matrix

Annualized-return matrix since 1986.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/ndx-matrix?lang=en&theme=light"
  width="520"
  height="520"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — ndx-matrix chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Nasdaq 100 — 5-Year Rolling Annualized preview
Returns · 720×420

Nasdaq 100 — 5-Year Rolling Annualized

Negative windows ≈ one-tenth of history, monthly since 1990.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/ndx-rolling?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — ndx-rolling chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Nasdaq 100 — 59 Historical Drawdowns preview
Crisis · 720×420

Nasdaq 100 — 59 Historical Drawdowns

−83% from 2000 to 2002 — the canonical bubble.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/ndx-drawdown?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — ndx-drawdown chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Nasdaq 100 — Intrayear Drop vs Outcome preview
Crisis · 720×420

Nasdaq 100 — Intrayear Drop vs Outcome

Intrayear average −18%; year-end average still +18%.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/ndx-intrayear-dd?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — ndx-intrayear-dd chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Nasdaq 100 — 20/60-Day Volatility preview
Crisis · 720×420

Nasdaq 100 — 20/60-Day Volatility

Median ~22%, structurally above the S&P 500.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/ndx-volatility?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — ndx-volatility chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Nasdaq 100 — Monthly Heatmap preview
Crisis · 720×420

Nasdaq 100 — Monthly Heatmap

Since 1985 — November and December friendliest, January cruelest.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/ndx-monthly?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — ndx-monthly chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
VXN — Nasdaq 100 Fear Index preview
Crisis · 720×420

VXN — Nasdaq 100 Fear Index

Above 35, tech has already entered systemic-risk pricing.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/ndx-vxn?lang=en&theme=light"
  width="720"
  height="420"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — ndx-vxn chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>
Nasdaq 100 — Top 25 Holdings & Cumulative Share preview
Anatomy · 520×520

Nasdaq 100 — Top 25 Holdings & Cumulative Share

Seven names already take half — buying QQQ bets on those seven.

Show iframe code
<iframe
  src="https://historyofmarket.com/embed/nasdaq100-weights?lang=en&theme=light"
  width="520"
  height="520"
  loading="lazy"
  frameborder="0"
  scrolling="no"
  referrerpolicy="no-referrer-when-downgrade"
  title="History of Market — nasdaq100-weights chart embed"
  style="border:0;max-width:100%;width:100%;display:block;">
</iframe>