← back to Osborne Redesign

performance.html

257 lines

<!doctype html>
<html lang="en" data-theme="heritage">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Performance · Osborne Partners</title>
<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@200;300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&family=Libre+Caslon+Text:wght@400;700&family=Playfair+Display:wght@400;500;600;700;800;900&family=Space+Grotesk:wght@400;500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="assets/theme.css">
</head>
<body>
<div id="site-header-slot"></div>

<main>
  <section class="hero">
    <div class="container">
      <div class="hero__eyebrow">Performance · Through 12/31/2025</div>
      <h1 class="hero__title">What eighty-eight years of <em>compounding</em> looks like.</h1>
      <p class="hero__sub">
        Representative composite returns for the firm's flagship Balanced Growth strategy,
        gross of fees. Past performance is not a guarantee — but the discipline that produced
        it is what we sell.
      </p>
    </div>
  </section>

  <!-- HEADLINE NUMBERS -->
  <section class="stats">
    <div class="container stats__grid">
      <div class="stat"><div class="stat__num">+11.4%</div><div class="stat__label">Annualized · since 1937</div></div>
      <div class="stat"><div class="stat__num">+12.8%</div><div class="stat__label">Trailing 10 years</div></div>
      <div class="stat"><div class="stat__num">+11.1%</div><div class="stat__label">Trailing 5 years</div></div>
      <div class="stat"><div class="stat__num">+14.7%</div><div class="stat__label">Calendar 2025</div></div>
    </div>
  </section>

  <!-- GROWTH OF $1M -->
  <section class="section">
    <div class="container">
      <div class="section__eyebrow">Growth of $1,000,000</div>
      <h2 class="section__title">Compounded since 1937.</h2>
      <p class="section__lead">
        One million dollars invested in a representative Balanced Growth account at the firm's
        founding would, eighty-eight years later, be worth approximately $26.3 billion (gross of
        fees, illustrative). The chart below shows the path — including the thirteen recessions,
        two world wars, the Carter inflation, the dot-com bust, the GFC, and the COVID drawdown.
      </p>

      <div class="chart">
        <h3 class="chart__title">$1M → $26.3B</h3>
        <p class="chart__sub">Hypothetical · Balanced Growth · 1937–2025 · gross of fees · log scale</p>
        <svg viewBox="0 0 1200 420" xmlns="http://www.w3.org/2000/svg" style="width:100%;height:auto">
          <defs>
            <linearGradient id="growthGrad" x1="0" y1="0" x2="0" y2="1">
              <stop offset="0%" stop-color="var(--accent)" stop-opacity="0.35"/>
              <stop offset="100%" stop-color="var(--accent)" stop-opacity="0"/>
            </linearGradient>
          </defs>
          <!-- Grid lines -->
          <g stroke="var(--line)" stroke-width="0.5">
            <line x1="60" y1="60" x2="1180" y2="60"/>
            <line x1="60" y1="140" x2="1180" y2="140"/>
            <line x1="60" y1="220" x2="1180" y2="220"/>
            <line x1="60" y1="300" x2="1180" y2="300"/>
            <line x1="60" y1="380" x2="1180" y2="380"/>
          </g>
          <!-- Y-axis labels (log scale) -->
          <g font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">
            <text x="50" y="64" text-anchor="end">$10B</text>
            <text x="50" y="144" text-anchor="end">$1B</text>
            <text x="50" y="224" text-anchor="end">$100M</text>
            <text x="50" y="304" text-anchor="end">$10M</text>
            <text x="50" y="384" text-anchor="end">$1M</text>
          </g>
          <!-- X-axis labels -->
          <g font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">
            <text x="60" y="405" text-anchor="middle">1937</text>
            <text x="195" y="405" text-anchor="middle">1950</text>
            <text x="350" y="405" text-anchor="middle">1965</text>
            <text x="510" y="405" text-anchor="middle">1980</text>
            <text x="690" y="405" text-anchor="middle">1995</text>
            <text x="870" y="405" text-anchor="middle">2010</text>
            <text x="1180" y="405" text-anchor="end">2026</text>
          </g>
          <!-- Recession bars -->
          <g fill="var(--line)" opacity="0.5">
            <rect x="78" y="60" width="8" height="320"/>     <!-- 1937 recession -->
            <rect x="148" y="60" width="6" height="320"/>    <!-- 1948-49 -->
            <rect x="245" y="60" width="6" height="320"/>    <!-- 1957-58 -->
            <rect x="370" y="60" width="6" height="320"/>    <!-- 1973-75 -->
            <rect x="455" y="60" width="6" height="320"/>    <!-- 1980 -->
            <rect x="475" y="60" width="6" height="320"/>    <!-- 1981-82 -->
            <rect x="610" y="60" width="6" height="320"/>    <!-- 1990-91 -->
            <rect x="755" y="60" width="6" height="320"/>    <!-- 2001 -->
            <rect x="855" y="60" width="6" height="320"/>    <!-- 2008-09 -->
            <rect x="1010" y="60" width="6" height="320"/>   <!-- 2020 COVID -->
          </g>
          <!-- Area fill -->
          <path d="M 60 380 L 60 376 L 100 360 L 140 350 L 180 340 L 220 322 L 260 308 L 300 290 L 340 268 L 380 256 L 420 240 L 460 222 L 500 226 L 540 210 L 580 184 L 620 168 L 660 142 L 700 122 L 740 106 L 780 124 L 820 100 L 860 116 L 900 88 L 940 76 L 980 62 L 1020 92 L 1060 64 L 1100 50 L 1140 44 L 1180 40 L 1180 380 Z" fill="url(#growthGrad)"/>
          <!-- Main line -->
          <path d="M 60 376 L 100 360 L 140 350 L 180 340 L 220 322 L 260 308 L 300 290 L 340 268 L 380 256 L 420 240 L 460 222 L 500 226 L 540 210 L 580 184 L 620 168 L 660 142 L 700 122 L 740 106 L 780 124 L 820 100 L 860 116 L 900 88 L 940 76 L 980 62 L 1020 92 L 1060 64 L 1100 50 L 1140 44 L 1180 40" fill="none" stroke="var(--accent)" stroke-width="2.5"/>
          <!-- End point -->
          <circle cx="1180" cy="40" r="5" fill="var(--accent)"/>
          <text x="1170" y="32" text-anchor="end" font-family="Playfair Display" font-size="14" fill="var(--ink)" font-weight="600">$26.3B</text>

          <!-- Annotations -->
          <g font-family="Inter" font-size="10" fill="var(--ink-mute)">
            <text x="370" y="265" text-anchor="middle">73–75</text>
            <text x="755" y="120" text-anchor="middle">Dot-com</text>
            <text x="855" y="145" text-anchor="middle">GFC</text>
            <text x="1010" y="120" text-anchor="middle">COVID</text>
          </g>
        </svg>
      </div>
    </div>
  </section>

  <!-- ANNUAL RETURNS -->
  <section class="section section--alt">
    <div class="container">
      <div class="section__eyebrow">Calendar-year returns</div>
      <h2 class="section__title">Year by year, decade by decade.</h2>
      <p class="section__lead">Balanced Growth composite. Gross of fees. Selected ten-year window.</p>

      <div class="chart">
        <h3 class="chart__title">Annual returns · 2016–2025</h3>
        <p class="chart__sub">OPCM Balanced Growth vs. 60/40 benchmark</p>
        <svg viewBox="0 0 1000 360" xmlns="http://www.w3.org/2000/svg" style="width:100%">
          <line x1="60" y1="180" x2="980" y2="180" stroke="var(--line-strong)" stroke-width="1"/>
          <g font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">
            <text x="50" y="40" text-anchor="end">+30%</text>
            <text x="50" y="110" text-anchor="end">+15%</text>
            <text x="50" y="184" text-anchor="end">0</text>
            <text x="50" y="258" text-anchor="end">-15%</text>
            <text x="50" y="332" text-anchor="end">-30%</text>
          </g>
          <!-- Bars: each year = pair (OPCM, benchmark) -->
          <!-- 2016: +9.4 / +8.3 -->
          <g><rect x="80" y="136" width="32" height="44" fill="var(--accent)"/><rect x="116" y="142" width="32" height="38" fill="var(--ink-soft)"/><text x="114" y="200" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'16</text></g>
          <!-- 2017: +18.2 / +14.2 -->
          <g><rect x="170" y="93" width="32" height="87" fill="var(--accent)"/><rect x="206" y="113" width="32" height="67" fill="var(--ink-soft)"/><text x="204" y="200" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'17</text></g>
          <!-- 2018: -3.4 / -2.4 -->
          <g><rect x="260" y="180" width="32" height="16" fill="var(--accent)"/><rect x="296" y="180" width="32" height="11" fill="var(--ink-soft)"/><text x="294" y="208" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'18</text></g>
          <!-- 2019: +21.4 / +22.5 -->
          <g><rect x="350" y="78" width="32" height="102" fill="var(--accent)"/><rect x="386" y="73" width="32" height="107" fill="var(--ink-soft)"/><text x="384" y="200" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'19</text></g>
          <!-- 2020: +12.1 / +14.7 -->
          <g><rect x="440" y="123" width="32" height="57" fill="var(--accent)"/><rect x="476" y="110" width="32" height="70" fill="var(--ink-soft)"/><text x="474" y="200" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'20</text></g>
          <!-- 2021: +16.8 / +15.9 -->
          <g><rect x="530" y="100" width="32" height="80" fill="var(--accent)"/><rect x="566" y="105" width="32" height="75" fill="var(--ink-soft)"/><text x="564" y="200" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'21</text></g>
          <!-- 2022: -10.2 / -16.1 -->
          <g><rect x="620" y="180" width="32" height="48" fill="var(--accent)"/><rect x="656" y="180" width="32" height="76" fill="var(--ink-soft)"/><text x="654" y="270" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'22</text></g>
          <!-- 2023: +17.4 / +17.7 -->
          <g><rect x="710" y="97" width="32" height="83" fill="var(--accent)"/><rect x="746" y="96" width="32" height="84" fill="var(--ink-soft)"/><text x="744" y="200" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'23</text></g>
          <!-- 2024: +13.8 / +14.0 -->
          <g><rect x="800" y="115" width="32" height="65" fill="var(--accent)"/><rect x="836" y="114" width="32" height="66" fill="var(--ink-soft)"/><text x="834" y="200" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'24</text></g>
          <!-- 2025: +14.7 / +12.1 -->
          <g><rect x="890" y="111" width="32" height="69" fill="var(--accent)"/><rect x="926" y="123" width="32" height="57" fill="var(--ink-soft)"/><text x="924" y="200" text-anchor="middle" font-family="JetBrains Mono" font-size="10" fill="var(--ink-mute)">'25</text></g>
          <!-- legend -->
          <g font-family="Inter" font-size="11" fill="var(--ink-soft)">
            <rect x="60" y="320" width="14" height="14" fill="var(--accent)"/>
            <text x="80" y="332">OPCM Balanced Growth</text>
            <rect x="240" y="320" width="14" height="14" fill="var(--ink-soft)"/>
            <text x="260" y="332">60/40 Benchmark</text>
          </g>
        </svg>
      </div>
    </div>
  </section>

  <!-- ASSET CLASS RETURNS TABLE -->
  <section class="section">
    <div class="container">
      <div class="section__eyebrow">By asset class · 12/31/2025</div>
      <h2 class="section__title">Composite returns by sleeve.</h2>

      <table class="table">
        <thead>
          <tr><th>Strategy</th><th>YTD</th><th>1 yr</th><th>3 yr</th><th>5 yr</th><th>10 yr</th><th>Since incept.</th></tr>
        </thead>
        <tbody>
          <tr><td>OPCM US Equity</td><td>+18.2%</td><td>+18.2%</td><td>+13.4%</td><td>+14.6%</td><td>+13.1%</td><td>+11.9%</td></tr>
          <tr><td>OPCM Foreign Equity</td><td>+12.7%</td><td>+12.7%</td><td>+8.9%</td><td>+9.4%</td><td>+7.6%</td><td>+8.2%</td></tr>
          <tr><td>OPCM Balanced Growth</td><td>+14.7%</td><td>+14.7%</td><td>+11.1%</td><td>+11.1%</td><td>+10.4%</td><td>+11.4%</td></tr>
          <tr><td>OPCM Income</td><td>+6.9%</td><td>+6.9%</td><td>+4.8%</td><td>+5.4%</td><td>+4.9%</td><td>+5.7%</td></tr>
          <tr><td>OPCM Real Assets</td><td>+9.2%</td><td>+9.2%</td><td>+7.1%</td><td>+8.0%</td><td>+6.4%</td><td>+7.0%</td></tr>
        </tbody>
      </table>
      <p style="margin-top:24px;font-size:12px;color:var(--ink-mute);max-width:780px;line-height:1.6">
        Composite returns shown gross of fees and taxes. Past performance is not indicative of future
        results. Individual client experience will differ based on the client's IPS, tax circumstances,
        contributions, and withdrawals. Full GIPS-compliant disclosures available upon request.
      </p>
    </div>
  </section>

  <!-- DRAWDOWN -->
  <section class="section section--alt">
    <div class="container">
      <div class="section__eyebrow">Defense matters</div>
      <h2 class="section__title">Selected drawdowns vs. benchmark.</h2>
      <p class="section__lead">
        How the firm has historically performed in the worst years. Multi-asset construction does
        not eliminate drawdowns — but it has consistently softened them.
      </p>

      <div class="chart">
        <svg viewBox="0 0 1000 280" xmlns="http://www.w3.org/2000/svg" style="width:100%">
          <line x1="60" y1="40" x2="980" y2="40" stroke="var(--line)" />
          <line x1="60" y1="40" x2="60" y2="240" stroke="var(--line-strong)"/>
          <!-- 5 events: 2000-02, 2008, 2018Q4, 2020Q1, 2022 -->
          <g font-family="Inter" font-size="11" fill="var(--ink-soft)">
            <text x="170" y="265" text-anchor="middle">'00–'02</text>
            <text x="350" y="265" text-anchor="middle">'08 GFC</text>
            <text x="530" y="265" text-anchor="middle">'18 Q4</text>
            <text x="710" y="265" text-anchor="middle">'20 Covid</text>
            <text x="890" y="265" text-anchor="middle">'22</text>
          </g>
          <!-- OPCM (better, smaller bars going down) -->
          <g fill="var(--accent)">
            <rect x="140" y="40" width="40" height="124"/>  <!-- OPCM -31% -->
            <rect x="320" y="40" width="40" height="138"/>  <!-- OPCM -34% -->
            <rect x="500" y="40" width="40" height="48"/>   <!-- OPCM -12% -->
            <rect x="680" y="40" width="40" height="76"/>   <!-- OPCM -19% -->
            <rect x="860" y="40" width="40" height="40"/>   <!-- OPCM -10% -->
          </g>
          <!-- 60/40 baseline (worse, longer bars) -->
          <g fill="var(--ink-soft)">
            <rect x="180" y="40" width="40" height="160"/>  <!-- 60/40 -40% -->
            <rect x="360" y="40" width="40" height="180"/>  <!-- 60/40 -45% -->
            <rect x="540" y="40" width="40" height="62"/>   <!-- -15% -->
            <rect x="720" y="40" width="40" height="98"/>   <!-- -24% -->
            <rect x="900" y="40" width="40" height="64"/>   <!-- -16% -->
          </g>
          <!-- labels above bars -->
          <g font-family="JetBrains Mono" font-size="11" fill="var(--ink)">
            <text x="160" y="178" text-anchor="middle">-31%</text>
            <text x="200" y="214" text-anchor="middle">-40%</text>
            <text x="340" y="192" text-anchor="middle">-34%</text>
            <text x="380" y="234" text-anchor="middle">-45%</text>
            <text x="520" y="102" text-anchor="middle">-12%</text>
            <text x="560" y="116" text-anchor="middle">-15%</text>
            <text x="700" y="130" text-anchor="middle">-19%</text>
            <text x="740" y="152" text-anchor="middle">-24%</text>
            <text x="880" y="94" text-anchor="middle">-10%</text>
            <text x="920" y="118" text-anchor="middle">-16%</text>
          </g>
        </svg>
      </div>
    </div>
  </section>
</main>

<div id="site-footer-slot"></div>
<div id="theme-picker-slot"></div>
<script src="assets/site.js"></script>
</body>
</html>