<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Chris W. on LibreLeo: Financial Freedom for Globally Mobile Investors</title><link>https://libreleo.com/authors/chris-w./</link><description>Tools, math, and lived experience for expats building wealth across borders. Passive portfolios and active income from a Dubai-based trader.</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Copyright © 2026 | All rights reserved</copyright><lastBuildDate>Mon, 22 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://libreleo.com/authors/chris-w./index.xml" rel="self" type="application/rss+xml"/><item><title>Monte Carlo Retirement Calculator</title><link>https://libreleo.com/calculators/monte-carlo-retirement-calculator/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/calculators/monte-carlo-retirement-calculator/</guid><description>Interactive Monte Carlo simulator. 10,000 scenarios by default, up to 100,000. Four portfolios, two withdrawal strategies, log-normal compounding, fat-tail mode. Run your real retirement numbers.</description><content:encoded><![CDATA[
  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    
  </span>

  <span
    
      style="color: #ffffff"
    
    ><strong>Want to understand the methodology?</strong> Learn why Monte Carlo simulation matters and how it models market volatility in our <strong><a href="/posts/monte-carlo-simulation-retirement-planning/" >Complete Guide to Monte Carlo Retirement Planning</a></strong>.</span>
</div>


<h2 class="relative group">Interactive Calculator
    <div id="interactive-calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#interactive-calculator" aria-label="Anchor">#</a>
    </span>
    
</h2>

<div class="monte-carlo-calculator" id="monte-carlo-app">
  
  <div class="mc-header">
    <h2>🎲 Monte Carlo Retirement Calculator</h2>
    <p class="mc-subtitle">Simulate your financial future with 10,000 scenarios (up to 100,000)</p>
  </div>

  
  <div class="mc-section">
    <h3>1. Choose Your Portfolio</h3>
    <div class="portfolio-grid">
      <div class="portfolio-card" data-portfolio="1">
        <div class="portfolio-header">
          <input type="radio" name="portfolio" id="p1" value="1" checked>
          <label for="p1">
            <strong>Dividend-Focused</strong>
            <span class="badge">Original</span>
          </label>
        </div>
        <div class="portfolio-details">
          <p class="portfolio-desc">Heavy dividend tilt with growth</p>
          <ul class="portfolio-assets">
            <li>VTI: 35% • SCHG: 15%</li>
            <li>SCHD: 30% • SGOV: 20%</li>
          </ul>
          <div class="portfolio-stats">
            <span>ER: 0.0525%</span>
            <span class="exp-return-label" data-portfolio="1">Exp Return: —</span>
          </div>
        </div>
      </div>

      <div class="portfolio-card recommended" data-portfolio="2">
        <div class="portfolio-header">
          <input type="radio" name="portfolio" id="p2" value="2">
          <label for="p2">
            <strong>Classic Three-Fund</strong>
            <span class="badge recommended-badge">⭐ Recommended</span>
          </label>
        </div>
        <div class="portfolio-details">
          <p class="portfolio-desc">Ultimate simple, diversified portfolio</p>
          <ul class="portfolio-assets">
            <li>VTI: 54% • VXUS: 26%</li>
            <li>BND: 20%</li>
          </ul>
          <div class="portfolio-stats">
            <span>ER: 0.0404%</span>
            <span class="exp-return-label" data-portfolio="2">Exp Return: —</span>
          </div>
        </div>
      </div>

      <div class="portfolio-card" data-portfolio="3">
        <div class="portfolio-header">
          <input type="radio" name="portfolio" id="p3" value="3">
          <label for="p3">
            <strong>Golden Butterfly</strong>
            <span class="badge">All-Weather</span>
          </label>
        </div>
        <div class="portfolio-details">
          <p class="portfolio-desc">All market conditions with gold</p>
          <ul class="portfolio-assets">
            <li>VTI: 30% • VXUS: 10%</li>
            <li>SHY: 20% • TLT: 20% • GLD: 20%</li>
          </ul>
          <div class="portfolio-stats">
            <span>ER: 0.1560%</span>
            <span class="exp-return-label" data-portfolio="3">Exp Return: —</span>
          </div>
        </div>
      </div>

      <div class="portfolio-card" data-portfolio="4">
        <div class="portfolio-header">
          <input type="radio" name="portfolio" id="p4" value="4">
          <label for="p4">
            <strong>Modern Bogleheads</strong>
            <span class="badge">TIPS & REITs</span>
          </label>
        </div>
        <div class="portfolio-details">
          <p class="portfolio-desc">Enhanced diversification + inflation</p>
          <ul class="portfolio-assets">
            <li>VTI: 40% • VXUS: 20%</li>
            <li>VNQ: 10% • VTIP: 15% • BND: 15%</li>
          </ul>
          <div class="portfolio-stats">
            <span>ER: 0.0485%</span>
            <span class="exp-return-label" data-portfolio="4">Exp Return: —</span>
          </div>
        </div>
      </div>
    </div>
  </div>

  
  <div class="mc-section">
    <h3>2. Set Your Parameters</h3>
    <div class="input-grid">
      <div class="input-group">
        <label for="initial-value">
          Starting Portfolio Value
          <span class="help-text">How much are you starting with?</span>
        </label>
        <div class="input-with-prefix">
          <span class="prefix">$</span>
          <input type="number" id="initial-value" value="1000000" min="10000" step="10000">
        </div>
      </div>

      <div class="input-group">
        <label for="withdrawal-rate">
          Annual Withdrawal Rate
          <span class="help-text">% of portfolio value</span>
        </label>
        <div class="input-with-suffix">
          <input type="number" id="withdrawal-rate" value="3.0" min="1" max="10" step="0.1">
          <span class="suffix">%</span>
        </div>
      </div>

      <div class="input-group">
        <label for="withdrawal-strategy">
          Withdrawal Strategy
          <span class="help-text">How withdrawals adjust over time</span>
        </label>
        <select id="withdrawal-strategy">
          <option value="constant">Constant Dollar (Traditional SWR)</option>
          <option value="dynamic">Dynamic Spending (Vanguard)</option>
        </select>
      </div>

      <div class="input-group">
        <label for="years">
          Simulation Duration
          <span class="help-text">Years until you turn 100</span>
        </label>
        <div class="input-with-suffix">
          <input type="number" id="years" value="50" min="10" max="70" step="5">
          <span class="suffix">years</span>
        </div>
      </div>

      <div class="input-group">
        <label for="advisor-fee">
          Additional Fees (optional)
          <span class="help-text">Robo-advisor or financial advisor fee</span>
        </label>
        <div class="input-with-suffix">
          <input type="number" id="advisor-fee" value="0" min="0" max="2" step="0.05">
          <span class="suffix">%</span>
        </div>
      </div>
    </div>

    <div class="advanced-options">
      <button type="button" class="toggle-advanced" id="toggle-advanced">
        <span class="toggle-text">⚙️ Advanced Options</span>
        <span class="arrow">▼</span>
      </button>
      <div class="advanced-content" id="advanced-content" style="display: none;">
        <div class="input-grid">
          <div class="input-group">
            <label for="simulations">
              Number of Simulations
              <span class="help-text">More = more accurate (slower)</span>
            </label>
            <select id="simulations">
              <option value="1000">1,000 (Fast)</option>
              <option value="10000" selected>10,000 (Recommended)</option>
              <option value="50000">50,000 (Accurate)</option>
              <option value="100000">100,000 (Very Accurate)</option>
            </select>
          </div>

          <div class="input-group">
            <label for="inflation">
              Inflation Rate
              <span class="help-text">Expected annual inflation</span>
            </label>
            <div class="input-with-suffix">
              <input type="number" id="inflation" value="2.5" min="0" max="10" step="0.1">
              <span class="suffix">%</span>
            </div>
          </div>

          <div class="input-group checkbox-group">
            <label>
              <input type="checkbox" id="fat-tails">
              <span>Enable Fat-Tail Mode</span>
              <span class="help-text">Better models black swan events</span>
            </label>
          </div>

          <div class="input-group" id="dynamic-floor-group" style="display: none;">
            <label for="dynamic-floor">
              Dynamic Floor
              <span class="help-text">% below inflation-adjusted spending</span>
            </label>
            <div class="input-with-suffix">
              <input type="number" id="dynamic-floor" value="2.5" min="0" max="20" step="0.5">
              <span class="suffix">%</span>
            </div>
          </div>

          <div class="input-group" id="dynamic-ceiling-group" style="display: none;">
            <label for="dynamic-ceiling">
              Dynamic Ceiling
              <span class="help-text">% above inflation-adjusted spending</span>
            </label>
            <div class="input-with-suffix">
              <input type="number" id="dynamic-ceiling" value="5.0" min="0" max="20" step="0.5">
              <span class="suffix">%</span>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>

  
  <div class="mc-section">
    <button type="button" class="btn-primary btn-large" id="run-simulation">
      <span class="btn-text">🚀 Run Simulation</span>
      <span class="btn-loading" style="display: none;">⏳ Running...</span>
    </button>
  </div>

  
  <div class="mc-section results-section" id="results-section" style="display: none;">
    <h3>📊 Simulation Results</h3>

    
    <div class="summary-grid">
      <div class="summary-card success">
        <div class="card-header">Median Outcome</div>
        <div class="card-value" id="median-value">$0</div>
        <div class="card-subtitle" id="median-real">$0 real</div>
      </div>

      <div class="summary-card warning">
        <div class="card-header">Worst Case (5th %ile)</div>
        <div class="card-value" id="p5-value">$0</div>
        <div class="card-subtitle" id="p5-real">$0 real</div>
      </div>

      <div class="summary-card info">
        <div class="card-header">Best Case (95th %ile)</div>
        <div class="card-value" id="p95-value">$0</div>
        <div class="card-subtitle" id="p95-real">$0 real</div>
      </div>

      <div class="summary-card" id="depletion-card">
        <div class="card-header">Depletion Risk</div>
        <div class="card-value" id="depletion-prob">0.0%</div>
        <div class="card-subtitle">Chance of running out</div>
      </div>
    </div>

    
    <p class="growth-context" id="growth-context">
      Without withdrawals, your median outcome would be
      <strong id="no-wd-median">$0</strong>
      (<span id="no-wd-median-real">$0 real</span>).
      Your withdrawals cost about
      <strong id="wd-cost">$0</strong>
      of median compound growth over the horizon. <em>That's the real price of retirement spending.</em>
    </p>

    
    <div class="chart-container">
      <h4>Portfolio Growth Over Time</h4>
      <p class="chart-caption">
        The dashed brass line is the <strong>median path with no withdrawals</strong> — your portfolio's pure growth potential against the same market shocks. The gap between it and the solid green median is what your spending costs you, year by year.
      </p>
      <canvas id="growth-chart"></canvas>
    </div>

    <div class="chart-container">
      <h4>Distribution of Final Values</h4>
      <canvas id="distribution-chart"></canvas>
    </div>

    
    <div class="results-table">
      <h4>Detailed Metrics</h4>
      <table>
        <thead>
          <tr>
            <th>Metric</th>
            <th>Nominal Value</th>
            <th>Real Value (Today's $)</th>
          </tr>
        </thead>
        <tbody id="results-table-body">
        </tbody>
      </table>
    </div>

    
    <div class="risk-metrics">
      <h4>Risk Analysis</h4>
      <div class="metrics-grid">
        <div class="metric-item">
          <span class="metric-label">Median Max Drawdown</span>
          <span class="metric-value" id="median-drawdown">0%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">Worst Drawdown (95th %ile)</span>
          <span class="metric-value" id="worst-drawdown">0%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">Sharpe Ratio</span>
          <span class="metric-value" id="sharpe-ratio">0.00</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">Sortino Ratio</span>
          <span class="metric-value" id="sortino-ratio">0.00</span>
        </div>
      </div>
    </div>

    
    <div class="risk-metrics">
      <h4>S&P 500 Benchmark Comparison</h4>
      <div class="metrics-grid">
        <div class="metric-item">
          <span class="metric-label">S&P 500 Median (Nominal)</span>
          <span class="metric-value" id="sp500-median">$0</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">S&P 500 Median (Real)</span>
          <span class="metric-value" id="sp500-median-real">$0</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">Beat S&P 500 (Nominal)</span>
          <span class="metric-value" id="beat-sp500">0%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">Beat S&P 500 (Real)</span>
          <span class="metric-value" id="beat-sp500-real">0%</span>
        </div>
      </div>
    </div>

    
    <div class="risk-metrics">
      <h4>Fee Impact Analysis</h4>
      <div class="metrics-grid">
        <div class="metric-item">
          <span class="metric-label">Blended Expense Ratio</span>
          <span class="metric-value" id="blended-er">0.00%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">Total Annual Fee</span>
          <span class="metric-value" id="total-fee">0.00%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">Fee Drag (Total)</span>
          <span class="metric-value" id="fee-drag">0.0%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">Cost of Fees</span>
          <span class="metric-value" id="fee-cost">$0</span>
        </div>
      </div>
    </div>

    
    <div class="results-table">
      <h4>Withdrawal Analysis (First 10 Years)</h4>
      <table>
        <thead>
          <tr>
            <th>Year</th>
            <th>Average</th>
            <th>Median</th>
            <th>5th %ile</th>
            <th>95th %ile</th>
          </tr>
        </thead>
        <tbody id="withdrawal-table-first">
        </tbody>
      </table>
    </div>

    <div class="results-table">
      <h4>Withdrawal Analysis (Last 10 Years)</h4>
      <table>
        <thead>
          <tr>
            <th>Year</th>
            <th>Average</th>
            <th>Median</th>
            <th>5th %ile</th>
            <th>95th %ile</th>
          </tr>
        </thead>
        <tbody id="withdrawal-table-last">
        </tbody>
      </table>
    </div>

    
    <div class="risk-metrics">
      <h4>Goal Probability Analysis</h4>
      <p style="margin-bottom: 1rem; color: var(--mc-text-secondary);">Probability of reaching target by end of simulation:</p>
      <div class="metrics-grid">
        <div class="metric-item">
          <span class="metric-label">$1.5M</span>
          <span class="metric-value" id="goal-1500000">0%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">$2M</span>
          <span class="metric-value" id="goal-2000000">0%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">$3M</span>
          <span class="metric-value" id="goal-3000000">0%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">$5M</span>
          <span class="metric-value" id="goal-5000000">0%</span>
        </div>
        <div class="metric-item">
          <span class="metric-label">$10M</span>
          <span class="metric-value" id="goal-10000000">0%</span>
        </div>
      </div>
    </div>

    
    <div class="export-buttons">
      <button type="button" class="btn-secondary" id="export-csv">
        📥 Export to CSV
      </button>
      <button type="button" class="btn-secondary" id="copy-results">
        📋 Copy Results
      </button>
    </div>
  </div>

  
  <details class="mc-methodology">
    <summary>📐 Methodology &amp; assumptions</summary>
    <div class="mc-methodology-body">
      <h4>Engine</h4>
      <ul>
        <li><strong>Monthly Geometric Brownian Motion</strong> per asset, log-normal compounding (<code>value &times; exp(r)</code>) so portfolios can't go below zero.</li>
        <li><strong>Cholesky-decomposed correlation matrix</strong> drives correlated monthly returns across the assets in the chosen portfolio.</li>
        <li><strong>Fat-tail mode</strong> swaps Normal for Student's t (df=5) with variance correction.</li>
        <li><strong>Annual rebalance</strong> at year-end. Per-asset withdrawals are taken at target weights, which has a monthly partial-rebalance side effect.</li>
      </ul>
      <h4>What the metrics actually measure</h4>
      <ul>
        <li><strong>Median / 5th / 95th percentile</strong> — distribution of terminal portfolio values across paths.</li>
        <li><strong>Depletion risk</strong> — share of paths where terminal value &lt; $1.</li>
        <li><strong>Sharpe / Sortino</strong> — per-path risk-adjusted return computed from each simulation's gross monthly portfolio returns (annualized), then averaged across paths. <em>Not</em> a cross-path outcome-dispersion proxy.</li>
        <li><strong>Max drawdown</strong> — peak-to-trough decline of portfolio value <em>including withdrawals</em>. For retirees this conflates market loss with normal liquidation; expect drawdowns to climb over a long horizon even in benign markets.</li>
        <li><strong>P(beat S&amp;P 500)</strong> — the SP500 path shares VTI's correlated monthly shock (empirical ρ≈0.98) so the comparison happens in the same market state, not parallel universes.</li>
      </ul>
      <h4>Assumptions you should know about</h4>
      <ul>
        <li>Expected returns and volatilities are <strong>conservative empirical estimates</strong> (2000-2025 monthly data for US/intl equities, bonds, REITs, TIPS, gold). Bond and TIPS volatility have been bumped to ~4.5-5% to match empirical, not the textbook 3%.</li>
        <li><strong>No taxes.</strong> Withdrawals are pre-tax. Your real spending power depends on your jurisdiction.</li>
        <li><strong>No cash buffer mechanic.</strong> Real retirees often hold 1-2 years cash; not modelled. Biases outcomes slightly worse than reality for disciplined defenders.</li>
        <li><strong>Asset correlations are historical.</strong> Equity/long-bond correlation, in particular, has trended positive since 2022; the simulator uses a benign-decade prior. Treat Golden Butterfly's downside numbers as optimistic.</li>
      </ul>
      <p class="mc-methodology-note">
        Plan from the 5th percentile, not the median. Stack a regime-change haircut on top before sizing your spending. Monte Carlo is a stress test, not a forecast.
      </p>
    </div>
  </details>
</div>


<style>
:root {
  --mc-bg-primary: #ffffff;
  --mc-bg-secondary: #f9fafb;
  --mc-border: #e5e7eb;
  --mc-text-primary: #1f2937;
  --mc-text-secondary: #6b7280;
  --mc-card-bg: #ffffff;
  --mc-card-selected-bg: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  --mc-card-recommended-bg: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  --mc-primary-color: #2563eb;
  --mc-success-color: #22c55e;
  --mc-warning-color: #f59e0b;
  --mc-danger-color: #ef4444;
  --mc-input-bg: #ffffff;
  --mc-input-border: #d1d5db;
  --mc-button-bg: #2563eb;
  --mc-button-text: #ffffff;
  --mc-button-hover-bg: #1d4ed8;
}

.dark {
  --mc-bg-primary: #1a202c;
  --mc-bg-secondary: #2d3748;
  --mc-border: #4a5568;
  --mc-text-primary: #e5e7eb;
  --mc-text-secondary: #9ca3af;
  --mc-card-bg: #2d3748;
  --mc-card-selected-bg: linear-gradient(135deg, #1e3a5f 0%, #2d4a7c 100%);
  --mc-card-recommended-bg: linear-gradient(135deg, #1e3a5f 0%, #2563eb 100%);
  --mc-primary-color: #3b82f6;
  --mc-success-color: #10b981;
  --mc-warning-color: #f59e0b;
  --mc-danger-color: #ef4444;
  --mc-input-bg: #1a202c;
  --mc-input-border: #4a5568;
  --mc-button-bg: #3b82f6;
  --mc-button-text: #ffffff;
  --mc-button-hover-bg: #2563eb;
}

.monte-carlo-calculator {
  max-width: 1200px;
  margin: 2rem auto;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
  background: var(--mc-bg-primary);
  color: var(--mc-text-primary);
}

.mc-header {
  text-align: center;
  margin-bottom: 2rem;
}

.mc-header h2 {
  font-size: 2rem;
  margin-bottom: 0.5rem;
  color: var(--mc-text-primary);
}

.mc-subtitle {
  color: var(--mc-text-secondary);
  font-size: 1.1rem;
}

.mc-section {
  border-radius: 12px;
  padding: 2rem;
  margin-bottom: 1.5rem;
}

.mc-section h3 {
  margin-top: 0;
  margin-bottom: 1.5rem;
  color: var(--mc-text-primary);
  font-size: 1.5rem;
}

 
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1rem;
}

.portfolio-card {
  background: var(--mc-card-bg);
  border: 2px solid var(--mc-border);
  border-radius: 8px;
  padding: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
}

.portfolio-card:hover {
  border-color: var(--mc-primary-color);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.portfolio-card.selected {
  border-color: var(--mc-primary-color);
  background: var(--mc-card-selected-bg);
}

.portfolio-card.recommended:not(.selected) {
  border-color: var(--mc-border);
}

.portfolio-card.recommended .recommended-badge {
  background: var(--mc-primary-color);
  color: white;
  padding: 0.125rem 0.5rem;
  border-radius: 4px;
  font-size: 0.75rem;
  margin-left: 0.5rem;
}

.portfolio-header {
  display: flex;
  align-items: center;
  margin-bottom: 0.75rem;
}

.portfolio-header input[type="radio"] {
  display: none;
}

.portfolio-header label {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  flex: 1;
}

.badge {
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  background: var(--mc-border);
  color: var(--mc-text-primary);
  font-weight: 500;
}

.recommended-badge {
  background: var(--mc-primary-color);
  color: white;
}

.portfolio-desc {
  font-size: 0.875rem;
  color: var(--mc-text-secondary);
  margin-bottom: 0.5rem;
}

.portfolio-assets {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0;
  font-size: 0.875rem;
  color: var(--mc-text-primary);
}

.portfolio-assets li {
  margin: 0.25rem 0;
}

.portfolio-stats {
  display: flex;
  justify-content: space-between;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--mc-border);
  font-size: 0.75rem;
  color: var(--mc-text-secondary);
}

 
.input-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
}

.input-group {
  display: flex;
  flex-direction: column;
}

.input-group label {
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--mc-text-primary);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.help-text {
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--mc-text-secondary);
}

.input-with-prefix,
.input-with-suffix {
  display: flex;
  align-items: center;
  background: var(--mc-input-bg);
  border: 1px solid var(--mc-input-border);
  border-radius: 6px;
  overflow: hidden;
}

.prefix,
.suffix {
  padding: 0.75rem;
  background: var(--mc-bg-secondary);
  color: var(--mc-text-secondary);
  font-weight: 600;
}

.input-with-prefix input,
.input-with-suffix input {
  flex: 1;
  border: none;
  padding: 0.75rem;
  font-size: 1rem;
}

input[type="number"],
select {
  padding: 0.75rem;
  border: 1px solid var(--mc-input-border);
  border-radius: 6px;
  font-size: 1rem;
  background: var(--mc-input-bg);
  color: var(--mc-text-primary);
}

input:focus,
select:focus {
  outline: none;
  border-color: var(--mc-primary-color);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

 
.toggle-advanced {
  background: none;
  border: none;
  color: var(--mc-primary-color);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  padding: 0.5rem 0;
  margin-bottom: 1rem;
  text-decoration: none !important;
}

.toggle-advanced span {
  text-decoration: none !important;
}

.toggle-advanced:hover {
  opacity: 0.8;
}

.arrow {
  transition: transform 0.3s ease;
}

.toggle-advanced.active .arrow {
  transform: rotate(180deg);
}

.toggle-advanced.active,
.toggle-advanced.active span,
.toggle-advanced .toggle-text {
  text-decoration: none !important;
}

.toggle-advanced.active .toggle-text {
  text-decoration: none !important;
}

.checkbox-group label {
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
}

.checkbox-group input[type="checkbox"] {
  width: 1.25rem;
  height: 1.25rem;
  cursor: pointer;
  accent-color: var(--mc-primary-color);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 2px solid var(--mc-border);
  border-radius: 4px;
  background-color: var(--mc-bg);
  position: relative;
  transition: all 0.2s ease;
}

.checkbox-group input[type="checkbox"]:checked {
  background-color: var(--mc-primary-color);
  border-color: var(--mc-primary-color);
}

.checkbox-group input[type="checkbox"]:checked::after {
  content: '✓';
  position: absolute;
  color: white;
  font-size: 1rem;
  font-weight: bold;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.checkbox-group input[type="checkbox"]:focus {
  outline: 2px solid var(--mc-primary-color);
  outline-offset: 2px;
}

 
.btn-primary,
.btn-secondary {
  padding: 1rem 2rem;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.btn-primary {
  background: var(--mc-button-bg);
  color: var(--mc-button-text);
  width: 100%;
}

.btn-primary:hover:not(:disabled) {
  background: var(--mc-button-hover-bg);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.btn-primary:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.btn-secondary {
  background: var(--mc-card-bg);
  color: var(--mc-text-primary);
  border: 1px solid var(--mc-input-border);
}

.btn-secondary:hover {
  background: var(--mc-bg-secondary);
}

.btn-large {
  font-size: 1.25rem;
  padding: 1.25rem 2.5rem;
}

 
.summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}

.summary-card {
  background: var(--mc-card-bg);
  border: 2px solid var(--mc-border);
  border-radius: 8px;
  padding: 1.5rem;
  text-align: center;
}

.summary-card.success {
  border-color: var(--mc-success-color);
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
}

.dark .summary-card.success {
  background: linear-gradient(135deg, #064e3b 0%, #065f46 100%);
}

.summary-card.warning {
  border-color: var(--mc-warning-color);
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
}

.dark .summary-card.warning {
  background: linear-gradient(135deg, #78350f 0%, #92400e 100%);
}

.summary-card.info {
  border-color: var(--mc-primary-color);
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
}

.dark .summary-card.info {
  background: linear-gradient(135deg, #1e3a8a 0%, #1e40af 100%);
}

.card-header {
  font-size: 0.875rem;
  color: var(--mc-text-secondary);
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.card-value {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--mc-text-primary);
  margin-bottom: 0.25rem;
}

.card-subtitle {
  font-size: 0.875rem;
  color: var(--mc-text-secondary);
}

 
.chart-container {
  background: white;
  border: 1px solid var(--color-neutral-200, #e5e7eb);
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.chart-container h4 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  color: var(--color-neutral-800, #1f2937);
}

.chart-caption {
  margin: 0 0 1rem;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--mc-text-secondary);
}

.chart-caption strong {
  color: #8a6f2c;
  font-weight: 600;
}

.chart-container canvas {
  max-height: 500px !important;
  height: 500px !important;
}

 
.results-table {
  background: white;
  border: 1px solid var(--color-neutral-200, #e5e7eb);
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  overflow-x: auto;
}

table {
  width: 100%;
  border-collapse: collapse;
}

thead th {
  background: var(--color-neutral-100, #f3f4f6);
  padding: 0.75rem;
  text-align: left;
  font-weight: 600;
  color: var(--color-neutral-700, #374151);
  border-bottom: 2px solid var(--color-neutral-300, #d1d5db);
}

tbody td {
  padding: 0.75rem;
  border-bottom: 1px solid var(--color-neutral-200, #e5e7eb);
}

tbody tr:hover {
  background: var(--color-neutral-50, #f9fafb);
}

 
.risk-metrics {
  background: white;
  border: 1px solid var(--color-neutral-200, #e5e7eb);
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
}

.metric-item {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.metric-label {
  font-size: 0.875rem;
  color: var(--color-neutral-600, #6b7280);
  font-weight: 500;
}

.metric-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-neutral-900, #111827);
}

 
.export-buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

 
.growth-context {
  background: var(--mc-bg-secondary);
  border-left: 3px solid var(--mc-primary-color);
  padding: 1rem 1.25rem;
  margin: 0 0 2rem;
  border-radius: 0 6px 6px 0;
  color: var(--mc-text-primary);
  font-size: 0.95rem;
  line-height: 1.55;
}

.growth-context strong {
  color: var(--mc-primary-color);
  font-weight: 700;
}

.growth-context em {
  color: var(--mc-text-secondary);
  font-style: italic;
}

 
.mc-methodology {
  margin-top: 2rem;
  border: 1px solid var(--mc-border);
  border-radius: 8px;
  background: var(--mc-card-bg);
  padding: 0.75rem 1rem;
}

.mc-methodology > summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--mc-text-primary);
  padding: 0.25rem 0;
  list-style: none;
}

.mc-methodology > summary::-webkit-details-marker { display: none; }

.mc-methodology > summary::before {
  content: '▸';
  display: inline-block;
  margin-right: 0.5rem;
  transition: transform 0.2s ease;
  color: var(--mc-text-secondary);
}

.mc-methodology[open] > summary::before {
  transform: rotate(90deg);
}

.mc-methodology-body {
  padding-top: 0.75rem;
  font-size: 0.9rem;
  color: var(--mc-text-secondary);
  line-height: 1.55;
}

.mc-methodology-body h4 {
  color: var(--mc-text-primary);
  font-size: 0.95rem;
  margin: 1rem 0 0.5rem;
}

.mc-methodology-body h4:first-of-type { margin-top: 0; }

.mc-methodology-body ul {
  margin: 0 0 0.5rem 1.25rem;
  padding: 0;
}

.mc-methodology-body li {
  margin-bottom: 0.4rem;
}

.mc-methodology-body code {
  background: var(--mc-bg-secondary);
  padding: 0.05rem 0.35rem;
  border-radius: 3px;
  font-size: 0.85em;
}

.mc-methodology-note {
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  background: var(--mc-bg-secondary);
  border-left: 3px solid var(--mc-primary-color);
  border-radius: 0 4px 4px 0;
  font-style: italic;
}

 
@media (max-width: 768px) {
  .portfolio-grid {
    grid-template-columns: 1fr;
  }

  .input-grid {
    grid-template-columns: 1fr;
  }

  .summary-grid {
    grid-template-columns: 1fr;
  }

  .metrics-grid {
    grid-template-columns: 1fr;
  }
}

 
@media (prefers-color-scheme: dark) {
  .mc-header h2,
  .mc-section h3,
  .card-value,
  .metric-value {
    color: var(--color-neutral-100, #f3f4f6);
  }

  .mc-subtitle,
  .portfolio-desc,
  .card-subtitle,
  .metric-label {
    color: var(--color-neutral-400, #9ca3af);
  }

  .mc-section,
  .portfolio-card,
  .summary-card,
  .chart-container,
  .results-table,
  .risk-metrics {
    background: var(--color-neutral-800, #1f2937);
    border-color: var(--color-neutral-700, #374151);
  }

  input,
  select {
    background: var(--color-neutral-700, #374151);
    color: var(--color-neutral-100, #f3f4f6);
    border-color: var(--color-neutral-600, #4b5563);
  }
}
</style>


<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>


<script>
(function() {
  'use strict';

  
  const PORTFOLIOS = {
    1: {
      name: 'Dividend-Focused Portfolio',
      assets: {
        'VTI': {arithMean: 0.10, sd: 0.17, weight: 0.35, er: 0.0003},
        'SCHG': {arithMean: 0.105, sd: 0.18, weight: 0.15, er: 0.0004},
        'SCHD': {arithMean: 0.105, sd: 0.17, weight: 0.30, er: 0.0006},
        'SGOV': {arithMean: 0.04, sd: 0.02, weight: 0.20, er: 0.0009}
      },
      correlation: [
        [1.00, 0.90, 0.80, 0.10],
        [0.90, 1.00, 0.70, 0.10],
        [0.80, 0.70, 1.00, 0.15],
        [0.10, 0.10, 0.15, 1.00]
      ]
    },
    2: {
      name: 'Classic Three-Fund Bogleheads',
      assets: {
        'VTI': {arithMean: 0.10, sd: 0.17, weight: 0.54, er: 0.0003},
        'VXUS': {arithMean: 0.08, sd: 0.18, weight: 0.26, er: 0.0007},
        'BND': {arithMean: 0.04, sd: 0.045, weight: 0.20, er: 0.0003}
      },
      correlation: [
        [1.00, 0.85, 0.15],
        [0.85, 1.00, 0.10],
        [0.15, 0.10, 1.00]
      ]
    },
    3: {
      name: 'Golden Butterfly (All-Weather)',
      assets: {
        'VTI': {arithMean: 0.10, sd: 0.17, weight: 0.30, er: 0.0003},
        'VXUS': {arithMean: 0.08, sd: 0.18, weight: 0.10, er: 0.0007},
        'SHY': {arithMean: 0.025, sd: 0.01, weight: 0.20, er: 0.0015},
        'TLT': {arithMean: 0.05, sd: 0.12, weight: 0.20, er: 0.0015},
        'GLD': {arithMean: 0.045, sd: 0.16, weight: 0.20, er: 0.0040}
      },
      correlation: [
        [1.00, 0.85, 0.10, -0.05, 0.00],
        [0.85, 1.00, 0.10, -0.05, 0.00],
        [0.10, 0.10, 1.00, 0.40, 0.05],
        [-0.05, -0.05, 0.40, 1.00, 0.10],
        [0.00, 0.00, 0.05, 0.10, 1.00]
      ]
    },
    4: {
      name: 'Modern Bogleheads (TIPS & REITs)',
      assets: {
        'VTI': {arithMean: 0.10, sd: 0.17, weight: 0.40, er: 0.0003},
        'VXUS': {arithMean: 0.08, sd: 0.18, weight: 0.20, er: 0.0007},
        'VNQ': {arithMean: 0.09, sd: 0.23, weight: 0.10, er: 0.0012},
        'VTIP': {arithMean: 0.03, sd: 0.05, weight: 0.15, er: 0.0004},
        'BND': {arithMean: 0.04, sd: 0.045, weight: 0.15, er: 0.0003}
      },
      correlation: [
        [1.00, 0.85, 0.75, 0.10, 0.15],
        [0.85, 1.00, 0.70, 0.10, 0.10],
        [0.75, 0.70, 1.00, 0.20, 0.20],
        [0.10, 0.10, 0.20, 1.00, 0.70],
        [0.15, 0.10, 0.20, 0.70, 1.00]
      ]
    }
  };

  
  function arithmeticToGeometric(arithMean, sd) {
    return arithMean - (sd * sd) / 2;
  }

  function normalRandom() {
    
    let u = 0, v = 0;
    while(u === 0) u = Math.random();
    while(v === 0) v = Math.random();
    return Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v);
  }

  
  function studentTRandom(df) {
    
    const z = normalRandom();
    let chiSq = 0;
    for (let i = 0; i < df; i++) {
      const n = normalRandom();
      chiSq += n * n;
    }
    return z / Math.sqrt(chiSq / df);
  }

  function choleskyDecomposition(matrix) {
    const n = matrix.length;
    const L = Array(n).fill(0).map(() => Array(n).fill(0));

    for (let i = 0; i < n; i++) {
      for (let j = 0; j <= i; j++) {
        let sum = 0;
        for (let k = 0; k < j; k++) {
          sum += L[i][k] * L[j][k];
        }

        if (i === j) {
          L[i][j] = Math.sqrt(Math.max(0, matrix[i][i] - sum));
        } else {
          L[i][j] = (matrix[i][j] - sum) / (L[j][j] || 1);
        }
      }
    }

    return L;
  }

  function multiplyMatrixVector(matrix, vector) {
    return matrix.map(row =>
      row.reduce((sum, val, i) => sum + val * vector[i], 0)
    );
  }

  function percentile(arr, p) {
    const sorted = [...arr].sort((a, b) => a - b);
    const index = (p / 100) * (sorted.length - 1);
    const lower = Math.floor(index);
    const upper = Math.ceil(index);
    const weight = index % 1;

    if (lower === upper) return sorted[lower];
    return sorted[lower] * (1 - weight) + sorted[upper] * weight;
  }

  
  function runSimulation(params) {
    const portfolio = PORTFOLIOS[params.portfolioId];
    const assets = Object.values(portfolio.assets);
    const assetNames = Object.keys(portfolio.assets);
    const nAssets = assets.length;

    
    const weights = assets.map(a => a.weight);
    const geometricReturns = assets.map(a => arithmeticToGeometric(a.arithMean, a.sd));
    const stdDevs = assets.map(a => a.sd);
    const expenseRatios = assets.map(a => a.er);

    const blendedER = expenseRatios.reduce((sum, er, i) => sum + er * weights[i], 0);
    const totalFee = blendedER + params.advisorFee;
    const netReturns = geometricReturns.map(r => r - totalFee);

    
    const grossReturn = geometricReturns.reduce((sum, r, i) => sum + r * weights[i], 0);
    const portfolioNetReturn = netReturns.reduce((sum, r, i) => sum + r * weights[i], 0);

    
    
    
    
    
    
    const correlation = portfolio.correlation;
    const cholesky = choleskyDecomposition(correlation);

    
    const SP500_PROXY = {
      mean: arithmeticToGeometric(0.10, 0.16),
      sd: 0.16,
      er: 0.0003
    };
    const sp500MeanAfterFees = SP500_PROXY.mean - SP500_PROXY.er - params.advisorFee;

    
    const nMonths = params.years * 12;
    const DEPLETION_THRESHOLD = 1.0;
    const initialAnnualWithdrawal = params.initialValue * params.withdrawalRate;

    
    const finalValues = [];
    const finalSP500Values = [];
    const finalNoWithdrawalValues = []; 
    const annualValuesOverTime = [];
    const annualNoWithdrawalValuesOverTime = []; 
    const annualSP500ValuesOverTime = [];
    const annualWithdrawalsHistory = [];
    const maxDrawdowns = [];
    const sp500MaxDrawdowns = [];
    const pathSharpes = [];  
    const pathSortinos = []; 

    
    
    
    
    const SP500_VTI_CORR = 0.98;
    const SP500_INDEP_WEIGHT = Math.sqrt(1 - SP500_VTI_CORR * SP500_VTI_CORR);

    
    for (let sim = 0; sim < params.nSimulations; sim++) {
      let assetValues = weights.map(w => params.initialValue * w);
      let noWithdrawalAssetValues = weights.map(w => params.initialValue * w);
      let sp500Value = params.initialValue;
      const monthlyValues = [params.initialValue];
      const monthlyNoWithdrawalValues = [params.initialValue];
      const monthlySP500Values = [params.initialValue];
      const monthlyWithdrawals = [];
      const monthlySP500Withdrawals = [];
      const pathMonthlyReturns = []; 
      let maxValue = params.initialValue;
      let maxSP500Value = params.initialValue;
      let maxDD = 0;
      let maxSP500DD = 0;
      let lastYearSpending = initialAnnualWithdrawal;
      let lastYearSP500Spending = initialAnnualWithdrawal;
      let currentYearWithdrawal = initialAnnualWithdrawal;
      let currentYearSP500Withdrawal = initialAnnualWithdrawal;

      
      const monthlyNetReturns = netReturns.map(r => r / 12);
      const monthlyStdDevs = stdDevs.map(sd => sd / Math.sqrt(12));
      const monthlySP500Mean = sp500MeanAfterFees / 12;
      const monthlySP500Sd = SP500_PROXY.sd / Math.sqrt(12);

      
      for (let month = 0; month < nMonths; month++) {
        const yearIndex = Math.floor(month / 12);
        const monthInYear = month % 12;

        
        let monthlyReturns, monthlySP500Return;

        
        
        
        let vtiStandardizedZ;
        let tScale = 1;

        if (params.fatTails) {
          
          tScale = Math.sqrt(5 / (5 - 2));
          const z = Array(nAssets).fill(0).map(() => studentTRandom(5));
          const correlatedZ = multiplyMatrixVector(cholesky, z);
          monthlyReturns = correlatedZ.map((cz, i) => {
            const scaledZ = cz / tScale;
            return monthlyNetReturns[i] + scaledZ * monthlyStdDevs[i];
          });
          vtiStandardizedZ = correlatedZ[0] / tScale;

          const sp500IndepZ = studentTRandom(5) / tScale;
          const sp500Shock = SP500_VTI_CORR * vtiStandardizedZ
                           + SP500_INDEP_WEIGHT * sp500IndepZ;
          monthlySP500Return = monthlySP500Mean + sp500Shock * monthlySP500Sd;
        } else {
          
          const z = Array(nAssets).fill(0).map(() => normalRandom());
          const correlatedZ = multiplyMatrixVector(cholesky, z);
          monthlyReturns = correlatedZ.map((cz, i) => monthlyNetReturns[i] + cz * monthlyStdDevs[i]);
          vtiStandardizedZ = correlatedZ[0];

          const sp500IndepZ = normalRandom();
          const sp500Shock = SP500_VTI_CORR * vtiStandardizedZ
                           + SP500_INDEP_WEIGHT * sp500IndepZ;
          monthlySP500Return = monthlySP500Mean + sp500Shock * monthlySP500Sd;
        }

        
        
        
        const grossPortfolioReturn = monthlyReturns.reduce(
          (sum, r, i) => sum + r * weights[i], 0
        );
        pathMonthlyReturns.push(grossPortfolioReturn);

        
        
        
        
        
        monthlyReturns = monthlyReturns.map(r => Math.max(-1.0, Math.min(1.0, r)));
        monthlySP500Return = Math.max(-1.0, Math.min(1.0, monthlySP500Return));

        assetValues = assetValues.map((val, i) => val * Math.exp(monthlyReturns[i]));
        noWithdrawalAssetValues = noWithdrawalAssetValues.map(
          (val, i) => val * Math.exp(monthlyReturns[i])
        );
        sp500Value *= Math.exp(monthlySP500Return);

        let portfolioValue = assetValues.reduce((sum, val) => sum + val, 0);

        
        if (monthInYear === 0) {
          if (params.withdrawalStrategy === 'constant') {
            
            currentYearWithdrawal = initialAnnualWithdrawal * Math.pow(1 + params.inflation, yearIndex);
            currentYearSP500Withdrawal = currentYearWithdrawal;
          } else {
            
            if (yearIndex === 0) {
              currentYearWithdrawal = portfolioValue * params.withdrawalRate;
              currentYearSP500Withdrawal = sp500Value * params.withdrawalRate;
            } else {
              
              const rawSpending = portfolioValue * params.withdrawalRate;
              const inflationAdjustedLast = lastYearSpending * (1 + params.inflation);
              const floor = inflationAdjustedLast * (1 - params.dynamicFloor);
              const ceiling = inflationAdjustedLast * (1 + params.dynamicCeiling);
              currentYearWithdrawal = Math.max(floor, Math.min(ceiling, rawSpending));

              
              const rawSP500Spending = sp500Value * params.withdrawalRate;
              const inflationAdjustedLastSP500 = lastYearSP500Spending * (1 + params.inflation);
              const floorSP500 = inflationAdjustedLastSP500 * (1 - params.dynamicFloor);
              const ceilingSP500 = inflationAdjustedLastSP500 * (1 + params.dynamicCeiling);
              currentYearSP500Withdrawal = Math.max(floorSP500, Math.min(ceilingSP500, rawSP500Spending));
            }
            lastYearSpending = currentYearWithdrawal;
            lastYearSP500Spending = currentYearSP500Withdrawal;
          }
        }

        
        const monthlyWithdrawalAmount = currentYearWithdrawal / 12;
        const monthlySP500WithdrawalAmount = currentYearSP500Withdrawal / 12;

        const withdrawal = Math.min(monthlyWithdrawalAmount, portfolioValue);
        const sp500Withdrawal = Math.min(monthlySP500WithdrawalAmount, sp500Value);

        monthlyWithdrawals.push(withdrawal);
        monthlySP500Withdrawals.push(sp500Withdrawal);

        
        assetValues = assetValues.map((val, i) =>
          Math.max(0, val - withdrawal * weights[i])
        );
        sp500Value = Math.max(0, sp500Value - sp500Withdrawal);

        portfolioValue = assetValues.reduce((sum, val) => sum + val, 0);

        
        if (monthInYear === 11 && portfolioValue > 0) {
          assetValues = weights.map(w => portfolioValue * w);
        }
        
        
        
        if (monthInYear === 11) {
          const noWPV = noWithdrawalAssetValues.reduce((s, v) => s + v, 0);
          if (noWPV > 0) {
            noWithdrawalAssetValues = weights.map(w => noWPV * w);
          }
        }

        monthlyValues.push(portfolioValue);
        monthlyNoWithdrawalValues.push(
          noWithdrawalAssetValues.reduce((s, v) => s + v, 0)
        );
        monthlySP500Values.push(sp500Value);

        
        maxValue = Math.max(maxValue, portfolioValue);
        maxSP500Value = Math.max(maxSP500Value, sp500Value);
        const drawdown = maxValue > 0 ? (maxValue - portfolioValue) / maxValue : 0;
        const sp500Drawdown = maxSP500Value > 0 ? (maxSP500Value - sp500Value) / maxSP500Value : 0;
        maxDD = Math.max(maxDD, drawdown);
        maxSP500DD = Math.max(maxSP500DD, sp500Drawdown);
      }

      
      const annualValues = [params.initialValue];
      const annualNoWithdrawalValues = [params.initialValue];
      const annualSP500Values = [params.initialValue];
      const annualWithdrawals = [];

      for (let year = 0; year < params.years; year++) {
        const startMonth = year * 12;
        const endMonth = startMonth + 12;

        const yearWithdrawal = monthlyWithdrawals.slice(startMonth, endMonth)
          .reduce((sum, w) => sum + w, 0);
        annualWithdrawals.push(yearWithdrawal);

        annualValues.push(monthlyValues[endMonth]);
        annualNoWithdrawalValues.push(monthlyNoWithdrawalValues[endMonth]);
        annualSP500Values.push(monthlySP500Values[endMonth]);
      }

      const finalValue = monthlyValues[monthlyValues.length - 1];
      const finalSP500Value = monthlySP500Values[monthlySP500Values.length - 1];

      finalValues.push(finalValue);
      finalSP500Values.push(finalSP500Value);
      finalNoWithdrawalValues.push(
        noWithdrawalAssetValues.reduce((s, v) => s + v, 0)
      );
      annualValuesOverTime.push(annualValues);
      annualNoWithdrawalValuesOverTime.push(annualNoWithdrawalValues);
      annualSP500ValuesOverTime.push(annualSP500Values);
      annualWithdrawalsHistory.push(annualWithdrawals);
      maxDrawdowns.push(maxDD);
      sp500MaxDrawdowns.push(maxSP500DD);

      
      
      
      
      const monthlyRf = 0.03 / 12;
      const n = pathMonthlyReturns.length;
      const mMean = pathMonthlyReturns.reduce((a, b) => a + b, 0) / n;
      const mVar = pathMonthlyReturns.reduce((s, r) => s + (r - mMean) ** 2, 0) / n;
      const mStd = Math.sqrt(mVar);
      const annualizedExcess = (mMean - monthlyRf) * 12;
      const annualizedStd = mStd * Math.sqrt(12);
      pathSharpes.push(annualizedStd > 0 ? annualizedExcess / annualizedStd : 0);

      
      const downs = pathMonthlyReturns
        .map(r => r - monthlyRf)
        .filter(d => d < 0);
      const downVar = downs.reduce((s, d) => s + d * d, 0) / n; 
      const downStd = Math.sqrt(downVar) * Math.sqrt(12);
      pathSortinos.push(downStd > 0 ? annualizedExcess / downStd : Infinity);
    }

    
    const inflationAdjustor = Math.pow(1 + params.inflation, params.years);
    const finalRealValues = finalValues.map(v => v / inflationAdjustor);
    const finalSP500RealValues = finalSP500Values.map(v => v / inflationAdjustor);

    
    const sharpeRatio = pathSharpes.reduce((a, b) => a + b, 0) / pathSharpes.length;
    const finiteSortinos = pathSortinos.filter(s => Number.isFinite(s));
    const sortinoRatio = finiteSortinos.length > 0
      ? finiteSortinos.reduce((a, b) => a + b, 0) / finiteSortinos.length
      : Infinity;

    
    const sp500MedianNominal = percentile(finalSP500Values, 50);
    const sp500MedianReal = percentile(finalSP500RealValues, 50);
    const probBeatSP500Nominal = finalValues.filter((v, i) => v > finalSP500Values[i]).length / finalValues.length;
    const probBeatSP500Real = finalRealValues.filter((v, i) => v > finalSP500RealValues[i]).length / finalRealValues.length;

    
    const goals = [1_500_000, 2_000_000, 3_000_000, 5_000_000, 10_000_000];
    const goalProbabilities = {};
    goals.forEach(goal => {
      goalProbabilities[goal] = finalValues.filter(v => v >= goal).length / finalValues.length;
    });

    
    const feeImpact = Math.pow(1 + grossReturn, params.years) / Math.pow(1 + portfolioNetReturn, params.years) - 1;
    const feeCost = params.initialValue * feeImpact;

    const noWithdrawalMedian = percentile(finalNoWithdrawalValues, 50);
    const noWithdrawalMedianReal = noWithdrawalMedian / inflationAdjustor;
    const withdrawalCostMedian = noWithdrawalMedian - percentile(finalValues, 50);
    const withdrawalCostMedianReal = withdrawalCostMedian / inflationAdjustor;

    const results = {
      median: percentile(finalValues, 50),
      p5: percentile(finalValues, 5),
      p95: percentile(finalValues, 95),
      mean: finalValues.reduce((a, b) => a + b, 0) / finalValues.length,

      noWithdrawalMedian: noWithdrawalMedian,
      noWithdrawalMedianReal: noWithdrawalMedianReal,
      withdrawalCostMedian: withdrawalCostMedian,
      withdrawalCostMedianReal: withdrawalCostMedianReal,

      medianReal: percentile(finalRealValues, 50),
      p5Real: percentile(finalRealValues, 5),
      p95Real: percentile(finalRealValues, 95),
      meanReal: finalRealValues.reduce((a, b) => a + b, 0) / finalRealValues.length,

      depletionProb: finalValues.filter(v => v < DEPLETION_THRESHOLD).length / finalValues.length,

      medianDrawdown: percentile(maxDrawdowns, 50),
      worstDrawdown: percentile(maxDrawdowns, 95),

      sharpeRatio: sharpeRatio,
      sortinoRatio: sortinoRatio,

      
      sp500MedianNominal: sp500MedianNominal,
      sp500MedianReal: sp500MedianReal,
      sp500MedianDrawdown: percentile(sp500MaxDrawdowns, 50),
      probBeatSP500Nominal: probBeatSP500Nominal,
      probBeatSP500Real: probBeatSP500Real,

      
      blendedER: blendedER,
      totalFee: totalFee,
      grossReturn: grossReturn,
      portfolioNetReturn: portfolioNetReturn,
      feeImpact: feeImpact,
      feeCost: feeCost,

      
      goalProbabilities: goalProbabilities,

      valuesOverTime: annualValuesOverTime,
      noWithdrawalValuesOverTime: annualNoWithdrawalValuesOverTime,
      sp500ValuesOverTime: annualSP500ValuesOverTime,
      withdrawalsHistory: annualWithdrawalsHistory,
      finalValues: finalValues,
      finalRealValues: finalRealValues,

      portfolioName: portfolio.name
    };

    return results;
  }

  
  
  
  function computePortfolioGeoReturn(portfolio) {
    const a = Object.values(portfolio.assets);
    const w = a.map(x => x.weight);
    const sd = a.map(x => x.sd);
    const mu = a.map(x => x.arithMean);
    const corr = portfolio.correlation;

    const portArith = mu.reduce((s, m, i) => s + m * w[i], 0);
    let portVar = 0;
    for (let i = 0; i < a.length; i++) {
      for (let j = 0; j < a.length; j++) {
        portVar += w[i] * w[j] * sd[i] * sd[j] * corr[i][j];
      }
    }
    return portArith - portVar / 2;
  }

  
  const UI = {
    init() {
      this.renderExpectedReturns();
      this.bindEvents();
    },

    renderExpectedReturns() {
      document.querySelectorAll('.exp-return-label').forEach(el => {
        const id = parseInt(el.dataset.portfolio);
        const p = PORTFOLIOS[id];
        if (!p) return;
        const geo = computePortfolioGeoReturn(p);
        el.textContent = `Exp Return: ${(geo * 100).toFixed(1)}%`;
      });
    },

    bindEvents() {
      
      document.querySelectorAll('.portfolio-card').forEach(card => {
        card.addEventListener('click', (e) => {
          
          if (e.target.tagName === 'INPUT' || e.target.tagName === 'LABEL') {
            return;
          }

          const radio = card.querySelector('input[type="radio"]');
          if (radio) {
            radio.checked = true;
            
            radio.dispatchEvent(new Event('change'));
          }
        });
      });

      
      document.querySelectorAll('input[name="portfolio"]').forEach(radio => {
        radio.addEventListener('change', (e) => {
          document.querySelectorAll('.portfolio-card').forEach(c => {
            c.classList.remove('selected');
          });
          if (e.target.checked) {
            e.target.closest('.portfolio-card').classList.add('selected');
          }
        });
      });

      
      const checkedRadio = document.querySelector('input[name="portfolio"]:checked');
      if (checkedRadio) {
        checkedRadio.closest('.portfolio-card').classList.add('selected');
      }

      
      const toggleBtn = document.getElementById('toggle-advanced');
      const advancedContent = document.getElementById('advanced-content');
      toggleBtn.addEventListener('click', () => {
        const isVisible = advancedContent.style.display !== 'none';
        advancedContent.style.display = isVisible ? 'none' : 'block';
        toggleBtn.classList.toggle('active', !isVisible);
      });

      
      const withdrawalStrategySelect = document.getElementById('withdrawal-strategy');
      const dynamicFloorGroup = document.getElementById('dynamic-floor-group');
      const dynamicCeilingGroup = document.getElementById('dynamic-ceiling-group');

      withdrawalStrategySelect.addEventListener('change', (e) => {
        const isDynamic = e.target.value === 'dynamic';
        dynamicFloorGroup.style.display = isDynamic ? 'block' : 'none';
        dynamicCeilingGroup.style.display = isDynamic ? 'block' : 'none';

        
        if (isDynamic && advancedContent.style.display === 'none') {
          advancedContent.style.display = 'block';
          toggleBtn.classList.add('active');
        }
      });

      
      document.getElementById('run-simulation').addEventListener('click', () => {
        this.runSimulation();
      });

      
      document.getElementById('export-csv').addEventListener('click', () => {
        this.exportCSV();
      });

      document.getElementById('copy-results').addEventListener('click', () => {
        this.copyResults();
      });
    },

    getParams() {
      const selectedPortfolio = document.querySelector('input[name="portfolio"]:checked');
      if (!selectedPortfolio) {
        throw new Error('Please select a portfolio before running the simulation');
      }

      const withdrawalStrategy = document.getElementById('withdrawal-strategy')?.value || 'constant';
      const isDynamic = withdrawalStrategy === 'dynamic';

      
      
      const num = (id, divisor = 1) => {
        const raw = document.getElementById(id)?.value;
        const v = parseFloat(raw);
        return Number.isFinite(v) ? v / divisor : null;
      };
      const intNum = (id) => {
        const v = parseInt(document.getElementById(id)?.value);
        return Number.isFinite(v) ? v : null;
      };

      const params = {
        portfolioId: parseInt(selectedPortfolio.value),
        initialValue: num('initial-value') ?? 1000000,
        withdrawalRate: num('withdrawal-rate', 100) ?? 0.04,
        withdrawalStrategy: withdrawalStrategy,
        years: intNum('years') ?? 30,
        advisorFee: num('advisor-fee', 100) ?? 0,
        nSimulations: intNum('simulations') ?? 10000,
        inflation: num('inflation', 100) ?? 0.025,
        fatTails: document.getElementById('fat-tails')?.checked ?? false,
        dynamicFloor: isDynamic ? (num('dynamic-floor', 100) ?? 0.025) : 0,
        dynamicCeiling: isDynamic ? (num('dynamic-ceiling', 100) ?? 0.05) : 0
      };

      
      if (isNaN(params.portfolioId) || isNaN(params.initialValue) || isNaN(params.withdrawalRate)) {
        console.error('Invalid params:', params);
        throw new Error('Invalid input values detected');
      }

      return params;
    },

    async runSimulation() {
      const btn = document.getElementById('run-simulation');
      const btnText = btn.querySelector('.btn-text');
      const btnLoading = btn.querySelector('.btn-loading');

      try {
        btn.disabled = true;
        btnText.style.display = 'none';
        btnLoading.style.display = 'inline';

        
        await new Promise(resolve => setTimeout(resolve, 100));

        const params = this.getParams();
        const results = runSimulation(params);

        this.displayResults(results, params);

        
        document.getElementById('results-section').scrollIntoView({ behavior: 'smooth' });
      } catch (error) {
        console.error('Simulation error:', error);
        alert('Error running simulation: ' + error.message + '\n\nPlease check that you have selected a portfolio and all inputs are valid.\n\nCheck browser console (F12) for details.');
      } finally {
        btn.disabled = false;
        btnText.style.display = 'inline';
        btnLoading.style.display = 'none';
      }
    },

    displayResults(results, params) {
      
      document.getElementById('results-section').style.display = 'block';

      
      this.updateCard('median-value', results.median);
      this.updateCard('median-real', results.medianReal, true);
      this.updateCard('p5-value', results.p5);
      this.updateCard('p5-real', results.p5Real, true);
      this.updateCard('p95-value', results.p95);
      this.updateCard('p95-real', results.p95Real, true);

      
      document.getElementById('no-wd-median').textContent =
        this.formatCurrency(results.noWithdrawalMedian);
      document.getElementById('no-wd-median-real').textContent =
        this.formatCurrency(results.noWithdrawalMedianReal) + ' real';
      document.getElementById('wd-cost').textContent =
        this.formatCurrency(results.withdrawalCostMedian);

      
      const depletionCard = document.getElementById('depletion-card');
      const depletionProb = document.getElementById('depletion-prob');
      depletionProb.textContent = (results.depletionProb * 100).toFixed(1) + '%';

      if (results.depletionProb === 0) {
        depletionCard.classList.add('success');
        depletionCard.classList.remove('warning');
      } else if (results.depletionProb < 0.05) {
        depletionCard.classList.add('info');
        depletionCard.classList.remove('warning', 'success');
      } else {
        depletionCard.classList.add('warning');
        depletionCard.classList.remove('success', 'info');
      }

      
      this.updateTable(results, params);

      
      document.getElementById('median-drawdown').textContent =
        (results.medianDrawdown * 100).toFixed(1) + '%';
      document.getElementById('worst-drawdown').textContent =
        (results.worstDrawdown * 100).toFixed(1) + '%';
      document.getElementById('sharpe-ratio').textContent = results.sharpeRatio.toFixed(2);
      document.getElementById('sortino-ratio').textContent =
        isFinite(results.sortinoRatio) ? results.sortinoRatio.toFixed(2) : '∞';

      
      document.getElementById('sp500-median').textContent = this.formatCurrency(results.sp500MedianNominal);
      document.getElementById('sp500-median-real').textContent = this.formatCurrency(results.sp500MedianReal);
      document.getElementById('beat-sp500').textContent = (results.probBeatSP500Nominal * 100).toFixed(1) + '%';
      document.getElementById('beat-sp500-real').textContent = (results.probBeatSP500Real * 100).toFixed(1) + '%';

      
      document.getElementById('blended-er').textContent = (results.blendedER * 100).toFixed(4) + '%';
      document.getElementById('total-fee').textContent = (results.totalFee * 100).toFixed(4) + '%';
      document.getElementById('fee-drag').textContent = (results.feeImpact * 100).toFixed(1) + '%';
      document.getElementById('fee-cost').textContent = this.formatCurrency(results.feeCost);

      
      document.getElementById('goal-1500000').textContent =
        (results.goalProbabilities[1_500_000] * 100).toFixed(1) + '%';
      document.getElementById('goal-2000000').textContent =
        (results.goalProbabilities[2_000_000] * 100).toFixed(1) + '%';
      document.getElementById('goal-3000000').textContent =
        (results.goalProbabilities[3_000_000] * 100).toFixed(1) + '%';
      document.getElementById('goal-5000000').textContent =
        (results.goalProbabilities[5_000_000] * 100).toFixed(1) + '%';
      document.getElementById('goal-10000000').textContent =
        (results.goalProbabilities[10_000_000] * 100).toFixed(1) + '%';

      
      this.updateWithdrawalTables(results, params);

      
      this.drawCharts(results, params);

      
      this.currentResults = results;
      this.currentParams = params;
    },

    updateCard(id, value, isSubtitle = false) {
      const el = document.getElementById(id);
      if (isSubtitle) {
        el.textContent = this.formatCurrency(value) + ' real';
      } else {
        el.textContent = this.formatCurrency(value);
      }
    },

    formatCurrency(value) {
      return '$' + value.toLocaleString('en-US', {
        maximumFractionDigits: 0
      });
    },

    updateTable(results, params) {
      const tbody = document.getElementById('results-table-body');
      tbody.innerHTML = '';

      const rows = [
        ['Average Ending Value', results.mean, results.meanReal],
        ['Median Ending Value', results.median, results.medianReal],
        ['5th Percentile', results.p5, results.p5Real],
        ['95th Percentile', results.p95, results.p95Real]
      ];

      rows.forEach(([metric, nominal, real]) => {
        const tr = document.createElement('tr');
        tr.innerHTML = `
          <td>${metric}</td>
          <td>${this.formatCurrency(nominal)}</td>
          <td>${this.formatCurrency(real)}</td>
        `;
        tbody.appendChild(tr);
      });
    },

    updateWithdrawalTables(results, params) {
      
      const nYears = params.years;
      const withdrawalStats = [];

      for (let year = 0; year < nYears; year++) {
        const withdrawalsAtYear = results.withdrawalsHistory.map(path => path[year]);
        withdrawalStats.push({
          year: year + 1,
          average: withdrawalsAtYear.reduce((a, b) => a + b, 0) / withdrawalsAtYear.length,
          median: percentile(withdrawalsAtYear, 50),
          p5: percentile(withdrawalsAtYear, 5),
          p95: percentile(withdrawalsAtYear, 95)
        });
      }

      
      const firstTableBody = document.getElementById('withdrawal-table-first');
      firstTableBody.innerHTML = '';
      const first10 = withdrawalStats.slice(0, Math.min(10, nYears));

      first10.forEach(stat => {
        const tr = document.createElement('tr');
        tr.innerHTML = `
          <td>${stat.year}</td>
          <td>${this.formatCurrency(stat.average)}</td>
          <td>${this.formatCurrency(stat.median)}</td>
          <td>${this.formatCurrency(stat.p5)}</td>
          <td>${this.formatCurrency(stat.p95)}</td>
        `;
        firstTableBody.appendChild(tr);
      });

      
      const lastTableBody = document.getElementById('withdrawal-table-last');
      lastTableBody.innerHTML = '';
      const last10 = withdrawalStats.slice(Math.max(0, nYears - 10));

      last10.forEach(stat => {
        const tr = document.createElement('tr');
        tr.innerHTML = `
          <td>${stat.year}</td>
          <td>${this.formatCurrency(stat.average)}</td>
          <td>${this.formatCurrency(stat.median)}</td>
          <td>${this.formatCurrency(stat.p5)}</td>
          <td>${this.formatCurrency(stat.p95)}</td>
        `;
        lastTableBody.appendChild(tr);
      });
    },

    drawCharts(results, params) {
      this.drawGrowthChart(results, params);
      this.drawDistributionChart(results);
    },

    drawGrowthChart(results, params) {
      const ctx = document.getElementById('growth-chart');

      
      const years = Array.from({length: params.years + 1}, (_, i) => i);
      const p5OverTime = [];
      const p50OverTime = [];
      const p95OverTime = [];
      const noWdMedianOverTime = []; 

      for (let year = 0; year <= params.years; year++) {
        const valuesAtYear = results.valuesOverTime.map(path => path[year]);
        p5OverTime.push(percentile(valuesAtYear, 5));
        p50OverTime.push(percentile(valuesAtYear, 50));
        p95OverTime.push(percentile(valuesAtYear, 95));

        const noWdAtYear = results.noWithdrawalValuesOverTime.map(path => path[year]);
        noWdMedianOverTime.push(percentile(noWdAtYear, 50));
      }

      if (this.growthChart) {
        this.growthChart.destroy();
      }

      this.growthChart = new Chart(ctx, {
        type: 'line',
        data: {
          labels: years,
          datasets: [
            {
              label: 'Median, no withdrawals',
              data: noWdMedianOverTime,
              borderColor: 'rgba(184, 146, 58, 0.85)',  
              backgroundColor: 'rgba(184, 146, 58, 0)',
              borderWidth: 2,
              borderDash: [8, 6],
              pointRadius: 0,
              fill: false,
              tension: 0.15
            },
            {
              label: '95th Percentile',
              data: p95OverTime,
              borderColor: 'rgba(59, 130, 246, 0.8)',
              backgroundColor: 'rgba(59, 130, 246, 0.1)',
              fill: '+1'
            },
            {
              label: 'Median (50th)',
              data: p50OverTime,
              borderColor: 'rgba(16, 185, 129, 0.8)',
              backgroundColor: 'rgba(16, 185, 129, 0.1)',
              borderWidth: 3,
              fill: '+1'
            },
            {
              label: '5th Percentile',
              data: p5OverTime,
              borderColor: 'rgba(245, 158, 11, 0.8)',
              backgroundColor: 'rgba(245, 158, 11, 0.1)',
              fill: false
            }
          ]
        },
        options: {
          responsive: true,
          maintainAspectRatio: false,
          plugins: {
            legend: {
              position: 'top',
            },
            tooltip: {
              callbacks: {
                label: (context) => {
                  return context.dataset.label + ': ' +
                    this.formatCurrency(context.parsed.y);
                }
              }
            }
          },
          scales: {
            y: {
              beginAtZero: true,
              ticks: {
                callback: (value) => this.formatCurrency(value)
              }
            },
            x: {
              title: {
                display: true,
                text: 'Years'
              }
            }
          }
        }
      });
    },

    drawDistributionChart(results) {
      const ctx = document.getElementById('distribution-chart');

      
      const bins = 30;
      const min = Math.min(...results.finalValues);
      const max = Math.max(...results.finalValues);
      const binSize = (max - min) / bins;
      const histogram = Array(bins).fill(0);

      results.finalValues.forEach(value => {
        const binIndex = Math.min(Math.floor((value - min) / binSize), bins - 1);
        histogram[binIndex]++;
      });

      const labels = Array(bins).fill(0).map((_, i) =>
        this.formatCurrency(min + (i + 0.5) * binSize)
      );

      if (this.distributionChart) {
        this.distributionChart.destroy();
      }

      this.distributionChart = new Chart(ctx, {
        type: 'bar',
        data: {
          labels: labels,
          datasets: [{
            label: 'Frequency',
            data: histogram,
            backgroundColor: 'rgba(16, 185, 129, 0.6)',
            borderColor: 'rgba(16, 185, 129, 1)',
            borderWidth: 1
          }]
        },
        options: {
          responsive: true,
          maintainAspectRatio: false,
          plugins: {
            legend: {
              display: false
            }
          },
          scales: {
            y: {
              beginAtZero: true,
              title: {
                display: true,
                text: 'Number of Simulations'
              }
            },
            x: {
              title: {
                display: true,
                text: 'Final Portfolio Value'
              },
              ticks: {
                maxRotation: 45,
                minRotation: 45
              }
            }
          }
        }
      });
    },

    exportCSV() {
      if (!this.currentResults) return;

      const results = this.currentResults;
      const params = this.currentParams;

      let csv = 'Monte Carlo Retirement Simulation Results\n\n';
      csv += `Portfolio,${results.portfolioName}\n`;
      csv += `Initial Value,$${params.initialValue.toLocaleString()}\n`;
      csv += `Withdrawal Rate,${(params.withdrawalRate * 100).toFixed(1)}%\n`;
      csv += `Years,${params.years}\n`;
      csv += `Simulations,${params.nSimulations.toLocaleString()}\n\n`;

      csv += 'Metric,Nominal Value,Real Value\n';
      csv += `Median,${results.median.toFixed(0)},${results.medianReal.toFixed(0)}\n`;
      csv += `5th Percentile,${results.p5.toFixed(0)},${results.p5Real.toFixed(0)}\n`;
      csv += `95th Percentile,${results.p95.toFixed(0)},${results.p95Real.toFixed(0)}\n`;
      csv += `Mean,${results.mean.toFixed(0)},${results.meanReal.toFixed(0)}\n`;
      csv += `Depletion Probability,${(results.depletionProb * 100).toFixed(2)}%\n`;
      csv += `Median Max Drawdown,${(results.medianDrawdown * 100).toFixed(1)}%\n`;

      const blob = new Blob([csv], { type: 'text/csv' });
      const url = window.URL.createObjectURL(blob);
      const a = document.createElement('a');
      a.href = url;
      a.download = 'monte-carlo-results.csv';
      a.click();
    },

    copyResults() {
      if (!this.currentResults) return;

      const results = this.currentResults;
      const params = this.currentParams;

      let text = `Monte Carlo Retirement Simulation Results\n\n`;
      text += `Portfolio: ${results.portfolioName}\n`;
      text += `Initial Value: $${params.initialValue.toLocaleString()}\n`;
      text += `Withdrawal Rate: ${(params.withdrawalRate * 100).toFixed(1)}%\n\n`;
      text += `Median Ending: ${this.formatCurrency(results.median)} (${this.formatCurrency(results.medianReal)} real)\n`;
      text += `5th Percentile: ${this.formatCurrency(results.p5)} (${this.formatCurrency(results.p5Real)} real)\n`;
      text += `95th Percentile: ${this.formatCurrency(results.p95)} (${this.formatCurrency(results.p95Real)} real)\n`;
      text += `Depletion Risk: ${(results.depletionProb * 100).toFixed(1)}%\n`;

      navigator.clipboard.writeText(text).then(() => {
        alert('Results copied to clipboard!');
      });
    }
  };

  
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', () => UI.init());
  } else {
    UI.init();
  }
})();
</script>

<hr>

<h2 class="relative group">How to Use This Calculator
    <div id="how-to-use-this-calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-use-this-calculator" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Step 1: Choose Your Portfolio
    <div id="step-1-choose-your-portfolio" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-choose-your-portfolio" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Select from four professionally designed portfolios:</p>
<table>
	<thead>
			<tr>
					<th>Portfolio</th>
					<th>Best For</th>
					<th>Expected Geometric Return</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Dividend-Focused</strong></td>
					<td>Income seekers, US-focused investors</td>
					<td>8.2%</td>
			</tr>
			<tr>
					<td><strong>Three-Fund Bogleheads</strong></td>
					<td>Most investors (lowest fees, global diversification)</td>
					<td>7.4%</td>
			</tr>
			<tr>
					<td><strong>Golden Butterfly</strong></td>
					<td>Conservative investors worried about crashes</td>
					<td>5.9%</td>
			</tr>
			<tr>
					<td><strong>Modern Bogleheads</strong></td>
					<td>Inflation-conscious investors</td>
					<td>6.8%</td>
			</tr>
	</tbody>
</table>
<p>Returns are computed directly from each portfolio's asset assumptions and full covariance matrix using the portfolio-level Itô correction (μ minus half the portfolio variance). The calculator renders the same numbers live on each card.</p>

<h3 class="relative group">Step 2: Set Your Withdrawal Rate
    <div id="step-2-set-your-withdrawal-rate" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-set-your-withdrawal-rate" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This determines how much you withdraw annually. The calculator supports two strategies:</p>
<p><strong>Constant Dollar (Traditional):</strong> Fixed inflation-adjusted withdrawals regardless of portfolio value. Simple but rigid.</p>
<p><strong>Dynamic Spending (Vanguard):</strong> Withdrawals adjust based on portfolio performance with floor/ceiling bounds. More sustainable for aggressive rates.</p>
<p><strong>Quick guide:</strong></p>
<ul>
<li>2.5-3.0% = Very conservative (50-year horizons)</li>
<li>3.0-3.5% = Moderate (40-year horizons)</li>
<li>4.0%+ = Aggressive (30-year horizons or with flexibility)</li>
</ul>

<h3 class="relative group">Step 3: Set Duration
    <div id="step-3-set-duration" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-set-duration" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Enter years until age 100 (or your planning horizon). Add 5-10 years as a buffer.</p>

<h3 class="relative group">Step 4: Add Fees (Optional)
    <div id="step-4-add-fees-optional" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-4-add-fees-optional" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Beyond ETF expense ratios, add any advisor or platform fees:</p>
<ul>
<li><strong>0.00%</strong> - DIY at Vanguard/Fidelity/Schwab</li>
<li><strong>0.25%</strong> - Robo-advisors</li>
<li><strong>1.00%</strong> - Traditional advisor (costs ~39% of wealth over 50 years!)</li>
</ul>

<h3 class="relative group">Step 5: Run Simulation
    <div id="step-5-run-simulation" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-5-run-simulation" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Click <strong>Run Simulation</strong> and wait 2-10 seconds. The default run is 10,000 scenarios. For tighter percentiles bump to 50,000 or 100,000 from Advanced Options (slower, more accurate).</p>
<hr>

<h2 class="relative group">Understanding Your Results
    <div id="understanding-your-results" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#understanding-your-results" aria-label="Anchor">#</a>
    </span>
    
</h2>
<table>
	<thead>
			<tr>
					<th>Metric</th>
					<th>What It Means</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Median Outcome</strong></td>
					<td>Most likely result (50th percentile)</td>
			</tr>
			<tr>
					<td><strong>5th Percentile</strong></td>
					<td>Your safety net. Plan around this number, not the median.</td>
			</tr>
			<tr>
					<td><strong>Depletion Risk</strong></td>
					<td>Probability of running out of money</td>
			</tr>
			<tr>
					<td><strong>Sharpe/Sortino Ratio</strong></td>
					<td>Risk-adjusted return (higher = better). Computed per simulation path from gross monthly returns, then averaged across paths.</td>
			</tr>
			<tr>
					<td><strong>Growth potential context</strong></td>
					<td>A sentence under the cards shows your median outcome <strong>without withdrawals</strong> and how much spending cost you in compound growth. Anchors the magnitude of the headline numbers.</td>
			</tr>
			<tr>
					<td><strong>Growth chart, dashed brass line</strong></td>
					<td>The median path of a parallel portfolio that compounds with the same market shocks but never withdraws. The gap between it and the solid green median is the real, year-by-year cost of your retirement spending.</td>
			</tr>
			<tr>
					<td><strong>Max Drawdown</strong></td>
					<td>Worst peak-to-trough decline. Includes the withdrawal effect, so retirement runs naturally show larger drawdowns than markets alone.</td>
			</tr>
	</tbody>
</table>
<p><strong>Depletion risk guidelines:</strong></p>
<ul>
<li>0-5% = Very safe</li>
<li>5-10% = Acceptable</li>
<li>10%+ = Consider reducing withdrawal rate</li>
</ul>
<hr>

<h2 class="relative group">Advanced Options
    <div id="advanced-options" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#advanced-options" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>Fat-Tail Mode:</strong> Layers a Student's t-distribution (df=5) on top of the default log-normal compounding to model extreme events (crashes and booms) more realistically than the bell curve alone. Recommended for conservative planning. If your plan survives fat-tail mode at a punishing withdrawal rate, your plan is genuinely robust.</p>
<p><strong>Dynamic Spending Bounds:</strong> Adjust floor (-2.5% default) and ceiling (+5% default) to control withdrawal variability.</p>
<hr>

<h2 class="relative group">Privacy &amp; Accuracy
    <div id="privacy--accuracy" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#privacy--accuracy" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>All calculations run in your browser. No data is collected or stored.</p>
<p>The engine is professional-grade:</p>
<ul>
<li><strong>Monthly Geometric Brownian Motion</strong> per asset. Returns compound via <code>value × exp(r)</code>, so portfolios mathematically cannot fall below zero.</li>
<li><strong>Cholesky-decomposed correlation matrix</strong> drives correlated monthly shocks across the assets in the chosen portfolio.</li>
<li><strong>Fat-tail mode</strong> swaps the Normal driver for a variance-corrected Student's t-distribution (df=5).</li>
<li><strong>Annual rebalance</strong> at year-end. Withdrawals are taken at target weights (this has a monthly partial-rebalance side effect, disclosed in the methodology box inside the calculator).</li>
<li><strong>Sharpe and Sortino</strong> are computed per simulation path from monthly gross portfolio returns, then averaged across paths. That's the textbook formulation, not a cross-path outcome-dispersion proxy.</li>
<li><strong>S&amp;P 500 comparison</strong> shares VTI's correlated monthly shock (empirical correlation 0.98). The &quot;probability of beating the S&amp;P&quot; is therefore measured in the same market state, not in two parallel universes.</li>
<li><strong>Expected return labels</strong> on each portfolio card are derived directly from the asset assumptions plus the full covariance matrix, not hardcoded marketing numbers.</li>
<li><strong>Parallel no-withdrawal portfolio</strong> runs alongside the main simulation using the same Cholesky-correlated monthly shocks. Its median terminal value (and its full annual path on the chart) anchors the cost of your spending. If your median outcome is $16M and the no-withdrawal median is $40M, withdrawals cost you $24M of compound growth. The dashed brass line on the growth chart is that parallel portfolio's median path over time.</li>
</ul>
<p>Open the <strong>Methodology and assumptions</strong> disclosure inside the calculator for the full set of caveats (no taxes, no cash buffer, historical correlations, the drawdown-includes-withdrawals convention).</p>
<hr>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #0f5132"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span>
  </span>

  <span
    
      style="color: #ffffff"
    
    ><strong>Ready to dive deeper?</strong> Our <strong><a href="/posts/monte-carlo-simulation-retirement-planning/" >Complete Guide to Monte Carlo Retirement Planning</a></strong> explains sequence of returns risk, the 4% rule limitations, and how to build safety margins into your plan.</span>
</div>


  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This calculator reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/monte-carlo-retirement-calculator.webp" medium="image"/></item><item><title>Monte Carlo Simulation for Retirement: Why Simple Calculators Get It Wrong</title><link>https://libreleo.com/posts/monte-carlo-simulation-retirement-planning/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/monte-carlo-simulation-retirement-planning/</guid><description>Most retirement calculators pretend the market grows at a steady 7% every year. It doesn't. Monte Carlo simulation runs thousands of possible futures so you can plan for what actually happens, not the line on a brochure.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Most retirement calculators show you a single, smooth growth line at &quot;7% per year&quot; and call it a plan. That's not a plan. Monte Carlo simulation runs thousands of possible futures against your numbers so you can see what actually happens when markets do market things.
</div>


<h2 class="relative group">The problem with average returns
    <div id="the-problem-with-average-returns" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-problem-with-average-returns" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>If someone tells you stocks return 10% on average, your brain wants to multiply your portfolio by 1.10 every year for 30 years and put a number on the screen. That number is simply ridiculous.</p>
<p>Markets don't compound in straight lines. A simple example:</p>
<ul>
<li>Year 1: +20%. Your $100 becomes $120.</li>
<li>Year 2: -10%. Your $120 becomes $108.</li>
</ul>
<p>The arithmetic average of those two years is 5%. Your actual compound growth is 3.9%. Over 30 years that gap is the difference between retiring at 55 and retiring at 62.</p>
<p>Real markets are noisier than that. Some years are +25%. Some are -35%. The order matters. Monte Carlo simulation is the only way to capture both.</p>

<h2 class="relative group">What Monte Carlo actually does
    <div id="what-monte-carlo-actually-does" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-monte-carlo-actually-does" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The name comes from the casino in Monaco, which is fitting because the whole approach is built on probability.</p>
<p>Here is the process:</p>
<ol>
<li>Define your inputs: starting balance, withdrawal rate, time horizon, asset allocation.</li>
<li>Generate a random sequence of monthly returns using each asset's historical mean and volatility.</li>
<li>Compound through the horizon. Withdraw money each year. Track the path.</li>
<li>Repeat thousands of times. Look at the distribution: how many runs survived, how many depleted, what the median outcome looked like.</li>
</ol>
<p>Each run is one possible future. Maybe you retire and immediately eat a crash. Maybe you get a lucky decade of bull market right at the start. Monte Carlo shows you the whole range so you can plan for the bad ones, not just hope for the good ones.</p>

<h2 class="relative group">Sequence of returns risk is the real fight
    <div id="sequence-of-returns-risk-is-the-real-fight" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#sequence-of-returns-risk-is-the-real-fight" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>This is the part that keeps early retirees awake at night.</p>
<p>While you are still working and adding money, a crash early in your career is great. You buy cheap. Compounding loves you back.</p>
<p>After you stop working and start withdrawing, an early crash is a different beast entirely. You are selling assets to fund your life right as those assets get cheap. Every dollar you pull out at the bottom is gone. The portfolio that should have recovered now has less left to recover with.</p>
<p>Two retirees, same long-run average return, different sequence:</p>
<table>
	<thead>
			<tr>
					<th>Scenario</th>
					<th>Early returns</th>
					<th>Late returns</th>
					<th>Final balance</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Lucky</td>
					<td>+15%, +12%, +8%</td>
					<td>-10%, -5%</td>
					<td>$2.1M</td>
			</tr>
			<tr>
					<td>Unlucky</td>
					<td>-10%, -15%, -8%</td>
					<td>+20%, +15%</td>
					<td>$400K</td>
			</tr>
	</tbody>
</table>
<p>Same average. Five times the wealth gap. That is sequence of returns risk in one table, and it's exactly what Monte Carlo captures by randomizing the order of returns across thousands of paths.</p>

<h2 class="relative group">The 4% rule and where it stops being safe
    <div id="the-4-rule-and-where-it-stops-being-safe" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-4-rule-and-where-it-stops-being-safe" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>You've probably heard the 4% rule: withdraw 4% of your starting balance each year, adjust for inflation, and a 30 year retirement should hold up. It comes from the Trinity study, which used US market data from 1926 to 1992.</p>
<p>That is fine for a traditional retirement at 65. But it starts breaking when you stretch it.</p>
<p>What the simulations consistently show:</p>
<table>
	<thead>
			<tr>
					<th>Horizon</th>
					<th>Realistic safe rate</th>
					<th>Depletion risk at 4%</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>30 years</td>
					<td>3.5% to 4.0%</td>
					<td>5% to 10%</td>
			</tr>
			<tr>
					<td>40 years</td>
					<td>3.0% to 3.5%</td>
					<td>15% to 25%</td>
			</tr>
			<tr>
					<td>50 years</td>
					<td>2.5% to 3.0%</td>
					<td>30% to 45%</td>
			</tr>
	</tbody>
</table>
<p>Those aren't guarantees. They are probability distributions. The point of running thousands of scenarios is to stop asking &quot;will it work&quot; and start asking &quot;in what fraction of futures does it work, and am I OK with the rest.&quot;</p>

<h2 class="relative group">Fat tails and the fix I had to make
    <div id="fat-tails-and-the-fix-i-had-to-make" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#fat-tails-and-the-fix-i-had-to-make" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Most Monte Carlo tools, including the first version of mine, generate returns from a Normal distribution. Bell curve. Smooth. Reassuring. The problem is that real equity markets have fat tails. Extreme events happen far more often than the bell curve predicts.</p>
<p>Just since 2000:</p>
<ul>
<li>2000 to 2002: dot-com bust, Nasdaq down 78%.</li>
<li>2008: global financial crisis, S&amp;P 500 down 57%.</li>
<li>2020: COVID crash, down 34% in three weeks.</li>
</ul>
<p>A Normal distribution says crashes that severe should be once-per-century events. We've had three this century, and we're not done. Not that long ago we had liberation day and now the Iran War.</p>
<p>There's a second, deeper problem with Normal returns: arithmetically, a Normal return r and the compounding step <code>value × (1 + r)</code> can drive a portfolio below zero. That is mathematically impossible (a stock can't be worth less than nothing) but a naive simulator will happily print it.</p>
<p>The fix is to model returns as log-normal, which is what Geometric Brownian Motion actually does. Instead of <code>value × (1 + r)</code>, you compound with <code>value × exp(r)</code> where r is a normal log-return. Log-normal can't go below zero by construction, naturally produces a heavier right tail, and matches the empirical distribution of monthly equity returns much better than Normal does.</p>
<p>My calculator now uses log-normal compounding for the default mode. The fat-tail toggle layers a Student's t-distribution (df=5) on top, which gives even heavier tails for stress testing. If your plan survives the fat-tail mode at a punishing withdrawal rate, your plan is genuinely robust. If it doesn't, you've found the edge of your plan before reality finds it for you.</p>

<h2 class="relative group">Picking a withdrawal strategy
    <div id="picking-a-withdrawal-strategy" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#picking-a-withdrawal-strategy" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Monte Carlo lets you stress test the spending side too.</p>
<p><strong>Constant dollar.</strong> You withdraw a fixed inflation-adjusted amount every year regardless of what the portfolio is doing. Simple. Predictable. You will be pulling the same dollar amount out of a declining portfolio during a crash, which is exactly when you shouldn't.</p>
<p><strong>Dynamic spending (Vanguard rule).</strong> You adjust withdrawals based on portfolio performance with floors and ceilings so spending doesn't swing wildly. That's what I'm using. More sustainable at aggressive withdrawal rates. The trade-off is that you have to be willing to cut spending in bad years.</p>
<p>The simulations are consistent: at the same nominal withdrawal rate, dynamic spending often cuts depletion risk roughly in half.</p>

<h2 class="relative group">What the numbers cannot tell you
    <div id="what-the-numbers-cannot-tell-you" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-the-numbers-cannot-tell-you" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Monte Carlo is powerful. It also has blind spots.</p>
<p><strong>Regime change.</strong> The simulation assumes future volatility looks like past volatility. What if we enter a Japan-style decade of low returns? The simulator doesn't know.</p>
<p><strong>Structural shifts.</strong> AI rewriting the labor market. Demographics. Climate. None of this is in the model.</p>
<p><strong>Personal factors.</strong> Health expenses, family obligations, a roof that needs replacing. The simulator doesn't know your life.</p>
<p><strong>Taxes.</strong> Most simulators work in nominal returns. Your actual spending power depends on your tax situation, which for a Dubai-based expat looks very different from someone in London or Paris.</p>
<p>Use Monte Carlo as one input. Don't treat the 50th percentile as a forecast. Treat the 5th percentile as a planning floor.</p>

<h2 class="relative group">Build in safety margins on top
    <div id="build-in-safety-margins-on-top" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#build-in-safety-margins-on-top" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Don't just trust the simulator's 5th percentile result.</p>
<ul>
<li>Regime change buffer: -20%. Persistent low returns are a real possibility.</li>
<li>Black swan buffer: -15%. Major crisis early in retirement.</li>
<li>Fee creep buffer: -5%. Costs tend to climb over decades.</li>
</ul>
<p>If the 5th percentile outcome in the simulator says you have $1.7M, your conservative planning target after those haircuts is closer to $1.0M. If you can live on that conservatively-haircut number, you are genuinely safe. Not &quot;statistically probably fine.&quot; Safe.</p>

<h2 class="relative group">Try it yourself
    <div id="try-it-yourself" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#try-it-yourself" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Theory is one thing. Running your actual numbers through the simulator is where it stops being abstract.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    
  </span>

  <span
    
      style="color: #ffffff"
    
    ><p><strong>Try the calculator</strong></p>
<p>I built a Monte Carlo simulator that runs 10,000 scenarios by default (configurable up to 100,000) across four professionally designed portfolios. Log-normal compounding by default, fat-tail mode for stress testing, constant dollar and dynamic spending strategies, fee drag included. Cholesky-correlated monthly shocks, annual rebalance, per-path Sharpe and Sortino. A parallel no-withdrawal portfolio runs against the same shocks so you can see, on the chart and in dollars, exactly what your retirement spending costs you in compound growth.</p>
<p><strong><a href="/calculators/monte-carlo-retirement-calculator/" >Use the Monte Carlo Calculator</a></strong></p>
</span>
</div>

<p>Test different withdrawal rates. Compare portfolios. Watch how fees compound over decades. Everything runs in your browser. No accounts, no tracking, no data leaving your machine.</p>

<h2 class="relative group">The bottom line
    <div id="the-bottom-line" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-bottom-line" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Simple retirement calculators sell false precision. They give you one number and pretend to know the future. Monte Carlo is honest about uncertainty. It hands you a distribution and lets you decide how much downside you're willing to plan for.</p>
<p>You might not love seeing a 15% chance of running out of money. You would love it less at 85.</p>
<p>Plan for the 5th percentile. Hope for the median. Stay flexible enough to adjust when reality surprises you, because it will.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/monte-carlo-simulation-retirement-planning.webp" medium="image"/></item><item><title>Why I Don't Chase Dividends (And What I Do Instead)</title><link>https://libreleo.com/posts/why-i-dont-chase-dividends/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/why-i-dont-chase-dividends/</guid><description>I'm not anti-dividend. I just think most investors chase yield without realising what they're trading away. Here's how I think about it, and what I actually do with my own money.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  I'm not against dividends. I own stocks that pay them. What I'm against is <em>chasing</em> them. Picking investments by yield instead of by what the money is actually doing for you.
</div>

<p>A dividend is just a company sending you cash. That's fine. The problem starts when &quot;high yield&quot; becomes the only filter. When an investor screens for 6%, 8%, 10% payouts and assumes that's the same thing as a &quot;good investment.&quot;</p>
<p>It isn't. And the gap between those two ideas is where a lot of people quietly lose money.</p>
<p>This post is me thinking out loud about why I personally don't optimize for dividends, what the actual trade-offs are, and what I do instead. If you read it and decide dividend investing is still right for you, then go ahead. I just want you to make that choice with both eyes open.</p>
<hr>

<h2 class="relative group">The One Mistake That Hides Behind Everything
    <div id="the-one-mistake-that-hides-behind-everything" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-one-mistake-that-hides-behind-everything" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>People treat <strong>dividend yield</strong> and <strong>return on investment</strong> as if they were the same number. They're not.</p>
<p>The return on a stock is made of two pieces:</p>
<pre class="not-prose mermaid">
flowchart TD
    A[Total Return] --> B[Capital Appreciation<br/>price goes up]
    A --> C[Dividend Yield<br/>cash paid out]
    B --> D[Compounds inside<br/>the business]
    C --> E[Cash in your hand<br/>or reinvested]
</pre>

<p>If a stock pays a 4% dividend and the share price drops 4% on the ex-dividend date, your total return that day is <em>zero</em>. The company didn't manufacture wealth out of thin air. It just moved value from one pocket (share price) to another pocket (your cash account). And in many jurisdictions, that move triggers tax along the way.</p>
<p>That's the lens I want you to keep in mind for the rest of this post. Total return is the real number. Everything else is bookkeeping.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Before you buy something for the dividend, ask yourself: &quot;Would I still want this if it paid zero and the price grew at the same total rate?&quot; If the answer is no, you're not investing. You are paying a premium for cash flow.</p></div></div><hr>

<h2 class="relative group">Six Reasons I Personally Skip the Dividend Chase
    <div id="six-reasons-i-personally-skip-the-dividend-chase" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#six-reasons-i-personally-skip-the-dividend-chase" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>I've consolidated the classic eight reasons into six that I actually believe matter the most. The other two (&quot;preference&quot; and &quot;no guarantee&quot;) are true but trivial. They apply to literally every investment.</p>

<h3 class="relative group">1. Dividends Are Not Free Money
    <div id="1-dividends-are-not-free-money" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-dividends-are-not-free-money" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This is the one most people get wrong. A dividend isn't a bonus. It's <em>your</em> money being transferred from the company's balance sheet to yours. On payday, the share price drops by roughly the dividend amount. You haven't been given anything. You have been handed a slice of what you already owned, in cash form.</p>
<p>If the company could have reinvested that cash at a high rate of return, you may have just received the <em>worst</em> outcome: paying tax to receive money the business could have grown for you.</p>

<h3 class="relative group">2. They Can Cap Your Total Return
    <div id="2-they-can-cap-your-total-return" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-they-can-cap-your-total-return" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The best long-term performers in market history such as Amazon, Apple, Berkshire Hathaway, Microsoft for most of its growth phase,  paid little or no dividend for years. They retained earnings and compounded inside the business.</p>
<p>A 5% dividend yield sounds nice. But if it comes with 1% earnings growth, you're earning 6% total. A no-dividend growth stock compounding at 11% is way better over a decade. Yield is a number you can see. Compounding is a number you have to imagine. Most people choose the one they can see.</p>

<h3 class="relative group">3. They Create a Tax Drag You Didn't Ask For
    <div id="3-they-create-a-tax-drag-you-didnt-ask-for" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3-they-create-a-tax-drag-you-didnt-ask-for" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Tax rules vary wildly by country, but the principle is universal: a dividend is usually a <strong>taxable event</strong> the moment it lands. Capital appreciation isn't taxed until you sell.</p>
<p>That means a portfolio of growth stocks lets you defer tax for years, even decades, while compounding pre-tax. A high-yield portfolio forces you to pay every quarter. Even if the rate is identical, paying later beats paying now.</p>
<p>I own Swiss and US Stocks. My dividend payments are always gross minus the withholding tax. Switzerlands withholding tax is 35% and US withholding tax is 30%. If you live abroad like myself, you can claim back some of the withholding tax, but that comes at a huge hassle. Lot's of paperwork and some upfront costs.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    >Some countries treat dividends very favourably (qualified rates, etc.). Others tax them as ordinary income. Check your local rules before assuming this point applies. But in most cases, dividends are the <em>less</em> tax-efficient option.</span>
</div>


<h3 class="relative group">4. They're a Forced Withdrawal You Don't Control
    <div id="4-theyre-a-forced-withdrawal-you-dont-control" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#4-theyre-a-forced-withdrawal-you-dont-control" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>When you own a growth stock, <em>you</em> decide when to take money out. You can sell a portion when you need cash, or never.</p>
<p>When you own a dividend stock, the company decides for you. They pay out on their schedule, in their amounts, whether or not you wanted the cash. If you're still in the accumulation phase and you reinvest the dividend, you've just done a manual round-trip. Receive cash, pay tax (maybe), buy shares back.</p>

<h3 class="relative group">5. They Push You Toward a Less Diversified Portfolio
    <div id="5-they-push-you-toward-a-less-diversified-portfolio" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#5-they-push-you-toward-a-less-diversified-portfolio" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Screen the market for high yield and you end up in the same three sectors every time: utilities, financials, energy, sometimes REITs and telcos. That's not a diversified portfolio.</p>
<p>When those sectors hit a bad cycle such as rates rise, oil collapses, banks get squeezed, your &quot;safe&quot; income portfolio falls 30%.</p>

<h3 class="relative group">6. The Psychological Win Disguises a Financial Loss
    <div id="6-the-psychological-win-disguises-a-financial-loss" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#6-the-psychological-win-disguises-a-financial-loss" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This one is the most personal. Getting a dividend <em>feels</em> great. Cash hits the account, you see the number and your brain registers it as a win. That feeling is real. But it's only a feeling, not a return.</p>
<p>Some investors hold onto declining dividend stocks far past the point where the math made sense, simply because the quarterly payout felt like proof the position was working. It wasn't working. The payout was just emotionally louder than the unrealized loss on the share price. I've experienced it myself.</p>
<hr>

<h2 class="relative group">What I Actually Do Instead
    <div id="what-i-actually-do-instead" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-i-actually-do-instead" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Here's how I structure my own approach:</p>
<ol>
<li><strong>Total return is the only number that matters.</strong> I look at &quot;how much will this position be worth in ten years, including everything?&quot;</li>
<li><strong>I let growth compound where it makes sense.</strong> A position that retains earnings well and reinvests them at a high return is doing my job for me. I don't need it to send me cash.</li>
<li><strong>I generate my income from options, not yield.</strong> Selling defined-risk options premium gives me cash flow that <em>I</em> control, with <em>defined</em> risk, on positions I already wanted to own. That's a different game than waiting for a board to declare a dividend. This is why I trade options for income rather than buy yield.</li>
<li><strong>When I do own dividend payers, it's because the underlying business is great</strong>, not because the yield is high. The dividend is the side-effect.</li>
</ol>
<hr>

<h2 class="relative group">Who Should Actually Lean Into Dividends
    <div id="who-should-actually-lean-into-dividends" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#who-should-actually-lean-into-dividends" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>I don't want to be one-sided. There are real scenarios where a dividend-heavy approach makes sense:</p>
<ul>
<li><strong>You're in or near retirement</strong> and you want predictable cash flow without the psychological pressure of selling shares in a down market.</li>
<li><strong>You live in a jurisdiction with very favourable dividend taxation</strong></li>
<li><strong>You know yourself well enough to admit</strong> you'll panic-sell growth stocks in a 40% drawdown but you'll happily hold a utility paying you 5% through the same drop.</li>
</ul>
<p>If you're in any of those buckets, dividend investing isn't a mistake. It's the right tool for your situation.</p>
<hr>

<h2 class="relative group">The Bottom Line
    <div id="the-bottom-line" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-bottom-line" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>I'm not anti-dividend. I'm anti-<em>chase</em>.</p>
<p>The mistake isn't owning companies that pay you cash. The mistake is letting &quot;yield&quot; become a shortcut that bypasses every other question worth asking: Is this a good business? Am I diversified? Am I optimizing for total return or for the feeling of being paid? Is there a better way to generate the cash flow I actually want?</p>
<p>For me, the answer to that last question is yes.  I would rather build income on my own terms, with options I control, on businesses I'd own anyway. For you, it might be different. That's fine. But think about it.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/why-i-dont-chase-dividends.webp" medium="image"/></item><item><title>Investing 101: How I'd Start Building Real Wealth in 2026</title><link>https://libreleo.com/posts/investing-101-2026/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/investing-101-2026/</guid><description>A personal, expert-level guide to investing in 2026. What I actually do after three decades in the markets, written for a beginner who wants the truth without the noise.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  After thirty years inside the markets, I've learned that the people who win at investing are not the ones who try the hardest. They're the ones who stop trying to be clever.
</div>

<p>I spent a fair amount of time in the corporate world. I traded my own money the whole time. The decision was taken to let me go, and I went full-time on what was always going to be the second half of my life: trading, building, and writing about money the way I actually think about it.</p>
<hr>

<h2 class="relative group">Why Most Investing Advice Is Built to Fail You
    <div id="why-most-investing-advice-is-built-to-fail-you" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-most-investing-advice-is-built-to-fail-you" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Over any 15- or 20-year window, around 80 to 90% of professional money managers fail to beat the market index they're paid to beat. The ones who win in one decade rarely win in the next.</p>
<p>Smart, well-credentialed people with Bloomberg terminals and PhDs, getting beaten by a portfolio my mother could have built in twenty minutes.</p>
<p>What I actually believe:</p>
<ul>
<li><strong>Own the whole market, not parts of it.</strong> Picking winners is a skill almost no one has.</li>
<li><strong>Pay as little as possible to do it.</strong> Fees are the only number in investing guaranteed to compound against you.</li>
<li><strong>Time horizons in decades, not quarters.</strong> Most &quot;bad years&quot; are noise on a 20-year chart.</li>
<li><strong>Automate the boring decisions.</strong> Discipline beats analysis every time.</li>
<li><strong>Build something you can hold through a crash.</strong> If you'd sell during a 40% drawdown, you don't actually own the portfolio you think you do.</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="important">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Investing isn't about getting rich. A portfolio that grows quietly until it generates enough income to make work optional.</p></div></div><hr>

<h2 class="relative group">Why 2026 Is a Strange Year to Start (and Why You Should Start Anyway)
    <div id="why-2026-is-a-strange-year-to-start-and-why-you-should-start-anyway" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-2026-is-a-strange-year-to-start-and-why-you-should-start-anyway" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Beginners always feel like the timing is wrong.</p>
<p>In 2026 you're hearing a lot of noise. Rates are still elevated. AI valuations look stretched. Geopolitics is messy. Cash in a money-market fund yields more than it has in years, which makes &quot;doing nothing&quot; feel rational.</p>
<p>Every one of these conditions has existed, in some form, in every year. 1994, 2000, 2008, 2011, 2018, 2020, 2022. The reasons not to invest are always available. They are always real. The people who waited for them to clear up missed the entire run.</p>
<p>Cash feels safe. It isn't. A 4% money-market yield sounds great until you remember inflation is also eating it. After tax and inflation, &quot;safe&quot; cash often returns roughly zero in real terms. Equities, held long enough, have outpaced inflation by 5–7 percentage points annually.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If you're paralyzed by 2026 specifically, do this: invest half of what you intended to invest, on schedule. Keep the other half in cash and deploy it over the next 12 months. You'll feel calmer, and historically this approach loses very little to &quot;perfect&quot; timing.</p></div></div><hr>

<h2 class="relative group">Get the Foundation Right Before You Buy a Single Share
    <div id="get-the-foundation-right-before-you-buy-a-single-share" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#get-the-foundation-right-before-you-buy-a-single-share" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>This is the order I follow personally and it hasn't really changed.</p>
<pre class="not-prose mermaid">
graph TD
    A["Step 1: Emergency Fund<br/>3–6 months of expenses<br/>in cash or savings"] --> B["Step 2: High-Interest Debt<br/>Pay off credit cards first"]
    B --> C["Step 3: Buy Index Funds<br/>Low-cost, diversified ETFs"]
    C --> D["Step 4: Stay the Course<br/>Contribute monthly<br/>Rebalance once a year"]
</pre>

<p><strong>The emergency fund is non-negotiable.</strong> Without it, the first time life happens (job loss, medical bill, car) you'll be forced to sell investments at the worst possible moment. Three to six months of expenses in cash, earning a modest yield and protecting everything else you build.</p>
<p><strong>High-interest debt is a guaranteed loss.</strong> Paying off a 20% credit card is mathematically equivalent to a guaranteed 20% return. That's better than any index fund can honestly promise. No investing strategy on Earth beats killing high-interest debt first.</p>
<p>When those two boxes are checked, you're ready.</p>
<hr>

<h2 class="relative group">The Only Two Instruments You Actually Need
    <div id="the-only-two-instruments-you-actually-need" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-only-two-instruments-you-actually-need" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>An <strong>index fund</strong> tracks a broad market index like the S&amp;P 500, the total US market, or a global equity index. Rather than paying a manager to pick stocks, it simply owns (approximately) every stock in that index in proportion to size.</p>
<p>An <strong>ETF</strong> (Exchange-Traded Fund) is the same idea wrapped so it trades on an exchange like a stock. For a beginner, the difference between an index mutual fund and an index ETF is largely cosmetic.</p>
<p>What you're actually buying is a slice of hundreds, sometimes thousands, of companies in a single transaction.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="example">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
  <path fill="currentColor" d="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-13.3 0-24-10.7-24-24s10.7-24 24-24H64V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/>
</svg>
</span></div>
        <div class="grow">
          Example
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>When you buy one share of a total US market ETF like VTI, you own a small piece of roughly 3,600 publicly traded American companies (Apple, Microsoft, Amazon, and thousands more) in a single trade, for a single commission.</p></div></div><p><strong>Why this works so reliably:</strong></p>
<p>You're not betting on a company. You're betting that the global economy will be larger in 30 years than it is today. It always has been, through depressions, world wars, oil shocks, dot-com crashes, the financial crisis, a pandemic. The companies inside the index change. The index itself keeps compounding.</p>
<p><strong>A short list of funds worth understanding:</strong></p>
<table>
	<thead>
			<tr>
					<th>Ticker</th>
					<th>What it gives you</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>VTI</td>
					<td>The entire US stock market (~3,600 companies)</td>
			</tr>
			<tr>
					<td>VOO</td>
					<td>The S&amp;P 500 (the 500 largest US companies)</td>
			</tr>
			<tr>
					<td>VXUS</td>
					<td>International stocks (everything outside the US)</td>
			</tr>
			<tr>
					<td>VT</td>
					<td>The entire global stock market in one ticker</td>
			</tr>
			<tr>
					<td>BND</td>
					<td>The total US bond market</td>
			</tr>
			<tr>
					<td>BNDX</td>
					<td>International bonds</td>
			</tr>
	</tbody>
</table>
<p>These are US-listed examples because they're accessible to most international brokerage accounts. Your country almost certainly has equivalent local-listed ETFs with better tax treatment, and you should prefer those where they exist.</p>
<hr>

<h2 class="relative group">How I'd Mix Your Portfolio
    <div id="how-id-mix-your-portfolio" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-id-mix-your-portfolio" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Asset allocation is how you split your money between stocks and bonds. It's the single most important decision you'll make, and most people obsess over the wrong details (which specific ETF) while ignoring this.</p>
<p>Stocks deliver higher returns and bigger swings. Bonds deliver lower returns and act as the shock absorber. The younger you are, the more you should lean into stocks, because volatility doesn't hurt you when you're not selling.</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Aggressive (20&#43; years to go)">
          <span class="flex items-center gap-1">
            
            Aggressive (20&#43; years to go)
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Moderate (10–20 years out)">
          <span class="flex items-center gap-1">
            
            Moderate (10–20 years out)
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Conservative (within 10 years)">
          <span class="flex items-center gap-1">
            
            Conservative (within 10 years)
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <p><strong>90% stocks / 10% bonds</strong></p>
<p>For: Investors with at least two decades before they need the money.</p>
<p>Why it works: A 30% drawdown when you have 25 years left to work is a sale, not a tragedy. Stocks have historically averaged 7–10% real returns over long horizons. You want maximum exposure to that engine.</p>
<p>Example portfolio:</p>
<ul>
<li>60% total US market ETF</li>
<li>30% international ETF</li>
<li>10% bond ETF</li>
</ul>
<p>Accept the dips. They're temporary. Keep buying.</p>

      </div><div class="tab__panel " data-tab-index="1">
        <p><strong>70% stocks / 30% bonds</strong></p>
<p>For: Investors with one to two decades before they need the money.</p>
<p>Why it works: You've built enough that a 40% crash would genuinely set you back. Bonds soften that landing without giving up the long-term growth you still need.</p>
<p>Example portfolio:</p>
<ul>
<li>50% total US market ETF</li>
<li>20% international ETF</li>
<li>30% bond ETF</li>
</ul>
<p>Start rebalancing annually.</p>

      </div><div class="tab__panel " data-tab-index="2">
        <p><strong>50% stocks / 50% bonds (or 40/60)</strong></p>
<p>For: Investors within ten years of needing the money or already living off the portfolio.</p>
<p>Why it works: Sequence-of-returns risk is the silent killer of retirement portfolios. A bad bear market in the first five years of withdrawals can permanently impair the plan. Bonds give you something safe to spend from while stocks recover.</p>
<p>Example portfolio:</p>
<ul>
<li>30% total US market ETF</li>
<li>20% international ETF</li>
<li>50% bond ETF</li>
</ul>
<p>You've built the machine. Now protect it.</p>

      </div></div>
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>A rough rule of thumb I've used for decades: stock allocation = 110 minus your age. At 30, 80% stocks. At 50, 60%. Adjust for your own risk tolerance and what else you have outside the portfolio.</p></div></div><hr>

<h2 class="relative group">Three Mistakes Beginners Make
    <div id="three-mistakes-beginners-make" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#three-mistakes-beginners-make" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>Mistake 1: Waiting for a better moment.</strong>
Sitting in cash because &quot;the market feels high&quot; is one of the most expensive habits a new investor can develop. Time in the market is the only thing that compounds. Try to time it and you'll usually buy back in higher than you sold.</p>
<p><strong>Mistake 2: Chasing last year's winner.</strong>
Beginners pour money into the top-performing fund of the previous calendar year. That fund proceeds, almost reliably, to underperform for the next several years. This is &quot;performance chasing&quot;.</p>
<p><strong>Mistake 3: Watching the portfolio.</strong>
I check my long-term portfolio once a quarter. That's it. People who check daily earn 2-3% less per year on average, because every red number is an invitation to do something stupid.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If you cannot stop yourself from checking the portfolio daily, delete the brokerage app from your phone. You should be able to recite this advice and still be unable to follow it without removing the temptation.</p></div></div><hr>

<h2 class="relative group">Dollar-Cost Averaging: The Strategy That Wins by Not Trying
    <div id="dollar-cost-averaging-the-strategy-that-wins-by-not-trying" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#dollar-cost-averaging-the-strategy-that-wins-by-not-trying" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Dollar-cost averaging means investing the same amount on the same schedule, regardless of price. Every two weeks. Every month. On payday. Forever.</p>
<p><strong>When prices are high, your fixed dollars buy fewer shares. When prices are low, they buy more.</strong></p>
<p>You end up buying more aggressively at the bottom and less aggressively at the top without ever having to know where you are. No analysis. No timing. No news.</p>
<p>The alternative, waiting for the right moment, has a horrendous track record. Even investors who hypothetically bought at the absolute worst possible moment every single year (the day before every crash) finish their careers ahead of investors who sat in cash waiting for the perfect entry.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Set it and forget it.</strong> Automate the buy for payday. Buy the same ETF every month without looking. This one habit, sustained for thirty years, will out-earn every clever strategy you'll ever read about.</span>
</div>

<hr>

<h2 class="relative group">The Fee Tax That Quietly Steals Your Returns
    <div id="the-fee-tax-that-quietly-steals-your-returns" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-fee-tax-that-quietly-steals-your-returns" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>If you remember nothing else from this article, remember this section.</p>
<p>Every fund charges an <strong>expense ratio</strong>, an annual fee expressed as a tiny percentage. 0.05%. 0.5%. 1%. It looks negligible. It is not.</p>
<p>Here's what happens to $500 a month invested for 30 years at an 8% gross market return, at three different fee levels:</p>




<div class="chart" data-override="finfree-v2">
  <canvas id="chart-24c280fb76f2f088944c010b48a480d2"></canvas>
  <script type="text/javascript">
    window.addEventListener("DOMContentLoaded", (event) => {
      const ctx = document.getElementById("chart-24c280fb76f2f088944c010b48a480d2");
      const chart = new Chart(ctx, {
        
type: 'line',
data: {
  labels: ['5 yrs', '10 yrs', '15 yrs', '20 yrs', '25 yrs', '30 yrs'],
  datasets: [
    {
      label: '0.1% fee (typical index ETF)',
      data: [36400, 90250, 169850, 287750, 462050, 729850],
      borderColor: '#22c55e',
      backgroundColor: 'rgba(34,197,94,0.1)',
      tension: 0.4,
      fill: true
    },
    {
      label: '1.0% fee (typical managed fund)',
      data: [35750, 86550, 158350, 260550, 404950, 610100],
      borderColor: '#f59e0b',
      backgroundColor: 'rgba(245,158,11,0.1)',
      tension: 0.4,
      fill: true
    },
    {
      label: '2.0% fee (high-cost active fund)',
      data: [34900, 81900, 145400, 231000, 346700, 502200],
      borderColor: '#ef4444',
      backgroundColor: 'rgba(239,68,68,0.1)',
      tension: 0.4,
      fill: true
    }
  ]
},
options: {
  responsive: true,
  plugins: {
    legend: { position: 'bottom' },
    title: {
      display: true,
      text: 'Portfolio Value: $500/month over 30 years (8% gross return)'
    }
  },
  scales: {
    y: {
      ticks: {
        callback: function(value) {
          return '$' + (value/1000).toFixed(0) + 'k';
        }
      }
    }
  }
}

      });
    });
  </script>
</div>

<p>The gap between the green line and the red line at year 30 is <strong>$227,650</strong>. That's the cost of choosing a 2% fund over a 0.1% fund, on exactly the same underlying investments.</p>
<p>The 0.1% fund is the kind of fund you can find from Vanguard, iShares, or Fidelity in about 90 seconds. The 2% fund is the kind your bank may quietly recommend.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>When anyone shows you &quot;outstanding historical performance&quot; on a fund, look at the expense ratio first. Past performance rarely persists. Fees always do.</p></div></div><hr>

<h2 class="relative group">Opening Your First Investment Account
    <div id="opening-your-first-investment-account" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#opening-your-first-investment-account" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>You need a <strong>brokerage account</strong>, a regulated platform that lets you buy and sell ETFs.</p>
<p>What I'd look for:</p>
<ul>
<li><strong>No trading commissions</strong> on ETFs (now standard at any decent broker)</li>
<li><strong>Access to low-cost index ETFs</strong> from Vanguard, iShares, SPDR, or your local equivalents</li>
<li><strong>Regulatory protection</strong> in your jurisdiction. Your assets should be held separately from the broker's own balance sheet and covered by your country's investor protection scheme</li>
<li><strong>A usable interface.</strong> If it confuses you, you'll quit using it</li>
</ul>
<p><strong>Brokers worth shortlisting, depending on where you live:</strong></p>
<ul>
<li>Interactive Brokers (global access, very cheap, my top pick for international investors)</li>
<li>Vanguard (direct, low cost, but most likely for US customers only)</li>
<li>eToro (available in many countries, simple to onboard)</li>
<li>Your country's domestic discount broker (often the best tax outcome for local ETFs)</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Do not spend three weeks comparing brokers. Pick a reputable one available in your country, open the account, fund it, and start. I would go with Interactive Brokers. You can transfer later.</p></div></div><hr>

<h2 class="relative group">What I Actually Believe, After 30 Years
    <div id="what-i-actually-believe-after-30-years" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-i-actually-believe-after-30-years" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Every clever strategy you'll read about (sector rotation, factor tilts, options overlays, private credit, whatever's next) is an attempt to beat a simple, low-cost, globally diversified index portfolio.</p>
<p>Sometimes those strategies work. After fees, taxes, and effort, usually they don't.</p>
<p>Invest consistently. Keep costs near zero. Don't panic. Wait.</p>
<p>That really is the whole thing.</p>
<hr>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different.  Always check your country's specific tax and investment rules before acting.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/investing-101-2026.webp" medium="image"/></item><item><title>Stop Chasing Magic Numbers: A Realistic Plan to Retire Early</title><link>https://libreleo.com/posts/retire-early-realistic-plan/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/retire-early-realistic-plan/</guid><description>Forget the $2 million. Learn why retiring early is about income, not magic numbers. A no-BS guide to calculating what you actually need and escaping the 9-to-5 without winning the lottery.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Change Your Mindset !
</div>

<p>People with modest savings retire confidently all the time. Meanwhile, folks with millions stay stuck in jobs they hate because they're chasing some arbitrary number that never feels big enough.</p>
<p>The problem isn't your savings. It's your mindset.</p>

<h2 class="relative group">The three traps keeping you working longer than you need to
    <div id="the-three-traps-keeping-you-working-longer-than-you-need-to" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-three-traps-keeping-you-working-longer-than-you-need-to" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Before we talk money, we have to fix how you think about retirement. Because I've seen this pattern over and over. No amount of cash will ever feel like &quot;enough&quot; if you're trapped in these mental loops.</p>

<h3 class="relative group">Trap 1: The moving goalpost
    <div id="trap-1-the-moving-goalpost" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#trap-1-the-moving-goalpost" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>You pick a number that feels big and safe. Maybe it's $1.5 Million. You work for years to hit it. Then when you finally get there, suddenly that doesn't feel safe anymore. Now you need $3 million. Then $5 million. Honestly speaking, we always want more.</p>
<p>Know why this happens?</p>
<p>Your number wasn't based on actual math. It was based on fear.</p>
<p>Fear moves goalposts. Always has and always will.</p>

<h3 class="relative group">Trap 2: &quot;Just one more Year&quot;
    <div id="trap-2-just-one-more-year" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#trap-2-just-one-more-year" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This one kills me as it exactly happened to me. You've got the numbers. You're ready. But you tell yourself you need just one more bonus. One more year to be safe.</p>
<p>That one year turns into five. Then ten. And you waste the healthiest, most energetic years of your life still grinding away.</p>
<p>It's never really about the money. It's about losing your identity. Not knowing who you are without your job title. Being scared of what you'll do with all that free time. Being scared not having enough.</p>
<p>Money problem? Nope. Identity problem.</p>

<h3 class="relative group">Trap 3: Comparing yourself to internet millionaires
    <div id="trap-3-comparing-yourself-to-internet-millionaires" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#trap-3-comparing-yourself-to-internet-millionaires" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The median retirement savings for people in their 50s is around $185,000. (That's based on US statistics and might be different in your country of residence). That's the middle. Half of people have less.</p>
<p>If you've got $650,000 saved, you're crushing it. You've got 3.5x more than the typical person your age.</p>
<p>But you feel broke because you're comparing yourself to some influencer on Instagram with a $5 million portfolio.</p>
<p>Stop that. It's killing your confidence.</p>

<h2 class="relative group">The real secret: it's about income, not net worth
    <div id="the-real-secret-its-about-income-not-net-worth" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-real-secret-its-about-income-not-net-worth" aria-label="Anchor">#</a>
    </span>
    
</h2>


<p>Here's where everything changes. Stop obsessing over your account balance. Start thinking about income.</p>
<p>Your retirement doesn't need some magic number. It needs enough income to cover your life. That's it.</p>
<pre class="not-prose mermaid">
graph TD
    A["Step 1: What do you actually spend?"] --> B["Step 2: Count your guaranteed income"]
    B --> C["Step 3: Calculate the gap"]
    C --> D["Step 4: Build a safety bucket"]
    D --> E["Step 5: Consider partial retirement"]
    style A fill:#1e3a5f,color:#fff
    style B fill:#1e3a5f,color:#fff
    style C fill:#0f5132,color:#fff
    style D fill:#664d03,color:#fff
    style E fill:#0f5132,color:#fff
</pre>


<h3 class="relative group">Step 1: Figure out what you actually need
    <div id="step-1-figure-out-what-you-actually-need" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-figure-out-what-you-actually-need" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Most people are terrible at this. They assume they need 100% of their current salary in retirement.</p>
<p>Wrong!</p>
<p>In retirement:</p>
<ul>
<li>You're not saving for retirement anymore (that money is freed up)</li>
<li>If you have to pay taxes, usually they drop</li>
<li>Your commute costs disappear</li>
<li>Work clothes? Don't need them</li>
<li>Your mortgage might be paid off</li>
</ul>
<p>Pull up your bank statements from the last 6 months. Add up what you actually spent. Not what you earned. What you spent.</p>
<p>That's your real number.</p>

<h3 class="relative group">Step 2: Count your guaranteed income
    <div id="step-2-count-your-guaranteed-income" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-count-your-guaranteed-income" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Before your investments need to do anything, figure out what income you've already got locked in.</p>
<p>This varies by country, but look for:</p>
<ul>
<li>Government pension programs (whatever your country offers)</li>
<li>Company pension plans</li>
<li>Any other guaranteed payments</li>
</ul>
<p>Write down the total. This is money you can count on.</p>

<h3 class="relative group">Step 3: Do the gap math
    <div id="step-3-do-the-gap-math" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-do-the-gap-math" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Now you know how much you need per year and how much guaranteed income you've got. The difference is what your investments need to cover.</p>
<p>And here's the formula everyone uses: the <strong>4% rule</strong>. My own number is closer to <strong>3%</strong>.</p>
$$\text{Portfolio Needed} = \frac{\text{Annual Gap}}{0.04}$$
  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #0f5132"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      style="color: #ffffff"
    
    ><p><strong>Example - see how different this looks:</strong></p>
<ul>
<li>You need: $60,000/year</li>
<li>Guaranteed income: $30,000/year</li>
<li>Gap: $30,000/year</li>
<li>Portfolio needed: $30,000 ÷ 0.04 = <strong>$750,000</strong> or <strong>$1,000,000</strong> if 3%</li>
</ul>
<p>Not $2 million. Not $5 million. $750,000. If your guaranteed income is higher, you might only need $375,000. The math completely changes once you stop thinking in arbitrary numbers.</p>
</span>
</div>


<h3 class="relative group">Step 4: Protect yourself from the danger zone
    <div id="step-4-protect-yourself-from-the-danger-zone" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-4-protect-yourself-from-the-danger-zone" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The scariest time isn't retirement itself. It's the first few years after you retire.</p>
<p>If the market crashes right when you start withdrawing money, it can seriously mess up your long-term wealth. This is called sequence of returns risk, and it's real.</p>
<p>The fix? Build a safety bucket.</p>
<p>In your last working years, move some money into safer stuff like treasury bonds, cash equivalents, whatever works in your country. Not everything. Just enough to cover 2–3 years of expenses.</p>
<p>If the market tanks right after you retire, you spend from your safe bucket. Your stocks stay untouched and can recover. Crisis averted.</p>

<h3 class="relative group">Step 5: Consider the partial retirement hack
    <div id="step-5-consider-the-partial-retirement-hack" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-5-consider-the-partial-retirement-hack" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Instead of going from full-time work to zero overnight, what if you went to part-time? Or consulting? Or freelance work?</p>
<p>Benefits:</p>
<ul>
<li>Takes pressure off your portfolio</li>
<li>Keeps you from getting bored</li>
<li>Solves the &quot;who am I without my job&quot; crisis</li>
<li>Lets you test-drive retirement before fully committing</li>
</ul>
<p>Some of the happiest &quot;early retirees&quot; I know still work a bit. But it's work they choose, on their terms, when they want.</p>
<p>That's freedom.</p>

<h2 class="relative group">Handling the &quot;what ifs&quot;
    <div id="handling-the-what-ifs" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#handling-the-what-ifs" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If your portfolio is properly invested, living longer actually works in your favor. Markets historically grow around 7% annually. You're only withdrawing 3 - 4%. That means your portfolio usually keeps growing even while you're spending from it. Weird but true: you'll probably be richer at 90 than you were at 60.</p></div></div>
<h3 class="relative group">&quot;What if I run out of money?&quot;
    <div id="what-if-i-run-out-of-money" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-if-i-run-out-of-money" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The 4% rule has been tested against historical data going back decades, including crashes, recessions, and periods of high inflation. It's conservative by design. It's survived the Great Depression, the dot-com bust, and 2008. All at once. However, in 2026, considering inflation, dollar devaluation, uncertainties, etc. I would look closer to a 3% rule.</p>

<h3 class="relative group">&quot;What about unexpected expenses?&quot;
    <div id="what-about-unexpected-expenses" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-about-unexpected-expenses" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Build a buffer. Add 20–30% to your numbers for the unknown stuff. Or run some simulations. There's free software that'll stress-test your plan against different scenarios or create your own Monte Carlo simulation.</p>
<p>But don't let &quot;what ifs&quot; paralyze you into working forever. That's just fear talking again.</p>

<h2 class="relative group">The practical stuff you can't ignore
    <div id="the-practical-stuff-you-cant-ignore" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-practical-stuff-you-cant-ignore" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Healthcare
    <div id="healthcare" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#healthcare" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This is country-specific, so I can't give you exact advice. But whatever your country's system is:</p>
<ul>
<li>Understand what coverage you'll have before official retirement age</li>
<li>Budget for it (healthcare gets expensive when you're on your own)</li>
<li>Look into tax-advantaged health savings options if they exist where you live</li>
</ul>

<h3 class="relative group">Taxes
    <div id="taxes" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#taxes" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Different countries tax retirement income differently. Some are super friendly. Some aren't.</p>
<p>Talk to a tax professional in your country. Ask which accounts to withdraw from first, how to minimize taxes on withdrawals, and whether any special rules apply to early retirees.</p>
<p>Don't skip this. Taxes can eat a huge chunk of your retirement income if you're not careful. Or move to Dubai like me and you won't pay any taxes.</p>

<h3 class="relative group">Investing basics
    <div id="investing-basics" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#investing-basics" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>You don't need to be Warren Buffett. You just need:</p>
<ul>
<li>Low-cost index funds (whatever's available in your country)</li>
<li>Diversification across stocks and other assets.</li>
<li>A simple rebalancing strategy (once a year is fine)</li>
</ul>

<h2 class="relative group">Your action plan
    <div id="your-action-plan" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#your-action-plan" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    
  </span>

  <span
    
      style="color: #ffffff"
    
    ><p><strong>This week:</strong></p>
<ol>
<li>Track your spending for the next 6 months. Start today</li>
<li>Look up what government benefits you're eligible for</li>
<li>Calculate your gap using the 3% or 4% formula above</li>
<li>Check your current asset allocation</li>
</ol>
<p><strong>This month:</strong>
5. Build a basic retirement budget and be realistic
6. Figure out where your &quot;safe bucket&quot; will be</p>
<p><strong>This quarter:</strong>
7. Run your plan through a retirement calculator
8. Share your plan with someone who'll keep you accountable</p>
</span>
</div>


<h2 class="relative group">The bottom line
    <div id="the-bottom-line" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-bottom-line" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>People who retire early aren't lucky. They're not taking crazy risks. They didn't win the lottery.</p>
<p>They just stopped obsessing over net worth and started planning for income.</p>
<p>They did the actual math instead of guessing at scary big numbers.</p>
<p>They faced their fears about identity and boredom instead of using &quot;I need more money&quot; as an excuse to avoid them.</p>
<p>Your freedom might be closer than you think. Way closer.</p>
<p>Run the numbers. You might be surprised.</p>
<hr>
<p><em>What's stopping you from calculating your gap right now? Pull out that calculator. It takes five minutes. The answer might change everything.</em></p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/retire-early-realistic-plan.webp" medium="image"/></item><item><title>Modern Portfolio Theory: What Is It and Why Should You Care?</title><link>https://libreleo.com/posts/modern-portfolio-theory-deep-dive/</link><pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/modern-portfolio-theory-deep-dive/</guid><description>A comprehensive guide to Modern Portfolio Theory. Covering correlation, the efficient frontier, the Sharpe ratio, and the practical limitations every investor should understand.</description><content:encoded><![CDATA[<p>Modern Portfolio Theory (MPT), introduced by economist Harry Markowitz, provides a mathematical framework for constructing investment portfolios that maximize expected return for a given level of risk. He did earn the Nobel Nobel Memorial Prize in Economic Sciences for it in 1990 and remains one of the most influential contributions to modern finance.</p>
<p>What matters in portfolio construction is not how individual securities perform in isolation, but how they interact with one another. Two portfolios holding identical securities in different proportions can produce meaningfully different risk profiles. Understanding these interactions is the foundation of disciplined portfolio management.</p>

<h2 class="relative group">Return, Risk, and Correlation
    <div id="return-risk-and-correlation" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#return-risk-and-correlation" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>MPT quantifies investment risk using <strong>standard deviation</strong>. A higher standard deviation indicates greater variability, meaning larger potential gains and losses over any given period. Expected return represents the probability-weighted average of possible future returns. Typically estimated from historical data with appropriate adjustments.</p>
<p>The framework's most important insight is that a portfolio's risk is not simply the weighted average of its components' individual risks. This distinction has significant practical implications.</p>
<p>Portfolio risk depends on the <strong>correlations</strong> between holdings. Correlation measures how two assets have moved relative to each other historically, expressed as a coefficient ranging from -1 to +1:</p>
<ul>
<li>A coefficient of <strong>+1</strong> indicates the two assets have moved in sync</li>
<li>A coefficient of <strong>0</strong> means their movements have been entirely independent</li>
<li>A coefficient of <strong>-1</strong> indicates they have moved in precisely opposite directions</li>
</ul>
<p>When you combine assets whose correlation is below +1, the portfolio's standard deviation falls below the weighted average of the individual standard deviations. The lower the correlation, the greater this reduction. This is the mathematical engine behind diversification.  If you combine assets with low or negative correlations, it can reduce overall portfolio volatility without a proportional reduction in expected return.</p>
<p>Historically, major asset classes such as equities and investment-grade bonds have maintained correlations well below +1 over long market cycles, providing genuine diversification value. Within equity markets, geographic diversification across domestic and international stocks similarly exploits lower correlations than a portfolio based on a single country.</p>

<h2 class="relative group">The Efficient Frontier
    <div id="the-efficient-frontier" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-efficient-frontier" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>When all possible combinations of a given set of assets are plotted (expected return on the vertical axis, standard deviation on the horizontal), the result is a curved boundary known as the <strong>Efficient Frontier</strong>.</p>
<p>Every portfolio sitting on this frontier is efficient in a precise sense: it delivers the maximum achievable expected return for its level of risk, or equivalently, the minimum risk required to achieve its expected return. No portfolio can exist above the frontier.
Any portfolio positioned below it is suboptimal, because a superior alternative at the same risk level exists.</p>
<p>A specific point on the frontier, the <strong>minimum variance portfolio</strong>, represents the asset combination with the lowest achievable standard deviation. Moving along the frontier to the right yields progressively higher expected returns, but at the cost of higher volatility.</p>
<p>A useful measure for evaluating positions along the frontier is the <strong>Sharpe ratio</strong>. The amount of excess return earned per unit of risk taken, calculated as return above the risk-free rate divided by standard deviation. A higher Sharpe ratio indicates more efficient risk-taking. The portfolio with the highest Sharpe ratio, sometimes called the tangency portfolio, represents the most efficient risk-return trade-off available from a given set of assets.</p>
<p>Each investor's appropriate position on the efficient frontier is not universal. It depends on individual risk tolerance, financial circumstances, and investment time horizon.<br>
All must be assessed carefully before portfolio construction begins.</p>

<h2 class="relative group">A Diversified Portfolio in Practice
    <div id="a-diversified-portfolio-in-practice" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-diversified-portfolio-in-practice" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>A basic MPT-informed portfolio constructed across four broadly uncorrelated asset classes might look as follows:</p>




<div class="chart" data-override="finfree-v2">
  <canvas id="chart-bae2f3a81724d5a60af32f47a26af578"></canvas>
  <script type="text/javascript">
    window.addEventListener("DOMContentLoaded", (event) => {
      const ctx = document.getElementById("chart-bae2f3a81724d5a60af32f47a26af578");
      const chart = new Chart(ctx, {
        
type: 'pie',
data: {
  labels: ['US Stocks', 'International Stocks', 'Bonds', 'Real Estate (REITs)'],
  datasets: [{
    label: 'Portfolio Allocation',
    data: [40, 20, 30, 10],
    backgroundColor: [
      'rgba(59, 130, 246, 0.8)',
      'rgba(16, 185, 129, 0.8)',
      'rgba(245, 158, 11, 0.8)',
      'rgba(239, 68, 68, 0.8)'
    ]
  }]
},
options: {
  plugins: {
    title: {
      display: true,
      text: 'Sample Diversified Portfolio'
    }
  }
}

      });
    });
  </script>
</div>

<ul>
<li><strong>40% Developed Market Equities</strong> - Broad participation in long-term economic growth across established markets</li>
<li><strong>20% International Equities</strong> - Geographic diversification across regions with distinct economic cycles and return drivers</li>
<li><strong>30% Investment-Grade Bonds</strong> - A lower-volatility asset class that has historically provided partial insulation during equity market drawdowns.</li>
<li><strong>10% Real Assets (REITs)</strong> - Exposure to property markets, which have historically exhibited lower correlation to equity markets than most other asset classes</li>
</ul>
<p>The rationale for this structure rests on the correlation properties of each asset class. In normal market environments, investment-grade bonds and equities have often moved inversely, providing a natural counterbalance. Geographic diversification in equities reduces concentration in any single economy's business cycle.</p>
<p>Maintaining target allocations requires periodic <strong>rebalancing</strong>. As markets move, portfolio weights drift from their targets, altering both the risk profile and the underlying correlation structure. Most institutional frameworks recommend reviewing allocations at least annually, or whenever weights deviate beyond a predefined threshold, typically 5 percentage points or more.</p>

<h2 class="relative group">Risk Tolerance and Investment Horizon
    <div id="risk-tolerance-and-investment-horizon" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#risk-tolerance-and-investment-horizon" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>MPT draws an important distinction between two related but separate concepts: <strong>risk tolerance</strong> and <strong>risk capacity</strong>.</p>
<p>Risk tolerance is largely psychological. The degree of volatility an investor can accept without making reactive, counterproductive decisions. Risk capacity is financial, the degree of loss an investor can sustain given their time horizon, liquidity needs, and income stability. Both must be assessed honestly, and the more conservative of the two should govern portfolio construction.</p>
<p>An investor with a long investment horizon has greater capacity to hold higher-volatility assets because time allows for recovery from market drawdowns. An investor approaching a significant liquidity event such as a major purchase, a transition into retirement, a known liability, has reduced capacity regardless of psychological tolerance for volatility.</p>
<p>The efficient frontier is not static in this sense. The appropriate portfolio for an investor accumulating capital over decades is structurally different from one managing distributions or near-term obligations. As time horizons shorten and liquidity needs increase, the optimal trade-off between return and risk typically shifts toward lower-volatility allocations.</p>

<h2 class="relative group">Where MPT Falls Short
    <div id="where-mpt-falls-short" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#where-mpt-falls-short" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>MPT is a model, and all models operate on simplifying assumptions that do not always hold in practice. Understanding these limitations is as important as understanding the framework itself.</p>
<p><strong>Input sensitivity.</strong> Mean-variance optimization is highly sensitive to its three inputs.  Expected returns, standard deviations, and correlations. Small changes in these estimates can produce dramatically different &quot;optimal&quot; portfolios. Because these inputs are estimated from historical data, the mathematical precision implied by the optimization process can be misleading. This is the primary source of practitioner skepticism about mechanically applying MPT without judgment.</p>
<p><strong>Non-normal return distributions.</strong> MPT assumes that asset returns follow a normal distribution, making standard deviation a sufficient measure of risk. In practice, asset returns exhibit fat tails. Extreme events occur more frequently than a normal distribution predicts.  Negative skewness, meaning severe losses occur more often than equivalent gains. Standard deviation understates true downside risk, particularly in stress environments.</p>
<p><strong>Correlation instability.</strong> Perhaps the most consequential limitation is that correlations are not stable across market regimes. During periods of acute market stress, correlations across asset classes tend to converge as investors simultaneously liquidate holdings to meet redemptions, margin calls, or risk limits. The 2008 global financial crisis illustrated this directly. Asset classes that had historically exhibited diversifying properties moved in concert during the downturn. The practical implication is that diversification benefits tend to be most limited precisely when they are most needed.</p>
<p><strong>Behavioral dimensions.</strong> MPT assumes rational investors who evaluate portfolios purely on return and risk. In practice, investors are influenced by loss aversion, recency bias, and short-term market noise in ways the model does not accommodate. A theoretically optimal portfolio produces no value for an investor who abandons it during a drawdown. Portfolio construction must therefore account for the behavioral sustainability of the strategy over a full market cycle, not merely its mathematical properties.</p>

<h2 class="relative group">Applying MPT in Practice. Hot tips!
    <div id="applying-mpt-in-practice-hot-tips" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#applying-mpt-in-practice-hot-tips" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Despite these limitations, MPT provides a rigorous framework for portfolio construction. Several principles derived from it have enduring practical value.</p>
<p><strong>Evaluate assets in portfolio context, not in isolation.</strong> An asset's contribution to portfolio risk depends on its correlation to existing holdings, not on its standalone volatility. A higher-volatility asset with low correlation to the rest of the portfolio may reduce overall risk while adding return potential.</p>
<p><strong>Diversify across genuinely uncorrelated exposures.</strong> Holding many securities within a single asset class offers limited diversification benefit once a threshold is reached. Meaningful diversification requires exposure to asset classes and geographies with distinct return drivers and economic sensitivities.</p>
<p><strong>Define risk capacity before selecting a portfolio.</strong> The appropriate position on the efficient frontier is determined by time horizon, liquidity requirements, and financial circumstances, not by return targets set in isolation. Honest assessment of capacity often points to a more conservative allocation than investors initially expect.</p>
<p><strong>Rebalance systematically.</strong> Allowing allocations to drift undermines the correlation properties that motivated the portfolio's original construction. Systematic rebalancing enforces discipline, prevents concentration in recently outperforming assets, and maintains the intended risk profile.</p>
<p>Modern Portfolio Theory is not a complete solution to the problem of investing. It is a framework that imposes discipline on the construction process, forces explicit consideration of risk and correlation, and provides a structured vocabulary for evaluating trade-offs. Applied thoughtfully, with appropriate skepticism about its inputs and clear acknowledgment of its assumptions, it remains one of the most durable tools in long-term portfolio management.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/modern-portfolio-theory-deep-dive.webp" medium="image"/></item><item><title>Understanding the Greeks</title><link>https://libreleo.com/passive_active_investments/options_trading/understanding-the-greeks/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/passive_active_investments/options_trading/understanding-the-greeks/</guid><description>A beginner-friendly guide to understanding the option Greeks (Delta, Gamma, Vega, Theta, Rho) and how they impact your trades.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  The first time I read about the Greeks I was wondering whether I would have to learn this in order to be a good options trader. After a while i realized Greeks are indeed a must learn.
When i finally started to consider them, it literally improved my trading.
They are not as complicated as they sound. They're just a set of tools that help you quickly understand the risks and potential of an options trade.
</div>

<p>This guide will break down the five main Greeks. I'll show you what they mean, why they matter, and how you can use them to make smarter decisions.</p>

<h3 class="relative group">The Interactive Greeks Visualizer
    <div id="the-interactive-greeks-visualizer" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-interactive-greeks-visualizer" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Before we dive in, play around with the visualizer below. Change the inputs like Volatility or Days to Expiration and watch how the colored lines (the Greeks) react across different stock prices. Seeing it in action is the best way to start building an intuition.</p>

<style>
  :root {
    --card-max-width: 900px;
    --card-padding: 20px;
    --card-bg: #efefef;
    --card-text: #212529;
    --input-bg: #ffffff;
    --input-border: #ced4da;
    --accent: #4CAF50;
    --muted: #666;
    --inner-bg: #f8f9fa;
    --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  }

  .dark {
    --card-bg: #2d2d2d;
    --card-text: #ccc;
    --input-bg: #404040;
    --input-border: #555;
    --accent: #4CAF50;
    --muted: #999;
    --inner-bg: #404040;
  }

  .greeks-viz {
    max-width: var(--card-max-width);
    margin: 1rem auto;
    padding: var(--card-padding);
    background-color: var(--card-bg);
    color: var(--card-text);
    border-radius: 8px;
    font-family: var(--font-stack);
  }

  .greeks-inputs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 20px;
  }

  .greeks-inputs label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.95rem;
    color: var(--card-text);
  }

  .greeks-inputs input[type="number"],
  .greeks-inputs input[type="range"],
  .greeks-inputs select {
    width: 100%;
    background-color: var(--input-bg);
    color: var(--card-text);
    border: 1px solid var(--input-border);
    padding: 10px;
    border-radius: 4px;
    box-sizing: border-box;
  }

  .greeks-inputs input[type="range"] {
    padding: 0;
  }

  .range-value {
    font-weight: 600;
    color: var(--accent);
  }

  .greeks-chart-container {
    position: relative;
    height: 400px;
    margin-top: 20px;
    background: var(--inner-bg);
    border-radius: 6px;
    padding: 15px;
  }

  .greeks-legend {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-top: 20px;
  }

  .legend-item {
    padding: 10px;
    border-radius: 6px;
    background: var(--inner-bg);
    font-size: 0.9rem;
  }

  .legend-item strong {
    display: block;
    margin-bottom: 4px;
  }

  .legend-value {
    font-size: 1.1rem;
    font-weight: 600;
  }
</style>

<div class="greeks-viz">
  <h3 style="margin-top:0;">Interactive Greeks Visualizer</h3>
  <p style="color: var(--muted); font-size: 0.9rem;">
    Adjust the sliders below to see how each Greek changes as the underlying price moves.
  </p>

  <div class="greeks-inputs">
    <div>
      <label>Strike Price: <span class="range-value" id="gv_strike_val">$50</span></label>
      <input type="range" id="gv_strike" min="10" max="200" step="5" value="50">
    </div>
    <div>
      <label>Volatility (σ): <span class="range-value" id="gv_vol_val">25%</span></label>
      <input type="range" id="gv_vol" min="5" max="100" step="5" value="25">
    </div>
    <div>
      <label>Days to Expiration: <span class="range-value" id="gv_time_val">30</span></label>
      <input type="range" id="gv_time" min="1" max="365" step="1" value="30">
    </div>
    <div>
      <label>Option Type:</label>
      <select id="gv_type">
        <option value="call">Call</option>
        <option value="put">Put</option>
      </select>
    </div>
  </div>

  <div class="greeks-chart-container">
    <canvas id="greeksChart"></canvas>
  </div>

  <div class="greeks-legend" id="greeks_legend">
    
  </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
(function() {
  
  function normPDF(x) { return Math.exp(-0.5*x*x)/Math.sqrt(2*Math.PI); }
  function erf(x) {
    var a1=0.254829592, a2=-0.284496736, a3=1.421413741, a4=-1.453152027, a5=1.061405429;
    var p = 0.3275911; var sign = x<0?-1:1; x=Math.abs(x);
    var t = 1.0/(1.0 + p*x);
    var y = 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*Math.exp(-x*x);
    return sign*y;
  }
  function normCDF(x) { return 0.5*(1 + erf(x/Math.sqrt(2))); }

  function calculateGreeks(S, K, sigma, r, T, isCall) {
    if(T <= 0) {
      var intrinsic = isCall ? Math.max(0, S-K) : Math.max(0, K-S);
      return { price: intrinsic, delta: isCall?(S>K?1:0):(S<K?-1:0), gamma:0, theta:0, vega:0, rho:0 };
    }

    var d1 = (Math.log(S/K) + (r + 0.5*sigma*sigma)*T) / (sigma*Math.sqrt(T));
    var d2 = d1 - sigma*Math.sqrt(T);
    var Nd1 = normCDF(d1);
    var Nd2 = normCDF(d2);
    var n_d1 = normPDF(d1);

    var callPrice = S*Nd1 - K*Math.exp(-r*T)*Nd2;
    var putPrice = callPrice - S + K*Math.exp(-r*T);
    var price = isCall ? callPrice : putPrice;

    var delta = isCall ? Nd1 : Nd1 - 1;
    var gamma = n_d1 / (S*sigma*Math.sqrt(T));
    var vega = S * n_d1 * Math.sqrt(T) / 100; 

    var theta_call = (-(S*n_d1*sigma)/(2*Math.sqrt(T))) - r*K*Math.exp(-r*T)*Nd2;
    var theta_put = (-(S*n_d1*sigma)/(2*Math.sqrt(T))) + r*K*Math.exp(-r*T)*(1-Nd2);
    var theta = (isCall ? theta_call : theta_put) / 365; 

    var rho = isCall ?
      K * T * Math.exp(-r*T) * Nd2 / 100 :
      -K * T * Math.exp(-r*T) * (1-Nd2) / 100; 

    return { price, delta, gamma, theta, vega, rho };
  }

  var chart;
  var currentStrike = 50;
  var currentVol = 0.25;
  var currentTime = 30/365;
  var currentType = 'call';
  var r = 0.03; 

  function updateChart() {
    var K = currentStrike;
    var sigma = currentVol;
    var T = currentTime;
    var isCall = currentType === 'call';

    
    var prices = [];
    var deltaData = [];
    var gammaData = [];
    var thetaData = [];
    var vegaData = [];
    var rhoData = [];

    var minPrice = K * 0.5;
    var maxPrice = K * 1.5;
    var step = (maxPrice - minPrice) / 100;

    for (var S = minPrice; S <= maxPrice; S += step) {
      var greeks = calculateGreeks(S, K, sigma, r, T, isCall);
      prices.push(S);
      deltaData.push(greeks.delta);
      gammaData.push(greeks.gamma * 10); 
      thetaData.push(Math.abs(greeks.theta) * 10); 
      vegaData.push(greeks.vega);
      rhoData.push(greeks.rho);
    }

    
    var atmGreeks = calculateGreeks(K, K, sigma, r, T, isCall);
    updateLegend(atmGreeks);

    
    var ctx = document.getElementById('greeksChart').getContext('2d');

    var isDark = document.documentElement.classList.contains('dark');
    var textColor = isDark ? '#ccc' : '#212529';
    var gridColor = isDark ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.1)';

    if (chart) {
      chart.data.labels = prices.map(p => p.toFixed(0));
      chart.data.datasets[0].data = deltaData;
      chart.data.datasets[1].data = gammaData;
      chart.data.datasets[2].data = thetaData;
      chart.data.datasets[3].data = vegaData;
      chart.data.datasets[4].data = rhoData;
      chart.options.scales.x.ticks.color = textColor;
      chart.options.scales.y.ticks.color = textColor;
      chart.options.scales.x.grid.color = gridColor;
      chart.options.scales.y.grid.color = gridColor;
      chart.options.plugins.legend.labels.color = textColor;
      chart.update();
    } else {
      chart = new Chart(ctx, {
        type: 'line',
        data: {
          labels: prices.map(p => p.toFixed(0)),
          datasets: [
            {
              label: 'Delta',
              data: deltaData,
              borderColor: 'rgb(75, 192, 192)',
              backgroundColor: 'rgba(75, 192, 192, 0.1)',
              borderWidth: 2,
              tension: 0.4
            },
            {
              label: 'Gamma (×10)',
              data: gammaData,
              borderColor: 'rgb(255, 99, 132)',
              backgroundColor: 'rgba(255, 99, 132, 0.1)',
              borderWidth: 2,
              tension: 0.4
            },
            {
              label: '|Theta| (×10)',
              data: thetaData,
              borderColor: 'rgb(255, 159, 64)',
              backgroundColor: 'rgba(255, 159, 64, 0.1)',
              borderWidth: 2,
              tension: 0.4
            },
            {
              label: 'Vega',
              data: vegaData,
              borderColor: 'rgb(153, 102, 255)',
              backgroundColor: 'rgba(153, 102, 255, 0.1)',
              borderWidth: 2,
              tension: 0.4
            },
            {
              label: 'Rho',
              data: rhoData,
              borderColor: 'rgb(54, 162, 235)',
              backgroundColor: 'rgba(54, 162, 235, 0.1)',
              borderWidth: 2,
              tension: 0.4
            }
          ]
        },
        options: {
          responsive: true,
          maintainAspectRatio: false,
          interaction: {
            mode: 'index',
            intersect: false,
          },
          plugins: {
            legend: {
              labels: {
                color: textColor,
                usePointStyle: true
              }
            },
            tooltip: {
              callbacks: {
                title: function(context) {
                  return 'Stock Price: $' + context[0].label;
                }
              }
            }
          },
          scales: {
            x: {
              title: {
                display: true,
                text: 'Underlying Price ($)',
                color: textColor
              },
              ticks: {
                color: textColor,
                maxTicksLimit: 10
              },
              grid: {
                color: gridColor
              }
            },
            y: {
              title: {
                display: true,
                text: 'Greek Value',
                color: textColor
              },
              ticks: {
                color: textColor
              },
              grid: {
                color: gridColor
              }
            }
          }
        }
      });
    }
  }

  function updateLegend(greeks) {
    var legendHTML = `
      <div class="legend-item">
        <strong style="color: rgb(75, 192, 192);">Δ Delta</strong>
        <div class="legend-value" style="color: rgb(75, 192, 192);">${greeks.delta.toFixed(4)}</div>
      </div>
      <div class="legend-item">
        <strong style="color: rgb(255, 99, 132);">Γ Gamma</strong>
        <div class="legend-value" style="color: rgb(255, 99, 132);">${greeks.gamma.toFixed(6)}</div>
      </div>
      <div class="legend-item">
        <strong style="color: rgb(255, 159, 64);">Θ Theta</strong>
        <div class="legend-value" style="color: rgb(255, 159, 64);">${greeks.theta.toFixed(4)}</div>
      </div>
      <div class="legend-item">
        <strong style="color: rgb(153, 102, 255);">ν Vega</strong>
        <div class="legend-value" style="color: rgb(153, 102, 255);">${greeks.vega.toFixed(4)}</div>
      </div>
      <div class="legend-item">
        <strong style="color: rgb(54, 162, 235);">ρ Rho</strong>
        <div class="legend-value" style="color: rgb(54, 162, 235);">${greeks.rho.toFixed(4)}</div>
      </div>
      <div class="legend-item">
        <strong>Price (ATM)</strong>
        <div class="legend-value" style="color: var(--accent);">$${greeks.price.toFixed(2)}</div>
      </div>
    `;
    document.getElementById('greeks_legend').innerHTML = legendHTML;
  }

  
  document.getElementById('gv_strike').addEventListener('input', function(e) {
    currentStrike = parseFloat(e.target.value);
    document.getElementById('gv_strike_val').textContent = '$' + currentStrike;
    updateChart();
  });

  document.getElementById('gv_vol').addEventListener('input', function(e) {
    var volPercent = parseFloat(e.target.value);
    currentVol = volPercent / 100;
    document.getElementById('gv_vol_val').textContent = volPercent + '%';
    updateChart();
  });

  document.getElementById('gv_time').addEventListener('input', function(e) {
    var days = parseFloat(e.target.value);
    currentTime = days / 365;
    document.getElementById('gv_time_val').textContent = days;
    updateChart();
  });

  document.getElementById('gv_type').addEventListener('change', function(e) {
    currentType = e.target.value;
    updateChart();
  });

  
  updateChart();
})();
</script>


<h3 class="relative group">The Five Main Greeks Explained
    <div id="the-five-main-greeks-explained" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-five-main-greeks-explained" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Δ Delta">
          <span class="flex items-center gap-1">
            
            Δ Delta
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Γ Gamma">
          <span class="flex items-center gap-1">
            
            Γ Gamma
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Θ Theta">
          <span class="flex items-center gap-1">
            
            Θ Theta
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="3"
          data-tab-label="ν Vega">
          <span class="flex items-center gap-1">
            
            ν Vega
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="4"
          data-tab-label="ρ Rho">
          <span class="flex items-center gap-1">
            
            ρ Rho
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Quick Definition
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Delta</strong> tells you how much an option's price is expected to move for every <strong>$1 change</strong> in the underlying stock's price.</p></div></div><p>Imagine you have a call option with a Delta of 0.40. If the stock goes up by $1, your option's price will go up by about $0.40. If the stock goes down by $1, your option's price will drop by about $0.40.</p>
<ul>
<li><strong>Calls</strong> have a positive Delta (between 0 and 1).</li>
<li><strong>Puts</strong> have a negative Delta (between 0 and -1).</li>
</ul>
<p>An at-the-money (ATM) option usually has a Delta around 0.50 (or -0.50 for puts), meaning it has a 50/50 chance of finishing in-the-money.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Trader's Takeaway
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Think of Delta as your <strong>directional exposure</strong>. A high Delta means your option is acting a lot like the stock itself. A low Delta means it's less sensitive to the stock's small moves. It also gives you a rough probability of the option expiring in-the-money.</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        <div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Quick Definition
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Gamma</strong> measures the <strong>rate of change of Delta</strong>. It tells you how much an option's Delta will change for every $1 move in the stock.</p></div></div><p>Gamma is the acceleration. Let's say your option has a Delta of 0.40 and a Gamma of 0.10. If the stock price increases by $1, your new Delta will be approximately 0.50 (0.40 + 0.10).</p>
<p>Gamma is highest for at-the-money (ATM) options that are close to expiration. This is where options are the most unstable and can change from worthless to valuable (or vice-versa) very quickly.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Trader's Takeaway
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Gamma is all about <strong>instability</strong>. A high Gamma means your directional exposure (Delta) is changing rapidly. If you're long options (you bought them), high Gamma is great because it accelerates your profits and decelerates your losses. If you're short options (you sold them), high Gamma is dangerous.</p></div></div>
      </div><div class="tab__panel " data-tab-index="2">
        <div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Quick Definition
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Theta</strong> measures the loss in an option's value due to the <strong>passage of time</strong>. It's often called &quot;time decay.&quot;</p></div></div><p>Theta is almost always a negative number for a single option, and it represents how much value your option will lose every single day, all else being equal. An option with a Theta of -0.05 will lose about $5 (0.05 x 100 shares) of its value overnight.</p>
<p>This decay is NOT linear. It accelerates as the expiration date gets closer, especially in the last 30 days.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Trader's Takeaway
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Theta is the <strong>enemy of the option buyer</strong> and the <strong>best friend of the option seller</strong>. If you buy an option, you have a constant headwind against you. If you sell an option, you're collecting that decay every day as income.</p></div></div>
      </div><div class="tab__panel " data-tab-index="3">
        <div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Quick Definition
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Vega</strong> measures an option's sensitivity to changes in <strong>implied volatility (IV)</strong>. It tells you how much the option's price will change for every 1% change in IV.</p></div></div><p>Implied Volatility is how volatile the market <em>thinks</em> the stock will be in the future. Vega tells you how much your option is worth based on that market &quot;fear&quot; or &quot;excitement.&quot; If you have an option with a Vega of 0.10, and the IV of the stock increases by 1%, your option's price will go up by $0.10.</p>
<p>Vega is highest for long-term options and at-the-money options.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Trader's Takeaway
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Vega is your <strong>&quot;volatility exposure.&quot;</strong> Option buyers love high and rising IV, as it makes their options more valuable (a bigger chance of a large price swing). Option sellers want low and falling IV, as it decreases the value of the options they sold.</p></div></div>
      </div><div class="tab__panel " data-tab-index="4">
        <div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Quick Definition
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Rho</strong> measures an option's sensitivity to changes in <strong>interest rates</strong>.</p></div></div><p>Rho tells you how much an option's price will change for every 1% change in the risk-free interest rate.</p>
<p>Honestly, for most retail traders dealing with short-to-medium-term options, Rho is the least important Greek. The effect is usually very small compared to the other Greeks. It becomes more important for very long-term options (LEAPs).</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Trader's Takeaway
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>You can pretty much <strong>ignore Rho</strong> when you're starting out. It's good to know what it is, but it will rarely be the primary driver of your option's price.</p></div></div>
      </div></div>
</div>


<h3 class="relative group">Putting It All Together
    <div id="putting-it-all-together" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#putting-it-all-together" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>You never look at one Greek in isolation. They all work together:</p>
<ul>
<li><strong>Delta &amp; Gamma</strong> tell you about your directional risk.</li>
<li><strong>Theta &amp; Vega</strong> are often a trade-off. Strategies that profit from time decay (positive Theta) are usually hurt by a rise in volatility (negative Vega), and vice-versa.</li>
</ul>
<p>Understanding these relationships is the key to moving from simply buying calls and puts to designing more sophisticated strategies that fit your market view. The best way to learn is to see them in action, so keep playing with the calculator at the top of this page!</p>
]]></content:encoded><media:content url="https://libreleo.com/img/featured/understanding-the-greeks.webp" medium="image"/></item><item><title>The Ultimate Money Management Guide: A 7-Step Framework for Financial Mastery</title><link>https://libreleo.com/posts/ultimate-money-management-guide/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/ultimate-money-management-guide/</guid><description>This is not just another list of money tips. This is a definitive, 7-step framework designed to transform your financial life. Learn to manage your money like a seasoned pro and build lasting wealth.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Money management isn't about restriction. It's about designing and controlling the life you want.
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Ready to put these steps into action? Check out my free <a href="/calculators/emergency-fund-calculator/" >Emergency Fund Calculator</a> and <a href="/calculators/how-to-use-savings-rate-calculator/" >Savings Rate Calculator</a> to get started on your financial journey.</p></div></div>
<h2 class="relative group">The 7-Step Framework for Financial Mastery
    <div id="the-7-step-framework-for-financial-mastery" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-7-step-framework-for-financial-mastery" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Follow it step-by-step, and you'll build a powerful and resilient financial life. Ready? Let's go.</p>

<h3 class="relative group">Step 1: The Mindset Shift - You're the boss of Your Finances
    <div id="step-1-the-mindset-shift---youre-the-boss-of-your-finances" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-the-mindset-shift---youre-the-boss-of-your-finances" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Before you touch your money, you have to adopt the right mindset. You're not just passively  observing money come and go. You're actively managing it.</p>
<p>This means taking 100% ownership of your financial decisions and outcomes. It sounds intimidating at first. You commit to learning about money, even when it feels scary or complicated.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Taking ownership doesn't mean you need to know everything right now. It means committing to continuous learning and making intentional decisions with your money, even small ones.</p></div></div>
<h3 class="relative group">Step 2: The Financial Snapshot - Know Exactly Where You Stand
    <div id="step-2-the-financial-snapshot---know-exactly-where-you-stand" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-the-financial-snapshot---know-exactly-where-you-stand" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Know your numbers! You can't manage your finances without knowing your numbers.</p>
<p>Here's what you need to do:</p>
<ol>
<li>
<p><strong>Calculate Your Net Worth:</strong> This is the ultimate measure of your financial health. It's simple: your assets (what you own) minus your liabilities (what you owe). Track it regularly. You'll be amazed at how much clarity this gives you.</p>
</li>
<li>
<p><strong>Track Your Cash Flow:</strong> This one's crucial. Track everything that comes in and goes out. Use an app, a spreadsheet, or just a notebook.</p>
</li>
</ol>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="example">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
  <path fill="currentColor" d="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-13.3 0-24-10.7-24-24s10.7-24 24-24H64V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/>
</svg>
</span></div>
        <div class="grow">
          Example
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>When I tracked my spending for the first time, I discovered I was spending $200/month on subscription services I rarely use. That's $2,400 a year! Same with my grocery bill. I managed to decrease my weekly groceries by $100.</p></div></div>
<h3 class="relative group">Step 3: Goal Setting - Give Every Dollar a Purpose
    <div id="step-3-goal-setting---give-every-dollar-a-purpose" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-goal-setting---give-every-dollar-a-purpose" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Money is just a tool to achieve your life goals. If you don't define what those goals are, you spend your money without real intentions. Not a great plan.</p>
<p>Use the <strong>S.M.A.R.T.</strong> framework:</p>
<ul>
<li><strong>S</strong>pecific: &quot;Save for a vacation,&quot; not just &quot;save money&quot;</li>
<li><strong>M</strong>easurable: &quot;Save $50,000,&quot; not &quot;save a lot&quot;</li>
<li><strong>A</strong>chievable: Is this realistic with your timeline and income?</li>
<li><strong>R</strong>elevant: Does this goal truly matter to you?</li>
<li><strong>T</strong>ime-bound: &quot;Save $50,000 in 3 years&quot;</li>
</ul>
<p>Now categorize your goals:</p>
<ul>
<li><strong>Short-Term (1-3 Years):</strong> Emergency fund (3-6 months of expenses), vacation, etc.</li>
<li><strong>Mid-Term (3-10 Years):</strong> House down payment, starting a business, new car</li>
<li><strong>Long-Term (10+ Years):</strong> Retirement, financial independence, etc.</li>
</ul>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Pro Tip:</strong> Use my <a href="/calculators/interactive_calculator_to_your_fire_number/" >FIRE Calculator</a> to set a specific financial independence goal. Having a number makes it real and actionable.</span>
</div>


<h3 class="relative group">Step 4: The Budgeting Blueprint - Create Your Spending Plan
    <div id="step-4-the-budgeting-blueprint---create-your-spending-plan" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-4-the-budgeting-blueprint---create-your-spending-plan" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>A budget is not about restrictions. It's a plan for your money that aligns with what you actually care about.</p>
<p>Most budgets fail because they're too complex and way too restrictive. So let's start simple.</p>

<h4 class="relative group">Popular Budgeting Systems
    <div id="popular-budgeting-systems" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#popular-budgeting-systems" aria-label="Anchor">#</a>
    </span>
    
</h4>
<pre class="not-prose mermaid">
pie
    title The 50/30/20 Rule
    "Needs (50%)" : 50
    "Wants (30%)" : 30
    "Savings (20%)" : 20
</pre>

<ul>
<li>
<p><strong>The 50/30/20 Rule:</strong> This is a simple and popular starting point that actually works.</p>
<ul>
<li><strong>50% on Needs:</strong> Housing, utilities, groceries, transportation, insurance, essentials</li>
<li><strong>30% on Wants:</strong> Dining out, hobbies, entertainment, shopping, etc.</li>
<li><strong>20% on Savings:</strong> Saving/investing for your future</li>
</ul>
</li>
<li>
<p><strong>Pay-Yourself-First:</strong> This is the most critical budgeting habit. Before you pay any bills or spend on wants, automatically transfer money to your savings and investment accounts on payday. Set it up once, and let it run automatically. Automate your financial goals and watch what happens.</p>
</li>
</ul>

<h3 class="relative group">Step 5: The Debt Killing Plan
    <div id="step-5-the-debt-killing-plan" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-5-the-debt-killing-plan" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>High-interest debt? That's a wealth-destroying emergency. It has to be eliminated, and you need a system to do it. I hate debts with a passion. Never live above your means.</p>
<ul>
<li><strong>Good Debt:</strong> Typically has a low interest rate and helps you acquire something that grows in value (like a mortgage for a home)</li>
<li><strong>Bad Debt:</strong> High-interest debt used for stuff that loses value or gets consumed immediately (credit card debt, personal loans, most car loans).</li>
</ul>

<h4 class="relative group">Proven Debt Payoff Strategies
    <div id="proven-debt-payoff-strategies" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#proven-debt-payoff-strategies" aria-label="Anchor">#</a>
    </span>
    
</h4>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Avalanche Method">
          <span class="flex items-center gap-1">
            
            Avalanche Method
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Snowball Method">
          <span class="flex items-center gap-1">
            
            Snowball Method
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <p><strong>Best for: Saving the most money on interest</strong></p>
<ol>
<li>List debts by interest rate, highest to lowest</li>
<li>Pay minimum on all debts</li>
<li>Put all extra cash on the highest-interest debt</li>
<li>Once paid off, roll that payment to the next highest</li>
</ol>
<p>✅ <strong>Advantage:</strong> Mathematically optimal. Saves you the most money
⚠️ <strong>Challenge:</strong> Can take longer to see your first debt disappear</p>

      </div><div class="tab__panel " data-tab-index="1">
        <p><strong>Best for: Building momentum and staying motivated</strong></p>
<ol>
<li>List debts by balance, smallest to largest</li>
<li>Pay minimum on all debts</li>
<li>Put all extra cash on the smallest-balance debt</li>
<li>Get a quick win, build momentum!</li>
<li>Once paid off, roll that payment to the next smallest</li>
</ol>
<p>✅ <strong>Advantage:</strong> Quick wins keep you motivated
⚠️ <strong>Challenge:</strong> May pay slightly more interest over time</p>

      </div></div>
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Pick the one that feels right for you. Avalanche saves you more money on interest. Snowball gives you those quick wins that keep you motivated. Both work if you stick with them. The best method is the one you'll actually follow.</p></div></div>
<h3 class="relative group">Step 6: The Wealth-Building Engine - Make Your Money Work for You
    <div id="step-6-the-wealth-building-engine---make-your-money-work-for-you" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-6-the-wealth-building-engine---make-your-money-work-for-you" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Saving money gives you security. That's important. But investing money? That's what builds wealth. The goal here is to make your money generate more money through the magic of <strong>compound interest</strong>.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="example">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
  <path fill="currentColor" d="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-13.3 0-24-10.7-24-24s10.7-24 24-24H64V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/>
</svg>
</span></div>
        <div class="grow">
          Example
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If you invest $500/month for 30 years at a 7% average annual return, you'll end up with roughly $600,000. Of that, only $180,000 came from your contributions. The rest is compound growth doing the heavy lifting. Try my <a href="/calculators/compound-interest-calculator/" >Compound Interest Calculator</a> to see your own potential.</p></div></div><p>Here's your roadmap:</p>
<ol>
<li>
<p><strong>The Foundation (Your Emergency Fund):</strong> Before you invest anything, you need 3-6 months of essential living expenses saved in a <strong>High-Yield Savings Account</strong>. This is your buffer against life's unexpected such as job loss, medical emergency, car breakdown. Don't skip this step. <a href="/calculators/emergency-fund-calculator/" >Calculate your emergency fund target</a>.</p>
</li>
<li>
<p><strong>The Core (Retirement Investing):</strong> This is the real wealth-building engine.</p>
<ul>
<li><strong>Employer Match:</strong> If your employer offers matching contributions to a retirement plan, contribute enough to get the full match. It's literally free money, a 100% return on your investment. (Note: Availability varies by country and employer. Check what's offered where you work.</li>
<li><strong>Tax-Advantaged Accounts:</strong> Look into retirement accounts available in your country. Many offer tax benefits that supercharge your savings. Whether it's a pension scheme or retirement account, check what's available where you live. These accounts can make a huge difference.</li>
<li><strong>Keep it Simple:</strong> You don't need to be a stock-picking genius. Start with low-cost, broadly diversified <strong>Index Funds or ETFs</strong>. Something that tracks a major market index (like the S&amp;P 500, FTSE All-World, or a global stock index) is perfect for beginners.</li>
</ul>
</li>
</ol>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Investing involves risk, and you can lose money. Never invest money you'll need in the short term (less than 5 years). Past performance doesn't guarantee future results.</p></div></div><ol start="3">
<li><strong>Automate Everything:</strong> Set up automatic transfers from your checking account to your investment accounts every single payday. Consistency beats timing the market, every time. Set it and forget it.</li>
</ol>

<h3 class="relative group">Step 7: The Financial Review - Stay on Course
    <div id="step-7-the-financial-review---stay-on-course" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-7-the-financial-review---stay-on-course" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Your financial plan isn't something you set once and forget about. It's an ongoing process.  You have to review it and adjust it to make sure you stay on track.</p>
<p>Here's a simple schedule:</p>
<ul>
<li>
<p><strong>Monthly Check-in:</strong> Review your budget and track your spending</p>
</li>
<li>
<p><strong>Quarterly Deep Dive:</strong> Review your investment performance and check progress toward your goals. Are you on track? Do you need to adjust anything?</p>
</li>
<li>
<p><strong>Annual Review:</strong> Re-evaluate your goals, check your net worth, review insurance coverage, and make any major adjustments. With any changes, your financial plan should change with it.</p>
</li>
</ul>
<hr>

<h2 class="relative group">The Bottom Line
    <div id="the-bottom-line" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-bottom-line" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Money management doesn't have to be complicated or restrictive. Follow this 7-step framework, and you're setting yourself up for real financial success.
</div>

<p>Start with your mindset, get clear on where you stand, set meaningful goals, create a spending plan that actually works for your life, kill those debts, build your wealth-building engine, and review regularly.</p>
<p>You've got this. Take it one step at a time, and watch your financial life transform.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><p><strong>Ready to take action?</strong> Start with these free tools:</p>
<ul>
<li><a href="/calculators/emergency-fund-calculator/" >Emergency Fund Calculator</a> - Build your financial safety net</li>
<li><a href="/calculators/how-to-use-savings-rate-calculator/" >Savings Rate Calculator</a> - Track your savings progress</li>
<li><a href="/calculators/compound-interest-calculator/" >Compound Interest Calculator</a> - Visualize your wealth growth</li>
<li><a href="/calculators/interactive_calculator_to_your_fire_number/" >FIRE Calculator</a> - Calculate your path to financial independence</li>
</ul></span>
</div>

<hr>
<p>*Disclaimer: This content is for educational purposes only and is not financial advice.</p>
]]></content:encoded><media:content url="https://libreleo.com/img/featured/ultimate-money-management-guide.webp" medium="image"/></item><item><title>The 7 Stages of Financial Freedom: Your Journey to Financial Security</title><link>https://libreleo.com/posts/seven-stages-financial-freedom/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/seven-stages-financial-freedom/</guid><description>Discover the seven progressive stages of financial freedom, from building a basic emergency fund to achieving full financial independence. Learn practical strategies to advance through each stage and unlock new levels of freedom along the way.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  <p>Financial freedom isn't a magical destination where unicorns dance and fireworks explode. It's a journey, a progressive path with distinct milestones, each offering its own unique freedoms and lessons.</p>
<p>Too many people get discouraged thinking they need millions to experience any form of financial security. The truth? Freedom comes in stages, and you're probably further along than you think.</p>

</div>

<p>Let me walk you through the seven stages of financial freedom, inspired by experts like Dave Ramsey and the FIRE (Financial Independence, Retire Early) movement. Each stage builds on the previous one, unlocking new options and reducing financial stress along the way.</p>




<div class="chart" data-override="finfree-v2">
  <canvas id="chart-1ac0973c92fcd591e12b744c6d978f1b"></canvas>
  <script type="text/javascript">
    window.addEventListener("DOMContentLoaded", (event) => {
      const ctx = document.getElementById("chart-1ac0973c92fcd591e12b744c6d978f1b");
      const chart = new Chart(ctx, {
        
type: 'bar',
data: {
  labels: ['Stage 1', 'Stage 2', 'Stage 3', 'Stage 4', 'Stage 5', 'Stage 6', 'Stage 7'],
  datasets: [{
    label: 'Annual Expenses Saved (x)',
    data: [0.05, 0.1, 0.5, 1, 5, 10, 25],
    backgroundColor: [
      'rgba(59, 130, 246, 0.5)',
      'rgba(59, 130, 246, 0.6)',
      'rgba(59, 130, 246, 0.7)',
      'rgba(16, 185, 129, 0.5)',
      'rgba(16, 185, 129, 0.65)',
      'rgba(16, 185, 129, 0.8)',
      'rgba(16, 185, 129, 1.0)'
    ],
    borderColor: 'rgba(0,0,0,0.1)',
    borderWidth: 1
  }]
},
options: {
  plugins: {
    legend: { display: false },
    title: { display: true, text: 'Savings Milestone at Each Stage (x Annual Expenses)' }
  },
  scales: {
    y: {
      beginAtZero: true,
      title: { display: true, text: 'Annual Expenses (x)' }
    }
  }
}

      });
    });
  </script>
</div>


<h2 class="relative group">Why financial freedom is a journey, not a destination
    <div id="why-financial-freedom-is-a-journey-not-a-destination" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-financial-freedom-is-a-journey-not-a-destination" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Here's what Ralph Waldo Emerson knew that most people forget: &quot;Life is a journey, not a destination.&quot; The same principle applies to your finances.</p>
<p>When you view financial freedom as a single endpoint (maybe it's $1 million, maybe it's early retirement), you set yourself up for disappointment. You'll spend years chasing a goal that keeps moving further away, never enjoying the progress you're actually making.</p>

<h3 class="relative group">The problem with all-or-nothing thinking
    <div id="the-problem-with-all-or-nothing-thinking" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-problem-with-all-or-nothing-thinking" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>I've seen this pattern countless times. People think they're either broke or financially free, with nothing in between. They ignore the massive difference between having zero savings and having three months of expenses saved. They overlook how liberating it feels to be debt-free, even if retirement is still decades away.</p>
<p>Each stage of financial freedom offers tangible benefits:</p>
<ul>
<li><strong>Reduced stress</strong> - Money emergencies don't derail your life</li>
<li><strong>Increased options</strong> - You can make career moves based on growth, not desperation</li>
<li><strong>Mental bandwidth</strong> - Less time worrying about bills, more time planning your future</li>
<li><strong>Compounding momentum</strong> - Each stage makes the next one easier to reach</li>
</ul>
<p>The journey itself teaches you discipline, delayed gratification, and the power of compound interest. These lessons are worth more than the money you're saving.</p>

<h3 class="relative group">Assessing where you stand right now
    <div id="assessing-where-you-stand-right-now" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#assessing-where-you-stand-right-now" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Before we dive into the seven stages, take a moment to honestly assess your current position. Don't judge yourself. Just observe:</p>
<ul>
<li>How much cash do you have readily available for emergencies?</li>
<li>What's your total debt excluding your mortgage?</li>
<li>How many months could you survive if you lost your income today?</li>
<li>What percentage of your income are you saving and investing?</li>
</ul>
<p>Your answers will reveal which stage you're in. And here's the good news: wherever you are right now, the next stage is within reach.</p>

<h2 class="relative group">Stages 1-3: Building your financial foundation
    <div id="stages-1-3-building-your-financial-foundation" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stages-1-3-building-your-financial-foundation" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The first three stages are all about creating stability. Think of them as building the foundation of a house: unglamorous work, but absolutely essential.</p>

<h3 class="relative group">Stage 1: Your first $1,000 emergency fund
    <div id="stage-1-your-first-1000-emergency-fund" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-1-your-first-1000-emergency-fund" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This is borrowed straight from Dave Ramsey's baby steps, and for good reason. Having $1,000 in cash is a psychological and practical game-changer.</p>
<p>Why $1,000? It's enough to handle most minor emergencies:</p>
<ul>
<li>A car repair</li>
<li>An unexpected medical bill</li>
<li>A broken appliance</li>
<li>Emergency travel</li>
</ul>
<p>You'd be surprised how many people don't have even this much saved. By reaching this first milestone, you're already ahead of the curve.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #d1e7dd"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #0f5132"
    
    >
    
  </span>

  <span
    
      style="color: #0f5132"
    
    ><p><strong>Action steps:</strong></p>
<ul>
<li>Cut non-essential expenses temporarily</li>
<li>Sell items you don't need</li>
<li>Take on a short-term side gig</li>
<li>Put any windfalls (tax refunds, bonuses) straight into savings</li>
</ul></span>
</div>

<p>Keep this money in a regular checking or savings account, somewhere accessible but not so convenient that you'll spend it on impulse purchases.</p>

<h3 class="relative group">Stage 2: Eliminate all debt except your mortgage
    <div id="stage-2-eliminate-all-debt-except-your-mortgage" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-2-eliminate-all-debt-except-your-mortgage" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Here's where the real freedom starts kicking in. Stage 2 is about obliterating consumer debt: credit cards, student loans, car payments, personal loans. Everything except your home mortgage.</p>
<p>Most people accept debt as normal. They justify it: &quot;Everyone has a car payment.&quot; &quot;Student loans are just part of life.&quot; This normalization keeps you trapped in a cycle of monthly payments that drain your cash flow and limit your options.</p>
<p><strong>The debt snowball method:</strong></p>
<ol>
<li>List all debts from smallest to largest (ignore interest rates)</li>
<li>Pay minimum payments on everything except the smallest debt</li>
<li>Attack the smallest debt with every extra dollar you have</li>
<li>When it's paid off, roll that payment into the next smallest debt</li>
<li>Repeat until you're debt-free</li>
</ol>
<p>Why smallest to largest? Because psychology matters more than math. Quick wins build momentum. That first paid-off credit card proves you can do this, giving you the motivation to tackle the bigger debts.</p>
<p>I paid off $105,000 in student debt using this exact method. It wasn't easy, but the freedom on the other side was worth every sacrifice.</p>

<h3 class="relative group">Stage 3: Save 3-6 months of expenses
    <div id="stage-3-save-3-6-months-of-expenses" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-3-save-3-6-months-of-expenses" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Once you're debt-free (except the mortgage), it's time to upgrade your emergency fund from $1,000 to 3-6 months of living expenses.</p>
<p>This is where you transition from surviving to thriving. With half a year's expenses in the bank, you're no longer one layoff away from disaster. You have breathing room.</p>
<p><strong>How much should you save?</strong></p>
<p>Calculate your monthly essential expenses:</p>
<ul>
<li>Housing (rent/mortgage)</li>
<li>Utilities</li>
<li>Food</li>
<li>Transportation</li>
<li>Insurance</li>
<li>Minimum debt payments (if any remain)</li>
</ul>
<p>Multiply by 3-6 months. I personally prefer 6 months because I'm risk-averse, but 3 months is perfectly acceptable if you have stable income and good job prospects.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Put your emergency fund in a high-yield savings account. You want it accessible but not so easy to access that you'll dip into it for non-emergencies. Online banks typically offer better interest rates than traditional banks.</p></div></div><p>This stage fundamentally changes your relationship with work. You're no longer desperate to keep any job at any cost. You can negotiate from a position of strength, knowing you have options.</p>

<h2 class="relative group">Stages 4-5: Accelerating toward independence
    <div id="stages-4-5-accelerating-toward-independence" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stages-4-5-accelerating-toward-independence" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Stages 4 and 5 represent a shift in mindset. You're no longer playing defense against emergencies. Now you're playing offense, actively building wealth.</p>

<h3 class="relative group">Stage 4: One year of expenses saved and invested
    <div id="stage-4-one-year-of-expenses-saved-and-invested" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-4-one-year-of-expenses-saved-and-invested" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>At this stage, you have one year's worth of living expenses in a combination of cash and investments. This is what JL Collins calls &quot;FU money&quot;: enough financial cushion to walk away from a toxic job, take a career risk, or pursue an opportunity that requires a pay cut.</p>
<p><strong>The power of compounding kicks in:</strong></p>
<p>Let's say you have $100,000 saved and it's invested in low-cost index funds averaging 10% returns. That money grows by $10,000 per year without you lifting a finger. In about 7 years, it doubles to $200,000.</p>
<p>This is when you start to feel the momentum. Your money is working for you.</p>
<p><strong>Real-world flexibility:</strong></p>
<p>I've made three major career changes in 20 years, each time taking calculated risks I could only afford because of this financial cushion. One year of expenses gives you:</p>
<ul>
<li>Freedom to negotiate job offers without desperation</li>
<li>Ability to take parental leave or sabbaticals</li>
<li>Option to start a business or freelance</li>
<li>Security to relocate for better opportunities</li>
</ul>

<h3 class="relative group">Stage 5: Five years of expenses invested (Coast FI)
    <div id="stage-5-five-years-of-expenses-invested-coast-fi" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-5-five-years-of-expenses-invested-coast-fi" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This stage has a special name in the FIRE community: Coast FI (Financial Independence). It means you have enough invested that, even if you never save another dollar, compound growth will carry you to full retirement.</p>
<p><strong>The math behind Coast FI:</strong></p>
<p>If you have $500,000 invested and need $2.5 million to retire:</p>
<ul>
<li>At 10% annual returns, your money doubles roughly every 7 years</li>
<li>$500,000 → $1,000,000 (7 years)</li>
<li>$1,000,000 → $2,000,000 (14 years)</li>
<li>You hit your goal in 14-15 years without adding anything</li>
</ul>
<p>This stage unlocks a different kind of freedom. You can:</p>
<ul>
<li>Take lower-paying jobs you're passionate about</li>
<li>Work part-time and still retire on schedule</li>
<li>Take career breaks without derailing retirement</li>
<li>Focus on personal growth over salary maximization</li>
</ul>
<p>The pressure is off. You're coasting toward financial independence whether you hustle or not.</p>

<h2 class="relative group">Stages 6-7: Achieving true freedom
    <div id="stages-6-7-achieving-true-freedom" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stages-6-7-achieving-true-freedom" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>These final stages represent what most people imagine when they think of &quot;financial freedom.&quot; But as you'll see, the journey to get here has already given you more freedom than many people ever experience.</p>

<h3 class="relative group">Stage 6: Ten years of expenses invested
    <div id="stage-6-ten-years-of-expenses-invested" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-6-ten-years-of-expenses-invested" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>At this stage, your portfolio's annual returns potentially match your living expenses. If you need $100,000 per year and have $1 million invested earning 10%, your investments generate $100,000 annually, the equivalent of your salary, but from passive growth.</p>
<p>Think about that. Your portfolio is doing the same work it took you sweat, blood, and tears to accomplish in your job.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Watch out for lifestyle inflation.</strong> You've reached a level of wealth that makes it tempting to upgrade everything: clothes, cars, housing, vacations. These upgrades can erode your progress faster than you realize. Stay disciplined. Remember what got you here.</p></div></div>
<h3 class="relative group">Stage 7: 25x annual expenses invested (Full FI)
    <div id="stage-7-25x-annual-expenses-invested-full-fi" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-7-25x-annual-expenses-invested-full-fi" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This is it: full financial independence based on the famous 4% rule. If you have 25 times your annual expenses invested, you can withdraw 4% per year indefinitely.</p>
<p><strong>The 4% rule explained:</strong></p>
<ul>
<li>Need $100,000 per year? Save $2.5 million</li>
<li>Need $60,000 per year? Save $1.5 million</li>
<li>Need $40,000 per year? Save $1 million</li>
</ul>
<p>At this stage, you have complete autonomy:</p>
<ul>
<li>Retire whenever you want</li>
<li>Work only on projects you find meaningful</li>
<li>Pursue passions without financial constraints</li>
<li>Leave a legacy for your family</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Starting late?</strong> Don't despair if you're reading this in your 40s or 50s thinking it's too late. It's not. Catch-up contributions, focused intensity, and strategic career moves can accelerate your progress dramatically. The Late Starter FIRE blog chronicles someone pursuing financial independence in their late 40s, proof that it's never too late to change your financial trajectory.</p></div></div>
<h2 class="relative group">Your next steps on the journey
    <div id="your-next-steps-on-the-journey" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#your-next-steps-on-the-journey" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Financial freedom is a journey of seven stages, not a single leap. Each stage builds on the last, offering progressively more freedom, options, and security.</p>
<p>Here's how to start moving forward today:</p>
<p><strong>Identify your current stage</strong> - Be honest about where you are right now. No judgment, just assessment.</p>
<p><strong>Focus on the next milestone</strong> - Don't worry about Stage 7 if you're at Stage 1. Just focus on that first $1,000.</p>
<p><strong>Automate your progress</strong> - Set up automatic transfers to savings and investment accounts. Make progress the default, not something you have to remember.</p>
<p><strong>Track your growth</strong> - Keep a simple spreadsheet or use an app to monitor your net worth. Watching the numbers grow provides motivation during tough months.</p>
<p><strong>Avoid lifestyle inflation</strong> - As your income increases, resist the urge to upgrade your lifestyle proportionally. Bank those raises and bonuses.</p>
<p><strong>Stay consistent</strong> - Progress isn't always linear. Markets fluctuate, emergencies happen, life throws curveballs. Stay the course.</p>
<p>The seven stages of financial freedom aren't just about accumulating wealth. They're about building options, reducing stress, and creating a life designed on your terms. Each stage you complete opens new doors and expands your possibilities.</p>
<p>Where are you in your journey? What stage are you working toward next? The path is clearer than you think, and the next milestone is closer than it appears.</p>
<p>Start today. Your future self will thank you for every dollar you save, every debt you eliminate, and every stage you conquer.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/seven-stages-financial-freedom.webp" medium="image"/></item><item><title>Compound Interest: Your Secret Weapon for Building Wealth</title><link>https://libreleo.com/posts/compound-interest-complete-guide/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/compound-interest-complete-guide/</guid><description>Everything you need to know about compound interest: how it works, why it's powerful, and how to make it work for you</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Compound interest is the eighth wonder of the world. He who understands it, earns it; he who doesn’t, pays it.
</div>

<p>A quote from Albert Einstein. Whether he actually said it or not, the sentiment is spot-on. Compound interest is the force that turns modest savers into millionaires and modest investors into multi-millionaires.</p>
<p>However, most people don't really understand it. They know it exists. They've heard it's important. But they don't understand why starting ten years earlier can literally double your retirement savings, or why consistent contributions matter more than market timing.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Want to see compound interest in action? Try my free <a href="/calculators/compound-interest-calculator/" >Compound Interest Calculator</a></p></div></div><hr>

<h2 class="relative group">What Is Compound Interest?
    <div id="what-is-compound-interest" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-is-compound-interest" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>It's interest on your interest.</p>
<p>When you invest money, it earns returns. With compound interest, those returns get reinvested, so next time you're earning returns on a bigger balance. Then those returns generate their own returns. And it keeps going.</p>

<h3 class="relative group">Quick Example
    <div id="quick-example" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#quick-example" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>You invest $1,000 at 10% annual interest (yes I know, it's ridiculously high!):</p>
<table>
	<thead>
			<tr>
					<th>Year</th>
					<th>Starting Balance</th>
					<th>Interest Earned</th>
					<th>Ending Balance</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>1</td>
					<td>$1,000</td>
					<td>$100</td>
					<td>$1,100</td>
			</tr>
			<tr>
					<td>2</td>
					<td>$1,100</td>
					<td>$110</td>
					<td>$1,210</td>
			</tr>
			<tr>
					<td>3</td>
					<td>$1,210</td>
					<td>$121</td>
					<td>$1,331</td>
			</tr>
	</tbody>
</table>
<p>Notice how the interest amount keeps growing even though the percentage stays the same? That's compounding.</p>
<p>Compare this to <strong>simple interest</strong>, where you'd earn $100 every year regardless:</p>
<table>
	<thead>
			<tr>
					<th>Year</th>
					<th>Compound Interest</th>
					<th>Simple Interest</th>
					<th>Difference</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>3</td>
					<td>$1,331</td>
					<td>$1,300</td>
					<td>+$31</td>
			</tr>
			<tr>
					<td>10</td>
					<td>$2,594</td>
					<td>$2,000</td>
					<td>+$594</td>
			</tr>
			<tr>
					<td>30</td>
					<td>$17,449</td>
					<td>$4,000</td>
					<td>+$13,449</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="important">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Compounding accelerates over time. The longer you invest, the more dramatic the effect.</p></div></div><hr>

<h2 class="relative group">How Compound Interest Actually Works
    <div id="how-compound-interest-actually-works" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-compound-interest-actually-works" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">The Compound Interest Formula
    <div id="the-compound-interest-formula" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-compound-interest-formula" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>If you want the formula:</p>


$$FV = P \times \left(1 + \frac{r}{n}\right)^{n \times t}$$<table>
	<thead>
			<tr>
					<th>Variable</th>
					<th>Meaning</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>$FV$</td>
					<td>Future value</td>
			</tr>
			<tr>
					<td>$P$</td>
					<td>Principal (initial investment)</td>
			</tr>
			<tr>
					<td>$r$</td>
					<td>Annual interest rate (as decimal)</td>
			</tr>
			<tr>
					<td>$n$</td>
					<td>Compounds per year</td>
			</tr>
			<tr>
					<td>$t$</td>
					<td>Number of years</td>
			</tr>
	</tbody>
</table>
<p>With monthly contributions, things get more complex because each contribution compounds for a different length of time. That's why calculators exist. Doing this by hand sucks.</p>

<h3 class="relative group">The Three Factors That Determine Growth
    <div id="the-three-factors-that-determine-growth" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-three-factors-that-determine-growth" aria-label="Anchor">#</a>
    </span>
    
</h3>
<pre class="not-prose mermaid">
graph TD
    A[Compound Growth] --> B[TIME]
    A --> C[RATE OF RETURN]
    A --> D[CONTRIBUTIONS]

    B --> E[Most Powerful Factor<br/>Start early!]
    C --> F[7% inflation-adjusted<br/>is reasonable]
    D --> G[What you control<br/>most directly]

    style B fill:#0f5132,stroke:#75b798,color:#d1e7dd
    style C fill:#664d03,stroke:#ffc107,color:#fff3cd
    style D fill:#1e3a5f,stroke:#60a5fa,color:#e2e8f0
</pre>

<ol>
<li>
<p><strong>Time</strong> - The most powerful variable. Starting at 25 vs. 35 can mean hundreds of thousands more by retirement.</p>
</li>
<li>
<p><strong>Rate of return</strong> - Higher returns accelerate growth, but don't chase unrealistic numbers. 7% inflation-adjusted is a reasonable long-term average for stock market investments.</p>
</li>
<li>
<p><strong>Contribution amount</strong> - What you actually invest. This is the factor you control most directly.</p>
</li>
</ol>
<hr>

<h2 class="relative group">Examples (With Actual Numbers)
    <div id="examples-with-actual-numbers" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#examples-with-actual-numbers" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Let's compare three different people to see how compound interest plays out.</p>

<h3 class="relative group">The Comparison
    <div id="the-comparison" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-comparison" aria-label="Anchor">#</a>
    </span>
    
</h3>
<table>
	<thead>
			<tr>
					<th>Factor</th>
					<th>Chris (Early Starter)</th>
					<th>Joy (Late Starter)</th>
					<th>John (Aggressive)</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Start Age</strong></td>
					<td>25</td>
					<td>35</td>
					<td>25</td>
			</tr>
			<tr>
					<td><strong>Initial Investment</strong></td>
					<td>$5,000</td>
					<td>$5,000</td>
					<td>$10,000</td>
			</tr>
			<tr>
					<td><strong>Monthly Contribution</strong></td>
					<td>$500</td>
					<td>$500</td>
					<td>$1,000</td>
			</tr>
			<tr>
					<td><strong>Annual Return</strong></td>
					<td>7%</td>
					<td>7%</td>
					<td>7%</td>
			</tr>
			<tr>
					<td><strong>Years Contributing</strong></td>
					<td>10</td>
					<td>30</td>
					<td>40</td>
			</tr>
			<tr>
					<td><strong>Total Contributed</strong></td>
					<td>$65,000</td>
					<td>$185,000</td>
					<td>$490,000</td>
			</tr>
			<tr>
					<td><strong>Balance at 65</strong></td>
					<td><strong>$783,978</strong></td>
					<td><strong>$650,568</strong></td>
					<td><strong>$2,787,928</strong></td>
			</tr>
			<tr>
					<td><strong>Interest Earned</strong></td>
					<td>$718,978</td>
					<td>$465,568</td>
					<td>$2,297,928</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Joy contributed almost <strong>3× more money</strong> than Chris ($185K vs. $65K) but ended up with <strong>less</strong>. Why? Chris had an extra 10 years of compounding.</p></div></div><p><strong>The takeaway:</strong> John becomes a multi-millionaire by combining early start + consistent contributions + time. But even Chris who only invested for 10 years beats Joy who invested for 30 years.</p>
<p>Ten years. That's the power of starting early.</p>
<hr>

<h2 class="relative group">Why Compound Interest Is So Powerful
    <div id="why-compound-interest-is-so-powerful" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-compound-interest-is-so-powerful" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">The Snowball Effect
    <div id="the-snowball-effect" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-snowball-effect" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Compound interest is like a snowball rolling downhill. It starts small. But as it rolls, it picks up more snow. The bigger it gets, the faster it grows.</p>
<table>
	<thead>
			<tr>
					<th>Phase</th>
					<th>What Happens</th>
					<th>How It Feels</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Years 1-10</strong></td>
					<td>Slow, steady growth</td>
					<td>Nothing's happening</td>
			</tr>
			<tr>
					<td><strong>Years 10-20</strong></td>
					<td>Growth accelerates</td>
					<td>Starting to see real gains</td>
			</tr>
			<tr>
					<td><strong>Years 20-30</strong></td>
					<td>Exponential growth</td>
					<td>Balance jumps thousands per month</td>
			</tr>
			<tr>
					<td><strong>Years 30-40</strong></td>
					<td>Mind-blowing gains</td>
					<td>Earning more from interest than contributions</td>
			</tr>
	</tbody>
</table>

<h3 class="relative group">The Rule of 72
    <div id="the-rule-of-72" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-rule-of-72" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Want a quick way to estimate how long it takes your money to double?</p>
<p><strong>Divide 72 by your annual return percentage.</strong></p>
<table>
	<thead>
			<tr>
					<th>Annual Return</th>
					<th>Years to Double</th>
					<th>Example: $10K becomes...</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>6%</td>
					<td>11.9 years</td>
					<td>~$20,122 at year 12</td>
			</tr>
			<tr>
					<td>7%</td>
					<td>10.2 years</td>
					<td>~$19,672 at year 10</td>
			</tr>
			<tr>
					<td>8%</td>
					<td>9.0 years</td>
					<td>~$19,990 at year 9</td>
			</tr>
			<tr>
					<td>10%</td>
					<td>7.3 years</td>
					<td>~$19,487 at year 7</td>
			</tr>
	</tbody>
</table>
<p>If you're 30 years old and invest $10,000 at 8% annual return with no additional contributions:</p>
<ul>
<li>Age 39 (after 9 years): ~$19,990</li>
<li>Age 48 (after 18 years): ~$39,960</li>
<li>Age 57 (after 27 years): ~$79,881</li>
<li>Age 66 (after 36 years): ~$159,682</li>
</ul>
<hr>

<h2 class="relative group">How to Make Compound Interest Work for You
    <div id="how-to-make-compound-interest-work-for-you" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-make-compound-interest-work-for-you" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Start Now (Not Next Year)
    <div id="start-now-not-next-year" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#start-now-not-next-year" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Every year you wait costs you massive amounts of money. A 25-year-old who invests $5,000 once and never adds another dollar will have more at 65 than a 35-year-old who invests $5,000 per year for 10 years.</p>
<p>Don't wait for the &quot;perfect&quot; time. It doesn't exist.</p>

<h3 class="relative group">Automate Your Investments
    <div id="automate-your-investments" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#automate-your-investments" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Set up automatic transfers from checking to your investment account. You'll never miss the money, and you'll never skip a month.</p>
<p>Consistency beats timing. Always.</p>

<h3 class="relative group">Reinvest Dividends and Interest
    <div id="reinvest-dividends-and-interest" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#reinvest-dividends-and-interest" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Don't withdraw earnings. Let them compound.</p>
<hr>

<h2 class="relative group">The Bottom Line
    <div id="the-bottom-line" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-bottom-line" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #0f5132"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #75b798"
    
    >
    
  </span>

  <span
    
      style="color: #d1e7dd"
    
    ><p><strong>Compound Interest: The Formula for Wealth</strong></p>
<table>
	<thead>
			<tr>
					<th>What to Do</th>
					<th>Why It Matters</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Start early</strong></td>
					<td>Time is the most powerful factor</td>
			</tr>
			<tr>
					<td><strong>Contribute consistently</strong></td>
					<td>Even small amounts add up</td>
			</tr>
			<tr>
					<td><strong>Reinvest everything</strong></td>
					<td>Let returns generate returns</td>
			</tr>
			<tr>
					<td><strong>Stay the course</strong></td>
					<td>Don't panic during downturns</td>
			</tr>
			<tr>
					<td><strong>Minimize fees</strong></td>
					<td>They compound against you</td>
			</tr>
	</tbody>
</table>
<p>Compound interest isn't exciting. It's slow. It's boring. But it's the closest thing to a guaranteed path to wealth that exists.</p>
</span>
</div>

<p><strong>Want to see your specific numbers?</strong> <a href="/calculators/compound-interest-calculator/" >Compound Interest Calculator</a></p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/compound-interest-complete-guide.webp" medium="image"/></item><item><title>How to Use the Compound Interest Calculator</title><link>https://libreleo.com/calculators/compound-interest-calculator/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/calculators/compound-interest-calculator/</guid><description>Step-by-step guide to using our free compound interest calculator to see how your investments grow over time</description><content:encoded><![CDATA[<span class="flex cursor-pointer">
  
  
  
  
    <span
      class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
  
    
Updated: 19/06/2026

  </span>
</span>


<p><strong>Want the full breakdown?</strong> Read <a href="/posts/compound-interest-complete-guide/" >Compound Interest: Complete Guide</a></p>
<hr>

<h2 class="relative group">Calculator
    <div id="calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#calculator" aria-label="Anchor">#</a>
    </span>
    
</h2>

<style>
    :root {
        --ci-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
        --ci-background-color: #ffffff;
        --ci-text-color: #1a202c;
        --ci-text-secondary: #4a5568;
        --ci-border-color: #e2e8f0;
        --ci-input-bg: #ffffff;
        --ci-input-border: #cbd5e0;
        --ci-button-bg: #3b82f6;
        --ci-button-hover: #2563eb;
        --ci-button-text: #ffffff;
        --ci-result-bg: #f7fafc;
        --ci-result-gradient-start: #d6e9fa;
        --ci-result-gradient-end: #d6e9fa;
        --ci-green: #10b981;
        --ci-blue: #3b82f6;
        --ci-light-blue: #60a5fa;
        --ci-gray-bar: #e5e7eb;
    }

    .dark {
        --ci-background-color: #2d2d2d;
        --ci-text-color: #f8f9fa;
        --ci-text-secondary: #adb5bd;
        --ci-border-color: #444;
        --ci-input-bg: #333;
        --ci-input-border: #555;
        --ci-button-bg: #3b82f6;
        --ci-button-hover: #2563eb;
        --ci-button-text: #ffffff;
        --ci-result-bg: #1a1a1a;
        --ci-result-gradient-start: #595b5c;
        --ci-result-gradient-end: #595b5c;
        --ci-green: #10b981;
        --ci-blue: #3b82f6;
        --ci-light-blue: #60a5fa;
        --ci-gray-bar: #4b5563;
    }

    .ci-calculator {
        font-family: var(--ci-font-family);
        background-color: var(--ci-background-color);
        color: var(--ci-text-color);
        border: 1px solid var(--ci-border-color);
        border-radius: 0.75rem;
        padding: 1.5rem;
        margin: 2rem auto;
        max-width: 64rem;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    }

    .ci-header {
        margin-bottom: 1.5rem;
    }

    .ci-header h2 {
        margin: 0 0 0.5rem 0;
        font-size: 1.875rem;
        font-weight: 700;
        color: var(--ci-text-color);
    }

    .ci-header p {
        margin: 0;
        color: var(--ci-text-secondary);
    }

    .ci-inputs {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 1.5rem;
        margin-bottom: 2rem;
    }

    .ci-input-full {
        grid-column: 1 / -1;
    }

    .ci-input-group label {
        display: block;
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--ci-text-color);
        margin-bottom: 0.5rem;
    }

    .ci-input-group input,
    .ci-input-group select {
        width: 100%;
        padding: 0.5rem 1rem;
        border: 1px solid var(--ci-input-border);
        border-radius: 0.375rem;
        background-color: var(--ci-input-bg);
        color: var(--ci-text-color);
        font-size: 1rem;
        box-sizing: border-box;
    }

    .ci-input-group input:focus,
    .ci-input-group select:focus {
        outline: none;
        border-color: var(--ci-button-bg);
        box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
    }

    .ci-results {
        background: linear-gradient(135deg, var(--ci-result-gradient-start) 0%, var(--ci-result-gradient-end) 100%);
        border-radius: 0.5rem;
        padding: 1.5rem;
        margin-bottom: 1.5rem;
    }

    .ci-results h3 {
        margin: 0 0 1rem 0;
        font-size: 1.125rem;
        font-weight: 600;
        color: var(--ci-text-color);
    }

    .ci-result-cards {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1rem;
        margin-bottom: 1.5rem;
    }

    .ci-result-card {
        background-color: var(--ci-background-color);
        border-radius: 0.5rem;
        padding: 1rem;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    }

    .ci-result-label {
        font-size: 0.875rem;
        color: var(--ci-text-secondary);
        margin-bottom: 0.25rem;
    }

    .ci-result-value {
        font-size: 1.5rem;
        font-weight: 700;
    }

    .ci-result-value.green {
        color: var(--ci-green);
    }

    .ci-result-value.blue {
        color: var(--ci-blue);
    }

    .ci-result-value.light-blue {
        color: var(--ci-light-blue);
    }

    .ci-progress {
        margin-top: 1.5rem;
    }

    .ci-progress-labels {
        display: flex;
        justify-content: space-between;
        font-size: 0.875rem;
        color: var(--ci-text-secondary);
        margin-bottom: 0.5rem;
    }

    .ci-progress-bar {
        position: relative;
        height: 2rem;
        background-color: var(--ci-gray-bar);
        border-radius: 9999px;
        overflow: hidden;
    }

    .ci-progress-segment {
        position: absolute;
        top: 0;
        height: 100%;
        transition: width 0.5s ease;
    }

    .ci-progress-segment.contributions {
        left: 0;
        background-color: var(--ci-blue);
    }

    .ci-progress-segment.interest {
        right: 0;
        background-color: var(--ci-light-blue);
    }

    .ci-progress-percent {
        display: flex;
        justify-content: space-between;
        font-size: 0.75rem;
        color: var(--ci-text-secondary);
        margin-top: 0.25rem;
    }

    .ci-chart-container {
        background-color: var(--ci-background-color);
        border-radius: 0.5rem;
        padding: 1.5rem;
        margin-bottom: 1.5rem;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    }

    .ci-chart-container h3 {
        margin: 0 0 1rem 0;
        font-size: 1.125rem;
        font-weight: 600;
        color: var(--ci-text-color);
    }

    #ci-chart {
        width: 100%;
        max-height: 600px;
    }

    .ci-calculator input[type="number"]::-webkit-inner-spin-button,
    .ci-calculator input[type="number"]::-webkit-outer-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }

    .ci-calculator input[type="number"] {
        -moz-appearance: textfield;
    }

    @media (max-width: 768px) {
        .ci-calculator {
            padding: 1rem;
        }

        #ci-chart {
            height: 400px;
        }

        .ci-inputs {
            grid-template-columns: 1fr;
        }
    }
</style>

<div class="ci-calculator">

    
<script>
(function () {
  if (window.finfreeCurrency) return;  

  var SYMBOLS = {
    USD: '$',
    EUR: '€',
    GBP: '£',
    CHF: 'CHF ',
    AED: 'AED ',
    SGD: 'S$',
    HKD: 'HK$',
    CNY: 'CN¥',
    PHP: '₱',
    MYR: 'RM ',
    INR: '₹'
  };

  var STORAGE_KEY = 'finfree-currency';
  var EVENT_NAME = 'finfree-currency-change';

  function safeRead() {
    try { return localStorage.getItem(STORAGE_KEY) || 'USD'; } catch (e) { return 'USD'; }
  }
  function safeWrite(code) {
    try { localStorage.setItem(STORAGE_KEY, code); } catch (e) {}
  }

  window.finfreeCurrency = {
    getCode: function () { return safeRead(); },
    getSymbol: function () { return SYMBOLS[safeRead()] || '$'; },
    getSymbolFor: function (code) { return SYMBOLS[code] || '$'; },
    set: function (code) {
      if (!SYMBOLS[code]) return;
      safeWrite(code);
      var detail = { code: code, symbol: SYMBOLS[code] };
      document.dispatchEvent(new CustomEvent(EVENT_NAME, { detail: detail }));
    },
    EVENT_NAME: EVENT_NAME,
    SYMBOLS: SYMBOLS
  };

  
  document.addEventListener(EVENT_NAME, function (e) {
    var selectors = document.querySelectorAll('select[data-finfree-currency]');
    selectors.forEach(function (s) {
      if (s.value !== e.detail.code) s.value = e.detail.code;
    });
  });

  document.addEventListener('DOMContentLoaded', function () {
    var current = safeRead();
    var selectors = document.querySelectorAll('select[data-finfree-currency]');
    selectors.forEach(function (s) {
      s.value = current;
      s.addEventListener('change', function () {
        window.finfreeCurrency.set(s.value);
      });
    });
  });
})();
</script>

<style>
  .finfree-currency-selector {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-bottom: 14px;
    font-size: 0.85em;
    color: var(--muted, #666);
  }
  .finfree-currency-selector select {
    padding: 4px 8px;
    border: 1px solid var(--input-border, #ced4da);
    border-radius: 4px;
    background-color: var(--input-bg, #ffffff);
    color: var(--card-text, #212529);
    font-size: 0.95em;
  }
</style>

<div class="finfree-currency-selector">
  <label for="finfree-currency-select-1782461070867236000">Currency:</label>
  <select id="finfree-currency-select-1782461070867239000" data-finfree-currency>
    <option value="USD">USD ($)</option>
    <option value="EUR">EUR (€)</option>
    <option value="GBP">GBP (£)</option>
    <option value="CHF">CHF (Fr.)</option>
    <option value="AED">AED (د.إ)</option>
    <option value="SGD">SGD (S$)</option>
    <option value="HKD">HKD (HK$)</option>
    <option value="CNY">CNY (¥)</option>
    <option value="PHP">PHP (₱)</option>
    <option value="MYR">MYR (RM)</option>
    <option value="INR">INR (₹)</option>
  </select>
</div>


    
    <div class="ci-header">
        <h2>Compound Interest Calculator</h2>
        <p>See how your money grows over time with compound interest</p>
    </div>

    
    <div class="ci-inputs">
        
        <div class="ci-input-group">
            <label for="ci-initial">Initial Investment (<span data-currency-prefix>$</span>)</label>
            <input type="number" id="ci-initial" value="10000" min="0" step="100">
        </div>

        
        <div class="ci-input-group">
            <label for="ci-monthly">Monthly Contribution (<span data-currency-prefix>$</span>)</label>
            <input type="number" id="ci-monthly" value="500" min="0" step="50">
        </div>

        
        <div class="ci-input-group">
            <label for="ci-years">Time Period (Years)</label>
            <input type="number" id="ci-years" value="20" min="1" max="50" step="1">
        </div>

        
        <div class="ci-input-group">
            <label for="ci-rate">Annual Interest Rate (%)</label>
            <input type="number" id="ci-rate" value="5" min="0" max="20" step="0.1">
        </div>

        
        <div class="ci-input-group ci-input-full">
            <label for="ci-frequency">Compounding Frequency</label>
            <select id="ci-frequency">
                <option value="365">Daily</option>
                <option value="12" selected>Monthly</option>
                <option value="4">Quarterly</option>
                <option value="1">Annually</option>
            </select>
        </div>
    </div>

    
    <div class="ci-results">
        <h3>Your Investment Growth</h3>

        <div class="ci-result-cards">
            <div class="ci-result-card">
                <p class="ci-result-label">Final Balance</p>
                <p id="ci-final" class="ci-result-value green">$0</p>
            </div>

            <div class="ci-result-card">
                <p class="ci-result-label">Total Contributions</p>
                <p id="ci-contributions" class="ci-result-value blue">$0</p>
            </div>

            <div class="ci-result-card">
                <p class="ci-result-label">Interest Earned</p>
                <p id="ci-interest" class="ci-result-value light-blue">$0</p>
            </div>
        </div>

        <div class="ci-progress">
            <div class="ci-progress-labels">
                <span>Contributions</span>
                <span>Interest Earned</span>
            </div>
            <div class="ci-progress-bar">
                <div id="ci-contributions-bar" class="ci-progress-segment contributions" style="width: 50%"></div>
                <div id="ci-interest-bar" class="ci-progress-segment interest" style="width: 50%"></div>
            </div>
            <div class="ci-progress-percent">
                <span id="ci-contributions-percent">50%</span>
                <span id="ci-interest-percent">50%</span>
            </div>
        </div>
    </div>

    
    <div class="ci-chart-container">
        <h3>Growth Over Time</h3>
        <canvas id="ci-chart"></canvas>
    </div>

</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>

<script>
let ciChart = null;

function _csym() { return (window.finfreeCurrency && window.finfreeCurrency.getSymbol()) || '$'; }
function _ciSyncSymbols() {
  var sym = _csym();
  document.querySelectorAll('.ci-calculator [data-currency-prefix]').forEach(function (el) { el.textContent = sym; });
}
document.addEventListener('finfree-currency-change', function () { _ciSyncSymbols(); try { ciCalculate(); } catch (e) {} });
document.addEventListener('DOMContentLoaded', _ciSyncSymbols);

function ciCalculate() {
    const initial = parseFloat(document.getElementById('ci-initial').value) || 0;
    const monthly = parseFloat(document.getElementById('ci-monthly').value) || 0;
    const years = parseInt(document.getElementById('ci-years').value) || 1;
    const rate = parseFloat(document.getElementById('ci-rate').value) / 100 || 0;
    const frequency = parseInt(document.getElementById('ci-frequency').value) || 12;

    const periods = years;
    const ratePerPeriod = rate / frequency;
    const totalPeriods = years * frequency;

    
    const futureValuePrincipal = initial * Math.pow(1 + ratePerPeriod, totalPeriods);

    let futureValueContributions = 0;
    if (monthly > 0 && rate > 0) {
        
        
        
        
        const contributionPerPeriod = monthly * 12 / frequency;
        futureValueContributions = contributionPerPeriod * ((Math.pow(1 + ratePerPeriod, totalPeriods) - 1) / ratePerPeriod) * (1 + ratePerPeriod);
    } else if (monthly > 0) {
        futureValueContributions = monthly * years * 12;
    }

    const finalBalance = futureValuePrincipal + futureValueContributions;
    const totalContributions = initial + (monthly * years * 12);
    const interestEarned = finalBalance - totalContributions;

    
    document.getElementById('ci-final').textContent = _csym() + finalBalance.toLocaleString('en-US', {maximumFractionDigits: 2});
    document.getElementById('ci-contributions').textContent = _csym() + totalContributions.toLocaleString('en-US', {maximumFractionDigits: 2});
    document.getElementById('ci-interest').textContent = _csym() + interestEarned.toLocaleString('en-US', {maximumFractionDigits: 2});

    
    const contributionsPercent = (totalContributions / finalBalance) * 100;
    const interestPercent = (interestEarned / finalBalance) * 100;

    document.getElementById('ci-contributions-bar').style.width = contributionsPercent + '%';
    document.getElementById('ci-interest-bar').style.width = interestPercent + '%';
    document.getElementById('ci-contributions-percent').textContent = contributionsPercent.toFixed(1) + '%';
    document.getElementById('ci-interest-percent').textContent = interestPercent.toFixed(1) + '%';

    
    const chartLabels = [];
    const balanceData = [];
    const contributionsData = [];
    const interestData = [];

    for (let year = 0; year <= years; year++) {
        chartLabels.push('Year ' + year);

        if (year === 0) {
            balanceData.push(initial);
            contributionsData.push(initial);
            interestData.push(0);
        } else {
            const yearsPassed = year;
            const periodsPassedTotal = yearsPassed * frequency;
            const monthsPassed = yearsPassed * 12;

            const fvPrincipal = initial * Math.pow(1 + ratePerPeriod, periodsPassedTotal);

            let fvContributions = 0;
            if (monthly > 0 && rate > 0) {
                const monthlyRate = rate / 12;
                fvContributions = monthly * ((Math.pow(1 + monthlyRate, monthsPassed) - 1) / monthlyRate) * (1 + monthlyRate);
            } else if (monthly > 0) {
                fvContributions = monthly * monthsPassed;
            }

            const yearBalance = fvPrincipal + fvContributions;
            const yearContributions = initial + (monthly * monthsPassed);
            const yearInterest = yearBalance - yearContributions;

            balanceData.push(yearBalance);
            contributionsData.push(yearContributions);
            interestData.push(yearInterest);
        }
    }

    ciUpdateChart(chartLabels, balanceData, contributionsData, interestData);
}

function ciUpdateChart(labels, balance, contributions, interest) {
    const ctx = document.getElementById('ci-chart');

    if (ciChart) {
        ciChart.destroy();
    }

    const isDark = document.documentElement.classList.contains('dark');
    const textColor = isDark ? '#e5e7eb' : '#374151';
    const gridColor = isDark ? '#4b5563' : '#e5e7eb';

    ciChart = new Chart(ctx, {
        type: 'line',
        data: {
            labels: labels,
            datasets: [
                {
                    label: 'Total Balance',
                    data: balance,
                    borderColor: '#10b981',
                    backgroundColor: 'rgba(16, 185, 129, 0.1)',
                    borderWidth: 3,
                    fill: true,
                    tension: 0.4
                },
                {
                    label: 'Contributions',
                    data: contributions,
                    borderColor: '#3b82f6',
                    backgroundColor: 'rgba(59, 130, 246, 0.1)',
                    borderWidth: 2,
                    fill: true,
                    tension: 0.4
                },
                {
                    label: 'Interest Earned',
                    data: interest,
                    borderColor: '#60a5fa',
                    backgroundColor: 'rgba(96, 165, 250, 0.1)',
                    borderWidth: 2,
                    fill: true,
                    tension: 0.4
                }
            ]
        },
        options: {
            responsive: true,
            maintainAspectRatio: false,
            plugins: {
                legend: {
                    labels: {
                        color: textColor,
                        font: {
                            size: 12
                        }
                    }
                },
                tooltip: {
                    callbacks: {
                        label: function(context) {
                            let label = context.dataset.label || '';
                            if (label) {
                                label += ': ';
                            }
                            label += _csym() + context.parsed.y.toLocaleString('en-US', {maximumFractionDigits: 2});
                            return label;
                        }
                    }
                }
            },
            scales: {
                x: {
                    ticks: {
                        color: textColor
                    },
                    grid: {
                        color: gridColor
                    }
                },
                y: {
                    ticks: {
                        color: textColor,
                        callback: function(value) {
                            return _csym() + value.toLocaleString('en-US', {maximumFractionDigits: 0});
                        }
                    },
                    grid: {
                        color: gridColor
                    }
                }
            }
        }
    });
}


document.addEventListener('DOMContentLoaded', function() {
    const inputs = ['ci-initial', 'ci-monthly', 'ci-years', 'ci-rate', 'ci-frequency'];
    inputs.forEach(id => {
        const element = document.getElementById(id);
        if (element) {
            element.addEventListener('input', ciCalculate);
            element.addEventListener('change', ciCalculate);
        }
    });

    ciCalculate();
});


const ciObserver = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
        if (mutation.attributeName === 'class') {
            ciCalculate();
        }
    });
});

ciObserver.observe(document.documentElement, {
    attributes: true
});
</script>

<hr>

<h2 class="relative group">Input Fields
    <div id="input-fields" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#input-fields" aria-label="Anchor">#</a>
    </span>
    
</h2>
<table>
	<thead>
			<tr>
					<th>Field</th>
					<th>What to Enter</th>
					<th>Typical Values</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Initial Investment</strong></td>
					<td>Starting lump sum</td>
					<td>$0 - $50,000</td>
			</tr>
			<tr>
					<td><strong>Monthly Contribution</strong></td>
					<td>Regular monthly amount</td>
					<td>$100 - $2,000</td>
			</tr>
			<tr>
					<td><strong>Time Period</strong></td>
					<td>Years to grow</td>
					<td>10 - 40 years</td>
			</tr>
			<tr>
					<td><strong>Annual Return</strong></td>
					<td>Expected yearly return</td>
					<td>5% - 10%</td>
			</tr>
			<tr>
					<td><strong>Compounding Frequency</strong></td>
					<td>How often interest compounds</td>
					<td>Monthly (most common)</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Use <strong>7%</strong> for inflation-adjusted S&amp;P 500 returns. Use <strong>10%</strong> for nominal (before inflation).</p></div></div><hr>

<h2 class="relative group">Example
    <div id="example" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#example" aria-label="Anchor">#</a>
    </span>
    
</h2>
<table>
	<thead>
			<tr>
					<th>Input</th>
					<th>Value</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Initial</td>
					<td>$5,000</td>
			</tr>
			<tr>
					<td>Monthly</td>
					<td>$500</td>
			</tr>
			<tr>
					<td>Years</td>
					<td>25</td>
			</tr>
			<tr>
					<td>Return</td>
					<td>7%</td>
			</tr>
			<tr>
					<td>Frequency</td>
					<td>Monthly</td>
			</tr>
	</tbody>
</table>
<p><strong>Result:</strong> $436,311 final balance — $155,000 contributed, $281,311 earned from compounding.</p>
<hr>

<h2 class="relative group">Quick Tips
    <div id="quick-tips" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#quick-tips" aria-label="Anchor">#</a>
    </span>
    
</h2>
<ul>
<li><strong>Be conservative</strong> — Markets don't return 7% every year</li>
<li><strong>Account for inflation</strong> — $436K in 25 years buys less than $436K today</li>
<li><strong>Factor in fees</strong> — 1% annual fees cost tens of thousands over decades</li>
<li><strong>Start now</strong> — Time matters more than timing</li>
</ul>
<hr>

<h2 class="relative group">Related Calculators
    <div id="related-calculators" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#related-calculators" aria-label="Anchor">#</a>
    </span>
    
</h2>
<ul>
<li><a href="/calculators/interactive_calculator_to_your_fire_number/" >FIRE Calculator</a> — When can you retire?</li>
<li><a href="/calculators/interactive_safe_withdrawal_rate_calculator/" >SWR Calculator</a> — Safe withdrawal rates</li>
<li><a href="/calculators/emergency-fund-calculator/" >Emergency Fund Calculator</a> — How much safety net?</li>
</ul>
<hr>
<p><strong>Learn the math:</strong> <a href="/posts/compound-interest-complete-guide/" >Compound Interest: Complete Guide</a></p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This calculator reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/compound-interest-calculator.webp" medium="image"/></item><item><title>How Much Do You Need Invested for Passive Income? The SWR Approach</title><link>https://libreleo.com/posts/swr-passive-income-investment-required/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/swr-passive-income-investment-required/</guid><description>Calculate exactly how much you need invested to generate your target monthly passive income using Safe Withdrawal Rate principles. A practical guide with examples.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Ever wondered exactly how much money you'd need invested to quit your job and live off passive income?
</div>

<p>In this post, I'll show you how to calculate your &quot;freedom number&quot; using Safe Withdrawal Rate (SWR) principles. You'll learn why different SWR rates dramatically change your required investment, and how to pick the right rate for your situation.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Try the Calculator:</strong> Want to see your numbers instantly? Use my free <a href="/calculators/swr-passive-income-calculator/" >SWR Passive Income Calculator</a></p></div></div><hr>

<h2 class="relative group">The simple formula behind passive income
    <div id="the-simple-formula-behind-passive-income" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-simple-formula-behind-passive-income" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The calculation for how much you need invested is straightforward:</p>


$$\text{Investment Required} = \frac{\text{Annual Income Goal}}{\text{SWR Rate}}$$<p>Take your annual income goal and divide it by your chosen withdrawal rate.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #60a5fa"
    
    >
    
  </span>

  <span
    
      style="color: #e2e8f0"
    
    ><strong>Example:</strong> Want $3,000 per month? That's $36,000 per year. At a 4% withdrawal rate, you'd need $36,000 ÷ 0.04 = <strong>$900,000</strong> invested.</span>
</div>

<p>Your choice of SWR percentage changes everything.</p>
<hr>

<h2 class="relative group">Why your SWR choice matters so much
    <div id="why-your-swr-choice-matters-so-much" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-your-swr-choice-matters-so-much" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The Safe Withdrawal Rate is the percentage of your portfolio you can withdraw each year without running out of money over a typical retirement. The classic &quot;4% rule&quot; comes from the famous Trinity Study, which found that historically, a 4% initial withdrawal rate (adjusted for inflation) had a very high success rate over 30-year periods. I've got another calculator for this. Check it out here: <strong><a href="/calculators/interactive_safe_withdrawal_rate_calculator/" >SWR Calculator</a></strong></p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>My personal take:</strong> For me, 4% is too aggressive and probably outdated. Especially as people are living longer today. Well for some like Dave Ramsey, even 8% is ok. Honestly speaking, I think it's crazy. At that pace, your portfolio will run out faster than you expect. Just my personal opinion.</p></div></div>
<h3 class="relative group">Conservative vs aggressive SWR
    <div id="conservative-vs-aggressive-swr" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#conservative-vs-aggressive-swr" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Let's say you want that same $3,000 per month in passive income:</p>
<table>
	<thead>
			<tr>
					<th>SWR Rate</th>
					<th>Investment Required</th>
					<th>Risk Level</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>3.0%</td>
					<td>$1,200,000</td>
					<td>Very Conservative</td>
			</tr>
			<tr>
					<td>3.5%</td>
					<td>$1,028,571</td>
					<td>Conservative</td>
			</tr>
			<tr>
					<td>4.0%</td>
					<td>$900,000</td>
					<td>Standard</td>
			</tr>
			<tr>
					<td>4.5%</td>
					<td>$800,000</td>
					<td>Moderate</td>
			</tr>
			<tr>
					<td>5.0%</td>
					<td>$720,000</td>
					<td>Aggressive</td>
			</tr>
			<tr>
					<td>5.5%</td>
					<td>$654,545</td>
					<td>Very Aggressive</td>
			</tr>
			<tr>
					<td>6.0%</td>
					<td>$600,000</td>
					<td>High Risk</td>
			</tr>
	</tbody>
</table>
<p>See how much that changes things? The difference between a 3% and 6% SWR is literally double the investment amount. Above is a standard chart. As I mentioned, personally I think 4% is already quite aggressive. The world has changed! Bonds are not the same, the dollar is depreciating daily, inflation is high, etc.</p>
<p>So which one should you use?</p>
<hr>

<h2 class="relative group">Picking the right SWR for your situation
    <div id="picking-the-right-swr-for-your-situation" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#picking-the-right-swr-for-your-situation" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>It depends on your circumstances.</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Lower Rate (3-3.5%)">
          <span class="flex items-center gap-1">
            
            Lower Rate (3-3.5%)
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Standard Rate (4%)">
          <span class="flex items-center gap-1">
            
            Standard Rate (4%)
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Higher Rate (4.5-5%)">
          <span class="flex items-center gap-1">
            
            Higher Rate (4.5-5%)
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <p><strong>Use a lower rate if:</strong></p>
<ul>
<li>You're retiring early (before 50) and need your money to last 40+ years</li>
<li>You're naturally risk-averse and would lose sleep over market downturns</li>
<li>You have no other income sources like pensions or rental properties</li>
<li>You want a larger buffer for healthcare costs or unexpected expenses</li>
</ul>
      </div><div class="tab__panel " data-tab-index="1">
        <p><strong>Use the standard rate if:</strong></p>
<ul>
<li>You're planning a traditional 20 to 30-year retirement</li>
<li>You're comfortable with some market volatility</li>
<li>You have flexibility to reduce spending during downturns</li>
<li>Your portfolio is well-diversified across global markets</li>
</ul>
      </div><div class="tab__panel " data-tab-index="2">
        <p><strong>Use a higher rate if:</strong></p>
<ul>
<li>You have other reliable income sources</li>
<li>You're willing to adjust spending based on portfolio performance</li>
<li>You have a shorter time horizon</li>
<li>You're fine with accepting more risk for a lower investment target</li>
</ul>
      </div></div>
</div>

<hr>

<h2 class="relative group">Building your freedom number
    <div id="building-your-freedom-number" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#building-your-freedom-number" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>An example:</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #60a5fa"
    
    >
    
  </span>

  <span
    
      style="color: #e2e8f0"
    
    ><p><strong>Claudia's Story:</strong></p>
<p>Claudia wants to achieve financial independence. She's calculated that she needs $4,000 per month ($48,000 per year) to cover all her expenses comfortably. She's 35 and plans to retire early, so she wants a more conservative approach.</p>
<p><strong>At 3.5% SWR:</strong> $48,000 ÷ 0.035 = <strong>$1,371,429</strong></p>
<p>That's her freedom number. Once her investment portfolio hits roughly $1.37 million, she can theoretically live off the returns indefinitely.</p>
</span>
</div>

<p>But Claudia's smart. She also calculates what she'd need at different SWR rates:</p>
<table>
	<thead>
			<tr>
					<th>SWR Rate</th>
					<th>Investment Required</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>3.0%</td>
					<td>$1,600,000</td>
			</tr>
			<tr>
					<td>4.0%</td>
					<td>$1,200,000</td>
			</tr>
			<tr>
					<td>4.5%</td>
					<td>$1,066,667</td>
			</tr>
	</tbody>
</table>
<p>Now she has a range. She knows her &quot;very safe&quot; number is $1.6M, her &quot;comfortable&quot; number is $1.37M, and her &quot;minimum viable&quot; number is around $1.2M.</p>
<p>This gives her flexibility. Maybe she hits $1.2M and decides to go part-time instead of fully retiring. Or she pushes to $1.6M for complete peace of mind.</p>
<hr>

<h2 class="relative group">The heat map perspective
    <div id="the-heat-map-perspective" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-heat-map-perspective" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>One thing I find helpful is looking at multiple income levels and SWR rates simultaneously. You quickly see patterns:</p>
<ul>
<li>Lower SWR rates always require more investment (obviously)</li>
<li>Small differences in income add up fast when multiplied by 25-33x</li>
<li>The &quot;sweet spot&quot; for most people sits between 3.5% and 4.5%</li>
</ul>
<p>When you look at a grid of all these numbers together, you start to get a feel for where you want to land. Green cells show more achievable targets; red cells show numbers that might take longer to reach.</p>
<hr>

<h2 class="relative group">What this doesn't include
    <div id="what-this-doesnt-include" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-this-doesnt-include" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Before you lock in your freedom number, keep a few things in mind:</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>The numbers above are simplified estimates. Real-world factors like taxes, inflation, and market timing can significantly impact how much you actually need. Build in extra margin.</p></div></div><table>
	<thead>
			<tr>
					<th>Factor</th>
					<th>Why It Matters</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Taxes vary wildly</strong></td>
					<td>Depending on where you live and how your investments are structured, you might need to account for taxes on your withdrawals. Some countries tax capital gains heavily; others don't tax them at all. Check your local rules.</td>
			</tr>
			<tr>
					<td><strong>Inflation is real</strong></td>
					<td>The SWR framework assumes you'll adjust withdrawals for inflation each year. Your $4,000/month today might need to be $5,000/month in 10 years to maintain the same lifestyle.</td>
			</tr>
			<tr>
					<td><strong>Sequence of returns matters</strong></td>
					<td>A market crash in your first few years of retirement is far more damaging than one 15 years in. This is why many people use slightly lower SWR rates for added protection.</td>
			</tr>
			<tr>
					<td><strong>Life changes</strong></td>
					<td>Your expenses won't stay static forever. Health issues, moving to other countries, new hobbies - all of these affect how much you actually need.</td>
			</tr>
	</tbody>
</table>
<hr>

<h2 class="relative group">Taking action
    <div id="taking-action" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#taking-action" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Here's what I'd suggest:</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #0f5132"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #75b798"
    
    >
    
  </span>

  <span
    
      style="color: #d1e7dd"
    
    ><p><strong>Your Action Plan:</strong></p>
<ol>
<li><strong>Calculate your monthly expenses.</strong> Be honest. Include everything from rent to that streaming subscription you need.</li>
<li><strong>Add a buffer.</strong> Take your monthly number and add 10-20% for unexpected costs and lifestyle inflation.</li>
<li><strong>Pick your SWR.</strong> Conservative (3-3.5%) if you're young or risk-averse, standard (4%) for a 30-year horizon, or moderate (4.5%) if you have other income.</li>
<li><strong>Run the calculation.</strong> Multiply your annual expenses by 25 (for 4% SWR), 28.5 (for 3.5%), or 33.3 (for 3%).</li>
<li><strong>Track your progress.</strong> Now you have a concrete target. Watch your net worth grow toward it.</li>
</ol></span>
</div>

<hr>

<h2 class="relative group">Your turn
    <div id="your-turn" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#your-turn" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Whether you need $500,000 or $2,000,000, you've got a number to work toward.</p>
<p>If you want to explore different scenarios quickly, try the <a href="/calculators/swr-passive-income-calculator/" >SWR Passive Income Calculator</a>. It'll generate a complete grid showing exactly how much you need for various income levels and SWR combinations.</p>
<hr>

<h2 class="relative group">Related resources
    <div id="related-resources" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#related-resources" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #60a5fa"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M172.5 131.1C228.1 75.51 320.5 75.51 376.1 131.1C426.1 181.1 433.5 260.8 392.4 318.3L391.3 319.9C381 334.2 361 337.6 346.7 327.3C332.3 317 328.9 297 339.2 282.7L340.3 281.1C363.2 249 359.6 205.1 331.7 177.2C300.3 145.8 249.2 145.8 217.7 177.2L105.5 289.5C73.99 320.1 73.99 372 105.5 403.5C133.3 431.4 177.3 435 209.3 412.1L210.9 410.1C225.3 400.7 245.3 404 255.5 418.4C265.8 432.8 262.5 452.8 248.1 463.1L246.5 464.2C188.1 505.3 110.2 498.7 60.21 448.8C3.741 392.3 3.741 300.7 60.21 244.3L172.5 131.1zM467.5 380C411 436.5 319.5 436.5 263 380C213 330 206.5 251.2 247.6 193.7L248.7 192.1C258.1 177.8 278.1 174.4 293.3 184.7C307.7 194.1 311.1 214.1 300.8 229.3L299.7 230.9C276.8 262.1 280.4 306.9 308.3 334.8C339.7 366.2 390.8 366.2 422.3 334.8L534.5 222.5C566 191 566 139.1 534.5 108.5C506.7 80.63 462.7 76.99 430.7 99.9L429.1 101C414.7 111.3 394.7 107.1 384.5 93.58C374.2 79.2 377.5 59.21 391.9 48.94L393.5 47.82C451 6.731 529.8 13.25 579.8 63.24C636.3 119.7 636.3 211.3 579.8 267.7L467.5 380z"/></svg>
</span>
  </span>

  <span
    
      style="color: #e2e8f0"
    
    ><p><strong>Explore More:</strong></p>
<ul>
<li><strong><a href="/calculators/swr-passive-income-calculator/" >SWR Passive Income Calculator</a></strong> - Generate your personalized grid</li>
<li><strong><a href="/calculators/interactive_safe_withdrawal_rate_calculator/" >SWR Calculator</a></strong> - Stress-test your withdrawal rate with historical data</li>
<li><strong><a href="/posts/swr-checklist-practical-steps-for-retirement-withdrawal-planning/" >SWR Checklist</a></strong> - Step-by-step guide to retirement planning</li>
<li><strong><a href="/calculators/interactive_calculator_to_your_fire_number/" >FIRE Calculator</a></strong> - Calculate your financial independence number</li>
</ul></span>
</div>

<hr>
<p><strong>What's your target passive income?</strong> Drop a comment below!</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/swr-passive-income-investment-required.webp" medium="image"/></item><item><title>SWR Passive Income Calculator: Find Your Freedom Number</title><link>https://libreleo.com/calculators/swr-passive-income-calculator/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/calculators/swr-passive-income-calculator/</guid><description>Use this free calculator to instantly see how much investment you need to generate your target monthly passive income at various Safe Withdrawal Rates.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Want to know exactly how much you need invested to live off passive income? Enter your target monthly income and see a complete grid of investment requirements across different withdrawal rates.
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>New to Safe Withdrawal Rates?</strong> Read the complete guide first: <a href="/posts/swr-passive-income-investment-required/" >How Much Do You Need Invested for Passive Income?</a></p></div></div><hr>

<h2 class="relative group">SWR Passive Income Calculator
    <div id="swr-passive-income-calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#swr-passive-income-calculator" aria-label="Anchor">#</a>
    </span>
    
</h2>

<style>
    :root {
        --swr-pi-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
        --swr-pi-background-color: #f8f9fa;
        --swr-pi-card-background-color: #ffffff;
        --swr-pi-border-color: #dee2e6;
        --swr-pi-text-color: #212529;
        --swr-pi-label-color: #495057;
        --swr-pi-input-background-color: #ffffff;
        --swr-pi-input-border-color: #ced4da;
        --swr-pi-button-background-color: #004085;
        --swr-pi-button-text-color: #ffffff;
        --swr-pi-button-hover-background-color: #002752;
        --swr-pi-results-background-color: #e9ecef;
        --swr-pi-header-background: #333;
        --swr-pi-header-text: #ffffff;
    }

    .dark {
        --swr-pi-background-color: #1a1a1a;
        --swr-pi-card-background-color: #2d2d2d;
        --swr-pi-border-color: #444;
        --swr-pi-text-color: #f8f9fa;
        --swr-pi-label-color: #adb5bd;
        --swr-pi-input-background-color: #333;
        --swr-pi-input-border-color: #555;
        --swr-pi-results-background-color: #343a40;
        --swr-pi-header-background: #1a1a1a;
        --swr-pi-header-text: #ffffff;
    }

    .swr-pi-calculator {
        font-family: var(--swr-pi-font-family);
        background-color: var(--swr-pi-card-background-color);
        color: var(--swr-pi-text-color);
        border: 1px solid var(--swr-pi-border-color);
        border-radius: 0.5rem;
        padding: 2rem;
        margin: 2rem 0;
        box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    }

    .swr-pi-calculator h3 {
        margin-top: 0;
        margin-bottom: 1.5rem;
        text-align: center;
        color: var(--swr-pi-text-color);
        font-size: 1.6rem;
        font-weight: 700;
    }

    .swr-pi-subtitle {
        text-align: center;
        color: var(--swr-pi-label-color);
        margin-bottom: 1.5rem;
        font-size: 0.95rem;
    }

    .swr-pi-input-section {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
        justify-content: center;
        align-items: flex-end;
        margin-bottom: 2rem;
    }

    .swr-pi-form-group {
        display: flex;
        flex-direction: column;
    }

    .swr-pi-form-group label {
        margin-bottom: 0.5rem;
        font-weight: 500;
        color: var(--swr-pi-label-color);
        font-size: 0.9rem;
    }

    .swr-pi-form-group input,
    .swr-pi-form-group select {
        padding: 0.6rem 0.8rem;
        border: 1px solid var(--swr-pi-input-border-color);
        border-radius: 0.25rem;
        background-color: var(--swr-pi-input-background-color);
        color: var(--swr-pi-text-color);
        font-size: 1rem;
        min-width: 150px;
    }

    .swr-pi-button {
        padding: 0.6rem 1.5rem;
        border: none;
        border-radius: 0.25rem;
        background-color: var(--swr-pi-button-background-color);
        color: var(--swr-pi-button-text-color);
        cursor: pointer;
        font-weight: 500;
        font-size: 1rem;
        transition: background-color 0.15s ease-in-out;
        height: fit-content;
    }

    .swr-pi-button:hover {
        background-color: var(--swr-pi-button-hover-background-color);
    }

     
    .swr-pi-grid-container {
        overflow-x: auto;
        margin-top: 1.5rem;
    }

    .swr-pi-grid {
        width: 100%;
        border-collapse: separate;
        border-spacing: 0;
        font-size: 0.8rem;
        border-radius: 0.5rem;
        overflow: hidden;
        border: 1px solid var(--swr-pi-border-color);
    }

    .swr-pi-grid th {
        background-color: var(--swr-pi-header-background);
        color: var(--swr-pi-header-text);
        padding: 0.75rem 0.5rem;
        text-align: center;
        font-weight: 600;
        border-bottom: 1px solid var(--swr-pi-border-color);
        border-right: 1px solid var(--swr-pi-border-color);
    }

    .swr-pi-grid th:last-child {
        border-right: none;
    }

    .swr-pi-grid td {
        padding: 0.6rem 0.5rem;
        text-align: center;
        border-bottom: 1px solid var(--swr-pi-border-color);
        border-right: 1px solid var(--swr-pi-border-color);
        font-weight: 500;
        transition: transform 0.1s ease;
    }

    .swr-pi-grid td:last-child {
        border-right: none;
    }

    .swr-pi-grid tbody tr:last-child td {
        border-bottom: none;
    }

    .swr-pi-grid td:first-child {
        background-color: var(--swr-pi-header-background);
        color: var(--swr-pi-header-text);
        font-weight: 600;
        text-align: right;
        padding-right: 1rem;
    }

    .swr-pi-grid tr:hover td:not(:first-child) {
        transform: scale(1.02);
    }

     
    .swr-pi-cell-1 { background-color: #2ecc71; color: #000; }
    .swr-pi-cell-2 { background-color: #58d68d; color: #000; }
    .swr-pi-cell-3 { background-color: #82e0aa; color: #000; }
    .swr-pi-cell-4 { background-color: #abebc6; color: #000; }
    .swr-pi-cell-5 { background-color: #d5f5e3; color: #000; }
    .swr-pi-cell-6 { background-color: #fcf3cf; color: #000; }
    .swr-pi-cell-7 { background-color: #f9e79f; color: #000; }
    .swr-pi-cell-8 { background-color: #f5b041; color: #000; }
    .swr-pi-cell-9 { background-color: #eb984e; color: #000; }
    .swr-pi-cell-10 { background-color: #e74c3c; color: #fff; }

    .swr-pi-highlight {
        outline: 3px solid var(--swr-pi-button-background-color);
        outline-offset: -3px;
        font-weight: 700 !important;
    }

     
    .swr-pi-legend {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 0.5rem;
        margin-top: 1rem;
        font-size: 0.85rem;
        color: var(--swr-pi-label-color);
    }

    .swr-pi-legend-gradient {
        display: flex;
        height: 20px;
        width: 200px;
        border-radius: 3px;
        overflow: hidden;
    }

    .swr-pi-legend-gradient span {
        flex: 1;
    }

     
    .swr-pi-summary {
        background-color: var(--swr-pi-results-background-color);
        border-radius: 0.5rem;
        padding: 1.5rem;
        margin-top: 1.5rem;
        border: 1px solid var(--swr-pi-border-color);
    }

    .swr-pi-summary h4 {
        margin: 0 0 1rem 0;
        color: var(--swr-pi-text-color);
        font-size: 1.1rem;
    }

    .swr-pi-summary-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1rem;
    }

    .swr-pi-summary-item {
        text-align: center;
    }

    .swr-pi-summary-item .label {
        font-size: 0.85rem;
        color: var(--swr-pi-label-color);
        margin-bottom: 0.25rem;
    }

    .swr-pi-summary-item .value {
        font-size: 1.3rem;
        font-weight: 700;
        color: var(--swr-pi-text-color);
    }

    .swr-pi-summary-item .subtext {
        font-size: 0.8rem;
        color: var(--swr-pi-label-color);
    }

     
    @media (max-width: 600px) {
        .swr-pi-calculator {
            padding: 1rem;
        }

        .swr-pi-grid {
            font-size: 0.75rem;
        }

        .swr-pi-grid th,
        .swr-pi-grid td {
            padding: 0.4rem 0.25rem;
        }
    }
</style>

<div class="swr-pi-calculator">
    <h3>Investment Required for Passive Income</h3>
    <p class="swr-pi-subtitle">Calculate how much you need invested to generate your target monthly income at various Safe Withdrawal Rates</p>

    <div class="swr-pi-input-section">
        <div class="swr-pi-form-group">
            <label for="swr-pi-monthly-income">Target Monthly Income</label>
            <input type="number" id="swr-pi-monthly-income" value="3000" min="100" step="100" placeholder="$3,000">
        </div>
        <div class="swr-pi-form-group">
            <label for="swr-pi-currency">Currency</label>
            <select id="swr-pi-currency">
                <option value="$" selected>$ USD</option>
                <option value="€">€ EUR</option>
                <option value="£">£ GBP</option>
                <option value="¥">¥ JPY</option>
                <option value="A$">A$ AUD</option>
                <option value="C$">C$ CAD</option>
            </select>
        </div>
        <button class="swr-pi-button" id="swr-pi-calculate-btn">Calculate</button>
    </div>

    <div class="swr-pi-grid-container" id="swr-pi-results">
        
    </div>
</div>

<script>
(function() {
    'use strict';

    const monthlyIncomeInput = document.getElementById('swr-pi-monthly-income');
    const currencySelect = document.getElementById('swr-pi-currency');
    const calculateBtn = document.getElementById('swr-pi-calculate-btn');
    const resultsDiv = document.getElementById('swr-pi-results');

    
    const SWR_RATES = [3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0];

    
    const INCOME_MULTIPLIERS = [
        { mult: 10/3, label: '10x' },    
        { mult: 8/3, label: '8x' },
        { mult: 2, label: '6x' },
        { mult: 5/3, label: '5x' },
        { mult: 4/3, label: '4x' },
        { mult: 1, label: 'TARGET' },
        { mult: 2/3, label: '2x' },
        { mult: 1/3, label: '1x' },
        { mult: 1/6, label: '0.5x' },
        { mult: 1/30, label: '0.1x' }
    ];

    function formatCurrency(amount, currency) {
        if (amount >= 1000000) {
            return currency + (amount / 1000000).toFixed(2) + 'M';
        } else if (amount >= 1000) {
            return currency + (amount / 1000).toFixed(0) + 'K';
        }
        return currency + amount.toLocaleString(undefined, { maximumFractionDigits: 0 });
    }

    function formatIncome(amount, currency) {
        return currency + amount.toLocaleString(undefined, { maximumFractionDigits: 0 });
    }

    function calculateInvestmentRequired(monthlyIncome, swrRate) {
        
        const annualIncome = monthlyIncome * 12;
        return annualIncome / (swrRate / 100);
    }

    function getCellColorClass(investment, minInvestment, maxInvestment) {
        
        const range = maxInvestment - minInvestment;
        if (range === 0) return 'swr-pi-cell-5';

        const normalized = (investment - minInvestment) / range;
        const colorIndex = Math.min(10, Math.max(1, Math.ceil(normalized * 10)));
        return `swr-pi-cell-${colorIndex}`;
    }

    function generateGrid() {
        const targetMonthly = parseFloat(monthlyIncomeInput.value) || 3000;
        const currency = currencySelect.value;

        
        const incomeSteps = generateIncomeSteps(targetMonthly);

        
        let allInvestments = [];
        incomeSteps.forEach(income => {
            SWR_RATES.forEach(rate => {
                allInvestments.push(calculateInvestmentRequired(income, rate));
            });
        });

        const minInvestment = Math.min(...allInvestments);
        const maxInvestment = Math.max(...allInvestments);

        
        let html = '<table class="swr-pi-grid">';

        
        html += '<thead><tr>';
        html += '<th>Monthly Passive<br>Income</th>';
        SWR_RATES.forEach(rate => {
            const isStandard = rate === 4.0;
            html += `<th>${rate.toFixed(1)}%${isStandard ? '<br><small>(Standard)</small>' : ''}</th>`;
        });
        html += '</tr></thead>';

        
        html += '<tbody>';
        incomeSteps.forEach(income => {
            const isTarget = income === targetMonthly;
            html += '<tr>';
            html += `<td>${formatIncome(income, currency)}/mo</td>`;

            SWR_RATES.forEach(rate => {
                const investment = calculateInvestmentRequired(income, rate);
                const colorClass = getCellColorClass(investment, minInvestment, maxInvestment);
                const highlightClass = (isTarget && rate === 4.0) ? ' swr-pi-highlight' : '';
                html += `<td class="${colorClass}${highlightClass}">${formatCurrency(investment, currency)}</td>`;
            });

            html += '</tr>';
        });

        
        html += '<tr>';
        html += '<td style="font-size: 0.8rem;">SWR Rate →</td>';
        SWR_RATES.forEach(rate => {
            html += `<td style="background-color: var(--swr-pi-header-background); color: var(--swr-pi-header-text); font-size: 0.85rem;">${rate.toFixed(1)}%</td>`;
        });
        html += '</tr>';

        html += '</tbody></table>';

        
        html += `
            <div class="swr-pi-legend">
                <span>Lower Investment</span>
                <div class="swr-pi-legend-gradient">
                    <span style="background: #2ecc71;"></span>
                    <span style="background: #58d68d;"></span>
                    <span style="background: #82e0aa;"></span>
                    <span style="background: #abebc6;"></span>
                    <span style="background: #d5f5e3;"></span>
                    <span style="background: #fcf3cf;"></span>
                    <span style="background: #f9e79f;"></span>
                    <span style="background: #f5b041;"></span>
                    <span style="background: #eb984e;"></span>
                    <span style="background: #e74c3c;"></span>
                </div>
                <span>Higher Investment</span>
            </div>
        `;

        
        const targetAt4 = calculateInvestmentRequired(targetMonthly, 4.0);
        const targetAt3 = calculateInvestmentRequired(targetMonthly, 3.0);
        const targetAt5 = calculateInvestmentRequired(targetMonthly, 5.0);
        const annualIncome = targetMonthly * 12;

        html += `
            <div class="swr-pi-summary">
                <h4>Summary for ${formatIncome(targetMonthly, currency)}/month (${formatIncome(annualIncome, currency)}/year)</h4>
                <div class="swr-pi-summary-grid">
                    <div class="swr-pi-summary-item">
                        <div class="label">Conservative (3% SWR)</div>
                        <div class="value">${formatCurrency(targetAt3, currency)}</div>
                        <div class="subtext">Higher safety margin</div>
                    </div>
                    <div class="swr-pi-summary-item">
                        <div class="label">Standard (4% SWR)</div>
                        <div class="value">${formatCurrency(targetAt4, currency)}</div>
                        <div class="subtext">Traditional "4% Rule"</div>
                    </div>
                    <div class="swr-pi-summary-item">
                        <div class="label">Aggressive (5% SWR)</div>
                        <div class="value">${formatCurrency(targetAt5, currency)}</div>
                        <div class="subtext">Higher withdrawal risk</div>
                    </div>
                </div>
            </div>
        `;

        resultsDiv.innerHTML = html;
    }

    function generateIncomeSteps(target) {
        
        
        const steps = [];

        
        const magnitude = Math.pow(10, Math.floor(Math.log10(target)));
        const roundTo = magnitude >= 1000 ? 500 : (magnitude >= 100 ? 100 : 50);

        
        const multipliers = [10, 8, 6, 5, 4, 3, 2, 1.5, 1, 0.75, 0.5, 0.25, 0.1];

        multipliers.forEach(mult => {
            let value = target * mult;
            
            if (value >= 10000) {
                value = Math.round(value / 1000) * 1000;
            } else if (value >= 1000) {
                value = Math.round(value / 500) * 500;
            } else if (value >= 100) {
                value = Math.round(value / 100) * 100;
            } else {
                value = Math.round(value / 50) * 50;
            }

            if (value >= 100 && !steps.includes(value)) {
                steps.push(value);
            }
        });

        
        if (!steps.includes(target)) {
            steps.push(target);
        }

        
        steps.sort((a, b) => b - a);

        
        if (steps.length > 12) {
            const targetIndex = steps.indexOf(target);
            
            const startIndex = Math.max(0, targetIndex - 5);
            const endIndex = Math.min(steps.length, startIndex + 12);
            return steps.slice(startIndex, endIndex);
        }

        return steps;
    }

    
    calculateBtn.addEventListener('click', generateGrid);

    monthlyIncomeInput.addEventListener('keypress', (e) => {
        if (e.key === 'Enter') {
            generateGrid();
        }
    });

    
    generateGrid();
})();
</script>

<hr>

<h2 class="relative group">How to use this calculator
    <div id="how-to-use-this-calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-use-this-calculator" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Step 1: Enter your target monthly income
    <div id="step-1-enter-your-target-monthly-income" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-enter-your-target-monthly-income" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Type in how much passive income you want each month. This should cover all your living expenses and a buffer for unexpected costs.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Not sure what number to use?</strong> Add up your monthly expenses:</p></div></div><table>
	<thead>
			<tr>
					<th>Category</th>
					<th>Examples</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Housing</strong></td>
					<td>Rent, mortgage, property taxes</td>
			</tr>
			<tr>
					<td><strong>Utilities</strong></td>
					<td>Electric, water, internet, phone</td>
			</tr>
			<tr>
					<td><strong>Food</strong></td>
					<td>Groceries, dining out</td>
			</tr>
			<tr>
					<td><strong>Transport</strong></td>
					<td>Car payment, fuel, insurance, transit</td>
			</tr>
			<tr>
					<td><strong>Insurance</strong></td>
					<td>Health, life, home</td>
			</tr>
			<tr>
					<td><strong>Entertainment</strong></td>
					<td>Subscriptions, hobbies, travel</td>
			</tr>
			<tr>
					<td><strong>Buffer</strong></td>
					<td>Add 10-20% extra for unexpected costs</td>
			</tr>
	</tbody>
</table>

<h3 class="relative group">Step 2: Select your currency
    <div id="step-2-select-your-currency" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-select-your-currency" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Choose your local currency from the dropdown. The calculator supports USD, EUR, GBP, JPY, AUD, and CAD.</p>

<h3 class="relative group">Step 3: Click calculate
    <div id="step-3-click-calculate" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-click-calculate" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Hit the button and the grid populates instantly.</p>
<hr>

<h2 class="relative group">Reading the results
    <div id="reading-the-results" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#reading-the-results" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">The grid explained
    <div id="the-grid-explained" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-grid-explained" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The table shows investment amounts required for:</p>
<table>
	<thead>
			<tr>
					<th>Element</th>
					<th>What It Shows</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Rows</strong></td>
					<td>Different monthly income levels (0.1x to 10x your target)</td>
			</tr>
			<tr>
					<td><strong>Columns</strong></td>
					<td>Different SWR rates (3% to 6%)</td>
			</tr>
			<tr>
					<td><strong>Green cells</strong></td>
					<td>Lower investment required (more achievable)</td>
			</tr>
			<tr>
					<td><strong>Red cells</strong></td>
					<td>Higher investment required (bigger target)</td>
			</tr>
			<tr>
					<td><strong>Highlighted cell</strong></td>
					<td>Your exact target at the standard 4% SWR</td>
			</tr>
	</tbody>
</table>

<h3 class="relative group">The summary section
    <div id="the-summary-section" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-summary-section" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Below the grid, you'll see three key numbers for your target income:</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Conservative (3%)">
          <span class="flex items-center gap-1">
            
            Conservative (3%)
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Standard (4%)">
          <span class="flex items-center gap-1">
            
            Standard (4%)
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Aggressive (5%)">
          <span class="flex items-center gap-1">
            
            Aggressive (5%)
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <p><strong>Highest investment, lowest risk</strong></p>
<p>Best for:</p>
<ul>
<li>Early retirees (before 50)</li>
<li>Risk-averse investors</li>
<li>Those with no other income sources</li>
<li>40+ year retirement horizons</li>
</ul>

      </div><div class="tab__panel " data-tab-index="1">
        <p><strong>The classic &quot;4% rule&quot; amount</strong></p>
<p>Best for:</p>
<ul>
<li>Traditional 30-year retirement</li>
<li>Diversified portfolios</li>
<li>Those comfortable with some volatility</li>
<li>Flexibility to adjust spending</li>
</ul>

      </div><div class="tab__panel " data-tab-index="2">
        <p><strong>Lower investment, higher risk</strong></p>
<p>Best for:</p>
<ul>
<li>Those with other income sources</li>
<li>Shorter time horizons</li>
<li>Willingness to adjust lifestyle</li>
<li>Higher risk tolerance</li>
</ul>

      </div></div>
</div>

<hr>

<h2 class="relative group">Quick example
    <div id="quick-example" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#quick-example" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #60a5fa"
    
    >
    
  </span>

  <span
    
      style="color: #e2e8f0"
    
    ><p><strong>Target:</strong> $3,000/month passive income</p>
<table>
	<thead>
			<tr>
					<th>SWR Rate</th>
					<th>Investment Needed</th>
					<th>Risk Level</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>3%</td>
					<td>$1,200,000</td>
					<td>Conservative</td>
			</tr>
			<tr>
					<td>4%</td>
					<td>$900,000</td>
					<td>Standard</td>
			</tr>
			<tr>
					<td>5%</td>
					<td>$720,000</td>
					<td>Aggressive</td>
			</tr>
	</tbody>
</table>
<p>The difference between conservative and aggressive is <strong>$480,000</strong>. That's why understanding your risk tolerance matters.</p>
</span>
</div>

<hr>

<h2 class="relative group">Tips for best results
    <div id="tips-for-best-results" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tips-for-best-results" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="important">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Key considerations:</strong></p>
<ul>
<li><strong>Start conservative</strong> — If retiring early (before 50), lean toward 3-3.5% SWR</li>
<li><strong>Include taxes</strong> — Your withdrawal may need to be higher depending on your country's tax rules</li>
<li><strong>Check multiple scenarios</strong> — Look at both &quot;minimum viable&quot; and &quot;comfortable&quot; income levels</li>
<li><strong>Revisit annually</strong> — Recalculate as your expenses and goals change</li>
</ul></div></div><hr>

<h2 class="relative group">Next steps
    <div id="next-steps" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#next-steps" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #0f5132"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #75b798"
    
    >
    
  </span>

  <span
    
      style="color: #d1e7dd"
    
    ><p><strong>Now that you know your target number:</strong></p>
<ol>
<li><strong>Calculate your current savings rate</strong> — How much are you saving each month?</li>
<li><strong>Project when you'll reach your goal</strong> — Use a compound interest calculator</li>
<li><strong>Consider ways to close the gap faster</strong> — Increase income or reduce expenses</li>
</ol></span>
</div>

<hr>

<h2 class="relative group">Related resources
    <div id="related-resources" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#related-resources" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #60a5fa"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M172.5 131.1C228.1 75.51 320.5 75.51 376.1 131.1C426.1 181.1 433.5 260.8 392.4 318.3L391.3 319.9C381 334.2 361 337.6 346.7 327.3C332.3 317 328.9 297 339.2 282.7L340.3 281.1C363.2 249 359.6 205.1 331.7 177.2C300.3 145.8 249.2 145.8 217.7 177.2L105.5 289.5C73.99 320.1 73.99 372 105.5 403.5C133.3 431.4 177.3 435 209.3 412.1L210.9 410.1C225.3 400.7 245.3 404 255.5 418.4C265.8 432.8 262.5 452.8 248.1 463.1L246.5 464.2C188.1 505.3 110.2 498.7 60.21 448.8C3.741 392.3 3.741 300.7 60.21 244.3L172.5 131.1zM467.5 380C411 436.5 319.5 436.5 263 380C213 330 206.5 251.2 247.6 193.7L248.7 192.1C258.1 177.8 278.1 174.4 293.3 184.7C307.7 194.1 311.1 214.1 300.8 229.3L299.7 230.9C276.8 262.1 280.4 306.9 308.3 334.8C339.7 366.2 390.8 366.2 422.3 334.8L534.5 222.5C566 191 566 139.1 534.5 108.5C506.7 80.63 462.7 76.99 430.7 99.9L429.1 101C414.7 111.3 394.7 107.1 384.5 93.58C374.2 79.2 377.5 59.21 391.9 48.94L393.5 47.82C451 6.731 529.8 13.25 579.8 63.24C636.3 119.7 636.3 211.3 579.8 267.7L467.5 380z"/></svg>
</span>
  </span>

  <span
    
      style="color: #e2e8f0"
    
    ><p><strong>Explore More:</strong></p>
<ul>
<li><strong><a href="/posts/swr-passive-income-investment-required/" >SWR Passive Income Guide</a></strong> — Full explanation of freedom numbers</li>
<li><strong><a href="/calculators/interactive_safe_withdrawal_rate_calculator/" >SWR Calculator</a></strong> — Stress-test your withdrawal rate with 150+ years of data</li>
<li><strong><a href="/posts/swr-checklist-practical-steps-for-retirement-withdrawal-planning/" >SWR Checklist</a></strong> — Step-by-step retirement planning guide</li>
<li><strong><a href="/calculators/interactive_calculator_to_your_fire_number/" >FIRE Calculator</a></strong> — Calculate your financial independence number</li>
<li><strong><a href="/calculators/how-to-use-savings-rate-calculator/" >Savings Rate Calculator</a></strong> — Find out how much you're actually saving</li>
</ul></span>
</div>

<hr>
<p><strong>Questions about the calculator?</strong> Drop a comment below!</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This calculator reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/swr-passive-income-calculator.webp" medium="image"/></item><item><title>How to Use the Savings Rate Calculator</title><link>https://libreleo.com/calculators/how-to-use-savings-rate-calculator/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/calculators/how-to-use-savings-rate-calculator/</guid><description>Step-by-step guide to calculating your savings rate and understanding what percentage of your income you're actually saving</description><content:encoded><![CDATA[<span class="flex cursor-pointer">
  
  
  
  
    <span
      class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
  
    
Updated: 19/06/2026

  </span>
</span>


<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Your savings rate is probably the most important number in personal finance. Not your salary. Not your investment returns. Your savings rate. Use this calculator to find yours.
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Want to understand the full power of your savings rate?</strong> Read my complete guide: <a href="/posts/savings-rate-fire-guide/" >Why Your Savings Rate Matters More Than Investment Returns</a></p></div></div><hr>

<h2 class="relative group">Savings Rate Calculator
    <div id="savings-rate-calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#savings-rate-calculator" aria-label="Anchor">#</a>
    </span>
    
</h2>

<style>
    :root {
        --sr-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
        --sr-background-color: #ffffff;
        --sr-text-color: #1a202c;
        --sr-text-secondary: #4a5568;
        --sr-border-color: #e2e8f0;
        --sr-input-bg: #ffffff;
        --sr-input-border: #cbd5e0;
        --sr-button-bg: #3b82f6;
        --sr-button-hover: #2563eb;
        --sr-button-text: #ffffff;
        --sr-result-bg: #f7fafc;
        --sr-error-bg: #fee2e2;
        --sr-error-border: #fca5a5;
        --sr-error-text: #991b1b;
        --sr-green-light: #d1fae5;
        --sr-green-border: #6ee7b7;
        --sr-green-text: #065f46;
        --sr-blue-light: #dbeafe;
        --sr-blue-border: #93c5fd;
        --sr-blue-text: #1e40af;
        --sr-purple-light: #e9d5ff;
        --sr-purple-border: #c084fc;
        --sr-purple-text: #6b21a8;
        --sr-bar-savings: #10b981;
        --sr-bar-spending: #ef4444;
        --sr-benchmark-bar: #3b82f6;
    }

    .dark {
        --sr-background-color: #2d2d2d;
        --sr-text-color: #f8f9fa;
        --sr-text-secondary: #adb5bd;
        --sr-border-color: #444;
        --sr-input-bg: #333;
        --sr-input-border: #555;
        --sr-button-bg: #3b82f6;
        --sr-button-hover: #2563eb;
        --sr-button-text: #ffffff;
        --sr-result-bg: #1a1a1a;
        --sr-error-bg: #7f1d1d;
        --sr-error-border: #991b1b;
        --sr-error-text: #fca5a5;
        --sr-green-light: #064e3b;
        --sr-green-border: #059669;
        --sr-green-text: #6ee7b7;
        --sr-blue-light: #1e3a8a;
        --sr-blue-border: #3b82f6;
        --sr-blue-text: #93c5fd;
        --sr-purple-light: #581c87;
        --sr-purple-border: #9333ea;
        --sr-purple-text: #e9d5ff;
        --sr-bar-savings: #10b981;
        --sr-bar-spending: #ef4444;
        --sr-benchmark-bar: #3b82f6;
    }

    .sr-calculator {
        font-family: var(--sr-font-family);
        background-color: var(--sr-background-color);
        color: var(--sr-text-color);
        border: 1px solid var(--sr-border-color);
        border-radius: 0.75rem;
        padding: 2rem;
        margin: 2rem auto;
        max-width: 64rem;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    }

    .sr-header {
        margin-bottom: 2rem;
    }

    .sr-header h2 {
        margin: 0 0 0.5rem 0;
        font-size: 1.875rem;
        font-weight: 700;
        color: var(--sr-text-color);
    }

    .sr-header p {
        margin: 0;
        color: var(--sr-text-secondary);
    }

    .sr-inputs {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        margin-bottom: 2rem;
    }

    .sr-input-group label {
        display: block;
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--sr-text-color);
        margin-bottom: 0.5rem;
    }

    .sr-input-group label span {
        font-weight: 400;
        color: var(--sr-text-secondary);
        margin-left: 0.25rem;
    }

    .sr-input-wrapper {
        position: relative;
    }

    .sr-input-wrapper .currency {
        position: absolute;
        left: 0.75rem;
        top: 50%;
        transform: translateY(-50%);
        color: var(--sr-text-secondary);
        font-size: 1.125rem;
    }

    .sr-input-group input {
        width: 100%;
        padding: 0.75rem 1rem 0.75rem 2rem;
        border: 1px solid var(--sr-input-border);
        border-radius: 0.5rem;
        background-color: var(--sr-input-bg);
        color: var(--sr-text-color);
        font-size: 1.125rem;
        box-sizing: border-box;
    }

    .sr-input-group input:focus {
        outline: none;
        border-color: var(--sr-button-bg);
        box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
    }

    .sr-input-group .hint {
        margin-top: 0.25rem;
        font-size: 0.75rem;
        color: var(--sr-text-secondary);
    }

    .sr-error {
        display: none;
        margin-bottom: 1.5rem;
        padding: 1rem;
        background-color: var(--sr-error-bg);
        border: 1px solid var(--sr-error-border);
        border-radius: 0.5rem;
    }

    .sr-error.visible {
        display: block;
    }

    .sr-error p {
        margin: 0;
        color: var(--sr-error-text);
        font-size: 0.875rem;
        font-weight: 500;
    }

    .sr-results {
        display: none;
    }

    .sr-results.visible {
        display: block;
    }

    .sr-rate-display {
        text-align: center;
        margin-bottom: 2rem;
    }

    .sr-rate-number {
        font-size: 3.75rem;
        font-weight: 700;
        background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        margin-bottom: 0.5rem;
    }

    .sr-rate-label {
        color: var(--sr-text-secondary);
        font-size: 0.875rem;
        text-transform: uppercase;
        letter-spacing: 0.05em;
    }

    .sr-visual-bar {
        position: relative;
        height: 3rem;
        background-color: var(--sr-result-bg);
        border-radius: 9999px;
        overflow: hidden;
        margin-bottom: 2rem;
    }

    .sr-savings-bar, .sr-spending-bar {
        position: absolute;
        top: 0;
        height: 100%;
        display: flex;
        align-items: center;
        padding: 0 0.75rem;
        transition: width 0.5s ease;
    }

    .sr-savings-bar {
        left: 0;
        background: linear-gradient(90deg, #10b981 0%, #059669 100%);
        justify-content: flex-end;
    }

    .sr-spending-bar {
        right: 0;
        background: linear-gradient(90deg, #f87171 0%, #ef4444 100%);
        justify-content: flex-start;
    }

    .sr-bar-text {
        color: white;
        font-weight: 600;
        font-size: 0.875rem;
    }

    .sr-bar-labels {
        display: flex;
        justify-content: space-between;
        margin-top: 0.5rem;
        font-size: 0.75rem;
        color: var(--sr-text-secondary);
    }

    .sr-breakdown {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1rem;
        margin-bottom: 2rem;
    }

    .sr-card {
        padding: 1rem;
        border-radius: 0.5rem;
        border: 1px solid;
    }

    .sr-card.green {
        background-color: var(--sr-green-light);
        border-color: var(--sr-green-border);
    }

    .sr-card.blue {
        background-color: var(--sr-blue-light);
        border-color: var(--sr-blue-border);
    }

    .sr-card.purple {
        background-color: var(--sr-purple-light);
        border-color: var(--sr-purple-border);
    }

    .sr-card-label {
        font-size: 0.75rem;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        margin-bottom: 0.25rem;
    }

    .sr-card.green .sr-card-label {
        color: var(--sr-green-text);
    }

    .sr-card.blue .sr-card-label {
        color: var(--sr-blue-text);
    }

    .sr-card.purple .sr-card-label {
        color: var(--sr-purple-text);
    }

    .sr-card-value {
        font-size: 1.5rem;
        font-weight: 700;
    }

    .sr-card.green .sr-card-value {
        color: var(--sr-green-text);
    }

    .sr-card.blue .sr-card-value {
        color: var(--sr-blue-text);
    }

    .sr-card.purple .sr-card-value {
        color: var(--sr-purple-text);
    }

    .sr-fire-note {
        margin-bottom: 2rem;
        padding: 0.75rem 1rem;
        background-color: var(--sr-result-bg);
        border-left: 3px solid var(--sr-text-secondary);
        border-radius: 0.25rem;
    }

    .sr-fire-note p {
        margin: 0;
        font-size: 0.8125rem;
        color: var(--sr-text-secondary);
        line-height: 1.5;
    }

    .sr-fire-note strong {
        color: var(--sr-text-color);
    }

    .sr-benchmark {
        background-color: var(--sr-result-bg);
        border-radius: 0.5rem;
        padding: 1.5rem;
        margin-bottom: 1.5rem;
    }

    .sr-benchmark h3 {
        margin: 0 0 1rem 0;
        font-size: 1.125rem;
        font-weight: 600;
        color: var(--sr-text-color);
    }

    .sr-benchmark-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 0.75rem;
    }

    .sr-benchmark-label {
        font-size: 0.875rem;
        color: var(--sr-text-color);
        min-width: 150px;
    }

    .sr-benchmark-bar-container {
        flex: 1;
        margin: 0 1rem;
        height: 0.5rem;
        background-color: var(--sr-input-bg);
        border-radius: 9999px;
        overflow: hidden;
    }

    .sr-benchmark-bar-fill {
        height: 100%;
        transition: width 0.5s ease;
    }

    .sr-benchmark-percent {
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--sr-text-secondary);
        min-width: 3rem;
        text-align: right;
    }

    .sr-interpretation {
        padding: 1rem;
        border-left: 4px solid;
        border-radius: 0.25rem;
    }

    .sr-interpretation p {
        margin: 0;
        font-size: 0.875rem;
        color: var(--sr-text-color);
    }

    .sr-actions {
        display: flex;
        gap: 0.75rem;
        margin-top: 1.5rem;
    }

    .sr-button {
        flex: 1;
        padding: 0.75rem 1.5rem;
        border: none;
        border-radius: 0.5rem;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s;
    }

    .sr-button-primary {
        background-color: var(--sr-button-bg);
        color: var(--sr-button-text);
    }

    .sr-button-primary:hover {
        background-color: var(--sr-button-hover);
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    }

    .sr-button-secondary {
        background-color: var(--sr-input-bg);
        color: var(--sr-text-color);
        border: 1px solid var(--sr-border-color);
    }

    .sr-button-secondary:hover {
        background-color: var(--sr-result-bg);
    }

    @media (max-width: 640px) {
        .sr-rate-number {
            font-size: 3rem;
        }

        .sr-breakdown {
            grid-template-columns: 1fr;
        }
    }
</style>

<div class="sr-calculator">

    
<script>
(function () {
  if (window.finfreeCurrency) return;  

  var SYMBOLS = {
    USD: '$',
    EUR: '€',
    GBP: '£',
    CHF: 'CHF ',
    AED: 'AED ',
    SGD: 'S$',
    HKD: 'HK$',
    CNY: 'CN¥',
    PHP: '₱',
    MYR: 'RM ',
    INR: '₹'
  };

  var STORAGE_KEY = 'finfree-currency';
  var EVENT_NAME = 'finfree-currency-change';

  function safeRead() {
    try { return localStorage.getItem(STORAGE_KEY) || 'USD'; } catch (e) { return 'USD'; }
  }
  function safeWrite(code) {
    try { localStorage.setItem(STORAGE_KEY, code); } catch (e) {}
  }

  window.finfreeCurrency = {
    getCode: function () { return safeRead(); },
    getSymbol: function () { return SYMBOLS[safeRead()] || '$'; },
    getSymbolFor: function (code) { return SYMBOLS[code] || '$'; },
    set: function (code) {
      if (!SYMBOLS[code]) return;
      safeWrite(code);
      var detail = { code: code, symbol: SYMBOLS[code] };
      document.dispatchEvent(new CustomEvent(EVENT_NAME, { detail: detail }));
    },
    EVENT_NAME: EVENT_NAME,
    SYMBOLS: SYMBOLS
  };

  
  document.addEventListener(EVENT_NAME, function (e) {
    var selectors = document.querySelectorAll('select[data-finfree-currency]');
    selectors.forEach(function (s) {
      if (s.value !== e.detail.code) s.value = e.detail.code;
    });
  });

  document.addEventListener('DOMContentLoaded', function () {
    var current = safeRead();
    var selectors = document.querySelectorAll('select[data-finfree-currency]');
    selectors.forEach(function (s) {
      s.value = current;
      s.addEventListener('change', function () {
        window.finfreeCurrency.set(s.value);
      });
    });
  });
})();
</script>

<style>
  .finfree-currency-selector {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-bottom: 14px;
    font-size: 0.85em;
    color: var(--muted, #666);
  }
  .finfree-currency-selector select {
    padding: 4px 8px;
    border: 1px solid var(--input-border, #ced4da);
    border-radius: 4px;
    background-color: var(--input-bg, #ffffff);
    color: var(--card-text, #212529);
    font-size: 0.95em;
  }
</style>

<div class="finfree-currency-selector">
  <label for="finfree-currency-select-1782461070868172000">Currency:</label>
  <select id="finfree-currency-select-1782461070868174000" data-finfree-currency>
    <option value="USD">USD ($)</option>
    <option value="EUR">EUR (€)</option>
    <option value="GBP">GBP (£)</option>
    <option value="CHF">CHF (Fr.)</option>
    <option value="AED">AED (د.إ)</option>
    <option value="SGD">SGD (S$)</option>
    <option value="HKD">HKD (HK$)</option>
    <option value="CNY">CNY (¥)</option>
    <option value="PHP">PHP (₱)</option>
    <option value="MYR">MYR (RM)</option>
    <option value="INR">INR (₹)</option>
  </select>
</div>


    
    <div class="sr-header">
        <h2>Savings Rate Calculator</h2>
        <p>Calculate what percentage of your income you're actually saving</p>
    </div>

    
    <div class="sr-inputs">
        
        <div class="sr-input-group">
            <label for="sr-monthly-income">
                Monthly Take-Home Income
                <span>(after taxes)</span>
            </label>
            <div class="sr-input-wrapper">
                <span class="currency" data-currency-prefix>$</span>
                <input type="number" id="sr-monthly-income" placeholder="e.g. 5000" min="0" step="100">
            </div>
            <p class="hint">Include all sources of income after taxes</p>
        </div>

        
        <div class="sr-input-group">
            <label for="sr-monthly-spending">
                Monthly Spending
                <span>(all expenses)</span>
            </label>
            <div class="sr-input-wrapper">
                <span class="currency" data-currency-prefix>$</span>
                <input type="number" id="sr-monthly-spending" placeholder="e.g. 3500" min="0" step="100">
            </div>
            <p class="hint">Include rent, food, entertainment, everything</p>
        </div>
    </div>

    
    <div class="sr-fire-note">
        <p><strong>Assumptions:</strong> "Years to FIRE" assumes 7% annual returns and a 4% safe withdrawal rate (25x annual expenses). It's a rough estimate; your real timeline depends on market returns, taxes, currency, and life changes.</p>
    </div>

    
    <div id="sr-error" class="sr-error">
        <p></p>
    </div>

    
    <div id="sr-results" class="sr-results">
        
        <div class="sr-rate-display">
            <div id="sr-rate-number" class="sr-rate-number">0%</div>
            <p class="sr-rate-label">Your Savings Rate</p>
        </div>

        
        <div class="sr-visual-bar">
            <div id="sr-savings-bar" class="sr-savings-bar" style="width: 0%;">
                <span id="sr-savings-text" class="sr-bar-text"></span>
            </div>
            <div id="sr-spending-bar" class="sr-spending-bar" style="width: 0%;">
                <span id="sr-spending-text" class="sr-bar-text"></span>
            </div>
        </div>
        <div class="sr-bar-labels">
            <span>💰 Savings</span>
            <span>💸 Spending</span>
        </div>

        
        <div class="sr-breakdown">
            <div class="sr-card green">
                <div class="sr-card-label">Monthly Savings</div>
                <div id="sr-monthly-savings" class="sr-card-value">$0</div>
            </div>
            <div class="sr-card blue">
                <div class="sr-card-label">Annual Savings</div>
                <div id="sr-annual-savings" class="sr-card-value">$0</div>
            </div>
            <div class="sr-card purple">
                <div class="sr-card-label">Years to FIRE</div>
                <div id="sr-years-fire" class="sr-card-value">--</div>
            </div>
        </div>

        
        <div class="sr-fire-note">
            <p><strong>Note:</strong> Years to FIRE assumes 7% annual returns and 4% safe withdrawal rate (25x expenses). This is a rough estimate - actual timelines vary based on market performance, taxes, life changes, and personal circumstances.</p>
        </div>

        
        <div class="sr-benchmark">
            <h3>How Do You Compare?</h3>
            <div class="sr-benchmark-row">
                <span class="sr-benchmark-label">US Average (14%)</span>
                <div class="sr-benchmark-bar-container">
                    <div class="sr-benchmark-bar-fill" style="width: 14%; background-color: #9ca3af;"></div>
                </div>
                <span class="sr-benchmark-percent">14%</span>
            </div>
            <div class="sr-benchmark-row">
                <span class="sr-benchmark-label">FIRE Community (50%+)</span>
                <div class="sr-benchmark-bar-container">
                    <div class="sr-benchmark-bar-fill" style="width: 50%; background-color: #10b981;"></div>
                </div>
                <span class="sr-benchmark-percent">50%+</span>
            </div>
            <div class="sr-benchmark-row">
                <span class="sr-benchmark-label" style="font-weight: 600;">Your Rate</span>
                <div class="sr-benchmark-bar-container">
                    <div id="sr-your-bar" class="sr-benchmark-bar-fill" style="width: 0%; background-color: var(--sr-benchmark-bar);"></div>
                </div>
                <span id="sr-your-percent" class="sr-benchmark-percent" style="font-weight: 600;">0%</span>
            </div>
        </div>

        
        <div id="sr-interpretation" class="sr-interpretation">
            <p></p>
        </div>
    </div>

    
    <div class="sr-actions">
        <button onclick="srCalculate()" class="sr-button sr-button-primary">Calculate</button>
        <button onclick="srReset()" class="sr-button sr-button-secondary">Reset</button>
    </div>
</div>

<script>
function _srSym() { return (window.finfreeCurrency && window.finfreeCurrency.getSymbol()) || '$'; }
function _srSyncSymbols() {
  var sym = _srSym();
  document.querySelectorAll('.sr-calculator [data-currency-prefix]').forEach(function (el) { el.textContent = sym; });
}
document.addEventListener('finfree-currency-change', function () { _srSyncSymbols(); try { srCalculate(); } catch (e) {} });
document.addEventListener('DOMContentLoaded', _srSyncSymbols);

function srCalculate() {
    const income = parseFloat(document.getElementById('sr-monthly-income').value) || 0;
    const spending = parseFloat(document.getElementById('sr-monthly-spending').value) || 0;

    const errorDiv = document.getElementById('sr-error');
    const resultsDiv = document.getElementById('sr-results');

    errorDiv.classList.remove('visible');

    if (income <= 0) {
        srShowError('Please enter a valid monthly income greater than 0');
        resultsDiv.classList.remove('visible');
        return;
    }

    if (spending < 0) {
        srShowError('Monthly spending cannot be negative');
        resultsDiv.classList.remove('visible');
        return;
    }

    if (spending > income) {
        srShowError('Your spending exceeds your income. You have a negative savings rate.');
    }

    const monthlySavings = income - spending;
    const savingsRate = (monthlySavings / income) * 100;
    const annualSavings = monthlySavings * 12;

    let yearsToFIRE = '--';
    if (savingsRate > 0 && monthlySavings > 0) {
        const returnRate = 0.07;
        const expenseMultiplier = 25;
        const annualSpending = spending * 12;
        const x = (expenseMultiplier * annualSpending) / annualSavings;
        if (x > 1) {
            yearsToFIRE = Math.ceil(Math.log(1 + x) / Math.log(1 + returnRate)) + ' years';
        } else {
            yearsToFIRE = '0 years';
        }
    }

    document.getElementById('sr-rate-number').textContent = savingsRate.toFixed(1) + '%';
    document.getElementById('sr-monthly-savings').textContent = _srSym() + monthlySavings.toLocaleString('en-US', { maximumFractionDigits: 0 });
    document.getElementById('sr-annual-savings').textContent = _srSym() + annualSavings.toLocaleString('en-US', { maximumFractionDigits: 0 });
    document.getElementById('sr-years-fire').textContent = yearsToFIRE;

    const savingsPercent = Math.max(0, Math.min(100, savingsRate));
    const spendingPercent = 100 - savingsPercent;

    document.getElementById('sr-savings-bar').style.width = savingsPercent + '%';
    document.getElementById('sr-spending-bar').style.width = spendingPercent + '%';

    if (savingsPercent > 0) {
        document.getElementById('sr-savings-text').textContent = savingsPercent.toFixed(0) + '%';
    } else {
        document.getElementById('sr-savings-text').textContent = '';
    }

    if (spendingPercent > 0) {
        document.getElementById('sr-spending-text').textContent = spendingPercent.toFixed(0) + '%';
    } else {
        document.getElementById('sr-spending-text').textContent = '';
    }

    document.getElementById('sr-your-bar').style.width = Math.min(100, savingsPercent) + '%';
    document.getElementById('sr-your-percent').textContent = savingsPercent.toFixed(0) + '%';

    srUpdateInterpretation(savingsRate);

    resultsDiv.classList.add('visible');
}

function srShowError(message) {
    const errorDiv = document.getElementById('sr-error');
    errorDiv.querySelector('p').textContent = message;
    errorDiv.classList.add('visible');
}

function srUpdateInterpretation(rate) {
    const interpDiv = document.getElementById('sr-interpretation');
    let message = '';
    let style = '';

    if (rate < 0) {
        message = '⚠️ Warning: You\'re spending more than you earn. Focus on reducing expenses or increasing income to avoid debt.';
        style = 'background-color: var(--sr-error-bg); border-color: var(--sr-error-border);';
    } else if (rate < 10) {
        message = '📊 Below average: Your savings rate is below the US average. Small increases here can make a big difference over time.';
        style = 'background-color: #fed7aa; border-color: #fb923c;';
    } else if (rate < 20) {
        message = '✅ Good start: You\'re saving at or above the US average (14%). Keep building this habit!';
        style = 'background-color: #98884a; border-color: #fbbf24;';
    } else if (rate < 40) {
        message = '💪 Strong savings: You\'re well above average. You\'re on track for financial security.';
        style = 'background-color: var(--sr-green-light); border-color: var(--sr-green-border);';
    } else if (rate < 60) {
        message = '🚀 Excellent: You\'re in FIRE territory! At this rate, early retirement is within reach.';
        style = 'background-color: var(--sr-blue-light); border-color: var(--sr-blue-border);';
    } else {
        message = '🏆 Outstanding: You\'re crushing it! This savings rate will accelerate your path to financial independence.';
        style = 'background-color: var(--sr-purple-light); border-color: var(--sr-purple-border);';
    }

    interpDiv.setAttribute('style', style);
    interpDiv.querySelector('p').textContent = message;
}

function srReset() {
    document.getElementById('sr-monthly-income').value = '';
    document.getElementById('sr-monthly-spending').value = '';
    document.getElementById('sr-results').classList.remove('visible');
    document.getElementById('sr-error').classList.remove('visible');
}

document.getElementById('sr-monthly-income').addEventListener('keypress', function(e) {
    if (e.key === 'Enter') srCalculate();
});

document.getElementById('sr-monthly-spending').addEventListener('keypress', function(e) {
    if (e.key === 'Enter') srCalculate();
});
</script>

<hr>

<h2 class="relative group">How to Use This Calculator
    <div id="how-to-use-this-calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-use-this-calculator" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Step 1: Enter your monthly take-home income
    <div id="step-1-enter-your-monthly-take-home-income" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-enter-your-monthly-take-home-income" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This is what you actually receive after taxes. Include:</p>
<table>
	<thead>
			<tr>
					<th>Income Type</th>
					<th>Include?</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Salary (after tax)</td>
					<td>✅ Yes</td>
			</tr>
			<tr>
					<td>Any side hustle income</td>
					<td>✅ Yes</td>
			</tr>
			<tr>
					<td>Rental income</td>
					<td>✅ Yes</td>
			</tr>
			<tr>
					<td>Investment dividends</td>
					<td>✅ Yes</td>
			</tr>
			<tr>
					<td>Pre-tax amounts</td>
					<td>❌ No</td>
			</tr>
			<tr>
					<td>Money you never see</td>
					<td>❌ No</td>
			</tr>
	</tbody>
</table>

<h3 class="relative group">Step 2: Enter your monthly spending
    <div id="step-2-enter-your-monthly-spending" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-enter-your-monthly-spending" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Be honest here. Include everything you spend:</p>
<table>
	<thead>
			<tr>
					<th>Category</th>
					<th>Examples</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Housing</strong></td>
					<td>Rent, mortgage, utilities</td>
			</tr>
			<tr>
					<td><strong>Food</strong></td>
					<td>Groceries, dining out</td>
			</tr>
			<tr>
					<td><strong>Transportation</strong></td>
					<td>Car payment, insurance, gas, transit</td>
			</tr>
			<tr>
					<td><strong>Subscriptions</strong></td>
					<td>Streaming, gym, software</td>
			</tr>
			<tr>
					<td><strong>Entertainment</strong></td>
					<td>Hobbies, travel, fun</td>
			</tr>
			<tr>
					<td><strong>Everything else</strong></td>
					<td>If money left your account, count it</td>
			</tr>
	</tbody>
</table>

<h3 class="relative group">Step 3: Review your results
    <div id="step-3-review-your-results" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-review-your-results" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The calculator instantly shows you:</p>
<table>
	<thead>
			<tr>
					<th>Result</th>
					<th>What It Means</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Savings Rate %</strong></td>
					<td>Percentage of income you're keeping</td>
			</tr>
			<tr>
					<td><strong>Monthly Savings</strong></td>
					<td>Dollar amount saved per month</td>
			</tr>
			<tr>
					<td><strong>Annual Savings</strong></td>
					<td>Yearly total</td>
			</tr>
			<tr>
					<td><strong>Years to FIRE</strong></td>
					<td>Estimated time to financial independence</td>
			</tr>
	</tbody>
</table>
<hr>

<h2 class="relative group">Understanding Your Results
    <div id="understanding-your-results" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#understanding-your-results" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">The visual breakdown
    <div id="the-visual-breakdown" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-visual-breakdown" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The progress bar shows exactly how your income splits between savings (green) and spending (red). If that green bar is tiny, you know what needs to change.</p>

<h3 class="relative group">Benchmark comparison
    <div id="benchmark-comparison" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#benchmark-comparison" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Average (14%)">
          <span class="flex items-center gap-1">
            
            Average (14%)
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Good (25-35%)">
          <span class="flex items-center gap-1">
            
            Good (25-35%)
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="FIRE (50%&#43;)">
          <span class="flex items-center gap-1">
            
            FIRE (50%&#43;)
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <p><strong>Most people save around 14%</strong></p>
<p>This is the typical savings rate. It's fine for basic retirement at 65, but won't get you to early retirement.</p>

      </div><div class="tab__panel " data-tab-index="1">
        <p><strong>Above average savers</strong></p>
<p>You're doing better than most. At this rate, you could potentially retire 5-10 years early.</p>

      </div><div class="tab__panel " data-tab-index="2">
        <p><strong>Serious early retirement territory</strong></p>
<p>People pursuing FIRE often hit 50% or higher. At this rate, financial independence becomes possible in 15-17 years.</p>

      </div></div>
</div>


<h3 class="relative group">Years to FIRE estimate
    <div id="years-to-fire-estimate" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#years-to-fire-estimate" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>This calculation assumes:</p>
<ul>
<li>The 4% withdrawal rule (you need 25× annual expenses saved)</li>
<li>7% annual investment returns</li>
<li>Your current savings rate stays constant</li>
</ul>
<p>It's just an estimate, not a guarantee.</p></div></div><hr>

<h2 class="relative group">Example Calculation
    <div id="example-calculation" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#example-calculation" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #60a5fa"
    
    >
    
  </span>

  <span
    
      style="color: #e2e8f0"
    
    ><p><strong>Sample Calculation:</strong></p>
<table>
	<thead>
			<tr>
					<th>Input</th>
					<th>Amount</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Monthly income (after tax)</td>
					<td>$5,000</td>
			</tr>
			<tr>
					<td>Monthly spending</td>
					<td>$3,500</td>
			</tr>
			<tr>
					<td><strong>Monthly savings</strong></td>
					<td><strong>$1,500</strong></td>
			</tr>
	</tbody>
</table>
<p><strong>Savings Rate:</strong> ($1,500 ÷ $5,000) × 100 = <strong>30%</strong></p>
<p><strong>Annual Savings:</strong> $1,500 × 12 = <strong>$18,000</strong></p>
<p>At 30%, you'd hit financial independence in roughly <strong>28 years</strong> (assuming 7% returns).</p>
</span>
</div>

<hr>

<h2 class="relative group">What If My Number Is Low?
    <div id="what-if-my-number-is-low" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-if-my-number-is-low" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="important">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Don't panic.</strong> Most people don't even know their savings rate exists as a metric. Just calculating it puts you ahead.</p></div></div><p>If you're below 10%, focus on these three things:</p>
<ol>
<li><strong>Track your spending</strong> for one month (awareness alone helps)</li>
<li><strong>Cut one big expense</strong> (not lattes—find a real expense like unused subscriptions or a cheaper phone plan)</li>
<li><strong>Automate savings</strong> (save before you can spend it)</li>
</ol>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #0f5132"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #75b798"
    
    >
    
  </span>

  <span
    
      style="color: #d1e7dd"
    
    ><strong>Small improvements compound.</strong> Going from 10% to 15% doesn't sound dramatic, but it could cut years off your working life.</span>
</div>

<hr>

<h2 class="relative group">Why This Calculator Matters
    <div id="why-this-calculator-matters" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-this-calculator-matters" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Your savings rate is the single biggest lever you control on your path to financial independence.</p>
<ul>
<li>You can't control the stock market</li>
<li>You can't force your boss to give you a raise. But if you get it, it usually barely covers inflation.</li>
<li>But you <strong>can</strong> control how much of your income you keep</li>
</ul>
<hr>
<p><strong>Questions or feedback?</strong> Leave a comment below—I'd love to hear about your savings rate journey!</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This calculator reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/how-to-use-savings-rate-calculator.webp" medium="image"/></item><item><title>Savings Rate: The One Number That Determines Your Path to FIRE</title><link>https://libreleo.com/posts/savings-rate-fire-guide/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/savings-rate-fire-guide/</guid><description>Why your savings rate matters more than your salary, investment returns, or market timing. Plus the exact formula to calculate yours and improve it.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  It's not about how much you make. It's about how much you keep.
</div>

<p>Ready to calculate your savings rate? <a href="/calculators/how-to-use-savings-rate-calculator/" >Use the Savings Rate Calculator</a></p>

<h2 class="relative group">What Is Savings Rate?
    <div id="what-is-savings-rate" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-is-savings-rate" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Your savings rate is the percentage of your after-tax income that you save rather than spend.</p>
<p>The formula is very simple:</p>
<p><strong>Savings Rate = (Income - Spending) ÷ Income × 100</strong></p>
<p>If you make $5,000 per month and spend $3,500, your savings rate is 30%.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Calculate your actual savings rate right now using historical data, not what you think it is. Check your bank statements for the last three months. The real number is usually different from what you'd estimate.</p></div></div>
<h2 class="relative group">Why Savings Rate Matters More Than Income
    <div id="why-savings-rate-matters-more-than-income" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-savings-rate-matters-more-than-income" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Most people think the path to wealth is earning more money.</p>
<p>That might be partially true.</p>
<p>A higher income makes saving easier, sure. But it doesn't guarantee wealth. You know why? Because spending scales with income.</p>
<p>This is called lifestyle inflation, and it destroys savings rates.</p>
<p><strong>The harsh truth:</strong> Someone making $60,000 with a 40% savings rate ($24,000 saved annually) will build wealth faster than someone making $120,000 with a 10% savings rate ($12,000 saved annually).</p>
<p>The lower earner literally saves twice as much despite making half the income.</p>

<h3 class="relative group">Check this Example
    <div id="check-this-example" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#check-this-example" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Let's break down three scenarios using the same spending level but different incomes:</p>
<pre class="not-prose mermaid">
graph LR
    A[Person A<br/>$100k income<br/>$40k spending<br/>60% savings rate] --> D[20 years to FIRE]
    B[Person B<br/>$70k income<br/>$40k spending<br/>43% savings rate] --> E[25 years to FIRE]
    C[Person C<br/>$50k income<br/>$40k spending<br/>20% savings rate] --> F[37 years to FIRE]
</pre>

<p>Same spending. Wildly different timelines.</p>
<p>Person A reaches financial independence 17 years earlier than Person C, despite only earning twice as much.</p>

<h2 class="relative group">The Relationship Between Savings Rate and Years to FIRE
    <div id="the-relationship-between-savings-rate-and-years-to-fire" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-relationship-between-savings-rate-and-years-to-fire" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Your savings rate directly determines how long until you can retire.</p>
<p>Check out this chart:</p>




<div class="chart" data-override="finfree-v2">
  <canvas id="chart-58351789f3375a6c4d09bc950da2702e"></canvas>
  <script type="text/javascript">
    window.addEventListener("DOMContentLoaded", (event) => {
      const ctx = document.getElementById("chart-58351789f3375a6c4d09bc950da2702e");
      const chart = new Chart(ctx, {
        
type: 'line',
data: {
  labels: ['10%', '20%', '30%', '40%', '50%', '60%', '70%'],
  datasets: [{
    label: 'Years Until Financial Independence',
    data: [51, 37, 28, 22, 17, 13, 9],
    borderColor: 'rgb(59, 130, 246)',
    backgroundColor: 'rgba(59, 130, 246, 0.1)',
    tension: 0.4
  }]
},
options: {
  responsive: true,
  plugins: {
    legend: {
      display: true
    },
    title: {
      display: true,
      text: 'Savings Rate vs Years to Financial Independence'
    }
  },
  scales: {
    y: {
      beginAtZero: true,
      title: {
        display: true,
        text: 'Years to FIRE'
      }
    },
    x: {
      title: {
        display: true,
        text: 'Savings Rate'
      }
    }
  }
}

      });
    });
  </script>
</div>

<p>Notice how the curve is exponential? Small increases in savings rate at lower levels produce massive time savings.</p>
<p>Going from 10% to 20% cuts 14 years off your working life. Going from 50% to 60% only saves 4 years.</p>
<p>If your savings rate is low, even modest improvements create huge results.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="example">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
  <path fill="currentColor" d="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-13.3 0-24-10.7-24-24s10.7-24 24-24H64V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H48c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/>
</svg>
</span></div>
        <div class="grow">
          Example
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Maria makes $70,000 per year after taxes. She currently saves 15% ($10,500 annually). If she increases her savings rate to 25% ($17,500 annually), she'll reach financial independence roughly 12 years earlier.</p></div></div>
<h2 class="relative group">How to Calculate Your Savings Rate (The Right Way)
    <div id="how-to-calculate-your-savings-rate-the-right-way" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-calculate-your-savings-rate-the-right-way" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Most people calculate savings rate wrong. They include things they shouldn't or exclude things that matter.</p>
<p>Here's the accurate method:</p>

<h3 class="relative group">What Counts as Income
    <div id="what-counts-as-income" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-counts-as-income" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Include:</strong></p>
<ul>
<li>Take-home pay (after taxes)</li>
<li>Side hustle income</li>
<li>Rental income</li>
<li>Dividends and interest</li>
<li>Any money that hits your bank account</li>
</ul>
<p><strong>Don't include:</strong></p>
<ul>
<li>Pre-tax income (you never see it)</li>
<li>Employer retirement contributions (you didn't choose to save it)</li>
<li>Investment gains (unrealized wealth doesn't count)</li>
</ul>

<h3 class="relative group">What Counts as Spending
    <div id="what-counts-as-spending" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-counts-as-spending" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Include everything you actually spend:</strong></p>
<ul>
<li>Housing (rent/mortgage, insurance, maintenance)</li>
<li>Food (groceries and restaurants)</li>
<li>Transportation</li>
<li>Utilities and subscriptions</li>
<li>Entertainment</li>
<li>Travel</li>
<li>Healthcare costs</li>
<li>Everything else</li>
</ul>
<p><strong>Don't include:</strong></p>
<ul>
<li>Taxes (already removed from income calculation)</li>
<li>Money that goes straight to savings or investments</li>
</ul>

<h3 class="relative group">The Formula
    <div id="the-formula" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-formula" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Savings Rate = [(Monthly Income - Monthly Spending) ÷ Monthly Income] × 100</strong></p>
<p>Check out the calculator? <a href="/calculators/how-to-use-savings-rate-calculator/" >Use the Savings Rate Calculator</a></p>

<h2 class="relative group">What's a Good Savings Rate?
    <div id="whats-a-good-savings-rate" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#whats-a-good-savings-rate" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Context matters, but here are realistic benchmarks:</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Below Average">
          <span class="flex items-center gap-1">
            
            Below Average
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Average">
          <span class="flex items-center gap-1">
            
            Average
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Above Average">
          <span class="flex items-center gap-1">
            
            Above Average
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="3"
          data-tab-label="FIRE Range">
          <span class="flex items-center gap-1">
            
            FIRE Range
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="4"
          data-tab-label="Extreme FIRE">
          <span class="flex items-center gap-1">
            
            Extreme FIRE
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <strong>0-10%:</strong> You're in survival mode or lifestyle inflation has taken over. Not sustainable long-term. Focus on tracking expenses first.
      </div><div class="tab__panel " data-tab-index="1">
        <strong>10-20%:</strong> You're building some wealth, but retirement will take traditional timelines (40+ years of work).
      </div><div class="tab__panel " data-tab-index="2">
        <strong>20-40%:</strong> Solid savings rate. You're well above average and on track for comfortable traditional retirement or potentially early retirement with decades of work.
      </div><div class="tab__panel " data-tab-index="3">
        <strong>40-60%:</strong> You're in serious early retirement territory. Financial independence is achievable in 15-25 years.
      </div><div class="tab__panel " data-tab-index="4">
        <strong>60%+:</strong> Amazing. FIRE in 10 years or less is realistic. Usually requires high income, low expenses, or both.
      </div></div>
</div>

<p>Don't get discouraged if your number is low. Most people start there. The goal is progress, not perfection.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>A high savings rate built on deprivation isn't sustainable. You'll burn out. Find a balance between saving aggressively and actually enjoying life today.</p></div></div>
<h2 class="relative group">How to Improve Your Savings Rate
    <div id="how-to-improve-your-savings-rate" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-improve-your-savings-rate" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>You have two options: increase income or decrease spending. Most people default to &quot;earn more,&quot; but that's actually the harder path.</p>

<h3 class="relative group">The Spending Side (Easier, Faster Results)
    <div id="the-spending-side-easier-faster-results" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-spending-side-easier-faster-results" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Cut the big three first:</strong></p>
<ol>
<li><strong>Housing:</strong> Downsize, get roommates, move to a lower cost area.</li>
<li><strong>Transportation:</strong> Drive used cars, use public transit, bike, eliminate car payments</li>
<li><strong>Food:</strong> Meal prep, cut restaurants by half, shop sales. No take aways.</li>
</ol>
<p>These three categories typically eat 50-70% of spending. Small optimizations here create massive results.</p>
<p>Cutting $500/month from these three categories is way easier than earning an extra $500/month after taxes.</p>
<p><strong>Then optimize everything else:</strong></p>
<ul>
<li>Cancel subscriptions you don't use</li>
<li>Negotiate insurance rates annually</li>
<li>Buy used instead of new</li>
<li>Wait 48 hours before non-essential purchases</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Track spending for 30 days without changing behavior. Just awareness causes most people to cut 10-15% automatically. You suddenly notice the daily coffee habit or the streaming services you forgot existed.</p></div></div>
<h3 class="relative group">The Income Side (Slower, But Compounds)
    <div id="the-income-side-slower-but-compounds" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-income-side-slower-but-compounds" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Increasing income takes longer but has unlimited upside:</p>
<ol>
<li><strong>Negotiate your salary:</strong> Most people never ask.</li>
<li><strong>Switch jobs:</strong> Job hoppers earn 50% more over their careers than people who stay put</li>
<li><strong>Start a side hustle:</strong> Even $500/month extra is $6,000 annually to invest</li>
<li><strong>Upskill:</strong> Learn high-value skills that increase your market rate</li>
<li><strong>Freelance or consult:</strong> Monetize expertise you already have</li>
</ol>
<p>The catch: increased income only helps if you don't increase spending proportionally.</p>
<p>Earn an extra $1,000/month and spend an extra $1,000/month? Your savings rate stays exactly the same.</p>

<h3 class="relative group">Change your Mindset
    <div id="change-your-mindset" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#change-your-mindset" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Here's what actually works:</p>
<p><strong>Live like you got a 0% raise.</strong></p>
<p>When your income increases, pretend it didn't happen. Save 100% of the increase. Your lifestyle doesn't change, but your savings rate skyrockets.</p>
<p>Someone making $50,000 at 20% savings rate who gets a $10,000 raise and saves all of it jumps to 33% savings rate.</p>
<p>That's 9 years shaved off their path to financial independence. From one raise. That they didn't spend.</p>

<h2 class="relative group">Common Savings Rate Mistakes
    <div id="common-savings-rate-mistakes" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#common-savings-rate-mistakes" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>Mistake #1: Not tracking accurately</strong></p>
<p>People guess their savings rate based on intentions, not reality. Check your actual bank statements. The truth might surprise you.</p>
<p><strong>Mistake #2: Comparing to others</strong></p>
<p>Someone living in a expensive city with dependents can't compare their savings rate to a single person in a low-cost area. Your situation is unique. Compare to your own past performance.</p>
<p><strong>Mistake #3: Going too extreme too fast</strong></p>
<p>Don't jumping from 10% to 60% savings rate overnight. Increase gradually.</p>
<p><strong>Mistake #4: Ignoring quality of life</strong></p>
<p>A 70% savings rate where you're miserable isn't better than a 50% savings rate where you're actually living. Find your sustainable balance.</p>
<p><strong>Mistake #5: Forgetting irregular expenses</strong></p>
<p>Car repairs. Holiday gifts. Annual insurance. These occasional costs tank your savings rate if you don't account for them in monthly budgets.</p>

<h2 class="relative group">Track Your Progress
    <div id="track-your-progress" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#track-your-progress" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Calculate your savings rate monthly or quarterly. Track it over time. Watch it improve.</p>
<p>This one metric predicts your financial future better than net worth, income, or investment returns.</p>
<p>Because you control it completely.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Action Step:</strong> Calculate your savings rate today using the last 3 months of bank statements. Write it down. In 6 months, calculate again. Aim for a 5 percentage point improvement. That's it.</span>
</div>

<p>Ready to see where you stand? <a href="/calculators/how-to-use-savings-rate-calculator/" >Calculate your exact savings rate</a></p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/savings-rate-fire-guide.webp" medium="image"/></item><item><title>Safe Withdrawal Rate (SWR) Calculator</title><link>https://libreleo.com/calculators/interactive_safe_withdrawal_rate_calculator/</link><pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/calculators/interactive_safe_withdrawal_rate_calculator/</guid><description>An interactive calculator to explore the success rate of different withdrawal strategies using historical data.</description><content:encoded><![CDATA[
  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Calculator updated</strong> with the dataset 1871 - 2025.</span>
</div>

<p>The Safe Withdrawal Rate (SWR) is the maximum rate at which a retiree can withdraw money from a retirement account each year with a low risk of depleting the funds during their lifetime.</p>
<p>This interactive calculator allows you to run your own simulations based on historical data for various asset classes. You can adjust the simulation parameters, such as the number of years, the withdrawal rate, and the portfolio allocation, to see how these changes affect the success rate.</p>
<p>Try it yourself!</p>

<style>
    :root {
        --swr-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
        --swr-background-color: #f8f9fa;
        --swr-card-background-color: #ffffff;
        --swr-border-color: #dee2e6;
        --swr-text-color: #212529;
        --swr-label-color: #495057;
        --swr-input-background-color: #ffffff;
        --swr-input-border-color: #ced4da;
        --swr-button-background-color: #004085;
        --swr-button-text-color: #ffffff;
        --swr-button-hover-background-color: #002752;
        --swr-results-background-color: #e9ecef;
        --swr-success-color: #28a745;
        --swr-failure-color: #dc3545;
        --swr-spinner-color: #007bff;
    }

    .dark {
        --swr-background-color: #1a1a1a;
        --swr-card-background-color: #2d2d2d;
        --swr-border-color: #444;
        --swr-text-color: #f8f9fa;
        --swr-label-color: #adb5bd;
        --swr-input-background-color: #333;
        --swr-input-border-color: #555;
        --swr-results-background-color: #343a40;
    }

    .swr-calculator {
        font-family: var(--swr-font-family);
        background-color: var(--swr-card-background-color);
        color: var(--swr-text-color);
        border: 1px solid var(--swr-border-color);
        border-radius: 0.5rem;
        padding: 2rem;
        margin: 2rem 0;
        box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    }

    .swr-calculator h3 {
        margin-top: 0;
        margin-bottom: 1.5rem;
        text-align: center;
        color: var(--swr-text-color);
        font-size: 1.8rem;
        font-weight: 700;
    }

    .swr-form-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: 1.5rem;
        margin-bottom: 1.5rem;
    }

    .swr-form-group {
        display: flex;
        flex-direction: column;
    }

    .swr-form-group label {
        margin-bottom: 0.5rem;
        font-weight: 500;
        color: var(--swr-label-color);
        font-size: 0.9rem;
    }

    .swr-form-group input,
    .swr-form-group select {
        padding: 0.5rem;
        border: 1px solid var(--swr-input-border-color);
        border-radius: 0.25rem;
        background-color: var(--swr-input-background-color);
        color: var(--swr-text-color);
        font-size: 0.95rem;
    }

    .swr-section-title {
        font-size: 1.2rem;
        font-weight: 600;
        margin: 1.5rem 0 1rem 0;
        padding-bottom: 0.5rem;
        border-bottom: 2px solid var(--swr-border-color);
        color: var(--swr-text-color);
    }

    #swr-portfolio-container {
        margin: 1rem 0;
    }

    .swr-portfolio-assets {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        border: 1px solid var(--swr-border-color);
        border-radius: 0.25rem;
        padding: 1rem;
        background-color: var(--swr-input-background-color);
    }

    .swr-portfolio-asset-row {
        display: flex;
        gap: 0.75rem;
        align-items: center;
    }

    .swr-portfolio-asset-row select {
        flex: 3;
        padding: 0.5rem;
        border: 1px solid var(--swr-input-border-color);
        border-radius: 0.25rem;
        background-color: var(--swr-input-background-color);
        color: var(--swr-text-color);
    }

    .swr-portfolio-asset-row input {
        flex: 1;
        padding: 0.5rem;
        border: 1px solid var(--swr-input-border-color);
        border-radius: 0.25rem;
        background-color: var(--swr-input-background-color);
        color: var(--swr-text-color);
        text-align: right;
    }

    .swr-portfolio-asset-row button {
        padding: 0.5rem 0.75rem;
        background-color: var(--swr-failure-color);
        color: white;
        border: none;
        border-radius: 0.25rem;
        cursor: pointer;
        font-size: 1.2rem;
        line-height: 1;
        transition: opacity 0.15s ease;
    }

    .swr-portfolio-asset-row button:hover {
        opacity: 0.8;
    }

    .swr-portfolio-footer {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-top: 0.75rem;
        padding-top: 0.75rem;
        border-top: 1px solid var(--swr-border-color);
    }

    .swr-button {
        padding: 0.6rem 1.2rem;
        border: none;
        border-radius: 0.25rem;
        background-color: var(--swr-button-background-color);
        color: var(--swr-button-text-color);
        cursor: pointer;
        font-weight: 500;
        transition: background-color 0.15s ease-in-out;
    }

    .swr-button:hover {
        background-color: var(--swr-button-hover-background-color);
    }

    .swr-button:disabled {
        opacity: 0.6;
        cursor: not-allowed;
    }

    .swr-allocation-total {
        font-weight: 600;
        color: var(--swr-text-color);
    }

    .swr-allocation-total.invalid {
        color: var(--swr-failure-color);
    }

    .swr-allocation-total.valid {
        color: var(--swr-success-color);
    }

    #swr-results {
        margin-top: 2rem;
        padding: 1.5rem;
        background-color: var(--swr-results-background-color);
        border-radius: 0.25rem;
        border: 1px solid var(--swr-border-color);
    }

    #swr-results h4 {
        margin-top: 0;
        margin-bottom: 1rem;
        color: var(--swr-text-color);
        font-size: 1.3rem;
    }

    #swr-results p {
        margin: 0.5rem 0;
        color: var(--swr-text-color);
        line-height: 1.6;
    }

    .swr-spinner {
        border: 3px solid rgba(0, 123, 255, 0.1);
        border-top: 3px solid var(--swr-spinner-color);
        border-radius: 50%;
        width: 40px;
        height: 40px;
        animation: spin 1s linear infinite;
        margin: 2rem auto;
    }

    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }

    .swr-advanced-toggle {
        text-align: center;
        margin: 1.5rem 0;
    }

    .swr-advanced-toggle button {
        background: none;
        border: 1px solid var(--swr-border-color);
        color: var(--swr-text-color);
        padding: 0.5rem 1rem;
        border-radius: 0.25rem;
        cursor: pointer;
        font-size: 0.9rem;
    }

    .swr-advanced-toggle button:hover {
        background-color: var(--swr-input-background-color);
    }

    .swr-advanced-options {
        display: none;
        margin-top: 1rem;
    }

    .swr-advanced-options.show {
        display: block;
    }

    .swr-help-text {
        font-size: 0.85rem;
        color: var(--swr-label-color);
        margin-top: 0.25rem;
        font-style: italic;
    }
</style>

<div class="swr-calculator">
    <h3>Safe Withdrawal Rate Calculator</h3>

    
    <div class="swr-form-grid">
        <div class="swr-form-group">
            <label for="swr-initial-value">Initial Portfolio Value ($)</label>
            <input type="number" id="swr-initial-value" value="1000000" min="1" step="1000">
        </div>
        <div class="swr-form-group">
            <label for="swr-withdrawal-rate">Withdrawal Rate (%)</label>
            <input type="number" id="swr-withdrawal-rate" value="4.0" min="0" max="20" step="0.1">
        </div>
        <div class="swr-form-group">
            <label for="swr-years">Retirement Period (years)</label>
            <input type="number" id="swr-years" value="30" min="1" max="60" step="1">
        </div>
        <div class="swr-form-group">
            <label for="swr-fees">Annual Fees / TER (%)</label>
            <input type="number" id="swr-fees" value="0.1" min="0" max="5" step="0.01">
            <span class="swr-help-text">Total Expense Ratio</span>
        </div>
    </div>

    <div class="swr-form-grid">
        <div class="swr-form-group">
            <label for="swr-start-year">Start Year</label>
            <input type="number" id="swr-start-year" value="1871" min="1871" max="2025">
        </div>
        <div class="swr-form-group">
            <label for="swr-end-year">End Year</label>
            <input type="number" id="swr-end-year" value="2025" min="1871" max="2025">
        </div>
        <div class="swr-form-group">
            <label for="swr-inflation">Inflation Data</label>
            <select id="swr-inflation">
                <option value="us_inflation" selected>US Inflation</option>
                <option value="no_inflation">No Inflation</option>
            </select>
        </div>
        <div class="swr-form-group">
            <label for="swr-withdraw-frequency">Withdrawal Frequency</label>
            <select id="swr-withdraw-frequency">
                <option value="1">Monthly</option>
                <option value="3">Quarterly</option>
                <option value="6">Semi-Annually</option>
                <option value="12" selected>Yearly</option>
            </select>
        </div>
    </div>

    
    <div class="swr-section-title">Portfolio Allocation</div>
    <div id="swr-portfolio-container">
        <div class="swr-portfolio-assets" id="swr-portfolio-list"></div>
        <div class="swr-portfolio-footer">
            <button class="swr-button" id="swr-add-asset-btn">+ Add Asset</button>
            <span class="swr-allocation-total" id="swr-allocation-total">Total: 0%</span>
        </div>
    </div>

    
    <div class="swr-advanced-toggle" style="display: none;">
        <button id="swr-advanced-toggle-btn">Show Advanced Options</button>
    </div>

    
    <div class="swr-advanced-options" id="swr-advanced-options">
        <div class="swr-section-title">Withdrawal Strategy</div>
        <div class="swr-form-grid">
            <div class="swr-form-group">
                <label for="swr-withdrawal-method">Withdrawal Method</label>
                <select id="swr-withdrawal-method">
                    <option value="standard" selected>Standard (Constant)</option>
                    <option value="current">Current Portfolio %</option>
                    <option value="vanguard">Vanguard Dynamic</option>
                </select>
                <span class="swr-help-text">How withdrawals adjust over time</span>
            </div>
            <div class="swr-form-group">
                <label for="swr-minimum">Minimum Withdrawal (% of initial)</label>
                <input type="number" id="swr-minimum" value="3.0" min="0" max="10" step="0.1">
                <span class="swr-help-text">Floor for dynamic methods</span>
            </div>
        </div>

        <div class="swr-section-title">Rebalancing</div>
        <div class="swr-form-grid">
            <div class="swr-form-group">
                <label for="swr-rebalance">Rebalancing Strategy</label>
                <select id="swr-rebalance">
                    <option value="none" selected>No Rebalancing</option>
                    <option value="monthly">Monthly</option>
                    <option value="yearly">Yearly</option>
                    <option value="threshold">Threshold-Based</option>
                </select>
            </div>
            <div class="swr-form-group">
                <label for="swr-threshold">Rebalancing Threshold (%)</label>
                <input type="number" id="swr-threshold" value="5.0" min="0" max="50" step="1">
                <span class="swr-help-text">Only for threshold-based</span>
            </div>
        </div>

        <div class="swr-section-title">Final Threshold</div>
        <div class="swr-form-grid">
            <div class="swr-form-group">
                <label for="swr-final-threshold">Required Final % of Initial</label>
                <input type="number" id="swr-final-threshold" value="0" min="0" max="100" step="1">
                <span class="swr-help-text">0 = Can deplete fully</span>
            </div>
            <div class="swr-form-group">
                <label for="swr-final-inflation">
                    <input type="checkbox" id="swr-final-inflation" checked>
                    Adjust final threshold for inflation
                </label>
            </div>
        </div>
    </div>

    
    <div style="text-align: center; margin-top: 2rem;">
        <button class="swr-button" id="swr-calculate-btn" style="font-size: 1.1rem; padding: 0.75rem 2rem;">
            Calculate Success Rate
        </button>
    </div>

    
    <div id="swr-results" style="display: none;"></div>
</div>

<script>
(function() {
    'use strict';

    
    const portfolioListDiv = document.getElementById('swr-portfolio-list');
    const addAssetBtn = document.getElementById('swr-add-asset-btn');
    const allocationTotalSpan = document.getElementById('swr-allocation-total');
    const calculateBtn = document.getElementById('swr-calculate-btn');
    const resultsDiv = document.getElementById('swr-results');
    const advancedToggleBtn = document.getElementById('swr-advanced-toggle-btn');
    const advancedOptions = document.getElementById('swr-advanced-options');

    
    const AVAILABLE_ASSETS = [
        { value: 'us_stocks', label: 'US Stocks' },
        { value: 'us_bonds', label: 'US Bonds' },
        { value: 'ex_us_stocks', label: 'International Stocks (Ex-US)' },
        { value: 'gold', label: 'Gold' },
        { value: 'commodities', label: 'Commodities' },
        { value: 'cash', label: 'Cash' }
    ];

    
    
    const MONTHLY_REBALANCING_COST = 0.005;    
    const YEARLY_REBALANCING_COST = 0.01;      
    const THRESHOLD_REBALANCING_COST = 0.01;   

    
    const embeddedData = {
        'us_stocks': `1,1871,100.00\n2,1871,101.87\n3,1871,104.87\n4,1871,108.45\n5,1871,111.47\n6,1871,111.08\n7,1871,109.55\n8,1871,111.18\n9,1871,112.81\n10,1871,107.49\n11,1871,109.13\n12,1871,112.25\n1,1872,115.42\n2,1872,116.54\n3,1872,120.62\n4,1872,124.73\n5,1872,125.26\n6,1872,124.59\n7,1872,124.23\n8,1872,123.32\n9,1872,122.12\n10,1872,123.07\n11,1872,123.38\n12,1872,126.80\n1,1873,128.35\n2,1873,130.23\n3,1873,129.65\n4,1873,128.47\n5,1873,129.50\n6,1873,128.64\n7,1873,129.07\n8,1873,129.82\n9,1873,120.51\n10,1873,110.84\n11,1873,107.56\n12,1873,118.48\n1,1874,125.34\n2,1874,129.55\n3,1874,128.43\n4,1874,125.28\n5,1874,122.89\n6,1874,122.89\n7,1874,123.57\n8,1874,124.60\n9,1874,127.37\n10,1874,127.72\n11,1874,129.13\n12,1874,129.49\n1,1875,130.26\n2,1875,130.68\n3,1875,132.89\n4,1875,135.42\n5,1875,131.06\n6,1875,128.87\n7,1875,129.91\n8,1875,131.32\n9,1875,130.52\n10,1875,129.34\n11,1875,131.89\n12,1875,132.61\n1,1876,136.42\n2,1876,139.10\n3,1876,139.47\n4,1876,134.79\n5,1876,130.46\n6,1876,130.41\n7,1876,129.53\n8,1876,124.73\n9,1876,117.92\n10,1876,117.79\n11,1876,116.46\n12,1876,116.34\n1,1877,116.13\n2,1877,109.83\n3,1877,104.70\n4,1877,97.90\n5,1877,98.45\n6,1877,91.92\n7,1877,96.19\n8,1877,103.36\n9,1877,110.13\n10,1877,113.10\n11,1877,111.84\n12,1877,111.85\n1,1878,112.31\n2,1878,110.63\n3,1878,112.83\n4,1878,116.78\n5,1878,117.69\n6,1878,120.75\n7,1878,123.38\n8,1878,122.50\n9,1878,125.63\n10,1878,124.78\n11,1878,124.84\n12,1878,124.45\n1,1879,129.93\n2,1879,134.96\n3,1879,133.67\n4,1879,138.28\n5,1879,145.23\n6,1879,147.16\n7,1879,150.02\n8,1879,151.98\n9,1879,158.12\n10,1879,175.92\n11,1879,185.86\n12,1879,186.06\n1,1880,193.78\n2,1880,198.24\n3,1880,202.22\n4,1880,198.64\n5,1880,183.65\n6,1880,184.91\n7,1880,194.36\n8,1880,202.40\n9,1880,202.73\n10,1880,209.39\n11,1880,221.46\n12,1880,231.13\n1,1881,245.74\n2,1881,245.62\n3,1881,249.43\n4,1881,249.78\n5,1881,261.61\n6,1881,265.50\n7,1881,257.38\n8,1881,252.23\n9,1881,255.19\n10,1881,252.06\n11,1881,254.53\n12,1881,248.43\n1,1882,245.32\n2,1882,241.17\n3,1882,241.67\n4,1882,242.64\n5,1882,240.52\n6,1882,240.51\n7,1882,255.28\n8,1882,263.75\n9,1882,267.50\n10,1882,261.69\n11,1882,251.57\n12,1882,253.79\n1,1883,253.86\n2,1883,249.05\n3,1883,253.49\n4,1883,260.14\n5,1883,256.37\n6,1883,260.34\n7,1883,257.13\n8,1883,246.64\n9,1883,250.68\n10,1883,245.18\n11,1883,249.85\n12,1883,245.95\n1,1884,239.73\n2,1884,247.26\n3,1884,247.33\n4,1884,238.70\n5,1884,219.50\n6,1884,211.98\n7,1884,213.20\n8,1884,228.10\n9,1884,221.51\n10,1884,215.42\n11,1884,212.33\n12,1884,212.85\n1,1885,209.04\n2,1885,216.51\n3,1885,218.07\n4,1885,218.57\n5,1885,217.07\n6,1885,217.07\n7,1885,226.13\n8,1885,239.77\n9,1885,237.68\n10,1885,252.45\n11,1885,269.81\n12,1885,268.69\n1,1886,269.64\n2,1886,275.77\n3,1886,270.98\n4,1886,268.25\n5,1886,263.95\n6,1886,276.91\n7,1886,282.01\n8,1886,285.00\n9,1886,293.32\n10,1886,301.67\n11,1886,310.04\n12,1886,302.93\n1,1887,300.65\n2,1887,299.43\n3,1887,307.41\n4,1887,315.40\n5,1887,321.80\n6,1887,313.51\n7,1887,306.91\n8,1887,300.28\n9,1887,297.49\n10,1887,288.65\n11,1887,295.33\n12,1887,294.80\n1,1888,298.17\n2,1888,297.62\n3,1888,287.50\n4,1888,289.79\n5,1888,294.90\n6,1888,286.83\n7,1888,295.34\n8,1888,302.73\n9,1888,311.27\n10,1888,310.55\n11,1888,305.14\n12,1888,300.29\n1,1889,307.10\n2,1889,311.60\n3,1889,306.13\n4,1889,306.54\n5,1889,315.82\n6,1889,322.19\n7,1889,316.71\n8,1889,321.97\n9,1889,330.84\n10,1889,325.90\n11,1889,323.96\n12,1889,323.23\n1,1890,327.86\n2,1890,325.20\n3,1890,323.77\n4,1890,331.54\n5,1890,346.71\n6,1890,345.27\n7,1890,343.89\n8,1890,336.90\n9,1890,332.39\n10,1890,318.41\n11,1890,296.25\n12,1890,290.38\n1,1891,306.60\n2,1891,311.48\n3,1891,306.85\n4,1891,318.15\n5,1891,317.99\n6,1891,312.71\n7,1891,308.72\n8,1891,320.23\n9,1891,347.35\n10,1891,348.49\n11,1891,344.42\n12,1891,356.10\n1,1892,363.87\n2,1892,365.72\n3,1892,370.91\n4,1892,371.47\n5,1892,372.71\n6,1892,371.94\n7,1892,373.17\n8,1892,379.79\n9,1892,371.56\n10,1892,380.27\n11,1892,380.19\n12,1892,377.37\n1,1893,385.55\n2,1893,380.02\n3,1893,367.61\n4,1893,368.98\n5,1893,337.67\n6,1893,322.98\n7,1893,294.21\n8,1893,288.51\n9,1893,310.37\n10,1893,320.88\n11,1893,327.16\n12,1893,316.99\n1,1894,311.78\n2,1894,317.31\n3,1894,327.94\n4,1894,333.51\n5,1894,322.32\n6,1894,319.13\n7,1894,313.72\n8,1894,326.77\n9,1894,333.19\n10,1894,324.01\n11,1894,325.23\n12,1894,323.46\n1,1895,320.92\n2,1895,317.62\n3,1895,318.84\n4,1895,333.71\n5,1895,353.20\n6,1895,361.24\n7,1895,363.91\n8,1895,370.44\n9,1895,373.91\n10,1895,369.63\n11,1895,358.34\n12,1895,338.40\n1,1896,335.56\n2,1896,350.76\n3,1896,346.40\n4,1896,350.73\n5,1896,350.28\n6,1896,345.08\n7,1896,323.88\n8,1896,306.62\n9,1896,323.88\n10,1896,332.29\n11,1896,356.13\n12,1896,344.27\n1,1897,345.42\n2,1897,343.32\n3,1897,345.31\n4,1897,335.75\n5,1897,338.57\n6,1897,355.50\n7,1897,372.50\n8,1897,397.87\n9,1897,418.30\n10,1897,406.02\n11,1897,392.89\n12,1897,402.53\n1,1898,414.73\n2,1898,415.10\n3,1898,397.58\n4,1898,391.98\n5,1898,418.95\n6,1898,436.55\n7,1898,439.58\n8,1898,457.31\n9,1898,457.79\n10,1898,449.57\n11,1898,465.81\n12,1898,496.14\n1,1899,535.31\n2,1899,556.94\n3,1899,566.25\n4,1899,574.70\n5,1899,552.14\n6,1899,541.07\n7,1899,561.27\n8,1899,577.04\n9,1899,572.24\n10,1899,571.07\n11,1899,583.43\n12,1899,545.27\n1,1900,554.22\n2,1900,565.93\n3,1900,572.21\n4,1900,581.30\n5,1900,555.58\n6,1900,540.82\n7,1900,542.59\n8,1900,551.84\n9,1900,551.84\n10,1900,540.73\n11,1900,562.32\n12,1900,608.32\n1,1901,667.84\n2,1901,686.88\n3,1901,713.45\n4,1901,775.22\n5,1901,738.13\n6,1901,813.76\n7,1901,761.35\n8,1901,774.07\n9,1901,772.48\n10,1901,766.08\n11,1901,784.80\n12,1901,774.56\n1,1902,793.52\n2,1902,802.72\n3,1902,806.15\n4,1902,836.14\n5,1902,836.53\n6,1902,834.05\n7,1902,855.40\n8,1902,880.82\n9,1902,885.39\n10,1902,859.95\n11,1902,829.37\n12,1902,812.84\n1,1903,856.87\n2,1903,854.46\n3,1903,823.59\n4,1903,792.61\n5,1903,779.94\n6,1903,739.60\n7,1903,718.73\n8,1903,688.44\n9,1903,674.64\n10,1903,655.56\n11,1903,660.50\n12,1903,693.63\n1,1904,707.79\n2,1904,691.29\n3,1904,691.74\n4,1904,711.41\n5,1904,699.02\n6,1904,702.71\n7,1904,734.49\n8,1904,762.06\n9,1904,798.42\n10,1904,847.98\n11,1904,896.61\n12,1904,908.08\n1,1905,930.64\n2,1905,974.30\n3,1905,1004.79\n4,1905,995.41\n5,1905,949.25\n6,1905,963.22\n7,1905,996.27\n8,1905,1036.22\n9,1905,1042.51\n10,1905,1060.17\n11,1905,1057.48\n12,1905,1086.60\n1,1906,1127.20\n2,1906,1122.29\n3,1906,1098.01\n4,1906,1086.27\n5,1906,1060.68\n6,1906,1077.74\n7,1906,1053.15\n8,1906,1134.20\n9,1906,1172.56\n10,1906,1169.00\n11,1906,1167.83\n12,1906,1160.93\n1,1907,1131.62\n2,1907,1099.90\n3,1907,995.84\n4,1907,1004.67\n5,1907,973.98\n6,1907,946.82\n7,1907,987.21\n8,1907,917.37\n9,1907,911.87\n10,1907,817.01\n11,1907,773.21\n12,1907,816.95\n1,1908,855.94\n2,1908,828.84\n3,1908,866.79\n4,1908,917.54\n5,1908,976.28\n6,1908,976.28\n7,1908,1016.12\n8,1908,1063.82\n9,1908,1056.32\n10,1908,1073.45\n11,1908,1150.36\n12,1908,1180.60\n1,1909,1188.83\n2,1909,1159.05\n3,1909,1179.23\n4,1909,1236.54\n5,1909,1282.12\n6,1909,1309.26\n7,1909,1332.53\n8,1909,1369.28\n9,1909,1375.31\n10,1909,1385.42\n11,1909,1383.37\n12,1909,1404.54\n1,1910,1379.35\n2,1910,1334.94\n3,1910,1372.84\n4,1910,1344.69\n5,1910,1327.52\n6,1910,1268.74\n7,1910,1209.74\n8,1910,1244.32\n9,1910,1258.05\n10,1910,1321.27\n11,1910,1325.21\n12,1910,1293.60\n1,1911,1330.63\n2,1911,1359.21\n3,1911,1348.81\n4,1911,1348.50\n5,1911,1383.08\n6,1911,1416.33\n7,1911,1415.99\n8,1911,1353.91\n9,1911,1285.64\n10,1911,1298.62\n11,1911,1356.32\n12,1911,1367.92\n1,1912,1374.95\n2,1912,1368.47\n3,1912,1413.59\n4,1912,1463.47\n5,1912,1464.71\n6,1912,1473.61\n7,1912,1481.00\n8,1912,1520.82\n9,1912,1534.39\n10,1912,1537.15\n11,1912,1525.86\n12,1912,1476.92\n1,1913,1470.26\n2,1913,1423.93\n3,1913,1402.92\n4,1913,1407.31\n5,1913,1374.92\n6,1913,1311.91\n7,1913,1335.88\n8,1913,1377.79\n9,1913,1397.06\n10,1913,1358.84\n11,1913,1330.58\n12,1913,1334.89\n1,1914,1395.59\n2,1914,1419.93\n3,1914,1399.06\n4,1914,1371.35\n5,1914,1385.73\n6,1914,1384.77\n7,1914,1313.92\n8,1914,1204.61\n9,1914,1209.95\n10,1914,1149.09\n11,1914,1198.59\n12,1914,1285.78\n1,1915,1314.61\n2,1915,1303.17\n3,1915,1342.73\n4,1915,1449.89\n5,1915,1422.13\n6,1915,1444.33\n7,1915,1444.95\n8,1915,1512.36\n9,1915,1574.60\n10,1915,1667.98\n11,1915,1732.48\n12,1915,1742.39\n1,1916,1721.23\n2,1916,1703.66\n3,1916,1705.40\n4,1916,1694.11\n5,1916,1738.82\n6,1916,1763.69\n7,1916,1747.33\n8,1916,1768.83\n9,1916,1849.54\n10,1916,1915.41\n11,1916,1968.14\n12,1916,1898.13\n1,1917,1861.44\n2,1917,1767.93\n3,1917,1832.71\n4,1917,1815.17\n5,1917,1763.91\n6,1917,1810.36\n7,1917,1771.17\n8,1917,1729.56\n9,1917,1657.31\n10,1917,1578.45\n11,1917,1457.85\n12,1917,1419.06\n1,1918,1532.27\n2,1918,1574.49\n3,1918,1524.69\n4,1918,1554.82\n5,1918,1590.12\n6,1918,1635.96\n7,1918,1636.11\n8,1918,1682.61\n9,1918,1664.49\n10,1918,1760.80\n11,1918,1744.79\n12,1918,1781.67\n1,1919,1763.08\n2,1919,1832.45\n3,1919,1852.92\n4,1919,1959.86\n5,1919,2129.58\n6,1919,2078.81\n7,1919,2216.64\n8,1919,2053.06\n9,1919,2103.47\n10,1919,2273.36\n11,1919,2149.02\n12,1919,2150.03\n1,1920,2097.67\n2,1920,1952.27\n3,1920,2154.50\n4,1920,2007.56\n5,1920,1937.22\n6,1920,1929.86\n7,1920,1893.72\n8,1920,1937.92\n9,1920,1937.92\n10,1920,1971.91\n11,1920,1823.00\n12,1920,1726.70\n1,1921,1808.51\n2,1921,1803.68\n3,1921,1771.43\n4,1921,1820.91\n5,1921,1796.62\n6,1921,1673.89\n7,1921,1729.59\n8,1921,1704.88\n9,1921,1761.04\n10,1921,1811.36\n11,1921,1937.66\n12,1921,1978.77\n1,1922,2005.12\n2,1922,2076.45\n3,1922,2154.48\n4,1922,2287.59\n5,1922,2414.93\n6,1922,2324.24\n7,1922,2364.52\n8,1922,2543.48\n9,1922,2518.06\n10,1922,2588.78\n11,1922,2473.41\n12,1922,2528.74\n1,1923,2542.68\n2,1923,2719.12\n3,1923,2692.53\n4,1923,2631.96\n5,1923,2537.09\n6,1923,2352.34\n7,1923,2409.23\n8,1923,2459.61\n9,1923,2395.11\n10,1923,2400.44\n11,1923,2546.96\n12,1923,2634.18\n1,1924,2725.45\n2,1924,2681.16\n3,1924,2622.33\n4,1924,2613.66\n5,1924,2641.36\n6,1924,2749.64\n7,1924,2884.25\n8,1924,2912.39\n9,1924,2929.57\n10,1924,2917.20\n11,1924,3132.47\n12,1924,3311.28\n1,1925,3392.82\n2,1925,3437.13\n3,1925,3223.17\n4,1925,3336.71\n5,1925,3523.78\n6,1925,3554.00\n7,1925,3696.79\n8,1925,3723.81\n9,1925,3837.00\n10,1925,4072.57\n11,1925,4077.08\n12,1925,4289.65\n1,1926,4299.56\n2,1926,4126.53\n3,1926,3898.71\n4,1926,3994.15\n5,1926,4052.64\n6,1926,4245.33\n7,1926,4342.75\n8,1926,4551.62\n9,1926,4675.18\n10,1926,4548.08\n11,1926,4669.49\n12,1926,4767.44\n1,1927,4688.44\n2,1927,4932.67\n3,1927,4985.18\n4,1927,5091.65\n5,1927,5378.71\n6,1927,5349.04\n7,1927,5718.92\n8,1927,5995.87\n9,1927,6211.46\n10,1927,5965.70\n11,1927,6392.59\n12,1927,6537.39\n1,1928,6526.68\n2,1928,6434.39\n3,1928,7156.00\n4,1928,7411.93\n5,1928,7529.21\n6,1928,7248.00\n7,1928,7363.11\n8,1928,7934.44\n9,1928,8149.72\n10,1928,8293.43\n11,1928,9314.66\n12,1928,9368.60\n1,1929,9929.73\n2,1929,9898.52\n3,1929,9901.73\n4,1929,10088.07\n5,1929,9682.55\n6,1929,10799.69\n7,1929,11321.16\n8,1929,12460.78\n9,1929,11880.34\n10,1929,9538.86\n11,1929,8293.22\n12,1929,8534.15\n1,1930,9101.72\n2,1930,9328.95\n3,1930,10102.86\n4,1930,10037.12\n5,1930,9907.09\n6,1930,8306.94\n7,1930,8640.33\n8,1930,8738.66\n9,1930,7627.41\n10,1930,6979.34\n11,1930,6859.77\n12,1930,6378.65\n1,1931,6722.90\n2,1931,7521.95\n3,1931,7026.97\n4,1931,6380.76\n5,1931,5533.66\n6,1931,6334.24\n7,1931,5886.95\n8,1931,5973.94\n9,1931,4204.05\n10,1931,4585.66\n11,1931,4158.98\n12,1931,3581.11\n1,1932,3498.06\n2,1932,3706.39\n3,1932,3286.60\n4,1932,2637.38\n5,1932,2037.58\n6,1932,2036.57\n7,1932,2820.80\n8,1932,3900.05\n9,1932,3775.03\n10,1932,3260.94\n11,1932,3087.27\n12,1932,3263.78\n1,1933,3303.17\n2,1933,2705.45\n3,1933,2809.83\n4,1933,4015.06\n5,1933,4675.87\n6,1933,5306.89\n7,1933,4847.61\n8,1933,5420.38\n9,1933,4817.56\n10,1933,4398.06\n11,1933,4869.51\n12,1933,4990.15\n1,1934,5535.25\n2,1934,5344.20\n3,1934,5359.56\n4,1934,5229.90\n5,1934,4816.96\n6,1934,4933.08\n7,1934,4377.19\n8,1934,4628.09\n9,1934,4625.08\n10,1934,4487.00\n11,1934,4882.45\n12,1934,4873.35\n1,1935,4689.24\n2,1935,4517.25\n3,1935,4390.20\n4,1935,4831.88\n5,1935,5005.59\n6,1935,5359.68\n7,1935,5825.84\n8,1935,5970.92\n9,1935,6129.76\n10,1935,6616.87\n11,1935,6891.64\n12,1935,7173.97\n1,1936,7666.84\n2,1936,7817.30\n3,1936,8035.76\n4,1936,7436.53\n5,1936,7801.51\n6,1936,8065.26\n7,1936,8647.46\n8,1936,8743.85\n9,1936,8785.44\n10,1936,9481.89\n11,1936,9549.66\n12,1936,9527.10\n1,1937,9924.99\n2,1937,10107.03\n3,1937,10043.52\n4,1937,9249.92\n5,1937,9190.07\n6,1937,8745.56\n7,1937,9675.81\n8,1937,9181.22\n9,1937,7913.58\n10,1937,7148.29\n11,1937,6458.85\n12,1937,6168.06\n1,1938,6294.54\n2,1938,6718.36\n3,1938,5071.71\n4,1938,5822.24\n5,1938,5602.17\n6,1938,7024.76\n7,1938,7563.17\n8,1938,7389.21\n9,1938,7538.73\n10,1938,8131.05\n11,1938,7892.79\n12,1938,8215.80\n1,1939,7678.87\n2,1939,7957.39\n3,1939,6904.14\n4,1939,6892.28\n5,1939,7349.44\n6,1939,6906.59\n7,1939,7689.44\n8,1939,7172.33\n9,1939,8381.49\n10,1939,8293.09\n11,1939,7919.57\n12,1939,8141.08\n1,1940,7888.07\n2,1940,7971.88\n3,1940,8089.13\n4,1940,8083.29\n5,1940,6181.88\n6,1940,6696.79\n7,1940,6936.92\n8,1940,7152.82\n9,1940,7267.50\n10,1940,7588.71\n11,1940,7307.86\n12,1940,7320.25\n1,1941,7010.94\n2,1941,6945.15\n3,1941,7011.28\n4,1941,6599.74\n5,1941,6658.29\n6,1941,7058.23\n7,1941,7488.12\n8,1941,7466.70\n9,1941,7435.91\n10,1941,6974.15\n11,1941,6721.98\n12,1941,6458.86\n1,1942,6590.62\n2,1942,6423.86\n3,1942,6075.53\n4,1942,5851.80\n5,1942,6268.15\n6,1942,6425.81\n7,1942,6667.08\n8,1942,6754.04\n9,1942,6974.76\n10,1942,7462.71\n11,1942,7398.67\n12,1942,7820.11\n1,1943,8419.79\n2,1943,8885.52\n3,1943,9393.71\n4,1943,9441.70\n5,1943,9905.35\n6,1943,10141.90\n7,1943,9632.77\n8,1943,9772.94\n9,1943,10046.27\n10,1943,9955.51\n11,1943,9246.32\n12,1943,9834.38\n1,1944,10029.59\n2,1944,10047.97\n3,1944,10261.92\n4,1944,10178.70\n5,1944,10635.32\n6,1944,11223.03\n7,1944,11035.73\n8,1944,11177.53\n9,1944,11189.17\n10,1944,11235.89\n11,1944,11326.75\n12,1944,11771.12\n1,1945,11987.59\n2,1945,12774.50\n3,1945,12233.34\n4,1945,13358.17\n5,1945,13559.95\n6,1945,13563.65\n7,1945,13341.50\n8,1945,14165.16\n9,1945,14808.98\n10,1945,15308.37\n11,1945,15855.43\n12,1945,16062.94\n1,1946,17234.94\n2,1946,16090.34\n3,1946,16888.01\n4,1946,17576.04\n5,1946,18022.69\n6,1946,17371.20\n7,1946,16982.09\n8,1946,15797.90\n9,1946,14251.10\n10,1946,14199.52\n11,1946,14087.43\n12,1946,14748.93\n1,1947,15146.62\n2,1947,14987.12\n3,1947,14799.05\n4,1947,14283.61\n5,1947,14214.01\n6,1947,15027.99\n7,1947,15640.44\n8,1947,15256.03\n9,1947,15108.22\n10,1947,15505.86\n11,1947,15133.13\n12,1947,15521.78\n1,1948,14980.44\n2,1948,14346.62\n3,1948,15515.92\n4,1948,16003.58\n5,1948,17326.87\n6,1948,17465.80\n7,1948,16595.87\n8,1948,16803.82\n9,1948,16376.56\n10,1948,17563.48\n11,1948,15746.38\n12,1948,16313.24\n1,1949,16427.98\n2,1949,15863.87\n3,1949,16430.76\n4,1949,16180.03\n5,1949,15665.33\n6,1949,15717.46\n7,1949,16806.50\n8,1949,17100.15\n9,1949,17593.53\n10,1949,18221.12\n11,1949,18349.38\n12,1949,19260.20\n1,1950,19705.47\n2,1950,20014.56\n3,1950,20209.29\n4,1950,21237.86\n5,1950,22189.86\n6,1950,21020.05\n7,1950,21330.07\n8,1950,22156.04\n9,1950,23527.72\n10,1950,23772.74\n11,1950,23897.41\n12,1950,25149.80\n1,1951,26846.23\n2,1951,27176.69\n3,1951,26835.88\n4,1951,28290.42\n5,1951,27306.64\n6,1951,26760.96\n7,1951,28761.32\n8,1951,30191.47\n9,1951,30191.47\n10,1951,29928.71\n11,1951,30003.67\n12,1951,31324.80\n1,1952,31977.55\n2,1952,30966.15\n3,1952,32598.52\n4,1952,31362.58\n5,1952,32236.28\n6,1952,33889.98\n7,1952,34659.69\n8,1952,34326.57\n9,1952,33819.25\n10,1952,33945.31\n11,1952,35695.51\n12,1952,37120.23\n1,1953,37020.27\n2,1953,36513.08\n3,1953,35809.32\n4,1953,35024.11\n5,1953,35093.04\n6,1953,34686.10\n7,1953,35742.55\n8,1953,33840.81\n9,1953,34048.72\n10,1953,35970.23\n11,1953,36460.96\n12,1953,36712.38\n1,1954,38775.70\n2,1954,39070.80\n3,1954,40420.24\n4,1954,42586.30\n5,1954,44172.67\n6,1954,44393.23\n7,1954,47105.64\n8,1954,45697.31\n9,1954,49684.42\n10,1954,48914.81\n11,1954,53059.63\n12,1954,55951.04\n1,1955,57151.37\n2,1955,57570.95\n3,1955,57498.77\n4,1955,59854.16\n5,1955,59981.54\n6,1955,65125.23\n7,1955,69310.75\n8,1955,68984.32\n9,1955,69984.22\n10,1955,68064.23\n11,1955,73385.17\n12,1955,73535.76\n1,1956,71101.26\n2,1956,73787.11\n3,1956,79146.13\n4,1956,79226.44\n5,1956,74254.75\n6,1956,77418.25\n7,1956,81656.45\n8,1956,78786.66\n9,1956,75469.34\n10,1956,76107.16\n11,1956,75508.44\n12,1956,78408.96\n1,1957,75371.77\n2,1957,73149.36\n3,1957,74830.29\n4,1957,77839.93\n5,1957,80961.47\n6,1957,81105.00\n7,1957,82280.44\n8,1957,77912.39\n9,1957,73340.86\n10,1957,71247.45\n11,1957,72651.49\n12,1957,69898.84\n1,1958,73145.30\n2,1958,71895.28\n3,1958,74372.80\n4,1958,76994.53\n5,1958,78401.89\n6,1958,80702.93\n7,1958,84438.96\n8,1958,85698.74\n9,1958,90103.64\n10,1958,92652.07\n11,1958,94990.72\n12,1958,100196.11\n1,1959,100844.59\n2,1959,101094.42\n3,1959,101418.04\n4,1959,105624.14\n5,1959,107896.82\n6,1959,107784.83\n7,1959,111823.35\n8,1959,110420.68\n9,1959,105660.61\n10,1959,107132.63\n11,1959,108832.18\n12,1959,112123.89\n1,1960,104413.82\n2,1960,105675.22\n3,1960,104511.26\n4,1960,102986.57\n5,1960,106059.64\n6,1960,108439.37\n7,1960,106062.48\n8,1960,109143.16\n9,1960,102862.72\n10,1960,102924.13\n11,1960,107382.03\n12,1960,112665.49\n1,1961,120094.43\n2,1961,123635.78\n3,1961,127107.81\n4,1961,127912.03\n5,1961,130676.33\n6,1961,127243.77\n7,1961,131718.58\n8,1961,134625.56\n9,1961,132298.71\n10,1961,136379.13\n11,1961,142079.54\n12,1961,142872.70\n1,1962,137800.38\n2,1962,140383.11\n3,1962,139901.15\n4,1962,131577.08\n5,1962,120608.50\n6,1962,111085.12\n7,1962,118497.36\n8,1962,120661.40\n9,1962,115198.78\n10,1962,116074.11\n11,1962,128226.66\n12,1962,130322.71\n1,1963,137095.55\n2,1963,133510.65\n3,1963,138617.62\n4,1963,145724.92\n5,1963,148195.75\n6,1963,145586.11\n7,1963,145469.31\n8,1963,152948.52\n9,1963,151649.04\n10,1963,156936.58\n11,1963,155685.05\n12,1963,159894.58\n1,1964,164613.17\n2,1964,166651.28\n3,1964,169594.80\n4,1964,171052.07\n5,1964,173437.77\n6,1964,176713.82\n7,1964,180376.37\n8,1964,177889.55\n9,1964,183440.44\n10,1964,185376.86\n11,1964,184870.57\n12,1964,186049.48\n1,1965,192684.33\n2,1965,192866.42\n3,1965,190533.69\n4,1965,197538.45\n5,1965,196490.72\n6,1965,187417.99\n7,1965,190429.44\n8,1965,195213.20\n9,1965,201958.22\n10,1965,207989.19\n11,1965,206676.57\n12,1965,209037.42\n1,1966,210578.51\n2,1966,207340.60\n3,1966,203344.71\n4,1966,208052.87\n5,1966,197328.39\n6,1966,194684.20\n7,1966,192618.91\n8,1966,178197.70\n9,1966,177505.53\n10,1966,186499.67\n11,1966,187637.59\n12,1966,187915.10\n1,1967,203171.44\n2,1967,204136.83\n3,1967,212751.22\n4,1967,222306.85\n5,1967,211221.07\n6,1967,215493.16\n7,1967,225842.71\n8,1967,231695.47\n9,1967,231695.47\n10,1967,225546.37\n11,1967,226371.73\n12,1967,232906.62\n1,1968,223288.02\n2,1968,216911.19\n3,1968,219546.84\n4,1968,237822.58\n5,1968,241407.66\n6,1968,244218.41\n7,1968,240325.08\n8,1968,253712.98\n9,1968,253712.98\n10,1968,256174.10\n11,1968,269094.46\n12,1968,258531.79\n1,1969,257059.11\n2,1969,245526.04\n3,1969,254628.50\n4,1969,260751.41\n5,1969,260829.96\n6,1969,246990.70\n7,1969,232790.77\n8,1969,242785.47\n9,1969,237376.84\n10,1969,248243.95\n11,1969,240456.81\n12,1969,236645.64\n1,1970,219228.22\n2,1970,231460.92\n3,1970,232480.93\n4,1970,212132.53\n5,1970,199888.42\n6,1970,190578.98\n7,1970,205244.60\n8,1970,215067.99\n9,1970,223104.67\n10,1970,221017.98\n11,1970,232199.23\n12,1970,246077.56\n1,1971,256729.46\n2,1971,259751.96\n3,1971,270005.48\n4,1971,280498.15\n5,1971,269537.83\n6,1971,270426.25\n7,1971,259948.98\n8,1971,270032.21\n9,1971,268852.40\n10,1971,258315.90\n11,1971,258360.10\n12,1971,281329.31\n1,1972,287131.49\n2,1972,294051.09\n3,1972,297555.37\n4,1972,299569.74\n5,1972,304953.90\n6,1972,299505.29\n7,1972,300922.14\n8,1972,312008.63\n9,1972,311213.88\n10,1972,314851.64\n11,1972,330520.74\n12,1972,334600.73\n1,1973,329623.44\n2,1973,318016.62\n3,1973,318312.57\n4,1973,306091.32\n5,1973,301079.45\n6,1973,299870.17\n7,1973,312043.16\n8,1973,301382.57\n9,1973,314255.67\n10,1973,314665.93\n11,1973,279655.70\n12,1973,285109.12\n1,1974,283082.21\n2,1974,282897.70\n3,1974,277154.59\n4,1974,267192.61\n5,1974,259090.91\n6,1974,256157.09\n7,1974,237122.22\n8,1974,216610.37\n9,1974,191659.40\n10,1974,223813.50\n11,1974,212820.56\n12,1974,209444.24\n1,1975,236101.32\n2,1975,251178.81\n3,1975,257568.81\n4,1975,270698.10\n5,1975,283594.71\n6,1975,297126.89\n7,1975,277989.99\n8,1975,273100.96\n9,1975,264610.31\n10,1975,281888.53\n11,1975,289823.50\n12,1975,287462.24\n1,1976,322451.17\n2,1976,319757.49\n3,1976,330556.49\n4,1976,327929.89\n5,1976,324229.43\n6,1976,338514.26\n7,1976,336828.39\n8,1976,344806.18\n9,1976,344806.18\n10,1976,338246.40\n11,1976,336727.02\n12,1976,355517.78\n1,1977,338709.44\n2,1977,332532.69\n3,1977,329032.78\n4,1977,330314.57\n5,1977,323750.06\n6,1977,339659.36\n7,1977,335416.35\n8,1977,329630.91\n9,1977,330090.28\n10,1977,317093.78\n11,1977,326979.54\n12,1977,329252.22\n1,1978,310383.87\n2,1978,304088.07\n3,1978,313066.62\n4,1978,341243.35\n5,1978,344130.39\n6,1978,339526.84\n7,1978,359318.63\n8,1978,370126.47\n9,1978,368939.32\n10,1978,336673.43\n11,1978,343801.60\n12,1978,350455.75\n1,1979,365964.01\n2,1979,354183.65\n3,1979,375311.99\n4,1979,377584.77\n5,1979,369291.84\n6,1979,385225.98\n7,1979,390314.50\n8,1979,412757.85\n9,1979,414491.43\n10,1979,387840.37\n11,1979,406164.48\n12,1979,414774.58\n1,1980,440532.86\n2,1980,440467.47\n3,1980,397502.81\n4,1980,415784.03\n5,1980,437083.79\n6,1980,450816.48\n7,1980,482133.49\n8,1980,486951.41\n9,1980,501220.23\n10,1980,511300.03\n11,1980,565702.71\n12,1980,548607.74\n1,1981,525628.92\n2,1981,534729.11\n3,1981,556129.68\n4,1981,545262.03\n5,1981,546545.31\n6,1981,543051.83\n7,1981,544100.27\n8,1981,512570.32\n9,1981,487245.04\n10,1981,513509.50\n11,1981,534627.81\n12,1981,520886.57\n1,1982,514127.83\n2,1982,485389.18\n3,1982,482856.45\n4,1982,504625.72\n5,1982,487324.35\n6,1982,479907.48\n7,1982,471374.78\n8,1982,528555.37\n9,1982,535105.33\n10,1982,596706.54\n11,1982,620816.82\n12,1982,632790.14\n1,1983,656350.39\n2,1983,671409.56\n3,1983,696242.32\n4,1983,751037.77\n5,1983,744404.58\n6,1983,773367.51\n7,1983,750521.46\n8,1983,761711.04\n9,1983,772192.99\n10,1983,763225.87\n11,1983,779282.40\n12,1983,775165.88\n1,1984,770831.60\n2,1984,743699.13\n3,1984,756570.40\n4,1984,763602.46\n5,1984,721186.75\n6,1984,736696.05\n7,1984,727535.17\n8,1984,807866.95\n9,1984,808034.51\n10,1984,811036.01\n11,1984,801841.38\n12,1984,822856.26\n1,1985,886955.24\n2,1985,897762.14\n3,1985,898348.49\n4,1985,897425.53\n5,1985,949148.49\n6,1985,963891.69\n7,1985,962504.52\n8,1985,954256.37\n9,1985,924429.07\n10,1985,967066.34\n11,1985,1033341.30\n12,1985,1083270.48\n1,1986,1089263.50\n2,1986,1170567.48\n3,1986,1235816.97\n4,1986,1221824.96\n5,1986,1286693.06\n6,1986,1308359.95\n7,1986,1235163.54\n8,1986,1326681.46\n9,1986,1216931.12\n10,1986,1287158.99\n11,1986,1318441.14\n12,1986,1284796.00\n1,1987,1457773.33\n2,1987,1515290.29\n3,1987,1558985.34\n4,1987,1544923.40\n5,1987,1558053.56\n6,1987,1636516.58\n7,1987,1719323.76\n8,1987,1783329.33\n9,1987,1744134.13\n10,1987,1368537.43\n11,1987,1255729.38\n12,1987,1351231.68\n1,1988,1397279.02\n2,1988,1473705.53\n3,1988,1428177.75\n4,1988,1445623.23\n5,1988,1456462.40\n6,1988,1523302.10\n7,1988,1518998.15\n8,1988,1466005.46\n9,1988,1528464.65\n10,1988,1571022.87\n11,1988,1548633.60\n12,1988,1562163.41\n1,1989,1691030.27\n2,1989,1648887.68\n3,1989,1687355.24\n4,1989,1772493.55\n5,1989,1846776.30\n6,1989,1836303.54\n7,1989,2002101.22\n8,1989,2041241.44\n9,1989,2043106.30\n10,1989,1985754.97\n11,1989,2026251.45\n12,1989,2111843.68\n1,1990,1935611.52\n2,1990,1960543.79\n3,1990,2005541.10\n4,1990,1962288.34\n5,1990,2153619.86\n6,1990,2148216.69\n7,1990,2132231.38\n8,1990,1939499.84\n9,1990,1899320.55\n10,1990,1837255.11\n11,1990,1956015.63\n12,1990,2010501.30\n1,1991,2098062.30\n2,1991,2248104.36\n3,1991,2279085.13\n4,1991,2307993.22\n5,1991,2407558.24\n6,1991,2339187.27\n7,1991,2404337.11\n8,1991,2441218.71\n9,1991,2420109.14\n10,1991,2452648.51\n11,1991,2393547.16\n12,1991,2623018.11\n1,1992,2574137.96\n2,1992,2607475.78\n3,1992,2556763.57\n4,1992,2631833.82\n5,1992,2658045.79\n6,1992,2605386.69\n7,1992,2711826.00\n8,1992,2656323.12\n9,1992,2687539.04\n10,1992,2723917.52\n11,1992,2788651.73\n12,1992,2822875.50\n1,1993,2871296.27\n2,1993,2876951.02\n3,1993,2946147.77\n4,1993,2874938.50\n5,1993,2976122.28\n6,1993,2960486.97\n7,1993,2962745.59\n8,1993,3060456.68\n9,1993,3036990.05\n10,1993,3108943.08\n11,1993,3070262.24\n12,1993,3107384.47\n1,1994,3213025.33\n2,1994,3125819.81\n3,1994,2989542.72\n4,1994,3043044.01\n5,1994,3077568.56\n6,1994,3002131.90\n7,1994,3120154.13\n8,1994,3227840.32\n9,1994,3148909.09\n10,1994,3219653.52\n11,1994,3102375.05\n12,1994,3147410.64\n1,1995,3230066.12\n2,1995,3355947.01\n3,1995,3454970.62\n4,1995,3554459.07\n5,1995,3698862.80\n6,1995,3784777.69\n7,1995,3910292.17\n8,1995,3920119.61\n9,1995,4066858.52\n10,1995,4070954.65\n11,1995,4249664.17\n12,1995,4365285.60\n1,1996,4478949.18\n2,1996,4520473.80\n3,1996,4622220.87\n4,1996,4631277.21\n5,1996,4750715.85\n6,1996,4806924.20\n7,1996,4558148.38\n8,1996,4673802.62\n9,1996,4916267.44\n10,1996,5051860.93\n11,1996,5430515.34\n12,1996,5326050.27\n1,1997,5658794.09\n2,1997,5703146.08\n3,1997,5468911.80\n4,1997,5795295.40\n5,1997,6134290.05\n6,1997,6423578.76\n7,1997,6934687.57\n8,1997,6750908.46\n9,1997,6904707.59\n10,1997,6674110.07\n11,1997,7124859.70\n12,1997,7102995.43\n1,1998,7335386.72\n2,1998,7687665.10\n3,1998,8093811.18\n4,1998,8175241.65\n5,1998,8036180.94\n6,1998,8361087.96\n7,1998,8272055.86\n8,1998,7076105.33\n9,1998,7529403.43\n10,1998,8237706.31\n11,1998,8635321.06\n12,1998,9132932.86\n1,1999,9465463.39\n2,1999,9203228.85\n3,1999,9587970.03\n4,1999,9959268.91\n5,1999,9667765.33\n6,1999,10263755.42\n7,1999,9938290.58\n8,1999,9894080.78\n9,1999,9622844.59\n10,1999,10165743.54\n11,1999,10439779.76\n12,1999,11054642.69\n1,2000,10499231.11\n2,2000,10300483.90\n3,2000,11308116.21\n4,2000,11087422.69\n5,2000,10742920.95\n6,2000,11007769.58\n7,2000,10835671.84\n8,2000,11508722.82\n9,2000,10899016.98\n10,2000,10855053.27\n11,2000,9999245.85\n12,2000,9766515.50\n1,2001,10404686.46\n2,2001,9455969.55\n3,2001,8746556.50\n4,2001,9545204.00\n5,2001,9609156.18\n6,2001,9469400.93\n7,2001,9282991.33\n8,2001,8701859.98\n9,2001,7980803.85\n10,2001,8151698.45\n11,2001,8776984.92\n12,2001,8853876.28\n1,2002,8724670.35\n2,2002,8556411.71\n3,2002,8871633.48\n4,2002,8339945.57\n5,2002,8278503.58\n6,2002,7524383.07\n7,2002,7089449.21\n8,2002,6839710.88\n9,2002,6360457.85\n10,2002,6920282.74\n11,2002,7313675.58\n12,2002,6897122.37\n1,2003,6716444.07\n2,2003,6615670.45\n3,2003,6679901.53\n4,2003,7230128.68\n5,2003,7638270.88\n6,2003,7708156.70\n7,2003,7844061.91\n8,2003,8108095.69\n9,2003,7912115.69\n10,2003,8359704.35\n11,2003,8528608.32\n12,2003,8875532.74\n1,2004,9071583.83\n2,2004,9252661.35\n3,2004,9025820.90\n4,2004,8884129.69\n5,2004,9010256.68\n6,2004,9181167.70\n7,2004,8916778.44\n8,2004,8913207.32\n9,2004,9009742.62\n10,2004,9149880.68\n11,2004,9517504.52\n12,2004,9841372.46\n1,2005,9601488.91\n2,2005,9803544.76\n3,2005,9629943.09\n4,2005,9490712.85\n5,2005,9747905.16\n6,2005,9761741.23\n7,2005,10134390.90\n8,2005,10032386.79\n9,2005,10113642.26\n10,2005,9945039.08\n11,2005,10321183.31\n12,2005,10494358.41\n1,2006,10598156.28\n2,2006,10626922.18\n3,2006,10759212.51\n4,2006,10858580.65\n5,2006,10589843.70\n6,2006,10604171.96\n7,2006,10669578.84\n8,2006,10923495.34\n9,2006,11167239.86\n10,2006,11570071.85\n11,2006,11790136.46\n12,2006,11943426.99\n1,2007,12136311.65\n2,2007,11898910.94\n3,2007,12063357.83\n4,2007,12564956.38\n5,2007,13003444.96\n6,2007,12924311.39\n7,2007,12390939.09\n8,2007,12576659.62\n9,2007,13220501.73\n10,2007,13254572.37\n11,2007,12700418.62\n12,2007,12612316.21\n1,2008,11855816.77\n2,2008,11470703.71\n3,2008,11421156.36\n4,2008,11977388.25\n5,2008,12005497.90\n6,2008,11109708.06\n7,2008,11016300.91\n8,2008,11130325.44\n9,2008,10179847.58\n10,2008,8470135.88\n11,2008,7160795.21\n12,2008,7946060.55\n1,2009,7272468.15\n2,2009,6198504.73\n3,2009,7071052.16\n4,2009,7747816.46\n5,2009,8392697.64\n6,2009,8197406.70\n7,2009,8817404.84\n8,2009,9135743.82\n9,2009,9476668.97\n10,2009,9360675.67\n11,2009,9858500.75\n12,2009,10048869.77\n1,2010,9825633.25\n2,2010,10089229.53\n3,2010,10590226.52\n4,2010,10757407.81\n5,2010,9728944.82\n6,2010,9380253.98\n7,2010,10258653.03\n8,2010,9584349.69\n9,2010,10439670.39\n10,2010,10847205.54\n11,2010,10838291.40\n12,2010,11562634.28\n1,2011,11836675.42\n2,2011,12242187.67\n3,2011,12247054.35\n4,2011,12587651.91\n5,2011,12467009.59\n6,2011,12259195.09\n7,2011,11960270.90\n8,2011,11357499.50\n9,2011,10559109.03\n10,2011,11713136.27\n11,2011,11687268.83\n12,2011,11989801.89\n1,2012,12335922.39\n2,2012,12869349.93\n3,2012,13393535.19\n4,2012,13209454.20\n5,2012,12415545.97\n6,2012,12959691.81\n7,2012,13106637.98\n8,2012,13401836.83\n9,2012,13785271.52\n10,2012,13494312.64\n11,2012,13572583.23\n12,2012,13696287.54\n1,2013,14405700.59\n2,2013,14601264.97\n3,2013,15082027.39\n4,2013,15440726.14\n5,2013,15801885.85\n6,2013,15675829.96\n7,2013,16383000.80\n8,2013,15908527.50\n9,2013,16407391.66\n10,2013,17161594.20\n11,2013,17684575.77\n12,2013,18132306.63\n1,2014,17505363.12\n2,2014,18306159.86\n3,2014,18459997.27\n4,2014,18596443.89\n5,2014,19033018.39\n6,2014,19426170.59\n7,2014,19158253.96\n8,2014,19924706.62\n9,2014,19645305.51\n10,2014,20125138.23\n11,2014,20666385.61\n12,2014,20614322.61\n1,2015,19995472.93\n2,2015,21144687.07\n3,2015,20810269.80\n4,2015,21009935.77\n5,2015,21280094.61\n6,2015,20868129.73\n7,2015,21305360.48\n8,2015,20019918.47\n9,2015,19524554.35\n10,2015,21171538.89\n11,2015,21234484.80\n12,2015,20899575.34\n1,2016,19862471.65\n2,2016,19835674.52\n3,2016,21181273.35\n4,2016,21263414.77\n5,2016,21645246.55\n6,2016,21701356.47\n7,2016,22501442.26\n8,2016,22533051.94\n9,2016,22537262.92\n10,2016,22126173.04\n11,2016,22945618.39\n12,2016,23399146.18\n1,2017,23842939.49\n2,2017,24789698.57\n3,2017,24818573.85\n4,2017,25073474.73\n5,2017,25426321.86\n6,2017,25585026.51\n7,2017,26111125.30\n8,2017,26191079.19\n9,2017,26731342.18\n10,2017,27355113.79\n11,2017,28194082.77\n12,2017,28507554.52\n1,2018,30139718.61\n2,2018,29028895.46\n3,2018,28291154.01\n4,2018,28399709.74\n5,2018,29083638.17\n6,2018,29262632.07\n7,2018,30351634.70\n8,2018,31340612.93\n9,2018,31519005.26\n10,2018,29364679.93\n11,2018,29963076.29\n12,2018,27257714.42\n1,2019,29442008.79\n2,2019,30387345.98\n3,2019,30977812.58\n4,2019,32232082.41\n5,2019,30183797.15\n6,2019,32311051.92\n7,2019,32775462.62\n8,2019,32256254.52\n9,2019,32859791.55\n10,2019,33571501.50\n11,2019,34790114.75\n12,2019,35840179.50\n1,2020,35826124.68\n2,2020,32876963.59\n3,2020,28816213.73\n4,2020,32510280.39\n5,2020,34058662.42\n6,2020,34736028.29\n7,2020,36694625.19\n8,2020,39332228.60\n9,2020,37837714.27\n10,2020,36831509.31\n11,2020,40863219.84\n12,2020,42434352.09\n1,2021,42005926.10\n2,2021,43164218.46\n3,2021,45054619.39\n4,2021,47459142.44\n5,2021,47790606.56\n6,2021,48906296.94\n7,2021,50068034.64\n8,2021,51590385.17\n9,2021,49190948.10\n10,2021,52637332.70\n11,2021,52272618.27\n12,2021,54615289.16\n1,2022,51789121.45\n2,2022,50238442.52\n3,2022,52103796.34\n4,2022,47560260.60\n5,2022,47647488.00\n6,2022,43714489.36\n7,2022,47745160.81\n8,2022,45798048.39\n9,2022,41580070.46\n10,2022,44946446.48\n11,2022,47458267.43\n12,2022,44723975.60\n1,2023,47534174.41\n2,2023,46374350.79\n3,2023,48076953.05\n4,2023,48827382.12\n5,2023,49039626.34\n6,2023,52279946.46\n7,2023,53959415.69\n8,2023,53100321.52\n9,2023,50568594.12\n10,2023,49505294.87\n11,2023,54026408.52\n12,2023,56480861.73\n1,2024,57429972.40\n2,2024,60496493.98\n3,2024,62442951.63\n4,2024,59892465.60\n5,2024,62862244.29\n6,2024,65117852.91\n7,2024,65910498.15\n8,2024,67509246.99\n9,2024,68951045.48\n10,2024,68325796.87\n11,2024,72336559.96\n12,2024,70612194.22\n1,2025,72578554.47\n2,2025,71631575.79\n3,2025,67595546.19\n4,2025,67137149.46\n5,2025,71363113.13\n6,2025,74992101.47\n7,2025,76675125.41\n8,2025,78229466.94\n9,2025,81084838.71\n10,2025,82983335.60\n11,2025,83186717.38\n12,2025,83237634.92\n`,
        'us_bonds': `1,1871,100.00\n2,1871,102.29\n3,1871,103.44\n4,1871,105.05\n5,1871,106.73\n6,1871,107.95\n7,1871,106.63\n8,1871,107.50\n9,1871,108.91\n10,1871,108.59\n11,1871,109.22\n12,1871,110.10\n1,1872,107.31\n2,1872,107.23\n3,1872,108.12\n4,1872,110.78\n5,1872,113.52\n6,1872,115.28\n7,1872,113.22\n8,1872,113.58\n9,1872,112.56\n10,1872,114.41\n11,1872,115.39\n12,1872,116.75\n1,1873,115.41\n2,1873,116.21\n3,1873,117.77\n4,1873,119.22\n5,1873,121.49\n6,1873,123.46\n7,1873,120.93\n8,1873,121.24\n9,1873,119.01\n10,1873,116.77\n11,1873,117.01\n12,1873,123.28\n1,1874,122.14\n2,1874,125.03\n3,1874,126.34\n4,1874,127.70\n5,1874,128.28\n6,1874,129.20\n7,1874,125.28\n8,1874,125.93\n9,1874,126.04\n10,1874,126.70\n11,1874,128.85\n12,1874,131.36\n1,1875,129.97\n2,1875,131.47\n3,1875,132.13\n4,1875,134.33\n5,1875,136.60\n6,1875,138.61\n7,1875,133.67\n8,1875,134.08\n9,1875,134.33\n10,1875,135.23\n11,1875,136.41\n12,1875,137.81\n1,1876,136.08\n2,1876,137.91\n3,1876,137.97\n4,1876,138.09\n5,1876,138.64\n6,1876,140.44\n7,1876,138.15\n8,1876,135.92\n9,1876,133.98\n10,1876,133.45\n11,1876,134.38\n12,1876,134.65\n1,1877,132.02\n2,1877,131.92\n3,1877,131.44\n4,1877,132.85\n5,1877,135.25\n6,1877,133.93\n7,1877,134.44\n8,1877,133.67\n9,1877,130.83\n10,1877,130.86\n11,1877,132.01\n12,1877,131.95\n1,1878,132.38\n2,1878,132.82\n3,1878,132.36\n4,1878,131.73\n5,1878,134.62\n6,1878,133.58\n7,1878,132.87\n8,1878,133.56\n9,1878,134.08\n10,1878,133.53\n11,1878,134.31\n12,1878,135.09\n1,1879,134.53\n2,1879,135.49\n3,1879,135.35\n4,1879,136.81\n5,1879,140.42\n6,1879,140.10\n7,1879,139.54\n8,1879,139.74\n9,1879,141.23\n10,1879,141.79\n11,1879,143.55\n12,1879,144.97\n1,1880,145.78\n2,1880,149.41\n3,1880,151.03\n4,1880,151.68\n5,1880,153.56\n6,1880,155.81\n7,1880,155.49\n8,1880,157.75\n9,1880,157.52\n10,1880,156.46\n11,1880,160.82\n12,1880,163.02\n1,1881,164.41\n2,1881,165.53\n3,1881,166.66\n4,1881,168.70\n5,1881,172.59\n6,1881,174.28\n7,1881,172.55\n8,1881,171.85\n9,1881,173.83\n10,1881,173.20\n11,1881,174.91\n12,1881,177.48\n1,1882,177.60\n2,1882,178.30\n3,1882,180.02\n4,1882,182.42\n5,1882,184.45\n6,1882,184.00\n7,1882,183.28\n8,1882,184.26\n9,1882,184.67\n10,1882,183.75\n11,1882,184.65\n12,1882,187.19\n1,1883,185.87\n2,1883,186.39\n3,1883,187.59\n4,1883,188.21\n5,1883,188.15\n6,1883,189.07\n7,1883,188.21\n8,1883,189.24\n9,1883,191.85\n10,1883,193.27\n11,1883,195.80\n12,1883,199.24\n1,1884,199.27\n2,1884,199.82\n3,1884,201.26\n4,1884,200.68\n5,1884,196.76\n6,1884,195.27\n7,1884,195.71\n8,1884,196.98\n9,1884,198.45\n10,1884,199.41\n11,1884,202.12\n12,1884,204.12\n1,1885,202.70\n2,1885,203.88\n3,1885,204.86\n4,1885,204.37\n5,1885,205.14\n6,1885,206.96\n7,1885,207.42\n8,1885,208.41\n9,1885,209.50\n10,1885,210.28\n11,1885,210.74\n12,1885,212.59\n1,1886,212.30\n2,1886,216.75\n3,1886,218.83\n4,1886,218.65\n5,1886,218.90\n6,1886,220.68\n7,1886,220.82\n8,1886,221.07\n9,1886,223.74\n10,1886,225.96\n11,1886,226.11\n12,1886,227.92\n1,1887,226.40\n2,1887,228.55\n3,1887,229.70\n4,1887,230.74\n5,1887,231.56\n6,1887,232.26\n7,1887,230.06\n8,1887,229.31\n9,1887,226.53\n10,1887,227.91\n11,1887,230.79\n12,1887,229.35\n1,1888,230.41\n2,1888,233.43\n3,1888,230.83\n4,1888,230.99\n5,1888,234.60\n6,1888,237.07\n7,1888,237.10\n8,1888,238.66\n9,1888,241.13\n10,1888,239.54\n11,1888,239.93\n12,1888,241.39\n1,1889,240.36\n2,1889,243.36\n3,1889,246.36\n4,1889,245.31\n5,1889,246.66\n6,1889,247.67\n7,1889,246.15\n8,1889,246.31\n9,1889,246.95\n10,1889,245.78\n11,1889,246.18\n12,1889,247.08\n1,1890,244.80\n2,1890,241.08\n3,1890,240.14\n4,1890,239.81\n5,1890,240.59\n6,1890,241.74\n7,1890,243.13\n8,1890,246.03\n9,1890,249.41\n10,1890,246.48\n11,1890,247.26\n12,1890,246.05\n1,1891,243.33\n2,1891,244.25\n3,1891,245.93\n4,1891,247.62\n5,1891,248.30\n6,1891,248.98\n7,1891,239.59\n8,1891,239.62\n9,1891,242.36\n10,1891,240.47\n11,1891,241.42\n12,1891,244.05\n1,1892,243.19\n2,1892,244.01\n3,1892,245.75\n4,1892,243.58\n5,1892,246.37\n6,1892,248.66\n7,1892,246.85\n8,1892,246.62\n9,1892,244.81\n10,1892,245.12\n11,1892,245.97\n12,1892,245.61\n1,1893,244.58\n2,1893,243.95\n3,1893,246.02\n4,1893,246.07\n5,1893,245.71\n6,1893,242.48\n7,1893,240.48\n8,1893,242.58\n9,1893,246.61\n10,1893,246.24\n11,1893,251.13\n12,1893,254.93\n1,1894,252.61\n2,1894,255.59\n3,1894,257.17\n4,1894,258.20\n5,1894,257.82\n6,1894,259.71\n7,1894,259.89\n8,1894,260.94\n9,1894,262.83\n10,1894,262.74\n11,1894,265.22\n12,1894,265.98\n1,1895,261.57\n2,1895,275.49\n3,1895,278.44\n4,1895,282.12\n5,1895,285.38\n6,1895,290.11\n7,1895,290.74\n8,1895,287.55\n9,1895,289.22\n10,1895,278.93\n11,1895,287.28\n12,1895,286.74\n1,1896,277.54\n2,1896,276.85\n3,1896,280.80\n4,1896,284.15\n5,1896,283.15\n6,1896,284.41\n7,1896,279.00\n8,1896,274.03\n9,1896,282.47\n10,1896,286.34\n11,1896,293.75\n12,1896,295.19\n1,1897,301.87\n2,1897,304.09\n3,1897,306.77\n4,1897,309.31\n5,1897,307.18\n6,1897,312.23\n7,1897,316.20\n8,1897,315.93\n9,1897,317.08\n10,1897,322.03\n11,1897,325.26\n12,1897,328.65\n1,1898,329.64\n2,1898,323.01\n3,1898,312.98\n4,1898,308.86\n5,1898,313.90\n6,1898,319.59\n7,1898,328.87\n8,1898,331.03\n9,1898,332.07\n10,1898,333.74\n11,1898,333.48\n12,1898,337.46\n1,1899,340.81\n2,1899,339.54\n3,1899,341.58\n4,1899,345.12\n5,1899,345.33\n6,1899,349.04\n7,1899,347.94\n8,1899,349.67\n9,1899,350.39\n10,1899,351.29\n11,1899,354.05\n12,1899,363.22\n1,1900,364.12\n2,1900,366.40\n3,1900,370.88\n4,1900,365.80\n5,1900,369.79\n6,1900,370.55\n7,1900,369.91\n8,1900,367.73\n9,1900,371.59\n10,1900,372.68\n11,1900,380.39\n12,1900,385.50\n1,1901,387.64\n2,1901,388.57\n3,1901,388.10\n4,1901,392.04\n5,1901,391.39\n6,1901,393.58\n7,1901,393.27\n8,1901,390.49\n9,1901,394.11\n10,1901,398.98\n11,1901,399.93\n12,1901,401.25\n1,1902,402.93\n2,1902,403.89\n3,1902,404.85\n4,1902,405.45\n5,1902,405.69\n6,1902,395.40\n7,1902,386.17\n8,1902,387.50\n9,1902,402.40\n10,1902,405.58\n11,1902,402.88\n12,1902,400.92\n1,1903,401.90\n2,1903,404.37\n3,1903,409.08\n4,1903,404.11\n5,1903,407.91\n6,1903,406.10\n7,1903,404.10\n8,1903,405.10\n9,1903,408.57\n10,1903,410.13\n11,1903,408.50\n12,1903,409.13\n1,1904,409.37\n2,1904,406.57\n3,1904,408.37\n4,1904,409.02\n5,1904,408.51\n6,1904,410.67\n7,1904,410.93\n8,1904,408.87\n9,1904,411.06\n10,1904,412.10\n11,1904,410.04\n12,1904,411.28\n1,1905,412.51\n2,1905,413.56\n3,1905,420.93\n4,1905,421.98\n5,1905,420.65\n6,1905,424.10\n7,1905,425.17\n8,1905,427.44\n9,1905,432.10\n10,1905,433.17\n11,1905,429.63\n12,1905,422.42\n1,1906,424.30\n2,1906,422.96\n3,1906,424.86\n4,1906,430.43\n5,1906,427.02\n6,1906,426.08\n7,1906,427.56\n8,1906,430.95\n9,1906,434.11\n10,1906,434.58\n11,1906,435.27\n12,1906,435.97\n1,1907,433.33\n2,1907,434.02\n3,1907,438.92\n4,1907,440.47\n5,1907,438.62\n6,1907,436.81\n7,1907,437.94\n8,1907,432.69\n9,1907,428.71\n10,1907,427.29\n11,1907,417.30\n12,1907,408.15\n1,1908,409.29\n2,1908,412.18\n3,1908,421.55\n4,1908,429.22\n5,1908,430.39\n6,1908,427.63\n7,1908,428.34\n8,1908,427.76\n9,1908,427.17\n10,1908,428.35\n11,1908,428.88\n12,1908,430.71\n1,1909,431.90\n2,1909,433.09\n3,1909,434.28\n4,1909,435.48\n5,1909,436.68\n6,1909,437.88\n7,1909,436.38\n8,1909,431.69\n9,1909,429.27\n10,1909,430.94\n11,1909,427.37\n12,1909,426.97\n1,1910,425.44\n2,1910,426.67\n3,1910,426.05\n4,1910,427.29\n5,1910,427.60\n6,1910,429.78\n7,1910,431.26\n8,1910,433.21\n9,1910,436.35\n10,1910,437.61\n11,1910,438.88\n12,1910,439.19\n1,1911,440.47\n2,1911,446.06\n3,1911,447.34\n4,1911,446.92\n5,1911,441.69\n6,1911,444.45\n7,1911,445.74\n8,1911,444.11\n9,1911,444.91\n10,1911,446.22\n11,1911,446.56\n12,1911,447.38\n1,1912,449.18\n2,1912,451.48\n3,1912,454.30\n4,1912,457.37\n5,1912,458.45\n6,1912,458.78\n7,1912,460.12\n8,1912,459.44\n9,1912,461.80\n10,1912,462.91\n11,1912,464.53\n12,1912,465.37\n1,1913,466.73\n2,1913,468.86\n3,1913,469.46\n4,1913,469.28\n5,1913,473.76\n6,1913,474.10\n7,1913,464.06\n8,1913,463.36\n9,1913,462.66\n10,1913,460.66\n11,1913,467.58\n12,1913,473.21\n1,1914,478.85\n2,1914,481.61\n3,1914,480.62\n4,1914,478.31\n5,1914,479.21\n6,1914,479.01\n7,1914,477.76\n8,1914,479.19\n9,1914,480.65\n10,1914,482.10\n11,1914,483.56\n12,1914,481.74\n1,1915,484.29\n2,1915,485.75\n3,1915,491.09\n4,1915,494.23\n5,1915,494.60\n6,1915,494.71\n7,1915,490.34\n8,1915,496.86\n9,1915,494.99\n10,1915,494.80\n11,1915,498.01\n12,1915,503.50\n1,1916,503.86\n2,1916,510.53\n3,1916,514.34\n4,1916,514.72\n5,1916,517.41\n6,1916,514.62\n7,1916,512.97\n8,1916,515.69\n9,1916,518.40\n10,1916,519.96\n11,1916,518.60\n12,1916,522.52\n1,1917,521.73\n2,1917,525.98\n3,1917,515.98\n4,1917,515.78\n5,1917,507.23\n6,1917,504.63\n7,1917,506.83\n8,1917,507.84\n9,1917,514.60\n10,1917,513.47\n11,1917,515.09\n12,1917,510.63\n1,1918,513.47\n2,1918,517.58\n3,1918,520.51\n4,1918,522.74\n5,1918,524.69\n6,1918,531.62\n7,1918,533.94\n8,1918,536.20\n9,1918,536.62\n10,1918,536.44\n11,1918,540.95\n12,1918,534.08\n1,1919,535.78\n2,1919,534.93\n3,1919,535.78\n4,1919,538.31\n5,1919,542.52\n6,1919,543.79\n7,1919,544.65\n8,1919,544.26\n9,1919,548.55\n10,1919,551.56\n11,1919,549.46\n12,1919,547.83\n1,1920,548.80\n2,1920,545.98\n3,1920,546.59\n4,1920,540.95\n5,1920,530.99\n6,1920,535.09\n7,1920,536.33\n8,1920,534.72\n9,1920,547.19\n10,1920,564.64\n11,1920,561.39\n12,1920,555.67\n1,1921,565.49\n2,1921,565.78\n3,1921,568.71\n4,1921,572.52\n5,1921,574.58\n6,1921,576.21\n7,1921,579.18\n8,1921,583.51\n9,1921,590.58\n10,1921,606.51\n11,1921,617.98\n12,1921,628.62\n1,1922,631.94\n2,1922,631.79\n3,1922,638.68\n4,1922,647.66\n5,1922,651.00\n6,1922,654.35\n7,1922,661.90\n8,1922,665.24\n9,1922,663.82\n10,1922,660.35\n11,1922,661.15\n12,1922,664.06\n1,1923,666.45\n2,1923,668.32\n3,1923,668.08\n4,1923,669.99\n5,1923,673.50\n6,1923,677.56\n7,1923,680.01\n8,1923,681.93\n9,1923,683.86\n10,1923,684.18\n11,1923,688.32\n12,1923,691.92\n1,1924,697.19\n2,1924,700.81\n3,1924,703.31\n4,1924,708.67\n5,1924,715.77\n6,1924,728.19\n7,1924,732.98\n8,1924,737.17\n9,1924,738.97\n10,1924,744.40\n11,1924,744.99\n12,1924,743.78\n1,1925,746.24\n2,1925,749.31\n3,1925,751.16\n4,1925,755.48\n5,1925,761.65\n6,1925,769.08\n7,1925,771.51\n8,1925,770.18\n9,1925,772.66\n10,1925,777.02\n11,1925,781.40\n12,1925,783.23\n1,1926,787.62\n2,1926,793.99\n3,1926,796.45\n4,1926,799.57\n5,1926,804.01\n6,1926,806.46\n7,1926,808.27\n8,1926,809.42\n9,1926,811.91\n10,1926,815.75\n11,1926,822.29\n12,1926,828.85\n1,1927,834.73\n2,1927,839.26\n3,1927,849.41\n4,1927,853.21\n5,1927,858.45\n6,1927,858.67\n7,1927,859.63\n8,1927,864.91\n9,1927,868.74\n10,1927,871.86\n11,1927,878.62\n12,1927,885.40\n1,1928,887.00\n2,1928,888.61\n3,1928,892.46\n4,1928,892.58\n5,1928,891.99\n6,1928,890.68\n7,1928,883.53\n8,1928,881.65\n9,1928,885.67\n10,1928,887.49\n11,1928,896.73\n12,1928,894.04\n1,1929,891.42\n2,1929,886.66\n3,1929,880.55\n4,1929,890.63\n5,1929,893.33\n6,1929,892.34\n7,1929,898.80\n8,1929,896.32\n9,1929,899.83\n10,1929,909.36\n11,1929,931.98\n12,1929,933.80\n1,1930,930.99\n2,1930,935.20\n3,1930,947.26\n4,1930,943.56\n5,1930,950.94\n6,1930,958.34\n7,1930,960.93\n8,1930,962.73\n9,1930,966.96\n10,1930,971.99\n11,1930,976.22\n12,1930,976.37\n1,1931,980.62\n2,1931,975.09\n3,1931,980.21\n4,1931,983.70\n5,1931,994.62\n6,1931,999.74\n7,1931,1000.67\n8,1931,1000.80\n9,1931,997.62\n10,1931,969.26\n11,1931,972.19\n12,1931,951.26\n1,1932,928.82\n2,1932,943.68\n3,1932,961.84\n4,1932,984.30\n5,1932,980.81\n6,1932,983.88\n7,1932,1001.77\n8,1932,1015.65\n9,1932,1021.11\n10,1932,1023.17\n11,1932,1024.39\n12,1932,1035.91\n1,1933,1050.09\n2,1933,1045.05\n3,1933,1038.40\n4,1933,1041.36\n5,1933,1054.80\n6,1933,1065.65\n7,1933,1069.39\n8,1933,1071.35\n9,1933,1076.00\n10,1933,1076.17\n11,1933,1057.75\n12,1933,1054.66\n1,1934,1062.15\n2,1934,1083.08\n3,1934,1097.86\n4,1934,1106.26\n5,1934,1115.61\n6,1934,1123.10\n7,1934,1128.70\n8,1934,1121.12\n9,1934,1107.23\n10,1934,1126.99\n11,1934,1129.86\n12,1934,1138.42\n1,1935,1156.63\n2,1935,1165.30\n3,1935,1167.99\n4,1935,1174.68\n5,1935,1178.36\n6,1935,1182.04\n7,1935,1186.73\n8,1935,1174.28\n9,1935,1174.05\n10,1935,1180.88\n11,1935,1182.65\n12,1935,1187.48\n1,1936,1192.30\n2,1936,1201.21\n3,1936,1209.10\n4,1936,1213.88\n5,1936,1218.66\n6,1936,1219.27\n7,1936,1223.02\n8,1936,1233.08\n9,1936,1232.58\n10,1936,1234.22\n11,1936,1249.68\n12,1936,1251.22\n1,1937,1259.22\n2,1937,1262.92\n3,1937,1237.18\n4,1937,1232.46\n5,1937,1239.63\n6,1937,1240.31\n7,1937,1252.94\n8,1937,1245.95\n9,1937,1251.00\n10,1937,1253.87\n11,1937,1263.31\n12,1937,1267.25\n1,1938,1272.29\n2,1938,1279.55\n3,1938,1280.12\n4,1938,1293.03\n5,1938,1300.30\n6,1938,1300.75\n7,1938,1304.63\n8,1938,1309.65\n9,1938,1303.26\n10,1938,1318.64\n11,1938,1316.76\n12,1938,1322.97\n1,1939,1325.70\n2,1939,1334.25\n3,1939,1347.49\n4,1939,1358.40\n5,1939,1377.74\n6,1939,1376.57\n7,1939,1381.46\n8,1939,1368.28\n9,1939,1315.84\n10,1939,1345.51\n11,1939,1361.33\n12,1939,1376.01\n1,1940,1377.44\n2,1940,1378.89\n3,1940,1393.68\n4,1940,1388.96\n5,1940,1368.71\n6,1940,1389.60\n7,1940,1400.83\n8,1940,1405.91\n9,1940,1418.41\n10,1940,1428.44\n11,1940,1451.14\n12,1940,1459.86\n1,1941,1462.15\n2,1941,1453.06\n3,1941,1474.07\n4,1941,1487.24\n5,1941,1488.42\n6,1941,1504.32\n7,1941,1523.02\n8,1941,1515.78\n9,1941,1516.80\n10,1941,1526.00\n11,1941,1522.88\n12,1941,1499.57\n1,1942,1503.50\n2,1942,1496.70\n3,1942,1510.10\n4,1942,1504.60\n5,1942,1511.29\n6,1942,1512.56\n7,1942,1511.14\n8,1942,1513.81\n9,1942,1515.13\n10,1942,1519.17\n11,1942,1519.14\n12,1942,1525.93\n1,1943,1534.09\n2,1943,1535.36\n3,1943,1535.28\n4,1943,1540.71\n5,1943,1550.29\n6,1943,1554.30\n7,1943,1554.14\n8,1943,1554.00\n9,1943,1556.67\n10,1943,1556.56\n11,1943,1555.09\n12,1943,1556.43\n1,1944,1559.18\n2,1944,1567.52\n3,1944,1570.24\n4,1944,1571.56\n5,1944,1574.29\n6,1944,1575.63\n7,1944,1578.39\n8,1944,1585.39\n9,1944,1586.71\n10,1944,1588.04\n11,1944,1590.80\n12,1944,1592.15\n1,1945,1615.02\n2,1945,1626.36\n3,1945,1636.25\n4,1945,1656.48\n5,1945,1658.87\n6,1945,1668.73\n7,1945,1666.57\n8,1945,1671.94\n9,1945,1678.81\n10,1945,1690.21\n11,1945,1700.08\n12,1945,1684.04\n1,1946,1695.48\n2,1946,1700.81\n3,1946,1706.13\n4,1946,1685.52\n5,1946,1686.42\n6,1946,1693.40\n7,1946,1689.73\n8,1946,1683.11\n9,1946,1678.10\n10,1946,1683.70\n11,1946,1674.23\n12,1946,1690.46\n1,1947,1699.11\n2,1947,1704.68\n3,1947,1707.18\n4,1947,1706.62\n5,1947,1710.68\n6,1947,1707.08\n7,1947,1711.19\n8,1947,1718.37\n9,1947,1713.21\n10,1947,1700.52\n11,1947,1688.07\n12,1947,1666.93\n1,1948,1669.95\n2,1948,1675.98\n3,1948,1680.49\n4,1948,1685.01\n5,1948,1701.63\n6,1948,1689.39\n7,1948,1689.40\n8,1948,1689.43\n9,1948,1697.05\n10,1948,1694.05\n11,1948,1704.75\n12,1948,1712.38\n1,1949,1723.08\n2,1949,1727.60\n3,1949,1736.76\n4,1949,1741.24\n5,1949,1745.71\n6,1949,1761.18\n7,1949,1768.74\n8,1949,1782.66\n9,1949,1780.58\n10,1949,1783.32\n11,1949,1786.07\n12,1949,1796.85\n1,1950,1783.51\n2,1950,1783.14\n3,1950,1782.80\n4,1950,1777.71\n5,1950,1779.07\n6,1950,1772.51\n7,1950,1775.55\n8,1950,1778.60\n9,1950,1775.30\n10,1950,1768.90\n11,1950,1767.35\n12,1950,1772.15\n1,1951,1783.31\n2,1951,1776.94\n3,1951,1756.54\n4,1951,1744.36\n5,1951,1733.97\n6,1951,1736.09\n7,1951,1755.30\n8,1951,1776.18\n9,1951,1757.59\n10,1951,1756.51\n11,1951,1753.93\n12,1951,1762.33\n1,1952,1766.02\n2,1952,1761.92\n3,1952,1765.60\n4,1952,1786.33\n5,1952,1796.15\n6,1952,1793.39\n7,1952,1787.58\n8,1952,1777.24\n9,1952,1764.02\n10,1952,1789.60\n11,1952,1794.91\n12,1952,1795.52\n1,1953,1782.13\n2,1953,1775.19\n3,1953,1769.93\n4,1953,1763.25\n5,1953,1734.01\n6,1953,1729.41\n7,1953,1761.14\n8,1953,1762.39\n9,1953,1779.02\n10,1953,1816.11\n11,1953,1816.98\n12,1953,1835.35\n1,1954,1857.03\n2,1954,1862.49\n3,1954,1882.68\n4,1954,1899.62\n5,1954,1889.99\n6,1954,1892.08\n7,1954,1909.12\n8,1954,1902.78\n9,1954,1903.20\n10,1954,1898.67\n11,1954,1894.24\n12,1954,1893.19\n1,1955,1880.70\n2,1955,1878.24\n3,1955,1879.12\n4,1955,1870.24\n5,1955,1872.90\n6,1955,1873.95\n7,1955,1858.82\n8,1955,1852.04\n9,1955,1856.62\n10,1955,1875.80\n11,1955,1878.67\n12,1955,1871.80\n1,1956,1876.42\n2,1956,1890.59\n3,1956,1875.80\n4,1956,1845.62\n5,1956,1867.87\n6,1956,1883.82\n7,1956,1870.96\n8,1956,1841.15\n9,1956,1838.47\n10,1956,1849.89\n11,1956,1831.66\n12,1956,1821.55\n1,1957,1827.00\n2,1957,1850.62\n3,1957,1845.01\n4,1957,1839.53\n5,1957,1826.61\n6,1957,1802.03\n7,1957,1788.45\n8,1957,1794.31\n9,1957,1801.67\n10,1957,1800.12\n11,1957,1843.73\n12,1957,1929.39\n1,1958,1953.99\n2,1958,1965.57\n3,1958,1982.12\n4,1958,2003.72\n5,1958,2001.82\n6,1958,1998.33\n7,1958,1965.21\n8,1958,1915.56\n9,1958,1886.55\n10,1958,1886.22\n11,1958,1901.60\n12,1958,1888.71\n1,1959,1894.79\n2,1959,1910.39\n3,1959,1912.04\n4,1959,1898.34\n5,1959,1875.89\n6,1959,1878.08\n7,1959,1875.79\n8,1959,1878.13\n9,1959,1847.62\n10,1959,1877.28\n11,1959,1884.36\n12,1959,1867.36\n1,1960,1870.16\n2,1960,1912.47\n3,1960,1957.06\n4,1960,1959.25\n5,1960,1955.19\n6,1960,1994.17\n7,1960,2041.95\n8,1960,2065.27\n9,1960,2071.81\n10,1960,2063.25\n11,1960,2063.24\n12,1960,2085.16\n1,1961,2091.83\n2,1961,2108.77\n3,1961,2122.29\n4,1961,2122.00\n5,1961,2140.83\n6,1961,2118.01\n7,1961,2117.98\n8,1961,2104.36\n9,1961,2121.72\n10,1961,2139.13\n11,1961,2142.64\n12,1961,2128.90\n1,1962,2129.21\n2,1962,2153.83\n3,1962,2185.66\n4,1962,2192.69\n5,1962,2192.62\n6,1962,2182.00\n7,1962,2182.20\n8,1962,2203.77\n9,1962,2214.63\n10,1962,2225.50\n11,1962,2232.77\n12,1962,2252.81\n1,1963,2256.38\n2,1963,2250.85\n3,1963,2256.41\n4,1963,2263.84\n5,1963,2269.45\n6,1963,2269.58\n7,1963,2277.15\n8,1963,2281.04\n9,1963,2279.45\n10,1963,2272.45\n11,1963,2293.24\n12,1963,2289.91\n1,1964,2295.95\n2,1964,2298.32\n3,1964,2297.04\n4,1964,2307.00\n5,1964,2320.72\n6,1964,2336.35\n7,1964,2336.88\n8,1964,2341.25\n9,1964,2355.16\n10,1964,2367.19\n11,1964,2367.74\n12,1964,2374.11\n1,1965,2386.28\n2,1965,2388.83\n3,1965,2401.10\n4,1965,2407.56\n5,1965,2412.11\n6,1965,2426.48\n7,1965,2431.05\n8,1965,2429.78\n9,1965,2422.76\n10,1965,2419.83\n11,1965,2415.10\n12,1965,2391.27\n1,1966,2400.54\n2,1966,2349.22\n3,1966,2416.25\n4,1966,2410.75\n5,1966,2418.50\n6,1966,2396.49\n7,1966,2391.62\n8,1966,2345.14\n9,1966,2418.00\n10,1966,2437.49\n11,1966,2419.46\n12,1966,2521.60\n1,1967,2555.05\n2,1967,2525.17\n3,1967,2578.76\n4,1967,2532.81\n5,1967,2537.01\n6,1967,2467.92\n7,1967,2490.12\n8,1967,2479.77\n9,1967,2483.03\n10,1967,2431.84\n11,1967,2424.72\n12,1967,2443.75\n1,1968,2584.01\n2,1968,2592.04\n3,1968,2565.23\n4,1968,2581.41\n5,1968,2570.54\n6,1968,2626.06\n7,1968,2688.53\n8,1968,2694.50\n9,1968,2692.43\n10,1968,2680.44\n11,1968,2658.83\n12,1968,2596.88\n1,1969,2604.39\n2,1969,2604.43\n3,1969,2610.37\n4,1969,2643.36\n5,1969,2588.05\n6,1969,2570.24\n7,1969,2597.83\n8,1969,2580.23\n9,1969,2470.96\n10,1969,2590.45\n11,1969,2540.55\n12,1969,2450.53\n1,1970,2489.52\n2,1970,2663.21\n3,1970,2643.92\n4,1970,2522.28\n5,1970,2515.39\n6,1970,2581.14\n7,1970,2653.97\n8,1970,2649.34\n9,1970,2704.37\n10,1970,2712.99\n11,1970,2900.55\n12,1970,2914.11\n1,1971,3019.11\n2,1971,3023.32\n3,1971,3178.67\n4,1971,3066.27\n5,1971,3014.82\n6,1971,2961.03\n7,1971,2945.35\n8,1971,3087.66\n9,1971,3168.24\n10,1971,3214.71\n11,1971,3216.19\n12,1971,3241.62\n1,1972,3209.95\n2,1972,3238.11\n3,1972,3235.35\n4,1972,3247.08\n5,1972,3285.33\n6,1972,3277.74\n7,1972,3301.80\n8,1972,3246.56\n9,1972,3235.50\n10,1972,3284.11\n11,1972,3333.18\n12,1972,3318.93\n1,1973,3305.18\n2,1973,3299.44\n3,1973,3296.38\n4,1973,3321.99\n5,1973,3286.10\n6,1973,3302.72\n7,1973,3208.35\n8,1973,3269.58\n9,1973,3372.19\n10,1973,3437.94\n11,1973,3462.11\n12,1973,3429.56\n1,1974,3424.79\n2,1974,3442.35\n3,1974,3366.93\n4,1974,3329.37\n5,1974,3383.35\n6,1974,3376.30\n7,1974,3339.54\n8,1974,3310.96\n9,1974,3372.56\n10,1974,3430.22\n11,1974,3488.53\n12,1974,3569.81\n1,1975,3559.47\n2,1975,3599.06\n3,1975,3487.87\n4,1975,3440.53\n5,1975,3528.27\n6,1975,3571.27\n7,1975,3536.90\n8,1975,3556.25\n9,1975,3518.35\n10,1975,3682.58\n11,1975,3649.40\n12,1975,3770.37\n1,1976,3784.40\n2,1976,3816.81\n3,1976,3870.52\n4,1976,3892.56\n5,1976,3840.70\n6,1976,3892.59\n7,1976,3918.09\n8,1976,3997.99\n9,1976,4053.94\n10,1976,4116.03\n11,1976,4260.40\n12,1976,4345.25\n1,1977,4195.08\n2,1977,4206.46\n3,1977,4241.32\n4,1977,4258.75\n5,1977,4305.87\n6,1977,4386.45\n7,1977,4346.37\n8,1977,4415.61\n9,1977,4402.80\n10,1977,4366.60\n11,1977,4415.46\n12,1977,4373.86\n1,1978,4354.48\n2,1978,4353.96\n3,1978,4350.95\n4,1978,4354.22\n5,1978,4331.83\n6,1978,4304.68\n7,1978,4352.88\n8,1978,4433.75\n9,1978,4414.59\n10,1978,4330.13\n11,1978,4391.29\n12,1978,4340.20\n1,1979,4431.10\n2,1979,4401.61\n3,1979,4452.31\n4,1979,4417.85\n5,1979,4535.58\n6,1979,4643.88\n7,1979,4618.16\n8,1979,4584.81\n9,1979,4561.59\n10,1979,4242.94\n11,1979,4372.10\n12,1979,4423.68\n1,1980,4246.59\n2,1980,3910.58\n3,1980,3969.98\n4,1980,4473.64\n5,1980,4653.09\n6,1980,4738.16\n7,1980,4590.58\n8,1980,4421.82\n9,1980,4384.89\n10,1980,4278.51\n11,1980,4259.64\n12,1980,4376.23\n1,1981,4359.24\n2,1981,4229.83\n3,1981,4346.89\n4,1981,4170.23\n5,1981,4358.42\n6,1981,4323.59\n7,1981,4191.15\n8,1981,4083.55\n9,1981,4046.61\n10,1981,4362.67\n11,1981,4781.94\n12,1981,4619.24\n1,1982,4633.70\n2,1982,4715.62\n3,1982,4733.12\n4,1982,4868.24\n5,1982,4966.61\n6,1982,4833.29\n7,1982,5091.95\n8,1982,5397.44\n9,1982,5790.47\n10,1982,6195.05\n11,1982,6221.75\n12,1982,6435.00\n1,1983,6328.26\n2,1983,6586.42\n3,1983,6507.80\n4,1983,6701.58\n5,1983,6548.65\n6,1983,6550.35\n7,1983,6313.50\n8,1983,6296.33\n9,1983,6557.69\n10,1983,6507.80\n11,1983,6612.77\n12,1983,6605.06\n1,1984,6727.27\n2,1984,6651.61\n3,1984,6536.07\n4,1984,6498.67\n5,1984,6188.12\n6,1984,6283.56\n7,1984,6687.47\n8,1984,6804.48\n9,1984,7000.60\n10,1984,7349.63\n11,1984,7511.14\n12,1984,7596.63\n1,1985,7838.88\n2,1985,7578.46\n3,1985,7769.66\n4,1985,7955.42\n5,1985,8586.12\n6,1985,8675.26\n7,1985,8583.68\n8,1985,8810.57\n9,1985,8870.09\n10,1985,9109.05\n11,1985,9421.79\n12,1985,9846.86\n1,1986,9871.90\n2,1986,10577.82\n3,1986,11182.14\n4,1986,11258.48\n5,1986,10837.60\n6,1986,11426.49\n7,1986,11504.13\n8,1986,11880.08\n9,1986,11556.73\n10,1986,11713.81\n11,1986,11935.71\n12,1986,11942.88\n1,1987,12054.99\n2,1987,12119.03\n3,1987,11934.83\n4,1987,11468.80\n5,1987,11338.60\n6,1987,11500.77\n7,1987,11372.57\n8,1987,11206.37\n9,1987,10845.81\n10,1987,11469.17\n11,1987,11472.60\n12,1987,11678.15\n1,1988,12207.09\n2,1988,12371.66\n3,1988,12127.71\n4,1988,11979.87\n5,1988,11815.57\n6,1988,12200.18\n7,1988,12055.22\n8,1988,12046.27\n9,1988,12438.57\n10,1988,12709.73\n11,1988,12467.68\n12,1988,12497.59\n1,1989,12698.16\n2,1989,12542.26\n3,1989,12655.80\n4,1989,12984.45\n5,1989,13441.17\n6,1989,13985.57\n7,1989,14341.28\n8,1989,14024.29\n9,1989,14074.85\n10,1989,14538.77\n11,1989,14711.95\n12,1989,14720.66\n1,1990,14341.48\n2,1990,14365.64\n3,1990,14333.83\n4,1990,14070.61\n5,1990,14594.17\n6,1990,14865.63\n7,1990,15039.98\n8,1990,14651.17\n9,1990,14798.33\n10,1990,15075.54\n11,1990,15583.08\n12,1990,15880.39\n1,1991,16041.00\n2,1991,16159.18\n3,1991,16234.47\n4,1991,16376.30\n5,1991,16441.58\n6,1991,16353.85\n7,1991,16510.21\n8,1991,17052.40\n9,1991,17574.58\n10,1991,17683.98\n11,1991,17903.18\n12,1991,18858.73\n1,1992,18200.49\n2,1992,18362.58\n3,1992,18129.55\n4,1992,18155.00\n5,1992,18629.59\n6,1992,18994.01\n7,1992,19679.84\n8,1992,19930.43\n9,1992,20398.91\n10,1992,19892.24\n11,1992,19794.80\n12,1992,20263.33\n1,1993,20829.03\n2,1993,21499.67\n3,1993,21607.71\n4,1993,21684.39\n5,1993,21618.42\n6,1993,22312.71\n7,1993,22370.96\n8,1993,23121.11\n9,1993,23312.59\n10,1993,23365.33\n11,1993,22786.00\n12,1993,22896.71\n1,1994,23229.97\n2,1994,22579.34\n3,1994,21691.61\n4,1994,21361.22\n5,1994,21317.27\n6,1994,21184.25\n7,1994,21653.64\n8,1994,21672.61\n9,1994,21140.91\n10,1994,20989.13\n11,1994,20976.19\n12,1994,21219.69\n1,1995,21726.59\n2,1995,22467.68\n3,1995,22635.40\n4,1995,22985.43\n5,1995,24450.82\n6,1995,24741.68\n7,1995,24437.12\n8,1995,24875.55\n9,1995,25208.05\n10,1995,25599.46\n11,1995,26245.18\n12,1995,26724.77\n1,1996,26809.28\n2,1996,25902.05\n3,1996,25637.00\n4,1996,25178.30\n5,1996,24971.49\n6,1996,25333.46\n7,1996,25346.53\n8,1996,25196.70\n9,1996,25787.20\n10,1996,26601.06\n11,1996,27356.63\n12,1996,26759.82\n1,1997,26707.77\n2,1997,26794.50\n3,1997,26246.34\n4,1997,26782.99\n5,1997,27030.95\n6,1997,27499.50\n7,1997,28658.41\n8,1997,28134.31\n9,1997,28742.42\n10,1997,29490.40\n11,1997,29590.24\n12,1997,29977.17\n1,1998,30615.47\n2,1998,30552.04\n3,1998,30581.71\n4,1998,30703.49\n5,1998,31124.23\n6,1998,31548.20\n7,1998,31550.31\n8,1998,32775.92\n9,1998,34459.55\n10,1998,34068.67\n11,1998,33943.82\n12,1998,34309.63\n1,1999,34416.63\n2,1999,32957.25\n3,1999,33201.37\n4,1999,33074.51\n5,1999,32538.88\n6,1999,32283.53\n7,1999,32177.77\n8,1999,32193.98\n9,1999,32545.58\n10,1999,32417.96\n11,1999,32200.08\n12,1999,31733.08\n1,2000,31373.91\n2,2000,32151.55\n3,2000,33260.35\n4,2000,32940.46\n5,2000,32966.35\n6,2000,33777.15\n7,2000,33921.94\n8,2000,34880.69\n9,2000,34866.48\n10,2000,35112.71\n11,2000,36047.50\n12,2000,37196.41\n1,2001,37160.32\n2,2001,38105.53\n3,2001,38232.23\n4,2001,37168.66\n5,2001,37106.24\n6,2001,37302.70\n7,2001,38492.07\n8,2001,39316.54\n9,2001,40247.42\n10,2001,41356.03\n11,2001,39984.68\n12,2001,39255.06\n1,2002,39420.91\n2,2002,40172.01\n3,2002,38694.24\n4,2002,39805.19\n5,2002,40067.14\n6,2002,40925.56\n7,2002,42221.47\n8,2002,43620.75\n9,2002,45560.10\n10,2002,44631.99\n11,2002,43772.85\n12,2002,45289.97\n1,2003,44832.21\n2,2003,46052.13\n3,2003,45746.55\n4,2003,45669.81\n5,2003,47798.14\n6,2003,47272.20\n7,2003,43904.01\n8,2003,44210.16\n9,2003,46163.47\n10,2003,44952.45\n11,2003,45078.34\n12,2003,45497.22\n1,2004,46066.06\n2,2004,46865.39\n3,2004,47519.07\n4,2004,45163.06\n5,2004,44863.33\n6,2004,45182.17\n7,2004,45795.00\n8,2004,47357.26\n9,2004,47481.88\n10,2004,47993.49\n11,2004,46966.01\n12,2004,47594.56\n1,2005,48149.72\n2,2005,47466.40\n3,2005,47105.60\n4,2005,48399.00\n5,2005,49399.94\n6,2005,49805.97\n7,2005,48615.52\n8,2005,49824.01\n9,2005,48716.34\n10,2005,47996.98\n11,2005,48490.21\n12,2005,49064.52\n1,2006,48693.03\n2,2006,48798.44\n3,2006,47782.54\n4,2006,47179.22\n5,2006,47190.37\n6,2006,47278.76\n7,2006,48090.46\n8,2006,49264.46\n9,2006,49856.77\n10,2006,50170.06\n11,2006,50972.93\n12,2006,50146.56\n1,2007,49862.44\n2,2007,51157.43\n3,2007,50982.53\n4,2007,51262.20\n5,2007,50360.38\n6,2007,50044.45\n7,2007,51267.22\n8,2007,52470.84\n9,2007,52458.46\n10,2007,53126.19\n11,2007,55563.71\n12,2007,55432.65\n1,2008,57313.56\n2,2008,58147.79\n3,2008,58700.50\n4,2008,57355.73\n5,2008,56199.68\n6,2008,56710.05\n7,2008,56898.61\n8,2008,57832.80\n9,2008,57923.33\n10,2008,57360.83\n11,2008,62852.10\n12,2008,66646.03\n1,2009,63435.95\n2,2009,62808.57\n3,2009,64593.41\n4,2009,62388.35\n5,2009,60987.37\n6,2009,60865.27\n7,2009,61094.08\n8,2009,61876.04\n9,2009,62509.30\n10,2009,62171.73\n11,2009,63376.22\n12,2009,60316.54\n1,2010,61601.24\n2,2010,61888.23\n3,2010,60925.07\n4,2010,61869.12\n5,2010,64012.06\n6,2010,66002.39\n7,2010,66329.06\n8,2010,69119.47\n9,2010,68918.87\n10,2010,68495.93\n11,2010,67634.75\n12,2010,64697.06\n1,2011,64351.96\n2,2011,64866.69\n3,2011,64831.98\n4,2011,65793.43\n5,2011,68022.06\n6,2011,66700.88\n7,2011,69192.60\n8,2011,73447.74\n9,2011,75050.21\n10,2011,74589.83\n11,2011,74074.75\n12,2011,75623.90\n1,2012,76135.97\n2,2012,75235.40\n3,2012,73695.84\n4,2012,75499.58\n5,2012,78313.42\n6,2012,77856.21\n7,2012,79092.64\n8,2012,78766.42\n9,2012,78305.17\n10,2012,77922.08\n11,2012,78736.90\n12,2012,77720.01\n1,2013,76181.41\n2,2013,77202.08\n3,2013,77462.21\n4,2013,78773.71\n5,2013,75704.86\n6,2013,73447.74\n7,2013,73080.58\n8,2013,72078.34\n9,2013,73289.97\n10,2013,73859.20\n11,2013,72136.89\n12,2013,71309.07\n1,2014,73833.17\n2,2014,74121.04\n3,2014,73857.57\n4,2014,74460.95\n5,2014,75934.42\n6,2014,75757.15\n7,2014,75656.32\n8,2014,77315.20\n9,2014,76380.04\n10,2014,77677.87\n11,2014,78922.03\n12,2014,79221.28\n1,2015,83388.00\n2,2015,81024.91\n3,2015,81644.55\n4,2015,80994.01\n5,2015,80494.72\n6,2015,79000.10\n7,2015,80325.58\n8,2015,80201.97\n9,2015,81496.55\n10,2015,80984.25\n11,2015,80567.90\n12,2015,80120.65\n1,2016,82926.11\n2,2016,84342.67\n3,2016,84141.00\n4,2016,83923.07\n5,2016,83841.75\n6,2016,86731.78\n7,2016,87102.59\n8,2016,86258.51\n9,2016,86064.98\n10,2016,84467.90\n11,2016,80358.10\n12,2016,80071.86\n1,2017,80227.99\n2,2017,80901.30\n3,2017,80816.73\n4,2017,81773.03\n5,2017,82402.43\n6,2017,81886.87\n7,2017,82125.95\n8,2017,83453.05\n9,2017,82059.27\n10,2017,81906.39\n11,2017,81683.58\n12,2017,81882.00\n1,2018,79905.98\n2,2018,78912.27\n3,2018,79883.21\n4,2018,78746.39\n5,2018,79530.29\n6,2018,79691.30\n7,2018,79190.38\n8,2018,79951.51\n9,2018,78866.74\n10,2018,78437.38\n11,2018,79559.56\n12,2018,81945.42\n1,2019,82511.39\n2,2019,82038.13\n3,2019,84508.56\n4,2019,83927.95\n5,2019,86772.44\n6,2019,87919.02\n7,2019,87982.45\n8,2019,92118.26\n9,2019,90787.90\n10,2019,90770.01\n11,2019,90122.73\n12,2019,89086.74\n1,2020,92549.24\n2,2020,95764.54\n3,2020,99945.90\n4,2020,100363.87\n5,2020,100453.32\n6,2020,100472.84\n7,2020,101658.45\n8,2020,100186.60\n9,2020,100505.36\n10,2020,98774.92\n11,2020,99142.48\n12,2020,98613.91\n1,2021,97205.49\n2,2021,94614.71\n3,2021,91752.33\n4,2021,92827.35\n5,2021,93164.01\n6,2021,94535.02\n7,2021,96636.27\n8,2021,96226.43\n9,2021,94497.62\n10,2021,94177.22\n11,2021,95499.45\n12,2021,94922.09\n1,2022,92785.07\n2,2022,92497.20\n3,2022,88616.72\n4,2022,84428.86\n5,2022,84892.37\n6,2022,84020.65\n7,2022,86673.23\n8,2022,83240.00\n9,2022,79097.68\n10,2022,77601.43\n11,2022,80486.58\n12,2022,79286.34\n1,2023,82047.88\n2,2023,79504.27\n3,2023,82584.58\n4,2023,83183.08\n5,2023,81966.57\n6,2023,81020.03\n7,2023,80356.48\n8,2023,79613.23\n9,2023,76872.83\n10,2023,75139.14\n11,2023,78783.79\n12,2023,82090.17\n1,2024,81828.33\n2,2024,80141.80\n3,2024,80675.24\n4,2024,77972.24\n5,2024,79437.59\n6,2024,80458.94\n7,2024,82779.74\n8,2024,83936.08\n9,2024,85082.66\n10,2024,82059.27\n11,2024,82890.33\n12,2024,80719.15\n1,2025,81198.93\n2,2025,83708.39\n3,2025,83914.94\n4,2025,84565.48\n5,2025,83415.65\n6,2025,84762.27\n7,2025,84194.67\n8,2025,85523.40\n9,2025,86330.07\n10,2025,86992.00\n11,2025,87909.26\n12,2025,87193.66\n`,
        'ex_us_stocks': `1,1871,100.00\n2,1871,101.87\n3,1871,104.87\n4,1871,108.45\n5,1871,111.47\n6,1871,111.08\n7,1871,109.55\n8,1871,111.18\n9,1871,112.81\n10,1871,107.49\n11,1871,109.13\n12,1871,112.25\n1,1872,115.42\n2,1872,116.54\n3,1872,120.62\n4,1872,124.73\n5,1872,125.26\n6,1872,124.59\n7,1872,124.23\n8,1872,123.32\n9,1872,122.12\n10,1872,123.07\n11,1872,123.38\n12,1872,126.80\n1,1873,128.35\n2,1873,130.23\n3,1873,129.65\n4,1873,128.47\n5,1873,129.50\n6,1873,128.64\n7,1873,129.07\n8,1873,129.82\n9,1873,120.51\n10,1873,110.84\n11,1873,107.56\n12,1873,118.48\n1,1874,125.34\n2,1874,129.55\n3,1874,128.43\n4,1874,125.28\n5,1874,122.89\n6,1874,122.89\n7,1874,123.57\n8,1874,124.60\n9,1874,127.37\n10,1874,127.72\n11,1874,129.13\n12,1874,129.49\n1,1875,130.26\n2,1875,130.68\n3,1875,132.89\n4,1875,135.42\n5,1875,131.06\n6,1875,128.87\n7,1875,129.91\n8,1875,131.32\n9,1875,130.52\n10,1875,129.34\n11,1875,131.89\n12,1875,132.61\n1,1876,136.42\n2,1876,139.10\n3,1876,139.47\n4,1876,134.79\n5,1876,130.46\n6,1876,130.41\n7,1876,129.53\n8,1876,124.73\n9,1876,117.92\n10,1876,117.79\n11,1876,116.46\n12,1876,116.34\n1,1877,116.13\n2,1877,109.83\n3,1877,104.70\n4,1877,97.90\n5,1877,98.45\n6,1877,91.92\n7,1877,96.19\n8,1877,103.36\n9,1877,110.13\n10,1877,113.10\n11,1877,111.84\n12,1877,111.85\n1,1878,112.31\n2,1878,110.63\n3,1878,112.83\n4,1878,116.78\n5,1878,117.69\n6,1878,120.75\n7,1878,123.38\n8,1878,122.50\n9,1878,125.63\n10,1878,124.78\n11,1878,124.84\n12,1878,124.45\n1,1879,129.93\n2,1879,134.96\n3,1879,133.67\n4,1879,138.28\n5,1879,145.23\n6,1879,147.16\n7,1879,150.02\n8,1879,151.98\n9,1879,158.12\n10,1879,175.92\n11,1879,185.86\n12,1879,186.06\n1,1880,193.78\n2,1880,198.24\n3,1880,202.22\n4,1880,198.64\n5,1880,183.65\n6,1880,184.91\n7,1880,194.36\n8,1880,202.40\n9,1880,202.73\n10,1880,209.39\n11,1880,221.46\n12,1880,231.13\n1,1881,245.74\n2,1881,245.62\n3,1881,249.43\n4,1881,249.78\n5,1881,261.61\n6,1881,265.50\n7,1881,257.38\n8,1881,252.23\n9,1881,255.19\n10,1881,252.06\n11,1881,254.53\n12,1881,248.43\n1,1882,245.32\n2,1882,241.17\n3,1882,241.67\n4,1882,242.64\n5,1882,240.52\n6,1882,240.51\n7,1882,255.28\n8,1882,263.75\n9,1882,267.50\n10,1882,261.69\n11,1882,251.57\n12,1882,253.79\n1,1883,253.86\n2,1883,249.05\n3,1883,253.49\n4,1883,260.14\n5,1883,256.37\n6,1883,260.34\n7,1883,257.13\n8,1883,246.64\n9,1883,250.68\n10,1883,245.18\n11,1883,249.85\n12,1883,245.95\n1,1884,239.73\n2,1884,247.26\n3,1884,247.33\n4,1884,238.70\n5,1884,219.50\n6,1884,211.98\n7,1884,213.20\n8,1884,228.10\n9,1884,221.51\n10,1884,215.42\n11,1884,212.33\n12,1884,212.85\n1,1885,209.04\n2,1885,216.51\n3,1885,218.07\n4,1885,218.57\n5,1885,217.07\n6,1885,217.07\n7,1885,226.13\n8,1885,239.77\n9,1885,237.68\n10,1885,252.45\n11,1885,269.81\n12,1885,268.69\n1,1886,269.64\n2,1886,275.77\n3,1886,270.98\n4,1886,268.25\n5,1886,263.95\n6,1886,276.91\n7,1886,282.01\n8,1886,285.00\n9,1886,293.32\n10,1886,301.67\n11,1886,310.04\n12,1886,302.93\n1,1887,300.65\n2,1887,299.43\n3,1887,307.41\n4,1887,315.40\n5,1887,321.80\n6,1887,313.51\n7,1887,306.91\n8,1887,300.28\n9,1887,297.49\n10,1887,288.65\n11,1887,295.33\n12,1887,294.80\n1,1888,298.17\n2,1888,297.62\n3,1888,287.50\n4,1888,289.79\n5,1888,294.90\n6,1888,286.83\n7,1888,295.34\n8,1888,302.73\n9,1888,311.27\n10,1888,310.55\n11,1888,305.14\n12,1888,300.29\n1,1889,307.10\n2,1889,311.60\n3,1889,306.13\n4,1889,306.54\n5,1889,315.82\n6,1889,322.19\n7,1889,316.71\n8,1889,321.97\n9,1889,330.84\n10,1889,325.90\n11,1889,323.96\n12,1889,323.23\n1,1890,327.86\n2,1890,325.20\n3,1890,323.77\n4,1890,331.54\n5,1890,346.71\n6,1890,345.27\n7,1890,343.89\n8,1890,336.90\n9,1890,332.39\n10,1890,318.41\n11,1890,296.25\n12,1890,290.38\n1,1891,306.60\n2,1891,311.48\n3,1891,306.85\n4,1891,318.15\n5,1891,317.99\n6,1891,312.71\n7,1891,308.72\n8,1891,320.23\n9,1891,347.35\n10,1891,348.49\n11,1891,344.42\n12,1891,356.10\n1,1892,363.87\n2,1892,365.72\n3,1892,370.91\n4,1892,371.47\n5,1892,372.71\n6,1892,371.94\n7,1892,373.17\n8,1892,379.79\n9,1892,371.56\n10,1892,380.27\n11,1892,380.19\n12,1892,377.37\n1,1893,385.55\n2,1893,380.02\n3,1893,367.61\n4,1893,368.98\n5,1893,337.67\n6,1893,322.98\n7,1893,294.21\n8,1893,288.51\n9,1893,310.37\n10,1893,320.88\n11,1893,327.16\n12,1893,316.99\n1,1894,311.78\n2,1894,317.31\n3,1894,327.94\n4,1894,333.51\n5,1894,322.32\n6,1894,319.13\n7,1894,313.72\n8,1894,326.77\n9,1894,333.19\n10,1894,324.01\n11,1894,325.23\n12,1894,323.46\n1,1895,320.92\n2,1895,317.62\n3,1895,318.84\n4,1895,333.71\n5,1895,353.20\n6,1895,361.24\n7,1895,363.91\n8,1895,370.44\n9,1895,373.91\n10,1895,369.63\n11,1895,358.34\n12,1895,338.40\n1,1896,335.56\n2,1896,350.76\n3,1896,346.40\n4,1896,350.73\n5,1896,350.28\n6,1896,345.08\n7,1896,323.88\n8,1896,306.62\n9,1896,323.88\n10,1896,332.29\n11,1896,356.13\n12,1896,344.27\n1,1897,345.42\n2,1897,343.32\n3,1897,345.31\n4,1897,335.75\n5,1897,338.57\n6,1897,355.50\n7,1897,372.50\n8,1897,397.87\n9,1897,418.30\n10,1897,406.02\n11,1897,392.89\n12,1897,402.53\n1,1898,414.73\n2,1898,415.10\n3,1898,397.58\n4,1898,391.98\n5,1898,418.95\n6,1898,436.55\n7,1898,439.58\n8,1898,457.31\n9,1898,457.79\n10,1898,449.57\n11,1898,465.81\n12,1898,496.14\n1,1899,535.31\n2,1899,556.94\n3,1899,566.25\n4,1899,574.70\n5,1899,552.14\n6,1899,541.07\n7,1899,561.27\n8,1899,577.04\n9,1899,572.24\n10,1899,571.07\n11,1899,583.43\n12,1899,545.27\n1,1900,554.22\n2,1900,565.93\n3,1900,572.21\n4,1900,581.30\n5,1900,555.58\n6,1900,540.82\n7,1900,542.59\n8,1900,551.84\n9,1900,551.84\n10,1900,540.73\n11,1900,562.32\n12,1900,608.32\n1,1901,667.84\n2,1901,686.88\n3,1901,713.45\n4,1901,775.22\n5,1901,738.13\n6,1901,813.76\n7,1901,761.35\n8,1901,774.07\n9,1901,772.48\n10,1901,766.08\n11,1901,784.80\n12,1901,774.56\n1,1902,793.52\n2,1902,802.72\n3,1902,806.15\n4,1902,836.14\n5,1902,836.53\n6,1902,834.05\n7,1902,855.40\n8,1902,880.82\n9,1902,885.39\n10,1902,859.95\n11,1902,829.37\n12,1902,812.84\n1,1903,856.87\n2,1903,854.46\n3,1903,823.59\n4,1903,792.61\n5,1903,779.94\n6,1903,739.60\n7,1903,718.73\n8,1903,688.44\n9,1903,674.64\n10,1903,655.56\n11,1903,660.50\n12,1903,693.63\n1,1904,707.79\n2,1904,691.29\n3,1904,691.74\n4,1904,711.41\n5,1904,699.02\n6,1904,702.71\n7,1904,734.49\n8,1904,762.06\n9,1904,798.42\n10,1904,847.98\n11,1904,896.61\n12,1904,908.08\n1,1905,930.64\n2,1905,974.30\n3,1905,1004.79\n4,1905,995.41\n5,1905,949.25\n6,1905,963.22\n7,1905,996.27\n8,1905,1036.22\n9,1905,1042.51\n10,1905,1060.17\n11,1905,1057.48\n12,1905,1086.60\n1,1906,1127.20\n2,1906,1122.29\n3,1906,1098.01\n4,1906,1086.27\n5,1906,1060.68\n6,1906,1077.74\n7,1906,1053.15\n8,1906,1134.20\n9,1906,1172.56\n10,1906,1169.00\n11,1906,1167.83\n12,1906,1160.93\n1,1907,1131.62\n2,1907,1099.90\n3,1907,995.84\n4,1907,1004.67\n5,1907,973.98\n6,1907,946.82\n7,1907,987.21\n8,1907,917.37\n9,1907,911.87\n10,1907,817.01\n11,1907,773.21\n12,1907,816.95\n1,1908,855.94\n2,1908,828.84\n3,1908,866.79\n4,1908,917.54\n5,1908,976.28\n6,1908,976.28\n7,1908,1016.12\n8,1908,1063.82\n9,1908,1056.32\n10,1908,1073.45\n11,1908,1150.36\n12,1908,1180.60\n1,1909,1188.83\n2,1909,1159.05\n3,1909,1179.23\n4,1909,1236.54\n5,1909,1282.12\n6,1909,1309.26\n7,1909,1332.53\n8,1909,1369.28\n9,1909,1375.31\n10,1909,1385.42\n11,1909,1383.37\n12,1909,1404.54\n1,1910,1379.35\n2,1910,1334.94\n3,1910,1372.84\n4,1910,1344.69\n5,1910,1327.52\n6,1910,1268.74\n7,1910,1209.74\n8,1910,1244.32\n9,1910,1258.05\n10,1910,1321.27\n11,1910,1325.21\n12,1910,1293.60\n1,1911,1330.63\n2,1911,1359.21\n3,1911,1348.81\n4,1911,1348.50\n5,1911,1383.08\n6,1911,1416.33\n7,1911,1415.99\n8,1911,1353.91\n9,1911,1285.64\n10,1911,1298.62\n11,1911,1356.32\n12,1911,1367.92\n1,1912,1374.95\n2,1912,1368.47\n3,1912,1413.59\n4,1912,1463.47\n5,1912,1464.71\n6,1912,1473.61\n7,1912,1481.00\n8,1912,1520.82\n9,1912,1534.39\n10,1912,1537.15\n11,1912,1525.86\n12,1912,1476.92\n1,1913,1470.26\n2,1913,1423.93\n3,1913,1402.92\n4,1913,1407.31\n5,1913,1374.92\n6,1913,1311.91\n7,1913,1335.88\n8,1913,1377.79\n9,1913,1397.06\n10,1913,1358.84\n11,1913,1330.58\n12,1913,1334.89\n1,1914,1395.59\n2,1914,1419.93\n3,1914,1399.06\n4,1914,1371.35\n5,1914,1385.73\n6,1914,1384.77\n7,1914,1313.92\n8,1914,1204.61\n9,1914,1209.95\n10,1914,1149.09\n11,1914,1198.59\n12,1914,1285.78\n1,1915,1314.61\n2,1915,1303.17\n3,1915,1342.73\n4,1915,1449.89\n5,1915,1422.13\n6,1915,1444.33\n7,1915,1444.95\n8,1915,1512.36\n9,1915,1574.60\n10,1915,1667.98\n11,1915,1732.48\n12,1915,1742.39\n1,1916,1721.23\n2,1916,1703.66\n3,1916,1705.40\n4,1916,1694.11\n5,1916,1738.82\n6,1916,1763.69\n7,1916,1747.33\n8,1916,1768.83\n9,1916,1849.54\n10,1916,1915.41\n11,1916,1968.14\n12,1916,1898.13\n1,1917,1861.44\n2,1917,1767.93\n3,1917,1832.71\n4,1917,1815.17\n5,1917,1763.91\n6,1917,1810.36\n7,1917,1771.17\n8,1917,1729.56\n9,1917,1657.31\n10,1917,1578.45\n11,1917,1457.85\n12,1917,1419.06\n1,1918,1532.27\n2,1918,1574.49\n3,1918,1524.69\n4,1918,1554.82\n5,1918,1590.12\n6,1918,1635.96\n7,1918,1636.11\n8,1918,1682.61\n9,1918,1664.49\n10,1918,1760.80\n11,1918,1744.79\n12,1918,1781.67\n1,1919,1763.08\n2,1919,1832.45\n3,1919,1852.92\n4,1919,1959.86\n5,1919,2129.58\n6,1919,2078.81\n7,1919,2216.64\n8,1919,2053.06\n9,1919,2103.47\n10,1919,2273.36\n11,1919,2149.02\n12,1919,2150.03\n1,1920,2097.67\n2,1920,1952.27\n3,1920,2154.50\n4,1920,2007.56\n5,1920,1937.22\n6,1920,1929.86\n7,1920,1893.72\n8,1920,1937.92\n9,1920,1937.92\n10,1920,1971.91\n11,1920,1823.00\n12,1920,1726.70\n1,1921,1808.51\n2,1921,1803.68\n3,1921,1771.43\n4,1921,1820.91\n5,1921,1796.62\n6,1921,1673.89\n7,1921,1729.59\n8,1921,1704.88\n9,1921,1761.04\n10,1921,1811.36\n11,1921,1937.66\n12,1921,1978.77\n1,1922,2005.12\n2,1922,2076.45\n3,1922,2154.48\n4,1922,2287.59\n5,1922,2414.93\n6,1922,2324.24\n7,1922,2364.52\n8,1922,2543.48\n9,1922,2518.06\n10,1922,2588.78\n11,1922,2473.41\n12,1922,2528.74\n1,1923,2542.68\n2,1923,2719.12\n3,1923,2692.53\n4,1923,2631.96\n5,1923,2537.09\n6,1923,2352.34\n7,1923,2409.23\n8,1923,2459.61\n9,1923,2395.11\n10,1923,2400.44\n11,1923,2546.96\n12,1923,2634.18\n1,1924,2725.45\n2,1924,2681.16\n3,1924,2622.33\n4,1924,2613.66\n5,1924,2641.36\n6,1924,2749.64\n7,1924,2884.25\n8,1924,2912.39\n9,1924,2929.57\n10,1924,2917.20\n11,1924,3132.47\n12,1924,3311.28\n1,1925,3392.82\n2,1925,3437.13\n3,1925,3223.17\n4,1925,3336.71\n5,1925,3523.78\n6,1925,3554.00\n7,1925,3696.79\n8,1925,3723.81\n9,1925,3837.00\n10,1925,4072.57\n11,1925,4077.08\n12,1925,4289.65\n1,1926,4299.56\n2,1926,4126.53\n3,1926,3898.71\n4,1926,3994.15\n5,1926,4052.64\n6,1926,4245.33\n7,1926,4342.75\n8,1926,4551.62\n9,1926,4675.18\n10,1926,4548.08\n11,1926,4669.49\n12,1926,4767.44\n1,1927,4688.44\n2,1927,4932.67\n3,1927,4985.18\n4,1927,5091.65\n5,1927,5378.71\n6,1927,5349.04\n7,1927,5718.92\n8,1927,5995.87\n9,1927,6211.46\n10,1927,5965.70\n11,1927,6392.59\n12,1927,6537.39\n1,1928,6526.68\n2,1928,6434.39\n3,1928,7156.00\n4,1928,7411.93\n5,1928,7529.21\n6,1928,7248.00\n7,1928,7363.11\n8,1928,7934.44\n9,1928,8149.72\n10,1928,8293.43\n11,1928,9314.66\n12,1928,9368.60\n1,1929,9929.73\n2,1929,9898.52\n3,1929,9901.73\n4,1929,10088.07\n5,1929,9682.55\n6,1929,10799.69\n7,1929,11321.16\n8,1929,12460.78\n9,1929,11880.34\n10,1929,9538.86\n11,1929,8293.22\n12,1929,8534.15\n1,1930,9101.72\n2,1930,9328.95\n3,1930,10102.86\n4,1930,10037.12\n5,1930,9907.09\n6,1930,8306.94\n7,1930,8640.33\n8,1930,8738.66\n9,1930,7627.41\n10,1930,6979.34\n11,1930,6859.77\n12,1930,6378.65\n1,1931,6722.90\n2,1931,7521.95\n3,1931,7026.97\n4,1931,6380.76\n5,1931,5533.66\n6,1931,6334.24\n7,1931,5886.95\n8,1931,5973.94\n9,1931,4204.05\n10,1931,4585.66\n11,1931,4158.98\n12,1931,3581.11\n1,1932,3498.06\n2,1932,3706.39\n3,1932,3286.60\n4,1932,2637.38\n5,1932,2037.58\n6,1932,2036.57\n7,1932,2820.80\n8,1932,3900.05\n9,1932,3775.03\n10,1932,3260.94\n11,1932,3087.27\n12,1932,3263.78\n1,1933,3303.17\n2,1933,2705.45\n3,1933,2809.83\n4,1933,4015.06\n5,1933,4675.87\n6,1933,5306.89\n7,1933,4847.61\n8,1933,5420.38\n9,1933,4817.56\n10,1933,4398.06\n11,1933,4869.51\n12,1933,4990.15\n1,1934,5535.25\n2,1934,5344.20\n3,1934,5359.56\n4,1934,5229.90\n5,1934,4816.96\n6,1934,4933.08\n7,1934,4377.19\n8,1934,4628.09\n9,1934,4625.08\n10,1934,4487.00\n11,1934,4882.45\n12,1934,4873.35\n1,1935,4689.24\n2,1935,4517.25\n3,1935,4390.20\n4,1935,4831.88\n5,1935,5005.59\n6,1935,5359.68\n7,1935,5825.84\n8,1935,5970.92\n9,1935,6129.76\n10,1935,6616.87\n11,1935,6891.64\n12,1935,7173.97\n1,1936,7666.84\n2,1936,7817.30\n3,1936,8035.76\n4,1936,7436.53\n5,1936,7801.51\n6,1936,8065.26\n7,1936,8647.46\n8,1936,8743.85\n9,1936,8785.44\n10,1936,9481.89\n11,1936,9549.66\n12,1936,9527.10\n1,1937,9924.99\n2,1937,10107.03\n3,1937,10043.52\n4,1937,9249.92\n5,1937,9190.07\n6,1937,8745.56\n7,1937,9675.81\n8,1937,9181.22\n9,1937,7913.58\n10,1937,7148.29\n11,1937,6458.85\n12,1937,6168.06\n1,1938,6294.54\n2,1938,6718.36\n3,1938,5071.71\n4,1938,5822.24\n5,1938,5602.17\n6,1938,7024.76\n7,1938,7563.17\n8,1938,7389.21\n9,1938,7538.73\n10,1938,8131.05\n11,1938,7892.79\n12,1938,8215.80\n1,1939,7678.87\n2,1939,7957.39\n3,1939,6904.14\n4,1939,6892.28\n5,1939,7349.44\n6,1939,6906.59\n7,1939,7689.44\n8,1939,7172.33\n9,1939,8381.49\n10,1939,8293.09\n11,1939,7919.57\n12,1939,8141.08\n1,1940,7888.07\n2,1940,7971.88\n3,1940,8089.13\n4,1940,8083.29\n5,1940,6181.88\n6,1940,6696.79\n7,1940,6936.92\n8,1940,7152.82\n9,1940,7267.50\n10,1940,7588.71\n11,1940,7307.86\n12,1940,7320.25\n1,1941,7010.94\n2,1941,6945.15\n3,1941,7011.28\n4,1941,6599.74\n5,1941,6658.29\n6,1941,7058.23\n7,1941,7488.12\n8,1941,7466.70\n9,1941,7435.91\n10,1941,6974.15\n11,1941,6721.98\n12,1941,6458.86\n1,1942,6590.62\n2,1942,6423.86\n3,1942,6075.53\n4,1942,5851.80\n5,1942,6268.15\n6,1942,6425.81\n7,1942,6667.08\n8,1942,6754.04\n9,1942,6974.76\n10,1942,7462.71\n11,1942,7398.67\n12,1942,7820.11\n1,1943,8419.79\n2,1943,8885.52\n3,1943,9393.71\n4,1943,9441.70\n5,1943,9905.35\n6,1943,10141.90\n7,1943,9632.77\n8,1943,9772.94\n9,1943,10046.27\n10,1943,9955.51\n11,1943,9246.32\n12,1943,9834.38\n1,1944,10029.59\n2,1944,10047.97\n3,1944,10261.92\n4,1944,10178.70\n5,1944,10635.32\n6,1944,11223.03\n7,1944,11035.73\n8,1944,11177.53\n9,1944,11189.17\n10,1944,11235.89\n11,1944,11326.75\n12,1944,11771.12\n1,1945,11987.59\n2,1945,12774.50\n3,1945,12233.34\n4,1945,13358.17\n5,1945,13559.95\n6,1945,13563.65\n7,1945,13341.50\n8,1945,14165.16\n9,1945,14808.98\n10,1945,15308.37\n11,1945,15855.43\n12,1945,16062.94\n1,1946,17234.94\n2,1946,16090.34\n3,1946,16888.01\n4,1946,17576.04\n5,1946,18022.69\n6,1946,17371.20\n7,1946,16982.09\n8,1946,15797.90\n9,1946,14251.10\n10,1946,14199.52\n11,1946,14087.43\n12,1946,14748.93\n1,1947,15146.62\n2,1947,14987.12\n3,1947,14799.05\n4,1947,14283.61\n5,1947,14214.01\n6,1947,15027.99\n7,1947,15640.44\n8,1947,15256.03\n9,1947,15108.22\n10,1947,15505.86\n11,1947,15133.13\n12,1947,15521.78\n1,1948,14980.44\n2,1948,14346.62\n3,1948,15515.92\n4,1948,16003.58\n5,1948,17326.87\n6,1948,17465.80\n7,1948,16595.87\n8,1948,16803.82\n9,1948,16376.56\n10,1948,17563.48\n11,1948,15746.38\n12,1948,16313.24\n1,1949,16427.98\n2,1949,15863.87\n3,1949,16430.76\n4,1949,16180.03\n5,1949,15665.33\n6,1949,15717.46\n7,1949,16806.50\n8,1949,17100.15\n9,1949,17593.53\n10,1949,18221.12\n11,1949,18349.38\n12,1949,19260.20\n1,1950,19705.47\n2,1950,20014.56\n3,1950,20209.29\n4,1950,21237.86\n5,1950,22189.86\n6,1950,21020.05\n7,1950,21330.07\n8,1950,22156.04\n9,1950,23527.72\n10,1950,23772.74\n11,1950,23897.41\n12,1950,25149.80\n1,1951,26846.23\n2,1951,27176.69\n3,1951,26835.88\n4,1951,28290.42\n5,1951,27306.64\n6,1951,26760.96\n7,1951,28761.32\n8,1951,30191.47\n9,1951,30191.47\n10,1951,29928.71\n11,1951,30003.67\n12,1951,31324.80\n1,1952,31977.55\n2,1952,30966.15\n3,1952,32598.52\n4,1952,31362.58\n5,1952,32236.28\n6,1952,33889.98\n7,1952,34659.69\n8,1952,34326.57\n9,1952,33819.25\n10,1952,33945.31\n11,1952,35695.51\n12,1952,37120.23\n1,1953,37020.27\n2,1953,36513.08\n3,1953,35809.32\n4,1953,35024.11\n5,1953,35093.04\n6,1953,34686.10\n7,1953,35742.55\n8,1953,33840.81\n9,1953,34048.72\n10,1953,35970.23\n11,1953,36460.96\n12,1953,36712.38\n1,1954,38775.70\n2,1954,39070.80\n3,1954,40420.24\n4,1954,42586.30\n5,1954,44172.67\n6,1954,44393.23\n7,1954,47105.64\n8,1954,45697.31\n9,1954,49684.42\n10,1954,48914.81\n11,1954,53059.63\n12,1954,55951.04\n1,1955,57151.37\n2,1955,57570.95\n3,1955,57498.77\n4,1955,59854.16\n5,1955,59981.54\n6,1955,65125.23\n7,1955,69310.75\n8,1955,68984.32\n9,1955,69984.22\n10,1955,68064.23\n11,1955,73385.17\n12,1955,73535.76\n1,1956,71101.26\n2,1956,73787.11\n3,1956,79146.13\n4,1956,79226.44\n5,1956,74254.75\n6,1956,77418.25\n7,1956,81656.45\n8,1956,78786.66\n9,1956,75469.34\n10,1956,76107.16\n11,1956,75508.44\n12,1956,78408.96\n1,1957,75371.77\n2,1957,73149.36\n3,1957,74830.29\n4,1957,77839.93\n5,1957,80961.47\n6,1957,81105.00\n7,1957,82280.44\n8,1957,77912.39\n9,1957,73340.86\n10,1957,71247.45\n11,1957,72651.49\n12,1957,69898.84\n1,1958,73145.30\n2,1958,71895.28\n3,1958,74372.80\n4,1958,76994.53\n5,1958,78401.89\n6,1958,80702.93\n7,1958,84438.96\n8,1958,85698.74\n9,1958,90103.64\n10,1958,92652.07\n11,1958,94990.72\n12,1958,100196.11\n1,1959,100844.59\n2,1959,101094.42\n3,1959,101418.04\n4,1959,105624.14\n5,1959,107896.82\n6,1959,107784.83\n7,1959,111823.35\n8,1959,110420.68\n9,1959,105660.61\n10,1959,107132.63\n11,1959,108832.18\n12,1959,112123.89\n1,1960,104413.82\n2,1960,105675.22\n3,1960,104511.26\n4,1960,102986.57\n5,1960,106059.64\n6,1960,108439.37\n7,1960,106062.48\n8,1960,109143.16\n9,1960,102862.72\n10,1960,102924.13\n11,1960,107382.03\n12,1960,112665.49\n1,1961,120094.43\n2,1961,123635.78\n3,1961,127107.81\n4,1961,127912.03\n5,1961,130676.33\n6,1961,127243.77\n7,1961,131718.58\n8,1961,134625.56\n9,1961,132298.71\n10,1961,136379.13\n11,1961,142079.54\n12,1961,142872.70\n1,1962,137800.38\n2,1962,140383.11\n3,1962,139901.15\n4,1962,131577.08\n5,1962,120608.50\n6,1962,111085.12\n7,1962,118497.36\n8,1962,120661.40\n9,1962,115198.78\n10,1962,116074.11\n11,1962,128226.66\n12,1962,130322.71\n1,1963,137095.55\n2,1963,133510.65\n3,1963,138617.62\n4,1963,145724.92\n5,1963,148195.75\n6,1963,145586.11\n7,1963,145469.31\n8,1963,152948.52\n9,1963,151649.04\n10,1963,156936.58\n11,1963,155685.05\n12,1963,159894.58\n1,1964,164613.17\n2,1964,166651.28\n3,1964,169594.80\n4,1964,171052.07\n5,1964,173437.77\n6,1964,176713.82\n7,1964,180376.37\n8,1964,177889.55\n9,1964,183440.44\n10,1964,185376.86\n11,1964,184870.57\n12,1964,186049.48\n1,1965,192684.33\n2,1965,192866.42\n3,1965,190533.69\n4,1965,197538.45\n5,1965,196490.72\n6,1965,187417.99\n7,1965,190429.44\n8,1965,195213.20\n9,1965,201958.22\n10,1965,207989.19\n11,1965,206676.57\n12,1965,209037.42\n1,1966,210578.51\n2,1966,207340.60\n3,1966,203344.71\n4,1966,208052.87\n5,1966,197328.39\n6,1966,194684.20\n7,1966,192618.91\n8,1966,178197.70\n9,1966,177505.53\n10,1966,186499.67\n11,1966,187637.59\n12,1966,187915.10\n1,1967,203171.44\n2,1967,204136.83\n3,1967,212751.22\n4,1967,222306.85\n5,1967,211221.07\n6,1967,215493.16\n7,1967,225842.71\n8,1967,231695.47\n9,1967,231695.47\n10,1967,225546.37\n11,1967,226371.73\n12,1967,232906.62\n1,1968,223288.02\n2,1968,216911.19\n3,1968,219546.84\n4,1968,237822.58\n5,1968,241407.66\n6,1968,244218.41\n7,1968,240325.08\n8,1968,253712.98\n9,1968,253712.98\n10,1968,256174.10\n11,1968,269094.46\n12,1968,258531.79\n1,1969,257059.11\n2,1969,245526.04\n3,1969,254628.50\n4,1969,260751.41\n5,1969,260829.96\n6,1969,246990.70\n7,1969,232790.77\n8,1969,242785.47\n9,1969,237376.84\n10,1969,248243.95\n11,1969,240456.81\n12,1969,236645.64\n1,1970,231685.54\n2,1970,228810.30\n3,1970,228786.63\n4,1970,204883.06\n5,1970,189870.26\n6,1970,192023.73\n7,1970,199693.42\n8,1970,203704.56\n9,1970,210089.26\n10,1970,204483.13\n11,1970,197705.60\n12,1970,204909.09\n1,1971,214654.16\n2,1971,217418.18\n3,1971,228710.91\n4,1971,233822.45\n5,1971,235857.61\n6,1971,240129.06\n7,1971,246388.34\n8,1971,242720.33\n9,1971,242232.84\n10,1971,232416.78\n11,1971,236839.68\n12,1971,273141.12\n1,1972,293291.50\n2,1972,311399.62\n3,1972,314807.32\n4,1972,327124.73\n5,1972,349639.19\n6,1972,337948.90\n7,1972,359273.04\n8,1972,363854.50\n9,1972,346546.23\n10,1972,346184.17\n11,1972,375033.64\n12,1972,383391.96\n1,1973,401026.79\n2,1973,442342.75\n3,1973,452378.90\n4,1973,421662.29\n5,1973,429223.12\n6,1973,435420.87\n7,1973,435922.56\n8,1973,412544.34\n9,1973,420363.11\n10,1973,428593.64\n11,1973,358641.19\n12,1973,342473.56\n1,1974,358167.90\n2,1974,372844.66\n3,1974,363258.15\n4,1974,369392.00\n5,1974,350027.29\n6,1974,332259.94\n7,1974,322973.96\n8,1974,289467.31\n9,1974,272866.62\n10,1974,272717.53\n11,1974,281688.77\n12,1974,279019.40\n1,1975,326211.28\n2,1975,366105.00\n3,1975,362145.91\n4,1975,376216.86\n5,1975,375568.46\n6,1975,363925.49\n7,1975,350379.89\n8,1975,348737.57\n9,1975,331587.86\n10,1975,355179.07\n11,1975,364190.53\n12,1975,370433.24\n1,1976,390976.45\n2,1976,390316.21\n3,1976,383174.25\n4,1976,382814.54\n5,1976,373831.48\n6,1976,378576.22\n7,1976,373502.54\n8,1976,372515.73\n9,1976,366796.00\n10,1976,345133.46\n11,1976,344572.61\n12,1976,383588.38\n1,1977,380332.13\n2,1977,388318.92\n3,1977,389419.32\n4,1977,398617.74\n5,1977,396660.68\n6,1977,406299.26\n7,1977,400934.50\n8,1977,415653.86\n9,1977,428023.33\n10,1977,434826.89\n11,1977,433896.87\n12,1977,450781.54\n1,1978,454018.85\n2,1978,458851.15\n3,1978,490982.90\n4,1978,488192.85\n5,1978,500003.83\n6,1978,520483.14\n7,1978,565400.85\n8,1978,577221.30\n9,1978,594541.39\n10,1978,623797.89\n11,1978,572000.90\n12,1978,599984.24\n1,1979,604982.20\n2,1979,604241.50\n3,1979,621545.03\n4,1979,620988.91\n5,1979,612732.34\n6,1979,625896.94\n7,1979,629709.30\n8,1979,650515.19\n9,1979,682258.83\n10,1979,626164.35\n11,1979,640389.12\n12,1979,665627.38\n1,1980,707206.01\n2,1980,716309.77\n3,1980,627685.98\n4,1980,684189.86\n5,1980,720342.21\n6,1980,767131.79\n7,1980,767614.55\n8,1980,793955.57\n9,1980,823297.26\n10,1980,852179.86\n11,1980,840099.10\n12,1980,834963.89\n1,1981,819378.41\n2,1981,808838.22\n3,1981,841419.59\n4,1981,859761.99\n5,1981,830647.48\n6,1981,831414.21\n7,1981,798127.63\n8,1981,817295.93\n9,1981,734041.63\n10,1981,743100.42\n11,1981,825573.79\n12,1981,814472.75\n1,1982,801554.26\n2,1982,746993.25\n3,1982,710209.05\n4,1982,751035.15\n5,1982,740544.65\n6,1982,681918.06\n7,1982,678737.54\n8,1982,689424.46\n9,1982,686525.55\n10,1982,696935.59\n11,1982,749513.52\n12,1982,812364.24\n1,1983,811685.06\n2,1983,829854.71\n3,1983,861037.51\n4,1983,915652.96\n5,1983,915054.24\n6,1983,936193.80\n7,1983,939286.76\n8,1983,927272.26\n9,1983,956417.53\n10,1983,945945.96\n11,1983,977145.32\n12,1983,1013726.01\n1,1984,1047507.17\n2,1984,1062060.88\n3,1984,1146403.75\n4,1984,1126842.62\n5,1984,1020986.29\n6,1984,1016674.61\n7,1984,950624.45\n8,1984,1038453.11\n9,1984,1028260.78\n10,1984,1047403.05\n11,1984,1032998.43\n12,1984,1048886.81\n1,1985,1078791.72\n2,1985,1068862.07\n3,1985,1149170.14\n4,1985,1146344.59\n5,1985,1192478.65\n6,1985,1219212.51\n7,1985,1278319.49\n8,1985,1313740.61\n9,1985,1377736.69\n10,1985,1458250.63\n11,1985,1522454.96\n12,1985,1588017.63\n1,1986,1625372.15\n2,1986,1794225.91\n3,1986,2037424.26\n4,1986,2163501.95\n5,1986,2073048.89\n6,1986,2203625.22\n7,1986,2327615.70\n8,1986,2553837.10\n9,1986,2531843.25\n10,1986,2372289.67\n11,1986,2505379.17\n12,1986,2633572.48\n1,1987,2918534.05\n2,1987,3010253.17\n3,1987,3264815.24\n4,1987,3590366.28\n5,1987,3588314.56\n6,1987,3485676.62\n7,1987,3500303.68\n8,1987,3749848.87\n9,1987,3694106.99\n10,1987,3158296.31\n11,1987,3182793.87\n12,1987,3280381.79\n1,1988,3331946.88\n2,1988,3553281.54\n3,1988,3770834.61\n4,1988,3824917.60\n5,1988,3702784.79\n6,1988,3619757.67\n7,1988,3726366.52\n8,1988,3486668.16\n9,1988,3635246.12\n10,1988,3939716.76\n11,1988,4166241.06\n12,1988,4192402.24\n1,1989,4276626.79\n2,1989,4294252.15\n3,1989,4216426.50\n4,1989,4258362.48\n5,1989,4036431.47\n6,1989,3977180.13\n7,1989,4468250.59\n8,1989,4279452.34\n9,1989,4464809.76\n10,1989,4294647.35\n11,1989,4505858.31\n12,1989,4671370.64\n1,1990,4492085.54\n2,1990,4188611.18\n3,1990,3772633.11\n4,1990,3730971.65\n5,1990,4149678.24\n6,1990,4113864.29\n7,1990,4174599.39\n8,1990,3780369.06\n9,1990,3271031.92\n10,1990,3750731.56\n11,1990,3543543.57\n12,1990,3605670.15\n1,1991,3716945.66\n2,1991,4109287.56\n3,1991,3872869.10\n4,1991,3912436.25\n5,1991,3960543.95\n6,1991,3680613.46\n7,1991,3856171.39\n8,1991,3782532.00\n9,1991,3983077.34\n10,1991,4046309.06\n11,1991,3863576.03\n12,1991,4054106.53\n1,1992,3975450.25\n2,1992,3838361.44\n3,1992,3588413.95\n4,1992,3602707.35\n5,1992,3835202.22\n6,1992,3662597.62\n7,1992,3577608.71\n8,1992,3788017.44\n9,1992,3704836.50\n10,1992,3522680.89\n11,1992,3548255.19\n12,1992,3570322.39\n1,1993,3569027.94\n2,1993,3682248.68\n3,1993,3996154.38\n4,1993,4367820.55\n5,1993,4462942.63\n6,1993,4395851.22\n7,1993,4545288.21\n8,1993,4780587.33\n9,1993,4669600.53\n10,1993,4826328.57\n11,1993,4417447.51\n12,1993,4734708.84\n1,1994,5129116.66\n2,1994,5106890.90\n3,1994,4888192.47\n4,1994,5087057.63\n5,1994,5061440.74\n6,1994,5120874.29\n7,1994,5178272.69\n8,1994,5308628.94\n9,1994,5154844.77\n10,1994,5318317.21\n11,1994,5061040.81\n12,1994,5096532.92\n1,1995,4896605.22\n2,1995,4894480.14\n3,1995,5197687.10\n4,1995,5390801.77\n5,1995,5338138.65\n6,1995,5252877.59\n7,1995,5572394.16\n8,1995,5369134.49\n9,1995,5470539.51\n10,1995,5328687.02\n11,1995,5480284.58\n12,1995,5696131.43\n1,1996,5730927.80\n2,1996,5749071.43\n3,1996,5872302.27\n4,1996,6047233.09\n5,1996,5945430.51\n6,1996,5972715.75\n7,1996,5799377.55\n8,1996,5822919.06\n9,1996,5982146.08\n10,1996,5943733.76\n11,1996,6190313.78\n12,1996,6105978.01\n1,1997,5917144.25\n2,1997,6008288.32\n3,1997,6015868.08\n4,1997,6054299.33\n5,1997,6455042.15\n6,1997,6801257.08\n7,1997,6927663.71\n8,1997,6418901.63\n9,1997,6780690.21\n10,1997,6270697.57\n11,1997,6202030.10\n12,1997,6262528.56\n1,1998,6530955.70\n2,1998,6957802.90\n3,1998,7187924.22\n4,1998,7245412.54\n5,1998,7209404.54\n6,1998,7249329.03\n7,1998,7298359.63\n8,1998,6367928.16\n9,1998,6187755.64\n10,1998,6833774.56\n11,1998,7181733.57\n12,1998,7459063.32\n1,1999,7462227.27\n2,1999,7276254.57\n3,1999,7581614.99\n4,1999,7908510.17\n5,1999,7510786.96\n6,1999,7806189.34\n7,1999,8032727.84\n8,1999,8057398.14\n9,1999,8146230.18\n10,1999,8462791.05\n11,1999,8760519.65\n12,1999,9567803.11\n1,2000,8988179.85\n2,2000,9244717.92\n3,2000,9625958.77\n4,2000,9128423.16\n5,2000,8909050.29\n6,2000,9296190.71\n7,2000,8942658.70\n8,2000,9061284.42\n9,2000,8593641.88\n10,2000,8361156.48\n11,2000,8026070.99\n12,2000,8308957.19\n1,2001,8324672.82\n2,2001,7666045.42\n3,2001,7149708.31\n4,2001,7651574.54\n5,2001,7405635.83\n6,2001,7106444.76\n7,2001,6982246.03\n8,2001,6797361.89\n9,2001,6112942.49\n10,2001,6262504.89\n11,2001,6509141.71\n12,2001,6551162.87\n1,2002,6218498.27\n2,2002,6256799.37\n3,2002,6592530.90\n4,2002,6635363.76\n5,2002,6728102.82\n6,2002,6456980.28\n7,2002,5815639.84\n8,2002,5808024.59\n9,2002,5193552.90\n10,2002,5466838.38\n11,2002,5719291.94\n12,2002,5535008.88\n1,2003,5324611.98\n2,2003,5220253.62\n3,2003,5123512.89\n4,2003,5620804.76\n5,2003,5974490.59\n6,2003,6123120.62\n7,2003,6264535.31\n8,2003,6427274.15\n9,2003,6621453.73\n10,2003,7036615.36\n11,2003,7197224.39\n12,2003,7749635.76\n1,2004,7858215.88\n2,2004,8040357.29\n3,2004,8083781.76\n4,2004,7878749.62\n5,2004,7922992.89\n6,2004,8109216.44\n7,2004,7863114.44\n8,2004,7897700.20\n9,2004,8129198.79\n10,2004,8421953.11\n11,2004,8984478.72\n12,2004,9364822.68\n1,2005,9181214.07\n2,2005,9591827.37\n3,2005,9377850.02\n4,2005,9148786.51\n5,2005,9174696.84\n6,2005,9328450.25\n7,2005,9630367.48\n8,2005,9899123.56\n9,2005,10353024.09\n10,2005,10019266.18\n11,2005,10287456.68\n12,2005,10765421.70\n1,2006,11447155.18\n2,2006,11410702.29\n3,2006,11778149.07\n4,2006,12349598.58\n5,2006,11894588.18\n6,2006,11884544.94\n7,2006,11997427.28\n8,2006,12341907.60\n9,2006,12334618.91\n10,2006,12823320.54\n11,2006,13209034.00\n12,2006,13589049.02\n1,2007,13673226.24\n2,2007,13784795.19\n3,2007,14144605.42\n4,2007,14800793.00\n5,2007,15148006.57\n6,2007,15168346.27\n7,2007,14960453.08\n8,2007,14747751.25\n9,2007,15588863.19\n10,2007,16268540.22\n11,2007,15636717.67\n12,2007,15344346.72\n1,2008,13962719.58\n2,2008,14220199.50\n3,2008,14024204.85\n4,2008,14820770.62\n5,2008,15072109.59\n6,2008,13903695.43\n7,2008,13410466.76\n8,2008,12895603.95\n9,2008,11038321.45\n10,2008,8743145.13\n11,2008,8273216.60\n12,2008,8710774.37\n1,2009,7899704.59\n2,2009,7102719.96\n3,2009,7574581.89\n4,2009,8562847.19\n5,2009,9660520.87\n6,2009,9563600.28\n7,2009,10463220.50\n8,2009,10966591.79\n9,2009,11421571.42\n10,2009,11239212.30\n11,2009,11520389.91\n12,2009,11706137.80\n1,2010,11158606.06\n2,2010,11148747.40\n3,2010,11873559.85\n4,2010,11706028.94\n5,2010,10429415.67\n6,2010,10281474.28\n7,2010,11233293.79\n8,2010,10899370.23\n9,2010,11947833.45\n10,2010,12374675.92\n11,2010,11853982.16\n12,2010,12810338.16\n1,2011,13088408.62\n2,2011,13576826.28\n3,2011,13311212.85\n4,2011,14048624.31\n5,2011,13651338.89\n6,2011,13460957.48\n7,2011,13241634.30\n8,2011,12124035.06\n9,2011,10910859.38\n10,2011,11973109.57\n11,2011,11423173.51\n12,2011,11300839.55\n1,2012,11913543.50\n2,2012,12572248.99\n3,2012,12487115.72\n4,2012,12288768.82\n5,2012,10902527.09\n6,2012,11621705.00\n7,2012,11768368.50\n8,2012,12105955.33\n9,2012,12478345.64\n10,2012,12567404.86\n11,2012,12833510.51\n12,2012,13224134.36\n1,2013,13877477.46\n2,2013,13742923.12\n3,2013,13859648.58\n4,2013,14507068.44\n5,2013,14197263.80\n6,2013,13669598.47\n7,2013,14398575.88\n8,2013,14215199.18\n9,2013,15223766.31\n10,2013,15735635.55\n11,2013,15835185.27\n12,2013,16076942.45\n1,2014,15430201.76\n2,2014,16276529.38\n3,2014,16215207.39\n4,2014,16484318.44\n5,2014,16759478.16\n6,2014,17003724.85\n7,2014,16702340.07\n8,2014,16717589.51\n9,2014,16037036.90\n10,2014,15783565.76\n11,2014,15979931.94\n12,2014,15453506.62\n1,2015,15400926.33\n2,2015,16323113.07\n3,2015,16064916.12\n4,2015,16773260.40\n5,2015,16645751.00\n6,2015,16177810.29\n7,2015,16435936.24\n8,2015,15240828.46\n9,2015,14477307.88\n10,2015,15568319.99\n11,2015,15322854.57\n12,2015,15051542.71\n1,2016,14017538.54\n2,2016,13826693.30\n3,2016,14777407.68\n4,2016,15268404.77\n5,2016,15113771.05\n6,2016,14661243.07\n7,2016,15384337.47\n8,2016,15400900.30\n9,2016,15595820.58\n10,2016,15294447.63\n11,2016,15051635.01\n12,2016,15546811.26\n1,2017,16011095.80\n2,2017,16198590.14\n3,2017,16627948.15\n4,2017,16993423.67\n5,2017,17581918.76\n6,2017,17604229.71\n7,2017,18129893.03\n8,2017,18128847.06\n9,2017,18606672.46\n10,2017,18863295.72\n11,2017,19057267.04\n12,2017,19404359.93\n1,2018,20310331.71\n2,2018,19348982.48\n3,2018,19032632.23\n4,2018,19489628.09\n5,2018,19145012.88\n6,2018,18941556.79\n7,2018,19409014.75\n8,2018,19045169.72\n9,2018,19202709.45\n10,2018,17679109.13\n11,2018,17666429.65\n12,2018,16758086.68\n1,2019,17957226.91\n2,2019,18421388.39\n3,2019,18534978.30\n4,2019,19077646.97\n5,2019,18200967.18\n6,2019,19289567.87\n7,2019,19059763.66\n8,2019,18594579.86\n9,2019,19126301.31\n10,2019,19747515.03\n11,2019,19997706.26\n12,2019,20639889.16\n1,2020,20243420.16\n2,2020,18449733.80\n3,2020,15862479.98\n4,2020,16981818.56\n5,2020,17714703.00\n6,2020,18328580.71\n7,2020,18821506.46\n8,2020,19795838.07\n9,2020,19247719.45\n10,2020,18494194.79\n11,2020,21334820.36\n12,2020,22309795.65\n1,2021,22074924.85\n2,2021,22641208.39\n3,2021,23240025.97\n4,2021,23990008.05\n5,2021,24845434.69\n6,2021,24600608.22\n7,2021,24767594.85\n8,2021,25168292.70\n9,2021,24463464.98\n10,2021,25198301.73\n11,2021,24023500.51\n12,2021,25248028.08\n1,2022,24136787.51\n2,2022,23764347.51\n3,2022,24066610.25\n4,2022,22505707.47\n5,2022,22722399.14\n6,2022,20590633.73\n7,2022,21617881.67\n8,2022,20611915.28\n9,2022,18714149.80\n10,2022,19748702.99\n11,2022,21856384.98\n12,2022,21757843.37\n1,2023,23545303.58\n2,2023,22999302.93\n3,2023,23538885.75\n4,2023,24230731.09\n5,2023,23203549.42\n6,2023,24315052.67\n7,2023,25106182.69\n8,2023,24139298.32\n9,2023,23336851.90\n10,2023,22355354.66\n11,2023,24461193.18\n12,2023,25803906.31\n1,2024,25919039.15\n2,2024,26365920.76\n3,2024,27285220.43\n4,2024,26589510.66\n5,2024,27638470.83\n6,2024,27188084.50\n7,2024,28045645.68\n8,2024,28985741.76\n9,2024,29320053.42\n10,2024,27830238.99\n11,2024,27902463.24\n12,2024,27160830.02\n1,2025,28515728.04\n2,2025,29020758.22\n3,2025,28885370.88\n4,2025,30231108.35\n5,2025,31695263.29\n6,2025,32446979.98\n7,2025,32059617.11\n8,2025,33476142.39\n9,2025,34203082.28\n10,2025,34577578.73\n11,2025,34945998.12\n12,2025,36001572.54\n`,
        'gold': `1,1871,22.59\n2,1871,22.59\n3,1871,22.59\n4,1871,22.59\n5,1871,22.59\n6,1871,22.59\n7,1871,22.59\n8,1871,22.59\n9,1871,22.59\n10,1871,22.59\n11,1871,22.59\n12,1871,22.59\n1,1872,23.19\n2,1872,23.19\n3,1872,23.19\n4,1872,23.19\n5,1872,23.19\n6,1872,23.19\n7,1872,23.19\n8,1872,23.19\n9,1872,23.19\n10,1872,23.19\n11,1872,23.19\n12,1872,23.19\n1,1873,22.74\n2,1873,22.74\n3,1873,22.74\n4,1873,22.74\n5,1873,22.74\n6,1873,22.74\n7,1873,22.74\n8,1873,22.74\n9,1873,22.74\n10,1873,22.74\n11,1873,22.74\n12,1873,22.74\n1,1874,23.09\n2,1874,23.09\n3,1874,23.09\n4,1874,23.09\n5,1874,23.09\n6,1874,23.09\n7,1874,23.09\n8,1874,23.09\n9,1874,23.09\n10,1874,23.09\n11,1874,23.09\n12,1874,23.09\n1,1875,23.54\n2,1875,23.54\n3,1875,23.54\n4,1875,23.54\n5,1875,23.54\n6,1875,23.54\n7,1875,23.54\n8,1875,23.54\n9,1875,23.54\n10,1875,23.54\n11,1875,23.54\n12,1875,23.54\n1,1876,22.30\n2,1876,22.30\n3,1876,22.30\n4,1876,22.30\n5,1876,22.30\n6,1876,22.30\n7,1876,22.30\n8,1876,22.30\n9,1876,22.30\n10,1876,22.30\n11,1876,22.30\n12,1876,22.30\n1,1877,21.25\n2,1877,21.25\n3,1877,21.25\n4,1877,21.25\n5,1877,21.25\n6,1877,21.25\n7,1877,21.25\n8,1877,21.25\n9,1877,21.25\n10,1877,21.25\n11,1877,21.25\n12,1877,21.25\n1,1878,20.69\n2,1878,20.69\n3,1878,20.69\n4,1878,20.69\n5,1878,20.69\n6,1878,20.69\n7,1878,20.69\n8,1878,20.69\n9,1878,20.69\n10,1878,20.69\n11,1878,20.69\n12,1878,20.69\n1,1879,20.67\n2,1879,20.67\n3,1879,20.67\n4,1879,20.67\n5,1879,20.67\n6,1879,20.67\n7,1879,20.67\n8,1879,20.67\n9,1879,20.67\n10,1879,20.67\n11,1879,20.67\n12,1879,20.67\n1,1880,20.67\n2,1880,20.67\n3,1880,20.67\n4,1880,20.67\n5,1880,20.67\n6,1880,20.67\n7,1880,20.67\n8,1880,20.67\n9,1880,20.67\n10,1880,20.67\n11,1880,20.67\n12,1880,20.67\n1,1881,20.67\n2,1881,20.67\n3,1881,20.67\n4,1881,20.67\n5,1881,20.67\n6,1881,20.67\n7,1881,20.67\n8,1881,20.67\n9,1881,20.67\n10,1881,20.67\n11,1881,20.67\n12,1881,20.67\n1,1882,20.67\n2,1882,20.67\n3,1882,20.67\n4,1882,20.67\n5,1882,20.67\n6,1882,20.67\n7,1882,20.67\n8,1882,20.67\n9,1882,20.67\n10,1882,20.67\n11,1882,20.67\n12,1882,20.67\n1,1883,20.67\n2,1883,20.67\n3,1883,20.67\n4,1883,20.67\n5,1883,20.67\n6,1883,20.67\n7,1883,20.67\n8,1883,20.67\n9,1883,20.67\n10,1883,20.67\n11,1883,20.67\n12,1883,20.67\n1,1884,20.67\n2,1884,20.67\n3,1884,20.67\n4,1884,20.67\n5,1884,20.67\n6,1884,20.67\n7,1884,20.67\n8,1884,20.67\n9,1884,20.67\n10,1884,20.67\n11,1884,20.67\n12,1884,20.67\n1,1885,20.67\n2,1885,20.67\n3,1885,20.67\n4,1885,20.67\n5,1885,20.67\n6,1885,20.67\n7,1885,20.67\n8,1885,20.67\n9,1885,20.67\n10,1885,20.67\n11,1885,20.67\n12,1885,20.67\n1,1886,20.67\n2,1886,20.67\n3,1886,20.67\n4,1886,20.67\n5,1886,20.67\n6,1886,20.67\n7,1886,20.67\n8,1886,20.67\n9,1886,20.67\n10,1886,20.67\n11,1886,20.67\n12,1886,20.67\n1,1887,20.67\n2,1887,20.67\n3,1887,20.67\n4,1887,20.67\n5,1887,20.67\n6,1887,20.67\n7,1887,20.67\n8,1887,20.67\n9,1887,20.67\n10,1887,20.67\n11,1887,20.67\n12,1887,20.67\n1,1888,20.67\n2,1888,20.67\n3,1888,20.67\n4,1888,20.67\n5,1888,20.67\n6,1888,20.67\n7,1888,20.67\n8,1888,20.67\n9,1888,20.67\n10,1888,20.67\n11,1888,20.67\n12,1888,20.67\n1,1889,20.67\n2,1889,20.67\n3,1889,20.67\n4,1889,20.67\n5,1889,20.67\n6,1889,20.67\n7,1889,20.67\n8,1889,20.67\n9,1889,20.67\n10,1889,20.67\n11,1889,20.67\n12,1889,20.67\n1,1890,20.67\n2,1890,20.67\n3,1890,20.67\n4,1890,20.67\n5,1890,20.67\n6,1890,20.67\n7,1890,20.67\n8,1890,20.67\n9,1890,20.67\n10,1890,20.67\n11,1890,20.67\n12,1890,20.67\n1,1891,20.67\n2,1891,20.67\n3,1891,20.67\n4,1891,20.67\n5,1891,20.67\n6,1891,20.67\n7,1891,20.67\n8,1891,20.67\n9,1891,20.67\n10,1891,20.67\n11,1891,20.67\n12,1891,20.67\n1,1892,20.67\n2,1892,20.67\n3,1892,20.67\n4,1892,20.67\n5,1892,20.67\n6,1892,20.67\n7,1892,20.67\n8,1892,20.67\n9,1892,20.67\n10,1892,20.67\n11,1892,20.67\n12,1892,20.67\n1,1893,20.67\n2,1893,20.67\n3,1893,20.67\n4,1893,20.67\n5,1893,20.67\n6,1893,20.67\n7,1893,20.67\n8,1893,20.67\n9,1893,20.67\n10,1893,20.67\n11,1893,20.67\n12,1893,20.67\n1,1894,20.67\n2,1894,20.67\n3,1894,20.67\n4,1894,20.67\n5,1894,20.67\n6,1894,20.67\n7,1894,20.67\n8,1894,20.67\n9,1894,20.67\n10,1894,20.67\n11,1894,20.67\n12,1894,20.67\n1,1895,20.67\n2,1895,20.67\n3,1895,20.67\n4,1895,20.67\n5,1895,20.67\n6,1895,20.67\n7,1895,20.67\n8,1895,20.67\n9,1895,20.67\n10,1895,20.67\n11,1895,20.67\n12,1895,20.67\n1,1896,20.67\n2,1896,20.67\n3,1896,20.67\n4,1896,20.67\n5,1896,20.67\n6,1896,20.67\n7,1896,20.67\n8,1896,20.67\n9,1896,20.67\n10,1896,20.67\n11,1896,20.67\n12,1896,20.67\n1,1897,20.67\n2,1897,20.67\n3,1897,20.67\n4,1897,20.67\n5,1897,20.67\n6,1897,20.67\n7,1897,20.67\n8,1897,20.67\n9,1897,20.67\n10,1897,20.67\n11,1897,20.67\n12,1897,20.67\n1,1898,20.67\n2,1898,20.67\n3,1898,20.67\n4,1898,20.67\n5,1898,20.67\n6,1898,20.67\n7,1898,20.67\n8,1898,20.67\n9,1898,20.67\n10,1898,20.67\n11,1898,20.67\n12,1898,20.67\n1,1899,20.67\n2,1899,20.67\n3,1899,20.67\n4,1899,20.67\n5,1899,20.67\n6,1899,20.67\n7,1899,20.67\n8,1899,20.67\n9,1899,20.67\n10,1899,20.67\n11,1899,20.67\n12,1899,20.67\n1,1900,20.67\n2,1900,20.67\n3,1900,20.67\n4,1900,20.67\n5,1900,20.67\n6,1900,20.67\n7,1900,20.67\n8,1900,20.67\n9,1900,20.67\n10,1900,20.67\n11,1900,20.67\n12,1900,20.67\n1,1901,20.67\n2,1901,20.67\n3,1901,20.67\n4,1901,20.67\n5,1901,20.67\n6,1901,20.67\n7,1901,20.67\n8,1901,20.67\n9,1901,20.67\n10,1901,20.67\n11,1901,20.67\n12,1901,20.67\n1,1902,20.67\n2,1902,20.67\n3,1902,20.67\n4,1902,20.67\n5,1902,20.67\n6,1902,20.67\n7,1902,20.67\n8,1902,20.67\n9,1902,20.67\n10,1902,20.67\n11,1902,20.67\n12,1902,20.67\n1,1903,20.67\n2,1903,20.67\n3,1903,20.67\n4,1903,20.67\n5,1903,20.67\n6,1903,20.67\n7,1903,20.67\n8,1903,20.67\n9,1903,20.67\n10,1903,20.67\n11,1903,20.67\n12,1903,20.67\n1,1904,20.67\n2,1904,20.67\n3,1904,20.67\n4,1904,20.67\n5,1904,20.67\n6,1904,20.67\n7,1904,20.67\n8,1904,20.67\n9,1904,20.67\n10,1904,20.67\n11,1904,20.67\n12,1904,20.67\n1,1905,20.67\n2,1905,20.67\n3,1905,20.67\n4,1905,20.67\n5,1905,20.67\n6,1905,20.67\n7,1905,20.67\n8,1905,20.67\n9,1905,20.67\n10,1905,20.67\n11,1905,20.67\n12,1905,20.67\n1,1906,20.67\n2,1906,20.67\n3,1906,20.67\n4,1906,20.67\n5,1906,20.67\n6,1906,20.67\n7,1906,20.67\n8,1906,20.67\n9,1906,20.67\n10,1906,20.67\n11,1906,20.67\n12,1906,20.67\n1,1907,20.67\n2,1907,20.67\n3,1907,20.67\n4,1907,20.67\n5,1907,20.67\n6,1907,20.67\n7,1907,20.67\n8,1907,20.67\n9,1907,20.67\n10,1907,20.67\n11,1907,20.67\n12,1907,20.67\n1,1908,20.67\n2,1908,20.67\n3,1908,20.67\n4,1908,20.67\n5,1908,20.67\n6,1908,20.67\n7,1908,20.67\n8,1908,20.67\n9,1908,20.67\n10,1908,20.67\n11,1908,20.67\n12,1908,20.67\n1,1909,20.67\n2,1909,20.67\n3,1909,20.67\n4,1909,20.67\n5,1909,20.67\n6,1909,20.67\n7,1909,20.67\n8,1909,20.67\n9,1909,20.67\n10,1909,20.67\n11,1909,20.67\n12,1909,20.67\n1,1910,20.67\n2,1910,20.67\n3,1910,20.67\n4,1910,20.67\n5,1910,20.67\n6,1910,20.67\n7,1910,20.67\n8,1910,20.67\n9,1910,20.67\n10,1910,20.67\n11,1910,20.67\n12,1910,20.67\n1,1911,20.67\n2,1911,20.67\n3,1911,20.67\n4,1911,20.67\n5,1911,20.67\n6,1911,20.67\n7,1911,20.67\n8,1911,20.67\n9,1911,20.67\n10,1911,20.67\n11,1911,20.67\n12,1911,20.67\n1,1912,20.67\n2,1912,20.67\n3,1912,20.67\n4,1912,20.67\n5,1912,20.67\n6,1912,20.67\n7,1912,20.67\n8,1912,20.67\n9,1912,20.67\n10,1912,20.67\n11,1912,20.67\n12,1912,20.67\n1,1913,20.67\n2,1913,20.67\n3,1913,20.67\n4,1913,20.67\n5,1913,20.67\n6,1913,20.67\n7,1913,20.67\n8,1913,20.67\n9,1913,20.67\n10,1913,20.67\n11,1913,20.67\n12,1913,20.67\n1,1914,20.67\n2,1914,20.67\n3,1914,20.67\n4,1914,20.67\n5,1914,20.67\n6,1914,20.67\n7,1914,20.67\n8,1914,20.67\n9,1914,20.67\n10,1914,20.67\n11,1914,20.67\n12,1914,20.67\n1,1915,20.67\n2,1915,20.67\n3,1915,20.67\n4,1915,20.67\n5,1915,20.67\n6,1915,20.67\n7,1915,20.67\n8,1915,20.67\n9,1915,20.67\n10,1915,20.67\n11,1915,20.67\n12,1915,20.67\n1,1916,20.67\n2,1916,20.67\n3,1916,20.67\n4,1916,20.67\n5,1916,20.67\n6,1916,20.67\n7,1916,20.67\n8,1916,20.67\n9,1916,20.67\n10,1916,20.67\n11,1916,20.67\n12,1916,20.67\n1,1917,20.67\n2,1917,20.67\n3,1917,20.67\n4,1917,20.67\n5,1917,20.67\n6,1917,20.67\n7,1917,20.67\n8,1917,20.67\n9,1917,20.67\n10,1917,20.67\n11,1917,20.67\n12,1917,20.67\n1,1918,20.67\n2,1918,20.67\n3,1918,20.67\n4,1918,20.67\n5,1918,20.67\n6,1918,20.67\n7,1918,20.67\n8,1918,20.67\n9,1918,20.67\n10,1918,20.67\n11,1918,20.67\n12,1918,20.67\n1,1919,20.67\n2,1919,20.67\n3,1919,20.67\n4,1919,20.67\n5,1919,20.67\n6,1919,20.67\n7,1919,20.67\n8,1919,20.67\n9,1919,20.67\n10,1919,20.67\n11,1919,20.67\n12,1919,20.67\n1,1920,20.67\n2,1920,20.67\n3,1920,20.67\n4,1920,20.67\n5,1920,20.67\n6,1920,20.67\n7,1920,20.67\n8,1920,20.67\n9,1920,20.67\n10,1920,20.67\n11,1920,20.67\n12,1920,20.67\n1,1921,20.67\n2,1921,20.67\n3,1921,20.67\n4,1921,20.67\n5,1921,20.67\n6,1921,20.67\n7,1921,20.67\n8,1921,20.67\n9,1921,20.67\n10,1921,20.67\n11,1921,20.67\n12,1921,20.67\n1,1922,20.67\n2,1922,20.67\n3,1922,20.67\n4,1922,20.67\n5,1922,20.67\n6,1922,20.67\n7,1922,20.67\n8,1922,20.67\n9,1922,20.67\n10,1922,20.67\n11,1922,20.67\n12,1922,20.67\n1,1923,20.67\n2,1923,20.67\n3,1923,20.67\n4,1923,20.67\n5,1923,20.67\n6,1923,20.67\n7,1923,20.67\n8,1923,20.67\n9,1923,20.67\n10,1923,20.67\n11,1923,20.67\n12,1923,20.67\n1,1924,20.67\n2,1924,20.67\n3,1924,20.67\n4,1924,20.67\n5,1924,20.67\n6,1924,20.67\n7,1924,20.67\n8,1924,20.67\n9,1924,20.67\n10,1924,20.67\n11,1924,20.67\n12,1924,20.67\n1,1925,20.67\n2,1925,20.67\n3,1925,20.67\n4,1925,20.67\n5,1925,20.67\n6,1925,20.67\n7,1925,20.67\n8,1925,20.67\n9,1925,20.67\n10,1925,20.67\n11,1925,20.67\n12,1925,20.67\n1,1926,20.67\n2,1926,20.67\n3,1926,20.67\n4,1926,20.67\n5,1926,20.67\n6,1926,20.67\n7,1926,20.67\n8,1926,20.67\n9,1926,20.67\n10,1926,20.67\n11,1926,20.67\n12,1926,20.67\n1,1927,20.67\n2,1927,20.67\n3,1927,20.67\n4,1927,20.67\n5,1927,20.67\n6,1927,20.67\n7,1927,20.67\n8,1927,20.67\n9,1927,20.67\n10,1927,20.67\n11,1927,20.67\n12,1927,20.67\n1,1928,20.67\n2,1928,20.67\n3,1928,20.67\n4,1928,20.67\n5,1928,20.67\n6,1928,20.67\n7,1928,20.67\n8,1928,20.67\n9,1928,20.67\n10,1928,20.67\n11,1928,20.67\n12,1928,20.67\n1,1929,20.67\n2,1929,20.67\n3,1929,20.67\n4,1929,20.67\n5,1929,20.67\n6,1929,20.67\n7,1929,20.67\n8,1929,20.67\n9,1929,20.67\n10,1929,20.67\n11,1929,20.67\n12,1929,20.67\n1,1930,20.67\n2,1930,20.67\n3,1930,20.67\n4,1930,20.67\n5,1930,20.67\n6,1930,20.67\n7,1930,20.67\n8,1930,20.67\n9,1930,20.67\n10,1930,20.67\n11,1930,20.67\n12,1930,20.67\n1,1931,20.67\n2,1931,20.67\n3,1931,20.67\n4,1931,20.67\n5,1931,20.67\n6,1931,20.67\n7,1931,20.67\n8,1931,20.67\n9,1931,20.67\n10,1931,20.67\n11,1931,20.67\n12,1931,20.67\n1,1932,20.67\n2,1932,20.67\n3,1932,20.67\n4,1932,20.67\n5,1932,20.67\n6,1932,20.67\n7,1932,20.67\n8,1932,20.67\n9,1932,20.67\n10,1932,20.67\n11,1932,20.67\n12,1932,20.67\n1,1933,32.32\n2,1933,32.32\n3,1933,32.32\n4,1933,32.32\n5,1933,32.32\n6,1933,32.32\n7,1933,32.32\n8,1933,32.32\n9,1933,32.32\n10,1933,32.32\n11,1933,32.32\n12,1933,32.32\n1,1934,35.00\n2,1934,35.00\n3,1934,35.00\n4,1934,35.00\n5,1934,35.00\n6,1934,35.00\n7,1934,35.00\n8,1934,35.00\n9,1934,35.00\n10,1934,35.00\n11,1934,35.00\n12,1934,35.00\n1,1935,35.00\n2,1935,35.00\n3,1935,35.00\n4,1935,35.00\n5,1935,35.00\n6,1935,35.00\n7,1935,35.00\n8,1935,35.00\n9,1935,35.00\n10,1935,35.00\n11,1935,35.00\n12,1935,35.00\n1,1936,35.00\n2,1936,35.00\n3,1936,35.00\n4,1936,35.00\n5,1936,35.00\n6,1936,35.00\n7,1936,35.00\n8,1936,35.00\n9,1936,35.00\n10,1936,35.00\n11,1936,35.00\n12,1936,35.00\n1,1937,35.00\n2,1937,35.00\n3,1937,35.00\n4,1937,35.00\n5,1937,35.00\n6,1937,35.00\n7,1937,35.00\n8,1937,35.00\n9,1937,35.00\n10,1937,35.00\n11,1937,35.00\n12,1937,35.00\n1,1938,35.00\n2,1938,35.00\n3,1938,35.00\n4,1938,35.00\n5,1938,35.00\n6,1938,35.00\n7,1938,35.00\n8,1938,35.00\n9,1938,35.00\n10,1938,35.00\n11,1938,35.00\n12,1938,35.00\n1,1939,35.00\n2,1939,35.00\n3,1939,35.00\n4,1939,35.00\n5,1939,35.00\n6,1939,35.00\n7,1939,35.00\n8,1939,35.00\n9,1939,35.00\n10,1939,35.00\n11,1939,35.00\n12,1939,35.00\n1,1940,34.50\n2,1940,34.50\n3,1940,34.50\n4,1940,34.50\n5,1940,34.50\n6,1940,34.50\n7,1940,34.50\n8,1940,34.50\n9,1940,34.50\n10,1940,34.50\n11,1940,34.50\n12,1940,34.50\n1,1941,35.50\n2,1941,35.50\n3,1941,35.50\n4,1941,35.50\n5,1941,35.50\n6,1941,35.50\n7,1941,35.50\n8,1941,35.50\n9,1941,35.50\n10,1941,35.50\n11,1941,35.50\n12,1941,35.50\n1,1942,35.50\n2,1942,35.50\n3,1942,35.50\n4,1942,35.50\n5,1942,35.50\n6,1942,35.50\n7,1942,35.50\n8,1942,35.50\n9,1942,35.50\n10,1942,35.50\n11,1942,35.50\n12,1942,35.50\n1,1943,36.50\n2,1943,36.50\n3,1943,36.50\n4,1943,36.50\n5,1943,36.50\n6,1943,36.50\n7,1943,36.50\n8,1943,36.50\n9,1943,36.50\n10,1943,36.50\n11,1943,36.50\n12,1943,36.50\n1,1944,36.25\n2,1944,36.25\n3,1944,36.25\n4,1944,36.25\n5,1944,36.25\n6,1944,36.25\n7,1944,36.25\n8,1944,36.25\n9,1944,36.25\n10,1944,36.25\n11,1944,36.25\n12,1944,36.25\n1,1945,37.25\n2,1945,37.25\n3,1945,37.25\n4,1945,37.25\n5,1945,37.25\n6,1945,37.25\n7,1945,37.25\n8,1945,37.25\n9,1945,37.25\n10,1945,37.25\n11,1945,37.25\n12,1945,37.25\n1,1946,38.25\n2,1946,38.25\n3,1946,38.25\n4,1946,38.25\n5,1946,38.25\n6,1946,38.25\n7,1946,38.25\n8,1946,38.25\n9,1946,38.25\n10,1946,38.25\n11,1946,38.25\n12,1946,38.25\n1,1947,43.00\n2,1947,43.00\n3,1947,43.00\n4,1947,43.00\n5,1947,43.00\n6,1947,43.00\n7,1947,43.00\n8,1947,43.00\n9,1947,43.00\n10,1947,43.00\n11,1947,43.00\n12,1947,43.00\n1,1948,42.00\n2,1948,42.00\n3,1948,42.00\n4,1948,42.00\n5,1948,42.00\n6,1948,42.00\n7,1948,42.00\n8,1948,42.00\n9,1948,42.00\n10,1948,42.00\n11,1948,42.00\n12,1948,42.00\n1,1949,40.50\n2,1949,40.50\n3,1949,40.50\n4,1949,40.50\n5,1949,40.50\n6,1949,40.50\n7,1949,40.50\n8,1949,40.50\n9,1949,40.50\n10,1949,40.50\n11,1949,40.50\n12,1949,40.50\n1,1950,40.25\n2,1950,40.25\n3,1950,40.25\n4,1950,40.25\n5,1950,40.25\n6,1950,40.25\n7,1950,40.25\n8,1950,40.25\n9,1950,40.25\n10,1950,40.25\n11,1950,40.25\n12,1950,40.25\n1,1951,40.00\n2,1951,40.00\n3,1951,40.00\n4,1951,40.00\n5,1951,40.00\n6,1951,40.00\n7,1951,40.00\n8,1951,40.00\n9,1951,40.00\n10,1951,40.00\n11,1951,40.00\n12,1951,40.00\n1,1952,38.70\n2,1952,38.70\n3,1952,38.70\n4,1952,38.70\n5,1952,38.70\n6,1952,38.70\n7,1952,38.70\n8,1952,38.70\n9,1952,38.70\n10,1952,38.70\n11,1952,38.70\n12,1952,38.70\n1,1953,35.50\n2,1953,35.50\n3,1953,35.50\n4,1953,35.50\n5,1953,35.50\n6,1953,35.50\n7,1953,35.50\n8,1953,35.50\n9,1953,35.50\n10,1953,35.50\n11,1953,35.50\n12,1953,35.50\n1,1954,35.25\n2,1954,35.25\n3,1954,35.25\n4,1954,35.25\n5,1954,35.25\n6,1954,35.25\n7,1954,35.25\n8,1954,35.25\n9,1954,35.25\n10,1954,35.25\n11,1954,35.25\n12,1954,35.25\n1,1955,35.15\n2,1955,35.15\n3,1955,35.15\n4,1955,35.15\n5,1955,35.15\n6,1955,35.15\n7,1955,35.15\n8,1955,35.15\n9,1955,35.15\n10,1955,35.15\n11,1955,35.15\n12,1955,35.15\n1,1956,35.20\n2,1956,35.20\n3,1956,35.20\n4,1956,35.20\n5,1956,35.20\n6,1956,35.20\n7,1956,35.20\n8,1956,35.20\n9,1956,35.20\n10,1956,35.20\n11,1956,35.20\n12,1956,35.20\n1,1957,35.25\n2,1957,35.25\n3,1957,35.25\n4,1957,35.25\n5,1957,35.25\n6,1957,35.25\n7,1957,35.25\n8,1957,35.25\n9,1957,35.25\n10,1957,35.25\n11,1957,35.25\n12,1957,35.25\n1,1958,35.25\n2,1958,35.25\n3,1958,35.25\n4,1958,35.25\n5,1958,35.25\n6,1958,35.25\n7,1958,35.25\n8,1958,35.25\n9,1958,35.25\n10,1958,35.25\n11,1958,35.25\n12,1958,35.25\n1,1959,35.25\n2,1959,35.25\n3,1959,35.25\n4,1959,35.25\n5,1959,35.25\n6,1959,35.25\n7,1959,35.25\n8,1959,35.25\n9,1959,35.25\n10,1959,35.25\n11,1959,35.25\n12,1959,35.25\n1,1960,36.50\n2,1960,36.50\n3,1960,36.50\n4,1960,36.50\n5,1960,36.50\n6,1960,36.50\n7,1960,36.50\n8,1960,36.50\n9,1960,36.50\n10,1960,36.50\n11,1960,36.50\n12,1960,36.50\n1,1961,35.50\n2,1961,35.50\n3,1961,35.50\n4,1961,35.50\n5,1961,35.50\n6,1961,35.50\n7,1961,35.50\n8,1961,35.50\n9,1961,35.50\n10,1961,35.50\n11,1961,35.50\n12,1961,35.50\n1,1962,35.35\n2,1962,35.35\n3,1962,35.35\n4,1962,35.35\n5,1962,35.35\n6,1962,35.35\n7,1962,35.35\n8,1962,35.35\n9,1962,35.35\n10,1962,35.35\n11,1962,35.35\n12,1962,35.35\n1,1963,35.25\n2,1963,35.25\n3,1963,35.25\n4,1963,35.25\n5,1963,35.25\n6,1963,35.25\n7,1963,35.25\n8,1963,35.25\n9,1963,35.25\n10,1963,35.25\n11,1963,35.25\n12,1963,35.25\n1,1964,35.35\n2,1964,35.35\n3,1964,35.35\n4,1964,35.35\n5,1964,35.35\n6,1964,35.35\n7,1964,35.35\n8,1964,35.35\n9,1964,35.35\n10,1964,35.35\n11,1964,35.35\n12,1964,35.35\n1,1965,35.50\n2,1965,35.50\n3,1965,35.50\n4,1965,35.50\n5,1965,35.50\n6,1965,35.50\n7,1965,35.50\n8,1965,35.50\n9,1965,35.50\n10,1965,35.50\n11,1965,35.50\n12,1965,35.50\n1,1966,35.40\n2,1966,35.40\n3,1966,35.40\n4,1966,35.40\n5,1966,35.40\n6,1966,35.40\n7,1966,35.40\n8,1966,35.40\n9,1966,35.40\n10,1966,35.40\n11,1966,35.40\n12,1966,35.40\n1,1967,35.50\n2,1967,35.50\n3,1967,35.50\n4,1967,35.50\n5,1967,35.50\n6,1967,35.50\n7,1967,35.50\n8,1967,35.50\n9,1967,35.50\n10,1967,35.50\n11,1967,35.50\n12,1967,35.50\n1,1968,35.20\n2,1968,35.20\n3,1968,35.20\n4,1968,39.10\n5,1968,42.00\n6,1968,40.95\n7,1968,38.90\n8,1968,39.85\n9,1968,39.70\n10,1968,39.20\n11,1968,39.85\n12,1968,41.95\n1,1969,42.55\n2,1969,42.77\n3,1969,43.10\n4,1969,43.60\n5,1969,43.15\n6,1969,41.23\n7,1969,41.45\n8,1969,40.95\n9,1969,40.65\n10,1969,39.85\n11,1969,35.55\n12,1969,35.21\n1,1970,34.98\n2,1970,35.00\n3,1970,35.30\n4,1970,35.85\n5,1970,35.50\n6,1970,35.51\n7,1970,35.29\n8,1970,35.77\n9,1970,36.24\n10,1970,37.40\n11,1970,37.60\n12,1970,37.38\n1,1971,38.00\n2,1971,38.79\n3,1971,38.80\n4,1971,39.60\n5,1971,40.80\n6,1971,40.20\n7,1971,42.48\n8,1971,41.00\n9,1971,42.48\n10,1971,42.40\n11,1971,43.55\n12,1971,43.62\n1,1972,46.95\n2,1972,48.40\n3,1972,48.38\n4,1972,49.50\n5,1972,59.30\n6,1972,64.10\n7,1972,68.90\n8,1972,66.80\n9,1972,64.10\n10,1972,64.42\n11,1972,63.60\n12,1972,64.70\n1,1973,66.00\n2,1973,85.30\n3,1973,90.25\n4,1973,90.70\n5,1973,114.50\n6,1973,123.50\n7,1973,115.20\n8,1973,104.00\n9,1973,100.25\n10,1973,97.25\n11,1973,100.25\n12,1973,112.25\n1,1974,133.25\n2,1974,169.50\n3,1974,173.00\n4,1974,168.50\n5,1974,156.50\n6,1974,146.75\n7,1974,154.00\n8,1974,155.25\n9,1974,147.50\n10,1974,166.40\n11,1974,182.00\n12,1974,187.50\n1,1975,176.25\n2,1975,181.75\n3,1975,177.75\n4,1975,167.40\n5,1975,167.75\n6,1975,166.00\n7,1975,166.40\n8,1975,161.50\n9,1975,138.25\n10,1975,143.40\n11,1975,138.25\n12,1975,140.25\n1,1976,128.00\n2,1976,132.30\n3,1976,129.50\n4,1976,128.15\n5,1976,125.25\n6,1976,123.80\n7,1976,112.40\n8,1976,103.05\n9,1976,116.10\n10,1976,122.30\n11,1976,130.10\n12,1976,134.55\n1,1977,132.10\n2,1977,142.25\n3,1977,149.80\n4,1977,146.50\n5,1977,143.20\n6,1977,142.95\n7,1977,144.50\n8,1977,146.00\n9,1977,153.90\n10,1977,160.80\n11,1977,159.80\n12,1977,165.60\n1,1978,175.20\n2,1978,182.00\n3,1978,180.75\n4,1978,170.00\n5,1978,184.90\n6,1978,183.20\n7,1978,198.90\n8,1978,207.30\n9,1978,217.45\n10,1978,243.65\n11,1978,193.70\n12,1978,224.50\n1,1979,233.05\n2,1979,250.90\n3,1979,239.65\n4,1979,243.45\n5,1979,277.15\n6,1979,276.45\n7,1979,295.35\n8,1979,317.75\n9,1979,397.00\n10,1979,379.75\n11,1979,417.20\n12,1979,524.00\n1,1980,668.00\n2,1980,640.00\n3,1980,503.25\n4,1980,519.25\n5,1980,531.40\n6,1980,662.50\n7,1980,618.00\n8,1980,633.75\n9,1980,670.00\n10,1980,636.00\n11,1980,621.50\n12,1980,589.50\n1,1981,507.50\n2,1981,490.25\n3,1981,514.25\n4,1981,481.00\n5,1981,478.75\n6,1981,421.50\n7,1981,405.25\n8,1981,425.50\n9,1981,426.50\n10,1981,429.00\n11,1981,415.50\n12,1981,400.00\n1,1982,388.25\n2,1982,363.25\n3,1982,320.50\n4,1982,356.75\n5,1982,325.50\n6,1982,314.00\n7,1982,342.50\n8,1982,409.60\n9,1982,394.75\n10,1982,422.00\n11,1982,428.25\n12,1982,448.00\n1,1983,503.00\n2,1983,419.75\n3,1983,414.25\n4,1983,428.50\n5,1983,439.00\n6,1983,416.75\n7,1983,422.25\n8,1983,414.50\n9,1983,404.00\n10,1983,383.50\n11,1983,405.75\n12,1983,381.50\n1,1984,371.90\n2,1984,396.60\n3,1984,388.50\n4,1984,376.20\n5,1984,383.45\n6,1984,375.25\n7,1984,341.60\n8,1984,347.70\n9,1984,344.15\n10,1984,334.50\n11,1984,328.60\n12,1984,309.00\n1,1985,304.90\n2,1985,290.50\n3,1985,329.80\n4,1985,324.65\n5,1985,313.15\n6,1985,316.50\n7,1985,328.10\n8,1985,335.75\n9,1985,326.50\n10,1985,325.75\n11,1985,327.40\n12,1985,327.00\n1,1986,354.00\n2,1986,338.25\n3,1986,345.50\n4,1986,344.75\n5,1986,343.35\n6,1986,345.50\n7,1986,357.75\n8,1986,386.00\n9,1986,421.20\n10,1986,401.50\n11,1986,390.00\n12,1986,390.90\n1,1987,407.30\n2,1987,405.75\n3,1987,419.00\n4,1987,454.50\n5,1987,451.75\n6,1987,447.10\n7,1987,464.25\n8,1987,455.90\n9,1987,459.15\n10,1987,468.00\n11,1987,493.90\n12,1987,486.50\n1,1988,465.25\n2,1988,423.75\n3,1988,458.00\n4,1988,449.75\n5,1988,454.00\n6,1988,436.85\n7,1988,432.70\n8,1988,426.35\n9,1988,396.15\n10,1988,412.30\n11,1988,421.30\n12,1988,410.15\n1,1989,394.85\n2,1989,386.75\n3,1989,382.30\n4,1989,381.30\n5,1989,363.50\n6,1989,371.15\n7,1989,369.10\n8,1989,359.60\n9,1989,369.00\n10,1989,376.05\n11,1989,406.80\n12,1989,401.00\n1,1990,417.55\n2,1990,409.10\n3,1990,372.20\n4,1990,371.55\n5,1990,363.70\n6,1990,352.40\n7,1990,371.10\n8,1990,388.10\n9,1990,406.10\n10,1990,379.25\n11,1990,384.80\n12,1990,391.00\n1,1991,369.60\n2,1991,363.00\n3,1991,354.00\n4,1991,353.45\n5,1991,361.55\n6,1991,366.90\n7,1991,363.60\n8,1991,347.00\n9,1991,350.50\n10,1991,357.40\n11,1991,366.85\n12,1991,353.40\n1,1992,354.15\n2,1992,353.05\n3,1992,341.50\n4,1992,336.25\n5,1992,337.55\n6,1992,343.40\n7,1992,357.95\n8,1992,340.50\n9,1992,349.00\n10,1992,338.80\n11,1992,333.70\n12,1992,332.90\n1,1993,330.75\n2,1993,328.75\n3,1993,336.90\n4,1993,353.45\n5,1993,381.00\n6,1993,379.00\n7,1993,403.70\n8,1993,370.60\n9,1993,352.65\n10,1993,369.10\n11,1993,370.80\n12,1993,390.65\n1,1994,378.20\n2,1994,380.75\n3,1994,389.70\n4,1994,376.45\n5,1994,386.25\n6,1994,385.40\n7,1994,384.05\n8,1994,386.25\n9,1994,395.35\n10,1994,387.40\n11,1994,383.35\n12,1994,382.50\n1,1995,375.85\n2,1995,375.70\n3,1995,386.55\n4,1995,389.50\n5,1995,384.25\n6,1995,387.60\n7,1995,383.35\n8,1995,381.65\n9,1995,383.75\n10,1995,382.40\n11,1995,387.85\n12,1995,386.70\n1,1996,403.20\n2,1996,400.35\n3,1996,396.70\n4,1996,390.15\n5,1996,390.55\n6,1996,381.30\n7,1996,385.50\n8,1996,387.25\n9,1996,379.30\n10,1996,379.30\n11,1996,371.90\n12,1996,369.55\n1,1997,345.00\n2,1997,360.60\n3,1997,349.50\n4,1997,340.45\n5,1997,345.75\n6,1997,334.05\n7,1997,326.00\n8,1997,325.40\n9,1997,328.75\n10,1997,310.40\n11,1997,296.90\n12,1997,289.20\n1,1998,301.80\n2,1998,296.55\n3,1998,299.90\n4,1998,310.70\n5,1998,292.40\n6,1998,295.75\n7,1998,289.40\n8,1998,273.40\n9,1998,294.10\n10,1998,293.10\n11,1998,295.75\n12,1998,287.45\n1,1999,285.65\n2,1999,286.80\n3,1999,279.80\n4,1999,285.85\n5,1999,271.05\n6,1999,261.20\n7,1999,256.75\n8,1999,254.60\n9,1999,303.75\n10,1999,298.85\n11,1999,292.00\n12,1999,290.85\n1,2000,283.05\n2,2000,294.00\n3,2000,275.90\n4,2000,275.85\n5,2000,272.25\n6,2000,289.15\n7,2000,277.40\n8,2000,274.95\n9,2000,274.10\n10,2000,263.80\n11,2000,267.00\n12,2000,272.65\n1,2001,266.20\n2,2001,265.00\n3,2001,259.05\n4,2001,263.45\n5,2001,266.10\n6,2001,269.90\n7,2001,265.55\n8,2001,275.35\n9,2001,290.85\n10,2001,280.95\n11,2001,274.70\n12,2001,276.50\n1,2002,281.50\n2,2002,296.55\n3,2002,303.00\n4,2002,309.35\n5,2002,327.25\n6,2002,319.05\n7,2002,305.50\n8,2002,312.40\n9,2002,322.40\n10,2002,316.35\n11,2002,318.25\n12,2002,342.75\n1,2003,370.35\n2,2003,347.65\n3,2003,335.35\n4,2003,336.00\n5,2003,365.80\n6,2003,345.15\n7,2003,355.75\n8,2003,371.00\n9,2003,384.50\n10,2003,384.60\n11,2003,398.10\n12,2003,417.25\n1,2004,401.30\n2,2004,392.25\n3,2004,423.00\n4,2004,387.30\n5,2004,393.85\n6,2004,393.75\n7,2004,389.60\n8,2004,408.10\n9,2004,412.35\n10,2004,426.20\n11,2004,452.00\n12,2004,438.00\n1,2005,423.80\n2,2005,436.55\n3,2005,427.50\n4,2005,433.20\n5,2005,416.90\n6,2005,436.80\n7,2005,427.15\n8,2005,433.00\n9,2005,473.40\n10,2005,472.65\n11,2005,493.80\n12,2005,513.00\n1,2006,569.80\n2,2006,556.50\n3,2006,584.00\n4,2006,638.25\n5,2006,654.00\n6,2006,600.40\n7,2006,637.00\n8,2006,621.75\n9,2006,601.75\n10,2006,600.90\n11,2006,638.40\n12,2006,635.70\n1,2007,645.75\n2,2007,677.00\n3,2007,663.50\n4,2007,678.00\n5,2007,656.60\n6,2007,648.50\n7,2007,666.75\n8,2007,668.00\n9,2007,737.75\n10,2007,783.00\n11,2007,794.75\n12,2007,836.50\n1,2008,923.75\n2,2008,969.00\n3,2008,937.25\n4,2008,867.75\n5,2008,879.50\n6,2008,932.75\n7,2008,912.00\n8,2008,836.50\n9,2008,897.00\n10,2008,728.50\n11,2008,813.50\n12,2008,865.00\n1,2009,918.50\n2,2009,943.75\n3,2009,918.50\n4,2009,889.00\n5,2009,972.00\n6,2009,941.00\n7,2009,936.50\n8,2009,950.75\n9,2009,1001.25\n10,2009,1044.50\n11,2009,1172.00\n12,2009,1104.00\n1,2010,1082.75\n2,2010,1112.50\n3,2010,1109.50\n4,2010,1175.25\n5,2010,1214.00\n6,2010,1240.50\n7,2010,1168.00\n8,2010,1233.50\n9,2010,1311.00\n10,2010,1336.75\n11,2010,1375.00\n12,2010,1410.25\n1,2011,1333.50\n2,2011,1409.75\n3,2011,1431.00\n4,2011,1531.00\n5,2011,1537.00\n6,2011,1508.00\n7,2011,1613.75\n8,2011,1826.00\n9,2011,1629.00\n10,2011,1718.00\n11,2011,1704.00\n12,2011,1574.50\n1,2012,1738.00\n2,2012,1788.00\n3,2012,1660.75\n4,2012,1662.50\n5,2012,1567.50\n6,2012,1569.50\n7,2012,1622.75\n8,2012,1657.75\n9,2012,1781.00\n10,2012,1718.00\n11,2012,1728.25\n12,2012,1664.00\n1,2013,1674.50\n2,2013,1591.00\n3,2013,1602.50\n4,2013,1472.75\n5,2013,1410.25\n6,2013,1203.25\n7,2013,1331.50\n8,2013,1392.75\n9,2013,1335.75\n10,2013,1333.75\n11,2013,1245.25\n12,2013,1201.50\n1,2014,1246.50\n2,2014,1327.75\n3,2014,1294.00\n4,2014,1292.00\n5,2014,1254.00\n6,2014,1313.00\n7,2014,1295.00\n8,2014,1285.75\n9,2014,1210.00\n10,2014,1173.25\n11,2014,1184.50\n12,2014,1199.25\n1,2015,1263.50\n2,2015,1205.00\n3,2015,1179.25\n4,2015,1204.30\n5,2015,1190.40\n6,2015,1175.00\n7,2015,1080.05\n8,2015,1125.50\n9,2015,1122.50\n10,2015,1147.75\n11,2015,1055.65\n12,2015,1062.25\n1,2016,1112.90\n2,2016,1234.15\n3,2016,1233.60\n4,2016,1274.50\n5,2016,1210.50\n6,2016,1317.00\n7,2016,1332.50\n8,2016,1314.45\n9,2016,1327.90\n10,2016,1274.20\n11,2016,1187.40\n12,2016,1159.10\n1,2017,1198.80\n2,2017,1251.90\n3,2017,1241.70\n4,2017,1265.55\n5,2017,1263.80\n6,2017,1243.25\n7,2017,1266.35\n8,2017,1305.80\n9,2017,1286.95\n10,2017,1274.40\n11,2017,1282.15\n12,2017,1296.50\n1,2018,1343.35\n2,2018,1320.30\n3,2018,1323.90\n4,2018,1316.25\n5,2018,1303.50\n6,2018,1250.55\n7,2018,1219.20\n8,2018,1206.85\n9,2018,1183.50\n10,2018,1217.70\n11,2018,1220.45\n12,2018,1281.65\n1,2019,1322.50\n2,2019,1325.45\n3,2019,1291.15\n4,2019,1285.15\n5,2019,1296.00\n6,2019,1413.20\n7,2019,1430.55\n8,2019,1526.55\n9,2019,1487.60\n10,2019,1506.40\n11,2019,1456.35\n12,2019,1523.00\n1,2020,1580.85\n2,2020,1626.35\n3,2020,1604.65\n4,2020,1716.75\n5,2020,1725.65\n6,2020,1770.70\n7,2020,1974.70\n8,2020,1955.85\n9,2020,1883.40\n10,2020,1875.80\n11,2020,1771.95\n12,2020,1891.10\n1,2021,1852.70\n2,2021,1765.10\n3,2021,1685.35\n4,2021,1768.80\n5,2021,1892.45\n6,2021,1757.80\n7,2021,1828.25\n8,2021,1814.30\n9,2021,1730.95\n10,2021,1796.30\n11,2021,1797.60\n12,2021,1820.10\n1,2022,1790.60\n2,2022,1903.30\n3,2022,1924.10\n4,2022,1915.45\n5,2022,1854.40\n6,2022,1813.60\n7,2022,1758.90\n8,2022,1712.40\n9,2022,1672.75\n10,2022,1638.85\n11,2022,1759.65\n12,2022,1812.35\n1,2023,1905.20\n2,2023,1810.20\n3,2023,1978.80\n4,2023,1982.70\n5,2023,1959.00\n6,2023,1903.55\n7,2023,1955.55\n8,2023,1944.20\n9,2023,1871.60\n10,2023,1997.60\n11,2023,2037.85\n12,2023,2062.40\n1,2024,2037.90\n2,2024,2032.80\n3,2024,2207.00\n4,2024,2314.80\n5,2024,2342.90\n6,2024,2327.60\n7,2024,2426.30\n8,2024,2524.15\n9,2024,2650.15\n10,2024,2779.40\n11,2024,2664.30\n12,2024,2610.85\n1,2025,2791.50\n2,2025,2861.40\n3,2025,3120.20\n4,2025,3284.30\n5,2025,3293.55\n6,2025,3277.25\n7,2025,3306.80\n8,2025,3407.50\n9,2025,3806.55\n10,2025,4013.20\n11,2025,4159.40\n12,2025,4307.95\n`,
        'commodities': `1,1871,22.59\n2,1871,22.59\n3,1871,22.59\n4,1871,22.59\n5,1871,22.59\n6,1871,22.59\n7,1871,22.59\n8,1871,22.59\n9,1871,22.59\n10,1871,22.59\n11,1871,22.59\n12,1871,22.59\n1,1872,23.19\n2,1872,23.19\n3,1872,23.19\n4,1872,23.19\n5,1872,23.19\n6,1872,23.19\n7,1872,23.19\n8,1872,23.19\n9,1872,23.19\n10,1872,23.19\n11,1872,23.19\n12,1872,23.19\n1,1873,22.74\n2,1873,22.74\n3,1873,22.74\n4,1873,22.74\n5,1873,22.74\n6,1873,22.74\n7,1873,22.74\n8,1873,22.74\n9,1873,22.74\n10,1873,22.74\n11,1873,22.74\n12,1873,22.74\n1,1874,23.09\n2,1874,23.09\n3,1874,23.09\n4,1874,23.09\n5,1874,23.09\n6,1874,23.09\n7,1874,23.09\n8,1874,23.09\n9,1874,23.09\n10,1874,23.09\n11,1874,23.09\n12,1874,23.09\n1,1875,23.54\n2,1875,23.54\n3,1875,23.54\n4,1875,23.54\n5,1875,23.54\n6,1875,23.54\n7,1875,23.54\n8,1875,23.54\n9,1875,23.54\n10,1875,23.54\n11,1875,23.54\n12,1875,23.54\n1,1876,22.30\n2,1876,22.30\n3,1876,22.30\n4,1876,22.30\n5,1876,22.30\n6,1876,22.30\n7,1876,22.30\n8,1876,22.30\n9,1876,22.30\n10,1876,22.30\n11,1876,22.30\n12,1876,22.30\n1,1877,21.25\n2,1877,19.58\n3,1877,18.83\n4,1877,22.97\n5,1877,19.61\n6,1877,18.53\n7,1877,17.86\n8,1877,16.31\n9,1877,17.13\n10,1877,17.34\n11,1877,16.96\n12,1877,17.06\n1,1878,16.12\n2,1878,16.29\n3,1878,16.05\n4,1878,15.23\n5,1878,13.67\n6,1878,13.97\n7,1878,14.85\n8,1878,14.42\n9,1878,12.93\n10,1878,12.03\n11,1878,11.89\n12,1878,11.25\n1,1879,12.59\n2,1879,13.56\n3,1879,12.93\n4,1879,12.24\n5,1879,12.98\n6,1879,13.03\n7,1879,11.75\n8,1879,11.19\n9,1879,12.97\n10,1879,14.66\n11,1879,15.54\n12,1879,16.42\n1,1880,15.22\n2,1880,15.00\n3,1880,13.55\n4,1880,13.19\n5,1880,12.79\n6,1880,12.74\n7,1880,14.07\n8,1880,15.28\n9,1880,15.80\n10,1880,15.80\n11,1880,17.10\n12,1880,15.76\n1,1881,16.31\n2,1881,16.48\n3,1881,16.93\n4,1881,17.56\n5,1881,17.47\n6,1881,18.27\n7,1881,19.68\n8,1881,22.09\n9,1881,24.78\n10,1881,22.63\n11,1881,21.89\n12,1881,21.99\n1,1882,22.04\n2,1882,21.05\n3,1882,21.94\n4,1882,22.71\n5,1882,22.73\n6,1882,24.82\n7,1882,23.70\n8,1882,24.51\n9,1882,22.76\n10,1882,23.07\n11,1882,22.12\n12,1882,22.04\n1,1883,23.53\n2,1883,24.80\n3,1883,24.40\n4,1883,24.43\n5,1883,24.08\n6,1883,20.37\n7,1883,19.09\n8,1883,18.38\n9,1883,17.80\n10,1883,17.18\n11,1883,19.78\n12,1883,20.29\n1,1884,20.44\n2,1884,20.78\n3,1884,19.89\n4,1884,19.21\n5,1884,19.69\n6,1884,18.50\n7,1884,18.69\n8,1884,18.13\n9,1884,18.32\n10,1884,17.58\n11,1884,16.90\n12,1884,16.94\n1,1885,17.70\n2,1885,17.67\n3,1885,17.49\n4,1885,18.93\n5,1885,16.97\n6,1885,17.11\n7,1885,16.71\n8,1885,15.70\n9,1885,15.43\n10,1885,15.29\n11,1885,16.31\n12,1885,16.27\n1,1886,16.47\n2,1886,16.38\n3,1886,15.56\n4,1886,15.23\n5,1886,14.46\n6,1886,15.45\n7,1886,16.61\n8,1886,16.30\n9,1886,15.10\n10,1886,14.64\n11,1886,15.18\n12,1886,16.13\n1,1887,15.75\n2,1887,17.37\n3,1887,18.38\n4,1887,18.10\n5,1887,17.17\n6,1887,16.79\n7,1887,16.71\n8,1887,16.77\n9,1887,16.93\n10,1887,16.68\n11,1887,19.00\n12,1887,20.08\n1,1888,19.05\n2,1888,18.69\n3,1888,18.42\n4,1888,19.11\n5,1888,19.73\n6,1888,18.77\n7,1888,19.40\n8,1888,19.76\n9,1888,20.10\n10,1888,21.50\n11,1888,20.91\n12,1888,20.19\n1,1889,18.81\n2,1889,18.57\n3,1889,19.05\n4,1889,17.60\n5,1889,17.32\n6,1889,17.53\n7,1889,16.65\n8,1889,15.81\n9,1889,15.85\n10,1889,15.84\n11,1889,15.95\n12,1889,15.73\n1,1890,15.77\n2,1890,15.56\n3,1890,16.22\n4,1890,17.80\n5,1890,18.36\n6,1890,17.84\n7,1890,20.11\n8,1890,20.67\n9,1890,20.38\n10,1890,21.66\n11,1890,20.83\n12,1890,20.08\n1,1891,19.23\n2,1891,19.32\n3,1891,23.20\n4,1891,22.92\n5,1891,20.64\n6,1891,19.33\n7,1891,20.63\n8,1891,20.97\n9,1891,20.12\n10,1891,18.77\n11,1891,18.81\n12,1891,18.43\n1,1892,18.90\n2,1892,18.63\n3,1892,17.14\n4,1892,17.18\n5,1892,19.06\n6,1892,20.12\n7,1892,20.31\n8,1892,20.36\n9,1892,19.82\n10,1892,19.85\n11,1892,21.91\n12,1892,22.67\n1,1893,25.03\n2,1893,24.41\n3,1893,23.32\n4,1893,24.40\n5,1893,24.07\n6,1893,23.24\n7,1893,20.95\n8,1893,20.52\n9,1893,22.23\n10,1893,22.49\n11,1893,20.98\n12,1893,20.66\n1,1894,20.67\n2,1894,19.80\n3,1894,19.83\n4,1894,20.69\n5,1894,20.24\n6,1894,21.16\n7,1894,21.39\n8,1894,24.49\n9,1894,22.89\n10,1894,21.98\n11,1894,22.22\n12,1894,21.61\n1,1895,19.39\n2,1895,19.75\n3,1895,21.70\n4,1895,21.82\n5,1895,23.45\n6,1895,21.92\n7,1895,19.69\n8,1895,17.88\n9,1895,17.57\n10,1895,16.72\n11,1895,16.26\n12,1895,15.83\n1,1896,17.81\n2,1896,17.27\n3,1896,16.02\n4,1896,15.25\n5,1896,13.91\n6,1896,12.98\n7,1896,12.22\n8,1896,11.61\n9,1896,12.31\n10,1896,13.60\n11,1896,13.85\n12,1896,12.97\n1,1897,12.55\n2,1897,12.65\n3,1897,13.13\n4,1897,13.09\n5,1897,12.21\n6,1897,12.63\n7,1897,13.37\n8,1897,15.28\n9,1897,14.45\n10,1897,13.89\n11,1897,13.52\n12,1897,14.41\n1,1898,14.83\n2,1898,15.79\n3,1898,15.29\n4,1898,17.18\n5,1898,17.72\n6,1898,15.78\n7,1898,15.63\n8,1898,14.87\n9,1898,14.57\n10,1898,15.26\n11,1898,15.53\n12,1898,16.99\n1,1899,17.09\n2,1899,16.26\n3,1899,16.06\n4,1899,15.56\n5,1899,15.00\n6,1899,15.39\n7,1899,14.81\n8,1899,14.86\n9,1899,15.71\n10,1899,15.49\n11,1899,15.19\n12,1899,15.86\n1,1900,15.93\n2,1900,16.07\n3,1900,17.84\n4,1900,18.47\n5,1900,17.37\n6,1900,19.52\n7,1900,18.20\n8,1900,18.03\n9,1900,18.54\n10,1900,17.99\n11,1900,18.32\n12,1900,18.95\n1,1901,19.90\n2,1901,20.27\n3,1901,21.54\n4,1901,21.64\n5,1901,22.19\n6,1901,22.26\n7,1901,24.15\n8,1901,24.74\n9,1901,25.39\n10,1901,24.83\n11,1901,26.86\n12,1901,28.17\n1,1902,26.74\n2,1902,26.49\n3,1902,26.66\n4,1902,27.70\n5,1902,27.72\n6,1902,29.69\n7,1902,28.03\n8,1902,27.07\n9,1902,28.29\n10,1902,30.22\n11,1902,30.80\n12,1902,32.02\n1,1903,33.26\n2,1903,34.43\n3,1903,33.85\n4,1903,34.18\n5,1903,34.53\n6,1903,35.61\n7,1903,34.34\n8,1903,34.29\n9,1903,33.33\n10,1903,32.73\n11,1903,31.57\n12,1903,34.39\n1,1904,36.73\n2,1904,40.86\n3,1904,37.55\n4,1904,35.67\n5,1904,35.29\n6,1904,37.42\n7,1904,38.58\n8,1904,39.67\n9,1904,40.31\n10,1904,38.52\n11,1904,38.99\n12,1904,39.29\n1,1905,39.61\n2,1905,39.78\n3,1905,39.83\n4,1905,38.71\n5,1905,40.21\n6,1905,43.14\n7,1905,41.87\n8,1905,43.39\n9,1905,43.95\n10,1905,45.02\n11,1905,46.60\n12,1905,46.89\n1,1906,47.10\n2,1906,48.35\n3,1906,49.81\n4,1906,51.09\n5,1906,54.01\n6,1906,56.92\n7,1906,53.98\n8,1906,52.64\n9,1906,53.44\n10,1906,54.78\n11,1906,55.73\n12,1906,59.23\n1,1907,63.53\n2,1907,63.46\n3,1907,61.63\n4,1907,63.64\n5,1907,70.74\n6,1907,69.25\n7,1907,69.79\n8,1907,73.34\n9,1907,74.74\n10,1907,72.61\n11,1907,66.79\n12,1907,69.74\n1,1908,67.24\n2,1908,67.47\n3,1908,73.03\n4,1908,71.41\n5,1908,73.20\n6,1908,77.55\n7,1908,83.35\n8,1908,85.17\n9,1908,87.25\n10,1908,85.88\n11,1908,86.55\n12,1908,87.71\n1,1909,89.81\n2,1909,92.92\n3,1909,95.10\n4,1909,98.71\n5,1909,103.65\n6,1909,108.04\n7,1909,104.12\n8,1909,106.34\n9,1909,111.36\n10,1909,117.66\n11,1909,123.88\n12,1909,130.79\n1,1910,131.44\n2,1910,141.51\n3,1910,142.71\n4,1910,130.60\n5,1910,127.83\n6,1910,133.53\n7,1910,131.72\n8,1910,133.45\n9,1910,124.44\n10,1910,119.76\n11,1910,119.06\n12,1910,126.21\n1,1911,125.30\n2,1911,118.38\n3,1911,112.08\n4,1911,113.65\n5,1911,115.35\n6,1911,128.18\n7,1911,131.07\n8,1911,134.45\n9,1911,133.86\n10,1911,135.76\n11,1911,137.23\n12,1911,134.96\n1,1912,141.79\n2,1912,140.30\n3,1912,149.91\n4,1912,163.91\n5,1912,157.89\n6,1912,159.90\n7,1912,147.63\n8,1912,148.02\n9,1912,141.56\n10,1912,143.40\n11,1912,141.04\n12,1912,140.21\n1,1913,147.31\n2,1913,153.37\n3,1913,155.25\n4,1913,157.16\n5,1913,164.42\n6,1913,172.63\n7,1913,172.93\n8,1913,175.81\n9,1913,177.41\n10,1913,174.95\n11,1913,177.90\n12,1913,176.00\n1,1914,179.81\n2,1914,179.66\n3,1914,175.26\n4,1914,168.40\n5,1914,172.38\n6,1914,170.94\n7,1914,179.95\n8,1914,207.15\n9,1914,189.09\n10,1914,190.90\n11,1914,186.57\n12,1914,198.22\n1,1915,213.00\n2,1915,196.61\n3,1915,200.65\n4,1915,209.86\n5,1915,201.74\n6,1915,184.42\n7,1915,172.48\n8,1915,162.40\n9,1915,160.67\n10,1915,169.09\n11,1915,182.13\n12,1915,201.63\n1,1916,212.55\n2,1916,199.38\n3,1916,210.59\n4,1916,218.68\n5,1916,206.00\n6,1916,219.70\n7,1916,227.17\n8,1916,252.00\n9,1916,255.26\n10,1916,295.46\n11,1916,302.43\n12,1916,295.98\n1,1917,317.80\n2,1917,335.21\n3,1917,372.29\n4,1917,439.73\n5,1917,415.20\n6,1917,437.93\n7,1917,473.69\n8,1917,487.41\n9,1917,537.73\n10,1917,507.39\n11,1917,575.20\n12,1917,580.99\n1,1918,600.11\n2,1918,620.75\n3,1918,625.31\n4,1918,595.08\n5,1918,546.49\n6,1918,601.74\n7,1918,629.68\n8,1918,625.92\n9,1918,592.79\n10,1918,546.25\n11,1918,610.31\n12,1918,623.23\n1,1919,551.20\n2,1919,583.85\n3,1919,667.84\n4,1919,742.79\n5,1919,765.02\n6,1919,819.82\n7,1919,873.74\n8,1919,717.79\n9,1919,666.80\n10,1919,696.96\n11,1919,713.78\n12,1919,768.99\n1,1920,784.67\n2,1920,731.22\n3,1920,782.31\n4,1920,803.07\n5,1920,801.58\n6,1920,844.75\n7,1920,698.13\n8,1920,674.65\n9,1920,619.88\n10,1920,577.17\n11,1920,499.51\n12,1920,496.26\n1,1921,471.68\n2,1921,475.65\n3,1921,433.31\n4,1921,389.88\n5,1921,420.36\n6,1921,418.26\n7,1921,434.06\n8,1921,393.34\n9,1921,373.94\n10,1921,353.64\n11,1921,355.00\n12,1921,358.10\n1,1922,388.04\n2,1922,466.65\n3,1922,413.40\n4,1922,433.96\n5,1922,422.01\n6,1922,422.48\n7,1922,390.88\n8,1922,360.07\n9,1922,381.94\n10,1922,418.92\n11,1922,443.27\n12,1922,463.06\n1,1923,467.72\n2,1923,473.90\n3,1923,466.26\n4,1923,476.85\n5,1923,447.75\n6,1923,432.28\n7,1923,409.08\n8,1923,448.03\n9,1923,462.18\n10,1923,466.92\n11,1923,476.01\n12,1923,483.53\n1,1924,494.96\n2,1924,498.62\n3,1924,472.94\n4,1924,478.56\n5,1924,474.25\n6,1924,526.44\n7,1924,608.60\n8,1924,627.61\n9,1924,638.31\n10,1924,625.27\n11,1924,679.36\n12,1924,763.08\n1,1925,787.54\n2,1925,784.48\n3,1925,677.98\n4,1925,666.44\n5,1925,737.01\n6,1925,718.67\n7,1925,719.67\n8,1925,693.72\n9,1925,677.78\n10,1925,646.22\n11,1925,662.94\n12,1925,713.45\n1,1926,725.75\n2,1926,686.31\n3,1926,667.13\n4,1926,680.07\n5,1926,687.13\n6,1926,673.17\n7,1926,734.03\n8,1926,690.15\n9,1926,679.13\n10,1926,644.67\n11,1926,618.15\n12,1926,635.44\n1,1927,651.24\n2,1927,643.18\n3,1927,628.06\n4,1927,641.46\n5,1927,714.99\n6,1927,697.64\n7,1927,689.69\n8,1927,719.35\n9,1927,688.97\n10,1927,653.17\n11,1927,661.18\n12,1927,655.86\n1,1928,644.41\n2,1928,667.10\n3,1928,693.82\n4,1928,773.43\n5,1928,716.91\n6,1928,725.99\n7,1928,664.54\n8,1928,635.09\n9,1928,654.76\n10,1928,653.18\n11,1928,676.22\n12,1928,670.05\n1,1929,713.06\n2,1929,715.21\n3,1929,685.39\n4,1929,658.49\n5,1929,597.43\n6,1929,648.82\n7,1929,723.34\n8,1929,703.03\n9,1929,679.58\n10,1929,651.04\n11,1929,626.27\n12,1929,612.13\n1,1930,570.50\n2,1930,559.49\n3,1930,546.88\n4,1930,536.21\n5,1930,532.90\n6,1930,475.93\n7,1930,485.94\n8,1930,518.97\n9,1930,458.43\n10,1930,454.10\n11,1930,437.75\n12,1930,406.56\n1,1931,401.69\n2,1931,405.59\n3,1931,404.27\n4,1931,375.38\n5,1931,350.77\n6,1931,386.74\n7,1931,324.50\n8,1931,292.15\n9,1931,267.57\n10,1931,300.81\n11,1931,288.63\n12,1931,281.03\n1,1932,275.97\n2,1932,274.34\n3,1932,251.36\n4,1932,228.82\n5,1932,220.08\n6,1932,212.82\n7,1932,217.52\n8,1932,239.39\n9,1932,206.33\n10,1932,179.88\n11,1932,172.71\n12,1932,169.16\n1,1933,170.94\n2,1933,164.06\n3,1933,189.08\n4,1933,225.11\n5,1933,269.82\n6,1933,327.40\n7,1933,310.38\n8,1933,292.65\n9,1933,286.90\n10,1933,260.61\n11,1933,256.59\n12,1933,257.23\n1,1934,271.84\n2,1934,272.72\n3,1934,262.10\n4,1934,241.25\n5,1934,293.00\n6,1934,296.71\n7,1934,321.09\n8,1934,350.17\n9,1934,342.58\n10,1934,332.93\n11,1934,361.10\n12,1934,377.14\n1,1935,362.52\n2,1935,369.17\n3,1935,338.93\n4,1935,363.36\n5,1935,335.96\n6,1935,340.60\n7,1935,357.13\n8,1935,325.23\n9,1935,336.98\n10,1935,332.61\n11,1935,340.77\n12,1935,339.32\n1,1936,335.19\n2,1936,333.31\n3,1936,327.47\n4,1936,326.43\n5,1936,320.29\n6,1936,360.69\n7,1936,449.32\n8,1936,438.54\n9,1936,444.54\n10,1936,436.69\n11,1936,471.16\n12,1936,519.45\n1,1937,500.21\n2,1937,490.55\n3,1937,537.09\n4,1937,515.17\n5,1937,518.04\n6,1937,509.46\n7,1937,455.08\n8,1937,404.42\n9,1937,411.53\n10,1937,385.84\n11,1937,368.64\n12,1937,378.58\n1,1938,386.05\n2,1938,395.05\n3,1938,372.19\n4,1938,365.35\n5,1938,332.31\n6,1938,355.19\n7,1938,341.98\n8,1938,322.02\n9,1938,316.50\n10,1938,307.15\n11,1938,311.56\n12,1938,322.45\n1,1939,313.71\n2,1939,312.43\n3,1939,312.67\n4,1939,321.61\n5,1939,344.67\n6,1939,325.72\n7,1939,294.60\n8,1939,300.01\n9,1939,339.70\n10,1939,358.22\n11,1939,372.43\n12,1939,408.97\n1,1940,382.95\n2,1940,397.70\n3,1940,389.50\n4,1940,413.71\n5,1940,350.82\n6,1940,340.01\n7,1940,344.41\n8,1940,327.41\n9,1940,338.82\n10,1940,354.07\n11,1940,374.46\n12,1940,373.37\n1,1941,372.30\n2,1941,367.28\n3,1941,420.01\n4,1941,433.01\n5,1941,468.05\n6,1941,497.88\n7,1941,510.75\n8,1941,554.55\n9,1941,593.94\n10,1941,541.44\n11,1941,536.86\n12,1941,573.24\n1,1942,612.97\n2,1942,603.77\n3,1942,596.11\n4,1942,568.96\n5,1942,554.22\n6,1942,544.42\n7,1942,546.64\n8,1942,538.66\n9,1942,544.62\n10,1942,512.94\n11,1942,530.58\n12,1942,553.30\n1,1943,578.56\n2,1943,593.22\n3,1943,607.03\n4,1943,601.92\n5,1943,613.93\n6,1943,644.93\n7,1943,656.18\n8,1943,668.75\n9,1943,698.58\n10,1943,709.50\n11,1943,717.16\n12,1943,766.23\n1,1944,781.91\n2,1944,784.91\n3,1944,801.20\n4,1944,798.62\n5,1944,768.11\n6,1944,762.66\n7,1944,753.41\n8,1944,718.14\n9,1944,733.95\n10,1944,741.78\n11,1944,766.88\n12,1944,778.99\n1,1945,770.61\n2,1945,772.24\n3,1945,773.11\n4,1945,815.27\n5,1945,857.15\n6,1945,856.69\n7,1945,867.68\n8,1945,836.42\n9,1945,871.73\n10,1945,891.79\n11,1945,937.85\n12,1945,945.37\n1,1946,967.42\n2,1946,984.64\n3,1946,1007.19\n4,1946,1015.22\n5,1946,1016.50\n6,1946,1070.08\n7,1946,1030.19\n8,1946,1041.38\n9,1946,1081.73\n10,1946,1024.26\n11,1946,1054.68\n12,1946,1051.14\n1,1947,1114.78\n2,1947,1283.29\n3,1947,1389.07\n4,1947,1276.23\n5,1947,1374.05\n6,1947,1393.60\n7,1947,1462.32\n8,1947,1560.87\n9,1947,1776.45\n10,1947,1755.17\n11,1947,1991.17\n12,1947,1968.73\n1,1948,1965.84\n2,1948,1679.60\n3,1948,1752.61\n4,1948,1787.07\n5,1948,1854.83\n6,1948,1845.13\n7,1948,1652.28\n8,1948,1556.38\n9,1948,1553.86\n10,1948,1594.50\n11,1948,1658.84\n12,1948,1615.94\n1,1949,1527.08\n2,1949,1453.22\n3,1949,1421.75\n4,1949,1438.41\n5,1949,1397.77\n6,1949,1426.36\n7,1949,1534.07\n8,1949,1523.34\n9,1949,1535.16\n10,1949,1536.48\n11,1949,1596.04\n12,1949,1606.23\n1,1950,1606.67\n2,1950,1646.69\n3,1950,1731.28\n4,1950,1844.10\n5,1950,1958.35\n6,1950,1945.88\n7,1950,2162.24\n8,1950,2202.52\n9,1950,2107.93\n10,1950,2273.97\n11,1950,2454.00\n12,1950,2662.37\n1,1951,2827.42\n2,1951,2785.96\n3,1951,2747.98\n4,1951,2753.49\n5,1951,2607.26\n6,1951,2380.46\n7,1951,2475.97\n8,1951,2482.86\n9,1951,2630.19\n10,1951,2703.72\n11,1951,2846.14\n12,1951,2724.27\n1,1952,2644.79\n2,1952,2585.73\n3,1952,2589.90\n4,1952,2517.50\n5,1952,2652.79\n6,1952,2680.95\n7,1952,2709.10\n8,1952,2745.31\n9,1952,2702.69\n10,1952,2683.81\n11,1952,2733.57\n12,1952,2630.75\n1,1953,2558.69\n2,1953,2542.26\n3,1953,2526.39\n4,1953,2522.52\n5,1953,2420.49\n6,1953,2364.74\n7,1953,2388.31\n8,1953,2391.52\n9,1953,2438.74\n10,1953,2538.98\n11,1953,2710.93\n12,1953,2712.06\n1,1954,2723.22\n2,1954,2827.17\n3,1954,2917.93\n4,1954,3024.46\n5,1954,2837.65\n6,1954,2913.99\n7,1954,3186.46\n8,1954,3089.12\n9,1954,3064.09\n10,1954,3239.81\n11,1954,3256.03\n12,1954,3206.65\n1,1955,3200.55\n2,1955,3030.99\n3,1955,2950.15\n4,1955,2930.81\n5,1955,2961.03\n6,1955,2944.91\n7,1955,2856.48\n8,1955,2831.80\n9,1955,3015.38\n10,1955,2987.46\n11,1955,2920.97\n12,1955,2985.79\n1,1956,3046.62\n2,1956,3075.52\n3,1956,3226.96\n4,1956,3548.74\n5,1956,3409.64\n6,1956,3350.17\n7,1956,3354.34\n8,1956,3319.83\n9,1956,3342.67\n10,1956,3518.25\n11,1956,3593.56\n12,1956,3437.26\n1,1957,3483.86\n2,1957,3403.61\n3,1957,3369.91\n4,1957,3333.20\n5,1957,3299.37\n6,1957,3358.70\n7,1957,3389.84\n8,1957,3395.32\n9,1957,3264.04\n10,1957,3332.33\n11,1957,3341.93\n12,1957,3229.14\n1,1958,3185.03\n2,1958,3277.89\n3,1958,3371.94\n4,1958,3395.23\n5,1958,3452.46\n6,1958,3446.97\n7,1958,3496.78\n8,1958,3442.34\n9,1958,3372.78\n10,1958,3365.32\n11,1958,3411.18\n12,1958,3380.46\n1,1959,3449.31\n2,1959,3538.48\n3,1959,3615.62\n4,1959,3614.85\n5,1959,3586.22\n6,1959,3632.48\n7,1959,3682.03\n8,1959,3624.73\n9,1959,3653.98\n10,1959,3739.86\n11,1959,3720.52\n12,1959,3730.86\n1,1960,3731.15\n2,1960,3692.88\n3,1960,3796.11\n4,1960,3793.28\n5,1960,3816.34\n6,1960,3792.21\n7,1960,3815.52\n8,1960,3805.37\n9,1960,3796.59\n10,1960,3835.67\n11,1960,3740.33\n12,1960,3890.80\n1,1961,4119.44\n2,1961,4404.16\n3,1961,4212.78\n4,1961,4416.29\n5,1961,4288.85\n6,1961,4216.91\n7,1961,4193.18\n8,1961,4139.98\n9,1961,4037.66\n10,1961,4053.50\n11,1961,4054.61\n12,1961,4058.65\n1,1962,3990.63\n2,1962,3923.71\n3,1962,4021.74\n4,1962,4010.14\n5,1962,3977.15\n6,1962,3939.82\n7,1962,3863.17\n8,1962,3853.64\n9,1962,3832.38\n10,1962,3948.05\n11,1962,4013.60\n12,1962,4085.81\n1,1963,4201.36\n2,1963,4217.60\n3,1963,4161.50\n4,1963,4117.40\n5,1963,4131.18\n6,1963,4198.99\n7,1963,4115.49\n8,1963,4128.92\n9,1963,4379.62\n10,1963,4467.77\n11,1963,4311.89\n12,1963,4368.49\n1,1964,4282.70\n2,1964,4202.42\n3,1964,4126.05\n4,1964,4086.36\n5,1964,4075.31\n6,1964,4087.46\n7,1964,4078.72\n8,1964,4230.75\n9,1964,4345.47\n10,1964,4403.44\n11,1964,4550.53\n12,1964,4480.86\n1,1965,4616.01\n2,1965,4586.00\n3,1965,4618.67\n4,1965,4618.67\n5,1965,4575.16\n6,1965,4638.01\n7,1965,4633.95\n8,1965,4648.27\n9,1965,4663.81\n10,1965,4737.39\n11,1965,4842.04\n12,1965,4933.60\n1,1966,5090.42\n2,1966,5040.40\n3,1966,4942.73\n4,1966,5076.51\n5,1966,5113.88\n6,1966,5378.04\n7,1966,5480.01\n8,1966,5416.81\n9,1966,5260.59\n10,1966,5111.50\n11,1966,5230.70\n12,1966,5153.36\n1,1967,5157.42\n2,1967,5260.86\n3,1967,5330.74\n4,1967,5372.05\n5,1967,5673.88\n6,1967,5382.53\n7,1967,5308.11\n8,1967,5202.05\n9,1967,5286.60\n10,1967,5373.29\n11,1967,5356.22\n12,1967,5437.35\n1,1968,5444.01\n2,1968,5441.24\n3,1968,5418.05\n4,1968,5359.98\n5,1968,5319.69\n6,1968,5216.73\n7,1968,5063.07\n8,1968,5018.95\n9,1968,4989.29\n10,1968,5328.22\n11,1968,5492.53\n12,1968,5539.86\n1,1969,5539.23\n2,1969,5580.44\n3,1969,5550.52\n4,1969,5674.60\n5,1969,5770.02\n6,1969,5696.05\n7,1969,5623.21\n8,1969,5696.27\n9,1969,6000.97\n10,1969,6260.22\n11,1969,6191.07\n12,1969,6150.97\n1,1970,6287.63\n2,1970,6382.59\n3,1970,6393.51\n4,1970,6373.68\n5,1970,6184.36\n6,1970,6623.10\n7,1970,6555.18\n8,1970,6889.34\n9,1970,6975.89\n10,1970,6951.25\n11,1970,6855.69\n12,1970,6917.59\n1,1971,7269.18\n2,1971,7198.86\n3,1971,7273.99\n4,1971,7319.66\n5,1971,7589.51\n6,1971,7512.59\n7,1971,7563.07\n8,1971,7528.81\n9,1971,7528.21\n10,1971,7876.80\n11,1971,8083.54\n12,1971,8375.63\n1,1972,8699.57\n2,1972,8675.53\n3,1972,8790.33\n4,1972,9047.56\n5,1972,9259.11\n6,1972,9504.32\n7,1972,9418.38\n8,1972,9980.92\n9,1972,10736.39\n10,1972,10627.60\n11,1972,11045.91\n12,1972,11929.39\n1,1973,12336.87\n2,1973,12871.76\n3,1973,12565.25\n4,1973,13323.72\n5,1973,15753.59\n6,1973,15486.75\n7,1973,19478.03\n8,1973,19957.03\n9,1973,18954.56\n10,1973,17943.66\n11,1973,18883.04\n12,1973,20871.17\n1,1974,23200.07\n2,1974,23076.86\n3,1974,20421.01\n4,1974,20646.99\n5,1974,19250.25\n6,1974,21640.45\n7,1974,26797.69\n8,1974,25483.29\n9,1974,28566.46\n10,1974,31137.57\n11,1974,31743.38\n12,1974,29118.18\n1,1975,24565.56\n2,1975,22007.67\n3,1975,23867.19\n4,1975,22766.14\n5,1975,22424.17\n6,1975,22793.79\n7,1975,24578.78\n8,1975,26939.53\n9,1975,27246.65\n10,1975,25055.98\n11,1975,24750.67\n12,1975,24103.38\n1,1976,22950.05\n2,1976,24262.65\n3,1976,24312.53\n4,1976,25248.30\n5,1976,25705.06\n6,1976,25275.95\n7,1976,23038.40\n8,1976,22390.51\n9,1976,20177.60\n10,1976,19928.79\n11,1976,20213.06\n12,1976,21229.37\n1,1977,21172.87\n2,1977,21120.58\n3,1977,21889.27\n4,1977,23034.19\n5,1977,22243.26\n6,1977,21704.76\n7,1977,19856.67\n8,1977,20051.39\n9,1977,20782.82\n10,1977,21380.82\n11,1977,22289.54\n12,1977,23430.85\n1,1978,24186.32\n2,1978,24567.36\n3,1978,27103.61\n4,1978,27685.98\n5,1978,29797.32\n6,1978,27014.66\n7,1978,27750.89\n8,1978,28508.16\n9,1978,30111.65\n10,1978,30413.95\n11,1978,31201.27\n12,1978,30836.46\n1,1979,33060.79\n2,1979,34996.03\n3,1979,34374.59\n4,1979,36431.23\n5,1979,34714.76\n6,1979,35179.34\n7,1979,33711.08\n8,1979,37593.58\n9,1979,39209.09\n10,1979,37968.01\n11,1979,40599.82\n12,1979,41262.73\n1,1980,43748.49\n2,1980,43344.02\n3,1980,37285.87\n4,1980,38667.58\n5,1980,41018.72\n6,1980,43327.79\n7,1980,45385.03\n8,1980,46115.26\n9,1980,48692.38\n10,1980,50220.14\n11,1980,49522.97\n12,1980,45836.39\n1,1981,42923.91\n2,1981,41678.02\n3,1981,41607.71\n4,1981,41039.76\n5,1981,41262.13\n6,1981,38640.54\n7,1981,40397.28\n8,1981,39070.86\n9,1981,39020.97\n10,1981,39138.77\n11,1981,37374.82\n12,1981,35289.92\n1,1982,38111.05\n2,1982,37254.61\n3,1982,38644.14\n4,1982,40037.28\n5,1982,40128.03\n6,1982,38920.60\n7,1982,39766.22\n8,1982,39676.67\n9,1982,38516.73\n10,1982,38293.15\n11,1982,39821.51\n12,1982,39368.96\n1,1983,39643.62\n2,1983,39190.46\n3,1983,41831.28\n4,1983,42241.17\n5,1983,42463.54\n6,1983,43007.45\n7,1983,44521.99\n8,1983,45302.70\n9,1983,44071.83\n10,1983,43533.93\n11,1983,43571.80\n12,1983,45768.48\n1,1984,46248.68\n2,1984,46469.85\n3,1984,48751.27\n4,1984,48203.16\n5,1984,49602.90\n6,1984,48482.02\n7,1984,45225.77\n8,1984,47167.02\n9,1984,46796.80\n10,1984,47010.76\n11,1984,47189.26\n12,1984,46249.28\n1,1985,46832.86\n2,1985,46218.03\n3,1985,48215.78\n4,1985,46656.16\n5,1985,46651.36\n6,1985,45291.88\n7,1985,44273.77\n8,1985,44936.68\n9,1985,47492.16\n10,1985,50931.13\n11,1985,51817.61\n12,1985,50880.04\n1,1986,46263.71\n2,1986,44651.81\n3,1986,44552.64\n4,1986,47062.44\n5,1986,45295.48\n6,1986,47008.35\n7,1986,47462.11\n8,1986,51536.94\n9,1986,50234.56\n10,1986,50763.45\n11,1986,52300.22\n12,1986,51920.38\n1,1987,54890.56\n2,1987,51594.64\n3,1987,55762.62\n4,1987,58563.91\n5,1987,61267.84\n6,1987,63457.31\n7,1987,66289.26\n8,1987,64946.61\n9,1987,65425.61\n10,1987,66113.76\n11,1987,66099.93\n12,1987,64263.86\n1,1988,65971.92\n2,1988,65242.91\n3,1988,68532.21\n4,1988,70656.17\n5,1988,73151.55\n6,1988,71108.13\n7,1988,71528.83\n8,1988,71045.62\n9,1988,69105.57\n10,1988,72450.78\n11,1988,76613.95\n12,1988,82215.94\n1,1989,82554.31\n2,1989,86105.06\n3,1989,91914.39\n4,1989,94833.48\n5,1989,93621.25\n6,1989,96894.93\n7,1989,94172.37\n8,1989,97444.25\n9,1989,103248.17\n10,1989,102521.56\n11,1989,104175.53\n12,1989,113688.87\n1,1990,113191.23\n2,1990,112821.61\n3,1990,113647.40\n4,1990,112455.60\n5,1990,111625.01\n6,1990,109897.11\n7,1990,118967.51\n8,1990,138703.38\n9,1990,170521.88\n10,1990,160202.60\n11,1990,149686.78\n12,1990,146746.64\n1,1991,132970.54\n2,1991,134819.49\n3,1991,139894.33\n4,1991,143063.01\n5,1991,142989.75\n6,1991,139603.92\n7,1991,146731.74\n8,1991,148993.93\n9,1991,150169.86\n10,1991,154477.21\n11,1991,148237.92\n12,1991,137744.76\n1,1992,141531.41\n2,1992,139979.43\n3,1992,141543.80\n4,1992,145785.03\n5,1992,149701.93\n6,1992,148876.68\n7,1992,146802.12\n8,1992,146955.56\n9,1992,148640.61\n10,1992,145372.39\n11,1992,143513.47\n12,1992,143836.57\n1,1993,145580.58\n2,1993,147271.92\n3,1993,150341.27\n4,1993,148725.89\n5,1993,144587.35\n6,1993,140062.36\n7,1993,138851.34\n8,1993,139994.40\n9,1993,140350.97\n10,1993,135308.16\n11,1993,128521.83\n12,1993,126104.11\n1,1994,136371.65\n2,1994,133406.58\n3,1994,131818.36\n4,1994,135270.66\n5,1994,137283.31\n6,1994,140660.38\n7,1994,143081.96\n8,1994,133438.38\n9,1994,132182.69\n10,1994,132778.28\n11,1994,128430.49\n12,1994,132778.53\n1,1995,129479.05\n2,1995,130524.87\n3,1995,132302.46\n4,1995,136353.73\n5,1995,135202.38\n6,1995,132790.18\n7,1995,136258.00\n8,1995,139146.43\n9,1995,139734.10\n10,1995,141140.51\n11,1995,144950.79\n12,1995,159775.22\n1,1996,159516.97\n2,1996,165911.44\n3,1996,176696.32\n4,1996,186897.28\n5,1996,185421.44\n6,1996,192615.31\n7,1996,183499.96\n8,1996,189409.36\n9,1996,196126.87\n10,1996,195641.39\n11,1996,211922.25\n12,1996,213966.08\n1,1997,210820.77\n2,1997,196287.22\n3,1997,199598.11\n4,1997,204215.59\n5,1997,205676.22\n6,1997,194548.99\n7,1997,202519.54\n8,1997,207641.39\n9,1997,212893.29\n10,1997,218750.51\n11,1997,197182.85\n12,1997,183858.22\n1,1998,180894.96\n2,1998,168958.72\n3,1998,168081.18\n4,1998,163498.04\n5,1998,155784.54\n6,1998,150261.10\n7,1998,138449.33\n8,1998,130278.45\n9,1998,143593.77\n10,1998,136857.81\n11,1998,120205.70\n12,1998,118136.79\n1,1999,118652.46\n2,1999,113186.84\n3,1999,132307.10\n4,1999,137774.94\n5,1999,130256.71\n6,1999,138634.37\n7,1999,143607.70\n8,1999,153715.02\n9,1999,161868.16\n10,1999,153520.42\n11,1999,159732.48\n12,1999,166479.20\n1,2000,178516.65\n2,2000,189669.54\n3,2000,187468.10\n4,2000,185760.42\n5,2000,206560.84\n6,2000,221281.73\n7,2000,204287.77\n8,2000,235765.86\n9,2000,232538.16\n10,2000,233062.06\n11,2000,254539.59\n12,2000,249291.70\n1,2001,236060.60\n2,2001,232765.52\n3,2001,223642.71\n4,2001,235652.70\n5,2001,228940.24\n6,2001,212378.34\n7,2001,212886.55\n8,2001,214921.92\n9,2001,191374.90\n10,2001,181724.77\n11,2001,171964.65\n12,2001,169685.09\n1,2002,164391.13\n2,2002,171571.66\n3,2002,194702.55\n4,2002,196858.06\n5,2002,188292.39\n6,2002,194727.13\n7,2002,195853.00\n8,2002,207698.06\n9,2002,217182.73\n10,2002,206934.90\n11,2002,206485.72\n12,2002,224100.87\n1,2003,244250.23\n2,2003,273859.79\n3,2003,234393.52\n4,2003,220008.43\n5,2003,241102.14\n6,2003,241631.27\n7,2003,243352.07\n8,2003,253296.47\n9,2003,242951.98\n10,2003,248274.68\n11,2003,254627.98\n12,2003,270529.43\n1,2004,271589.43\n2,2004,291742.44\n3,2004,297605.31\n4,2004,305813.22\n5,2004,319962.83\n6,2004,304924.63\n7,2004,328564.39\n8,2004,315806.22\n9,2004,355641.80\n10,2004,370394.88\n11,2004,352477.63\n12,2004,317270.16\n1,2005,338722.55\n2,2005,359812.11\n3,2005,387011.28\n4,2005,351983.41\n5,2005,349403.95\n6,2005,369652.60\n7,2005,389966.13\n8,2005,449020.55\n9,2005,449101.13\n10,2005,402730.99\n11,2005,387234.75\n12,2005,398342.73\n1,2006,415607.32\n2,2006,373612.73\n3,2006,392780.60\n4,2006,417657.11\n5,2006,414442.70\n6,2006,419260.35\n7,2006,427667.43\n8,2006,396629.50\n9,2006,354164.64\n10,2006,345068.78\n11,2006,364144.49\n12,2006,338225.10\n1,2007,330480.16\n2,2007,344680.94\n3,2007,355828.94\n4,2007,354850.28\n5,2007,349338.07\n6,2007,360591.16\n7,2007,380589.46\n8,2007,364654.79\n9,2007,401943.72\n10,2007,440558.18\n11,2007,424269.57\n12,2007,448729.76\n1,2008,448615.40\n2,2008,499122.66\n3,2008,493262.08\n4,2008,532548.27\n5,2008,581031.21\n6,2008,634582.16\n7,2008,556996.10\n8,2008,517436.88\n9,2008,453057.51\n10,2008,325301.81\n11,2008,277024.44\n12,2008,240125.82\n1,2009,218661.27\n2,2009,205321.98\n3,2009,214572.68\n4,2009,212601.50\n5,2009,254409.94\n6,2009,255862.86\n7,2009,256996.56\n8,2009,250920.43\n9,2009,251353.64\n10,2009,266115.02\n11,2009,270171.52\n12,2009,272506.67\n1,2010,250993.94\n2,2010,264945.23\n3,2010,270072.95\n4,2010,277567.46\n5,2010,240958.51\n6,2010,241963.74\n7,2010,255586.66\n8,2010,241466.05\n9,2010,261962.14\n10,2010,268659.94\n11,2010,271568.07\n12,2010,297102.59\n1,2011,306169.43\n2,2011,317637.13\n3,2011,331458.91\n4,2011,346081.95\n5,2011,322242.34\n6,2011,305146.16\n7,2011,312576.11\n8,2011,306810.29\n9,2011,269475.20\n10,2011,295738.79\n11,2011,299928.09\n12,2011,293607.24\n1,2012,300161.47\n2,2012,318361.76\n3,2012,310879.22\n4,2012,309283.55\n5,2012,269144.71\n6,2012,272378.12\n7,2012,289738.21\n8,2012,308180.70\n9,2012,303797.56\n10,2012,291445.67\n11,2012,295750.68\n12,2012,293832.87\n1,2013,306636.72\n2,2013,293189.79\n3,2013,295446.57\n4,2013,281471.36\n5,2013,277279.93\n6,2013,277929.02\n7,2013,291584.50\n8,2013,301428.39\n9,2013,291204.66\n10,2013,287003.02\n11,2013,284766.08\n12,2013,290254.47\n1,2014,285504.71\n2,2014,298375.88\n3,2014,298792.37\n4,2014,301008.89\n5,2014,300480.60\n6,2014,306841.66\n7,2014,290588.03\n8,2014,285823.25\n9,2014,268606.20\n10,2014,252533.48\n11,2014,224955.67\n12,2014,194293.51\n1,2015,179728.10\n2,2015,191347.97\n3,2015,178325.95\n4,2015,198044.99\n5,2015,194109.60\n6,2015,193892.03\n7,2015,166549.22\n8,2015,167048.06\n9,2015,156479.35\n10,2015,156838.76\n11,2015,142776.40\n12,2015,130455.76\n1,2016,123710.05\n2,2016,121222.49\n3,2016,127199.50\n4,2016,140097.71\n5,2016,143204.92\n6,2016,143319.71\n7,2016,129607.13\n8,2016,131899.98\n9,2016,137366.73\n10,2016,135310.09\n11,2016,138740.03\n12,2016,145281.99\n1,2017,143229.56\n2,2017,143561.91\n3,2017,137942.50\n4,2017,135037.23\n5,2017,132962.56\n6,2017,130407.07\n7,2017,136385.89\n8,2017,135326.92\n9,2017,139821.85\n10,2017,145159.99\n11,2017,147166.15\n12,2017,153660.03\n1,2018,158914.03\n2,2018,153606.54\n3,2018,157019.06\n4,2018,164928.31\n5,2018,167315.51\n6,2018,169583.11\n7,2018,163595.28\n8,2018,165358.03\n9,2018,171854.31\n10,2018,161812.69\n11,2018,143558.31\n12,2018,132430.06\n1,2019,144334.21\n2,2019,149837.63\n3,2019,152248.87\n4,2019,156586.93\n5,2019,143725.39\n6,2019,150093.66\n7,2019,149775.72\n8,2019,141353.81\n9,2019,143826.36\n10,2019,145616.76\n11,2019,145598.12\n12,2019,155772.57\n1,2020,138910.12\n2,2020,127256.60\n3,2020,89810.86\n4,2020,81125.11\n5,2020,94407.36\n6,2020,99213.62\n7,2020,102980.13\n8,2020,107702.24\n9,2020,103782.47\n10,2020,100072.45\n11,2020,112122.04\n12,2020,118816.66\n1,2021,124690.90\n2,2021,137886.00\n3,2021,134915.83\n4,2021,146020.03\n5,2021,149702.40\n6,2021,156128.97\n7,2021,158587.09\n8,2021,154936.57\n9,2021,164284.63\n10,2021,173808.19\n11,2021,154996.07\n12,2021,166763.18\n1,2022,186163.69\n2,2022,202497.25\n3,2022,222004.73\n4,2022,233370.37\n5,2022,245201.79\n6,2022,226460.60\n7,2022,226364.43\n8,2022,220301.48\n9,2022,203115.08\n10,2022,216733.90\n11,2022,213037.71\n12,2022,210097.58\n1,2023,209914.28\n2,2023,201883.02\n3,2023,199715.19\n4,2023,198200.65\n5,2023,186095.77\n6,2023,194266.46\n7,2023,215122.00\n8,2023,216405.75\n9,2023,225312.67\n10,2023,215884.08\n11,2023,208015.09\n12,2023,201131.76\n1,2024,210115.61\n2,2024,211947.48\n3,2024,221971.68\n4,2024,224544.59\n5,2024,220274.43\n6,2024,223417.70\n7,2024,215546.91\n8,2024,211832.69\n9,2024,211660.80\n10,2024,212623.61\n11,2024,212753.43\n12,2024,219727.52\n1,2025,227014.12\n2,2025,223962.81\n3,2025,230466.91\n4,2025,211027.94\n5,2025,214383.96\n6,2025,223986.25\n7,2025,232084.22\n8,2025,231610.62\n9,2025,233111.34\n10,2025,236258.21\n11,2025,236081.51\n12,2025,235367.52\n`,
        'cash': `1,1871,100.00\n2,1871,100.53\n3,1871,101.06\n4,1871,101.60\n5,1871,102.13\n6,1871,102.67\n7,1871,103.22\n8,1871,103.76\n9,1871,104.31\n10,1871,104.86\n11,1871,105.42\n12,1871,105.98\n1,1872,106.67\n2,1872,107.36\n3,1872,108.06\n4,1872,108.76\n5,1872,109.47\n6,1872,110.18\n7,1872,110.90\n8,1872,111.62\n9,1872,112.35\n10,1872,113.08\n11,1872,113.82\n12,1872,114.56\n1,1873,115.35\n2,1873,116.16\n3,1873,116.96\n4,1873,117.78\n5,1873,118.60\n6,1873,119.42\n7,1873,120.25\n8,1873,121.09\n9,1873,121.93\n10,1873,122.78\n11,1873,123.64\n12,1873,124.50\n1,1874,125.21\n2,1874,125.92\n3,1874,126.64\n4,1874,127.37\n5,1874,128.10\n6,1874,128.83\n7,1874,129.57\n8,1874,130.31\n9,1874,131.05\n10,1874,131.80\n11,1874,132.55\n12,1874,133.31\n1,1875,133.86\n2,1875,134.42\n3,1875,134.97\n4,1875,135.53\n5,1875,136.09\n6,1875,136.65\n7,1875,137.22\n8,1875,137.78\n9,1875,138.35\n10,1875,138.93\n11,1875,139.50\n12,1875,140.08\n1,1876,140.70\n2,1876,141.32\n3,1876,141.95\n4,1876,142.58\n5,1876,143.21\n6,1876,143.85\n7,1876,144.49\n8,1876,145.13\n9,1876,145.78\n10,1876,146.42\n11,1876,147.07\n12,1876,147.73\n1,1877,148.35\n2,1877,148.97\n3,1877,149.59\n4,1877,150.22\n5,1877,150.85\n6,1877,151.48\n7,1877,152.12\n8,1877,152.75\n9,1877,153.39\n10,1877,154.04\n11,1877,154.68\n12,1877,155.33\n1,1878,155.97\n2,1878,156.60\n3,1878,157.24\n4,1878,157.88\n5,1878,158.53\n6,1878,159.18\n7,1878,159.83\n8,1878,160.48\n9,1878,161.13\n10,1878,161.79\n11,1878,162.45\n12,1878,163.12\n1,1879,163.69\n2,1879,164.27\n3,1879,164.86\n4,1879,165.44\n5,1879,166.03\n6,1879,166.61\n7,1879,167.20\n8,1879,167.80\n9,1879,168.39\n10,1879,168.99\n11,1879,169.58\n12,1879,170.19\n1,1880,170.91\n2,1880,171.63\n3,1880,172.36\n4,1880,173.10\n5,1880,173.83\n6,1880,174.57\n7,1880,175.31\n8,1880,176.06\n9,1880,176.81\n10,1880,177.56\n11,1880,178.31\n12,1880,179.07\n1,1881,179.79\n2,1881,180.50\n3,1881,181.22\n4,1881,181.95\n5,1881,182.67\n6,1881,183.40\n7,1881,184.13\n8,1881,184.87\n9,1881,185.61\n10,1881,186.35\n11,1881,187.09\n12,1881,187.84\n1,1882,188.66\n2,1882,189.49\n3,1882,190.32\n4,1882,191.15\n5,1882,191.99\n6,1882,192.83\n7,1882,193.68\n8,1882,194.53\n9,1882,195.38\n10,1882,196.24\n11,1882,197.10\n12,1882,197.96\n1,1883,198.84\n2,1883,199.73\n3,1883,200.62\n4,1883,201.51\n5,1883,202.41\n6,1883,203.32\n7,1883,204.22\n8,1883,205.13\n9,1883,206.05\n10,1883,206.97\n11,1883,207.89\n12,1883,208.82\n1,1884,209.80\n2,1884,210.79\n3,1884,211.78\n4,1884,212.78\n5,1884,213.78\n6,1884,214.78\n7,1884,215.80\n8,1884,216.81\n9,1884,217.83\n10,1884,218.86\n11,1884,219.89\n12,1884,220.92\n1,1885,221.70\n2,1885,222.48\n3,1885,223.26\n4,1885,224.05\n5,1885,224.84\n6,1885,225.63\n7,1885,226.42\n8,1885,227.22\n9,1885,228.02\n10,1885,228.82\n11,1885,229.62\n12,1885,230.43\n1,1886,231.25\n2,1886,232.07\n3,1886,232.89\n4,1886,233.72\n5,1886,234.55\n6,1886,235.38\n7,1886,236.22\n8,1886,237.06\n9,1886,237.90\n10,1886,238.74\n11,1886,239.59\n12,1886,240.44\n1,1887,241.66\n2,1887,242.89\n3,1887,244.13\n4,1887,245.37\n5,1887,246.62\n6,1887,247.88\n7,1887,249.14\n8,1887,250.41\n9,1887,251.68\n10,1887,252.97\n11,1887,254.25\n12,1887,255.55\n1,1888,256.62\n2,1888,257.69\n3,1888,258.77\n4,1888,259.85\n5,1888,260.94\n6,1888,262.03\n7,1888,263.13\n8,1888,264.23\n9,1888,265.33\n10,1888,266.44\n11,1888,267.56\n12,1888,268.68\n1,1889,269.72\n2,1889,270.78\n3,1889,271.83\n4,1889,272.89\n5,1889,273.96\n6,1889,275.03\n7,1889,276.10\n8,1889,277.17\n9,1889,278.26\n10,1889,279.34\n11,1889,280.43\n12,1889,281.52\n1,1890,282.79\n2,1890,284.07\n3,1890,285.35\n4,1890,286.64\n5,1890,287.93\n6,1890,289.23\n7,1890,290.53\n8,1890,291.84\n9,1890,293.15\n10,1890,294.48\n11,1890,295.80\n12,1890,297.14\n1,1891,298.62\n2,1891,300.10\n3,1891,301.59\n4,1891,303.09\n5,1891,304.60\n6,1891,306.12\n7,1891,307.64\n8,1891,309.17\n9,1891,310.71\n10,1891,312.26\n11,1891,313.81\n12,1891,315.37\n1,1892,316.40\n2,1892,317.44\n3,1892,318.48\n4,1892,319.52\n5,1892,320.57\n6,1892,321.62\n7,1892,322.67\n8,1892,323.73\n9,1892,324.79\n10,1892,325.85\n11,1892,326.92\n12,1892,327.99\n1,1893,330.32\n2,1893,332.66\n3,1893,335.03\n4,1893,337.40\n5,1893,339.80\n6,1893,342.21\n7,1893,344.64\n8,1893,347.09\n9,1893,349.55\n10,1893,352.04\n11,1893,354.54\n12,1893,357.05\n1,1894,358.04\n2,1894,359.03\n3,1894,360.02\n4,1894,361.02\n5,1894,362.02\n6,1894,363.02\n7,1894,364.02\n8,1894,365.03\n9,1894,366.04\n10,1894,367.05\n11,1894,368.07\n12,1894,369.09\n1,1895,370.04\n2,1895,370.99\n3,1895,371.95\n4,1895,372.90\n5,1895,373.87\n6,1895,374.83\n7,1895,375.79\n8,1895,376.76\n9,1895,377.73\n10,1895,378.70\n11,1895,379.68\n12,1895,380.66\n1,1896,382.48\n2,1896,384.32\n3,1896,386.16\n4,1896,388.02\n5,1896,389.88\n6,1896,391.75\n7,1896,393.63\n8,1896,395.52\n9,1896,397.42\n10,1896,399.33\n11,1896,401.24\n12,1896,403.17\n1,1897,404.33\n2,1897,405.49\n3,1897,406.65\n4,1897,407.81\n5,1897,408.98\n6,1897,410.15\n7,1897,411.33\n8,1897,412.51\n9,1897,413.69\n10,1897,414.88\n11,1897,416.07\n12,1897,417.26\n1,1898,418.49\n2,1898,419.73\n3,1898,420.97\n4,1898,422.22\n5,1898,423.47\n6,1898,424.72\n7,1898,425.98\n8,1898,427.24\n9,1898,428.50\n10,1898,429.77\n11,1898,431.04\n12,1898,432.32\n1,1899,433.53\n2,1899,434.74\n3,1899,435.96\n4,1899,437.18\n5,1899,438.40\n6,1899,439.63\n7,1899,440.86\n8,1899,442.10\n9,1899,443.33\n10,1899,444.57\n11,1899,445.82\n12,1899,447.07\n1,1900,448.80\n2,1900,450.53\n3,1900,452.27\n4,1900,454.02\n5,1900,455.78\n6,1900,457.54\n7,1900,459.31\n8,1900,461.09\n9,1900,462.87\n10,1900,464.66\n11,1900,466.46\n12,1900,468.26\n1,1901,469.94\n2,1901,471.62\n3,1901,473.31\n4,1901,475.01\n5,1901,476.71\n6,1901,478.42\n7,1901,480.13\n8,1901,481.85\n9,1901,483.58\n10,1901,485.31\n11,1901,487.05\n12,1901,488.80\n1,1902,490.72\n2,1902,492.65\n3,1902,494.59\n4,1902,496.53\n5,1902,498.48\n6,1902,500.45\n7,1902,502.41\n8,1902,504.39\n9,1902,506.37\n10,1902,508.37\n11,1902,510.36\n12,1902,512.37\n1,1903,514.72\n2,1903,517.08\n3,1903,519.45\n4,1903,521.83\n5,1903,524.22\n6,1903,526.62\n7,1903,529.04\n8,1903,531.46\n9,1903,533.90\n10,1903,536.35\n11,1903,538.80\n12,1903,541.27\n1,1904,543.23\n2,1904,545.20\n3,1904,547.17\n4,1904,549.15\n5,1904,551.13\n6,1904,553.13\n7,1904,555.13\n8,1904,557.13\n9,1904,559.15\n10,1904,561.17\n11,1904,563.20\n12,1904,565.24\n1,1905,567.20\n2,1905,569.17\n3,1905,571.15\n4,1905,573.14\n5,1905,575.13\n6,1905,577.13\n7,1905,579.13\n8,1905,581.14\n9,1905,583.16\n10,1905,585.19\n11,1905,587.22\n12,1905,589.26\n1,1906,591.95\n2,1906,594.65\n3,1906,597.36\n4,1906,600.08\n5,1906,602.82\n6,1906,605.57\n7,1906,608.33\n8,1906,611.10\n9,1906,613.88\n10,1906,616.68\n11,1906,619.49\n12,1906,622.32\n1,1907,625.55\n2,1907,628.80\n3,1907,632.06\n4,1907,635.34\n5,1907,638.64\n6,1907,641.96\n7,1907,645.29\n8,1907,648.64\n9,1907,652.01\n10,1907,655.39\n11,1907,658.79\n12,1907,662.21\n1,1908,665.15\n2,1908,668.10\n3,1908,671.06\n4,1908,674.04\n5,1908,677.02\n6,1908,680.03\n7,1908,683.04\n8,1908,686.07\n9,1908,689.11\n10,1908,692.17\n11,1908,695.23\n12,1908,698.32\n1,1909,700.44\n2,1909,702.57\n3,1909,704.71\n4,1909,706.85\n5,1909,709.00\n6,1909,711.16\n7,1909,713.32\n8,1909,715.49\n9,1909,717.67\n10,1909,719.85\n11,1909,722.04\n12,1909,724.24\n1,1910,727.41\n2,1910,730.60\n3,1910,733.80\n4,1910,737.02\n5,1910,740.25\n6,1910,743.49\n7,1910,746.75\n8,1910,750.03\n9,1910,753.31\n10,1910,756.61\n11,1910,759.93\n12,1910,763.26\n1,1911,765.81\n2,1911,768.36\n3,1911,770.92\n4,1911,773.49\n5,1911,776.07\n6,1911,778.66\n7,1911,781.25\n8,1911,783.86\n9,1911,786.47\n10,1911,789.09\n11,1911,791.72\n12,1911,794.36\n1,1912,797.24\n2,1912,800.13\n3,1912,803.03\n4,1912,805.94\n5,1912,808.86\n6,1912,811.79\n7,1912,814.74\n8,1912,817.69\n9,1912,820.65\n10,1912,823.63\n11,1912,826.61\n12,1912,829.61\n1,1913,833.52\n2,1913,837.44\n3,1913,841.38\n4,1913,845.35\n5,1913,849.33\n6,1913,853.32\n7,1913,857.34\n8,1913,861.38\n9,1913,865.43\n10,1913,869.51\n11,1913,873.60\n12,1913,877.72\n1,1914,881.11\n2,1914,884.52\n3,1914,887.94\n4,1914,891.37\n5,1914,894.82\n6,1914,898.28\n7,1914,901.75\n8,1914,905.24\n9,1914,908.74\n10,1914,912.25\n11,1914,915.78\n12,1914,919.32\n1,1915,922.12\n2,1915,924.92\n3,1915,927.73\n4,1915,930.56\n5,1915,933.39\n6,1915,936.23\n7,1915,939.07\n8,1915,941.93\n9,1915,944.80\n10,1915,947.67\n11,1915,950.55\n12,1915,953.44\n1,1916,956.33\n2,1916,959.24\n3,1916,962.15\n4,1916,965.06\n5,1916,967.99\n6,1916,970.93\n7,1916,973.87\n8,1916,976.83\n9,1916,979.79\n10,1916,982.76\n11,1916,985.74\n12,1916,988.73\n1,1917,992.23\n2,1917,995.75\n3,1917,999.28\n4,1917,1002.81\n5,1917,1006.37\n6,1917,1009.93\n7,1917,1013.51\n8,1917,1017.10\n9,1917,1020.70\n10,1917,1024.31\n11,1917,1027.94\n12,1917,1031.58\n1,1918,1036.72\n2,1918,1041.89\n3,1918,1047.08\n4,1918,1052.30\n5,1918,1057.54\n6,1918,1062.81\n7,1918,1068.11\n8,1918,1073.43\n9,1918,1078.78\n10,1918,1084.16\n11,1918,1089.56\n12,1918,1094.99\n1,1919,1100.06\n2,1919,1105.16\n3,1919,1110.28\n4,1919,1115.43\n5,1919,1120.59\n6,1919,1125.79\n7,1919,1131.00\n8,1919,1136.24\n9,1919,1141.51\n10,1919,1146.80\n11,1919,1152.11\n12,1919,1157.45\n1,1920,1164.49\n2,1920,1171.57\n3,1920,1178.70\n4,1920,1185.87\n5,1920,1193.08\n6,1920,1200.34\n7,1920,1207.64\n8,1920,1214.99\n9,1920,1222.38\n10,1920,1229.82\n11,1920,1237.30\n12,1920,1244.83\n1,1921,1252.54\n2,1921,1260.31\n3,1921,1268.12\n4,1921,1275.99\n5,1921,1283.90\n6,1921,1291.86\n7,1921,1299.87\n8,1921,1307.93\n9,1921,1316.04\n10,1921,1324.19\n11,1921,1332.40\n12,1921,1340.67\n1,1922,1345.78\n2,1922,1350.92\n3,1922,1356.07\n4,1922,1361.25\n5,1922,1366.45\n6,1922,1371.66\n7,1922,1376.90\n8,1922,1382.15\n9,1922,1387.43\n10,1922,1392.72\n11,1922,1398.04\n12,1922,1403.37\n1,1923,1409.17\n2,1923,1415.00\n3,1923,1420.85\n4,1923,1426.72\n5,1923,1432.62\n6,1923,1438.54\n7,1923,1444.48\n8,1923,1450.46\n9,1923,1456.45\n10,1923,1462.47\n11,1923,1468.52\n12,1923,1474.59\n1,1924,1479.92\n2,1924,1485.27\n3,1924,1490.64\n4,1924,1496.03\n5,1924,1501.44\n6,1924,1506.87\n7,1924,1512.32\n8,1924,1517.79\n9,1924,1523.28\n10,1924,1528.79\n11,1924,1534.32\n12,1924,1539.87\n1,1925,1544.84\n2,1925,1549.82\n3,1925,1554.82\n4,1925,1559.83\n5,1925,1564.86\n6,1925,1569.91\n7,1925,1574.97\n8,1925,1580.05\n9,1925,1585.15\n10,1925,1590.26\n11,1925,1595.39\n12,1925,1600.53\n1,1926,1606.24\n2,1926,1611.97\n3,1926,1617.72\n4,1926,1623.49\n5,1926,1629.28\n6,1926,1635.09\n7,1926,1640.92\n8,1926,1646.77\n9,1926,1652.65\n10,1926,1658.54\n11,1926,1664.46\n12,1926,1670.39\n1,1927,1676.32\n2,1927,1682.28\n3,1927,1688.25\n4,1927,1694.24\n5,1927,1700.26\n6,1927,1706.29\n7,1927,1712.35\n8,1927,1718.43\n9,1927,1724.53\n10,1927,1730.65\n11,1927,1736.79\n12,1927,1742.96\n1,1928,1748.03\n2,1928,1753.11\n3,1928,1758.21\n4,1928,1763.32\n5,1928,1768.45\n6,1928,1773.60\n7,1928,1778.75\n8,1928,1783.93\n9,1928,1789.12\n10,1928,1794.32\n11,1928,1799.54\n12,1928,1804.77\n1,1929,1809.52\n2,1929,1814.29\n3,1929,1819.07\n4,1929,1823.86\n5,1929,1828.66\n6,1929,1833.47\n7,1929,1838.30\n8,1929,1843.14\n9,1929,1848.00\n10,1929,1852.86\n11,1929,1857.74\n12,1929,1862.64\n1,1930,1869.70\n2,1930,1876.79\n3,1930,1883.90\n4,1930,1891.05\n5,1930,1898.22\n6,1930,1905.41\n7,1930,1912.64\n8,1930,1919.89\n9,1930,1927.17\n10,1930,1934.48\n11,1930,1941.81\n12,1930,1949.18\n1,1931,1952.93\n2,1931,1956.69\n3,1931,1960.45\n4,1931,1964.23\n5,1931,1968.01\n6,1931,1971.80\n7,1931,1975.59\n8,1931,1979.40\n9,1931,1983.21\n10,1931,1987.02\n11,1931,1990.85\n12,1931,1994.68\n1,1932,1996.46\n2,1932,1998.24\n3,1932,2000.02\n4,1932,2001.80\n5,1932,2003.59\n6,1932,2005.38\n7,1932,2007.16\n8,1932,2008.95\n9,1932,2010.75\n10,1932,2012.54\n11,1932,2014.33\n12,1932,2016.13\n1,1933,2017.74\n2,1933,2019.36\n3,1933,2020.97\n4,1933,2022.59\n5,1933,2024.21\n6,1933,2025.83\n7,1933,2027.45\n8,1933,2029.07\n9,1933,2030.69\n10,1933,2032.32\n11,1933,2033.94\n12,1933,2035.57\n1,1934,2036.11\n2,1934,2037.33\n3,1934,2038.39\n4,1934,2038.79\n5,1934,2039.05\n6,1934,2039.32\n7,1934,2039.58\n8,1934,2039.83\n9,1934,2040.15\n10,1934,2040.51\n11,1934,2040.97\n12,1934,2041.39\n1,1935,2041.79\n2,1935,2042.13\n3,1935,2042.45\n4,1935,2042.70\n5,1935,2042.96\n6,1935,2043.22\n7,1935,2043.47\n8,1935,2043.73\n9,1935,2044.00\n10,1935,2044.34\n11,1935,2044.68\n12,1935,2044.95\n1,1936,2045.21\n2,1936,2045.55\n3,1936,2045.89\n4,1936,2046.23\n5,1936,2046.57\n6,1936,2046.91\n7,1936,2047.25\n8,1936,2047.51\n9,1936,2047.85\n10,1936,2048.12\n11,1936,2048.35\n12,1936,2048.53\n1,1937,2048.74\n2,1937,2049.03\n3,1937,2049.29\n4,1937,2049.93\n5,1937,2050.89\n6,1937,2051.59\n7,1937,2052.21\n8,1937,2052.69\n9,1937,2053.18\n10,1937,2053.71\n11,1937,2054.06\n12,1937,2054.21\n1,1938,2054.40\n2,1938,2054.57\n3,1938,2054.71\n4,1938,2054.84\n5,1938,2055.00\n6,1938,2055.08\n7,1938,2055.17\n8,1938,2055.29\n9,1938,2055.39\n10,1938,2055.53\n11,1938,2055.61\n12,1938,2055.68\n1,1939,2055.73\n2,1939,2055.78\n3,1939,2055.84\n4,1939,2055.89\n5,1939,2055.94\n6,1939,2055.99\n7,1939,2056.04\n8,1939,2056.11\n9,1939,2056.20\n10,1939,2056.44\n11,1939,2056.52\n12,1939,2056.61\n1,1940,2056.68\n2,1940,2056.69\n3,1940,2056.73\n4,1940,2056.76\n5,1940,2056.80\n6,1940,2056.90\n7,1940,2057.07\n8,1940,2057.16\n9,1940,2057.22\n10,1940,2057.31\n11,1940,2057.34\n12,1940,2057.38\n1,1941,2057.41\n2,1941,2057.45\n3,1941,2057.52\n4,1941,2057.70\n5,1941,2057.88\n6,1941,2058.06\n7,1941,2058.27\n8,1941,2058.48\n9,1941,2058.70\n10,1941,2058.87\n11,1941,2059.02\n12,1941,2059.51\n1,1942,2060.07\n2,1942,2060.54\n3,1942,2060.96\n4,1942,2061.39\n5,1942,2061.94\n6,1942,2062.58\n7,1942,2063.22\n8,1942,2063.87\n9,1942,2064.52\n10,1942,2065.18\n11,1942,2065.83\n12,1942,2066.48\n1,1943,2067.14\n2,1943,2067.79\n3,1943,2068.45\n4,1943,2069.10\n5,1943,2069.76\n6,1943,2070.41\n7,1943,2071.07\n8,1943,2071.73\n9,1943,2072.38\n10,1943,2073.04\n11,1943,2073.69\n12,1943,2074.35\n1,1944,2075.01\n2,1944,2075.66\n3,1944,2076.32\n4,1944,2076.98\n5,1944,2077.64\n6,1944,2078.29\n7,1944,2078.95\n8,1944,2079.61\n9,1944,2080.27\n10,1944,2080.93\n11,1944,2081.59\n12,1944,2082.25\n1,1945,2082.91\n2,1945,2083.57\n3,1945,2084.23\n4,1945,2084.89\n5,1945,2085.55\n6,1945,2086.21\n7,1945,2086.87\n8,1945,2087.53\n9,1945,2088.19\n10,1945,2088.85\n11,1945,2089.51\n12,1945,2090.17\n1,1946,2090.84\n2,1946,2091.50\n3,1946,2092.16\n4,1946,2092.82\n5,1946,2093.48\n6,1946,2094.15\n7,1946,2094.81\n8,1946,2095.47\n9,1946,2096.14\n10,1946,2096.80\n11,1946,2097.47\n12,1946,2098.13\n1,1947,2098.79\n2,1947,2099.46\n3,1947,2100.12\n4,1947,2100.79\n5,1947,2101.45\n6,1947,2102.12\n7,1947,2102.78\n8,1947,2103.94\n9,1947,2105.26\n10,1947,2106.66\n11,1947,2108.15\n12,1947,2109.77\n1,1948,2111.44\n2,1948,2113.15\n3,1948,2114.91\n4,1948,2116.67\n5,1948,2118.43\n6,1948,2120.20\n7,1948,2121.96\n8,1948,2123.73\n9,1948,2125.61\n10,1948,2127.54\n11,1948,2129.53\n12,1948,2131.55\n1,1949,2133.61\n2,1949,2135.69\n3,1949,2137.77\n4,1949,2139.86\n5,1949,2141.94\n6,1949,2144.03\n7,1949,2146.12\n8,1949,2147.95\n9,1949,2149.81\n10,1949,2151.72\n11,1949,2153.61\n12,1949,2155.54\n1,1950,2157.52\n2,1950,2159.44\n3,1950,2161.46\n4,1950,2163.48\n5,1950,2165.55\n6,1950,2167.64\n7,1950,2169.72\n8,1950,2171.82\n9,1950,2173.99\n10,1950,2176.35\n11,1950,2178.72\n12,1950,2181.19\n1,1951,2183.63\n2,1951,2186.06\n3,1951,2188.54\n4,1951,2191.10\n5,1951,2193.78\n6,1951,2196.61\n7,1951,2199.27\n8,1951,2202.13\n9,1951,2205.10\n10,1951,2208.09\n11,1951,2210.93\n12,1951,2213.80\n1,1952,2216.99\n2,1952,2219.89\n3,1952,2222.74\n4,1952,2225.69\n5,1952,2228.60\n6,1952,2231.70\n7,1952,2234.86\n8,1952,2238.23\n9,1952,2241.65\n10,1952,2244.84\n11,1952,2248.10\n12,1952,2251.56\n1,1953,2255.48\n2,1953,2259.17\n3,1953,2262.88\n4,1953,2266.67\n5,1953,2270.80\n6,1953,2274.89\n7,1953,2278.89\n8,1953,2282.77\n9,1953,2286.65\n10,1953,2290.06\n11,1953,2292.69\n12,1953,2295.44\n1,1954,2298.50\n2,1954,2300.76\n3,1954,2302.62\n4,1954,2304.60\n5,1954,2306.46\n6,1954,2307.92\n7,1954,2309.15\n8,1954,2310.54\n9,1954,2312.31\n10,1954,2314.26\n11,1954,2316.15\n12,1954,2317.94\n1,1955,2320.16\n2,1955,2322.52\n3,1955,2324.79\n4,1955,2327.27\n5,1955,2330.35\n6,1955,2333.17\n7,1955,2335.91\n8,1955,2339.02\n9,1955,2342.73\n10,1955,2346.77\n11,1955,2351.13\n12,1955,2355.52\n1,1956,2360.50\n2,1956,2365.24\n3,1956,2369.82\n4,1956,2374.26\n5,1956,2379.40\n6,1956,2384.58\n7,1956,2389.53\n8,1956,2394.13\n9,1956,2399.31\n10,1956,2404.99\n11,1956,2410.80\n12,1956,2416.81\n1,1957,2423.28\n2,1957,2429.56\n3,1957,2435.83\n4,1957,2442.08\n5,1957,2448.33\n6,1957,2454.58\n7,1957,2461.31\n8,1957,2467.79\n9,1957,2474.72\n10,1957,2482.00\n11,1957,2489.40\n12,1957,2496.27\n1,1958,2502.59\n2,1958,2507.68\n3,1958,2510.88\n4,1958,2513.60\n5,1958,2515.97\n6,1958,2517.87\n7,1958,2519.61\n8,1958,2521.53\n9,1958,2525.08\n10,1958,2530.21\n11,1958,2535.76\n12,1958,2541.40\n1,1959,2547.26\n2,1959,2553.25\n3,1959,2559.00\n4,1959,2564.97\n5,1959,2571.27\n6,1959,2577.36\n7,1959,2584.25\n8,1959,2591.14\n9,1959,2598.44\n10,1959,2607.19\n11,1959,2615.99\n12,1959,2625.04\n1,1960,2634.86\n2,1960,2644.41\n3,1960,2653.14\n4,1960,2660.45\n5,1960,2667.61\n6,1960,2674.93\n7,1960,2680.41\n8,1960,2685.55\n9,1960,2690.70\n10,1960,2696.26\n11,1960,2701.43\n12,1960,2706.76\n1,1961,2711.84\n2,1961,2716.90\n3,1961,2722.38\n4,1961,2727.80\n5,1961,2733.00\n6,1961,2738.22\n7,1961,2743.54\n8,1961,2748.66\n9,1961,2754.13\n10,1961,2759.37\n11,1961,2764.65\n12,1961,2770.37\n1,1962,2776.37\n2,1962,2782.66\n3,1962,2788.99\n4,1962,2795.32\n5,1962,2801.68\n6,1962,2807.96\n7,1962,2814.34\n8,1962,2821.19\n9,1962,2827.82\n10,1962,2834.37\n11,1962,2840.84\n12,1962,2847.54\n1,1963,2854.35\n2,1963,2861.28\n3,1963,2868.24\n4,1963,2875.15\n5,1963,2882.10\n6,1963,2889.13\n7,1963,2896.33\n8,1963,2904.01\n9,1963,2912.04\n10,1963,2920.24\n11,1963,2928.64\n12,1963,2937.23\n1,1964,2945.85\n2,1964,2954.49\n3,1964,2963.18\n4,1964,2971.92\n5,1964,2980.51\n6,1964,2989.16\n7,1964,2997.82\n8,1964,3006.47\n9,1964,3015.24\n10,1964,3024.11\n11,1964,3033.10\n12,1964,3042.30\n1,1965,3052.04\n2,1965,3061.73\n3,1965,3071.76\n4,1965,3081.82\n5,1965,3091.91\n6,1965,3101.93\n7,1965,3111.76\n8,1965,3121.71\n9,1965,3131.70\n10,1965,3141.93\n11,1965,3152.48\n12,1965,3163.23\n1,1966,3174.78\n2,1966,3186.92\n3,1966,3199.27\n4,1966,3211.51\n5,1966,3223.87\n6,1966,3236.33\n7,1966,3248.47\n8,1966,3261.47\n9,1966,3274.95\n10,1966,3289.60\n11,1966,3304.27\n12,1966,3318.92\n1,1967,3332.63\n2,1967,3345.74\n3,1967,3358.46\n4,1967,3370.38\n5,1967,3381.16\n6,1967,3391.31\n7,1967,3401.31\n8,1967,3413.25\n9,1967,3425.39\n10,1967,3438.01\n11,1967,3451.07\n12,1967,3464.67\n1,1968,3479.02\n2,1968,3493.52\n3,1968,3508.02\n4,1968,3523.13\n5,1968,3538.93\n6,1968,3555.62\n7,1968,3571.98\n8,1968,3587.78\n9,1968,3603.00\n10,1968,3618.58\n11,1968,3634.72\n12,1968,3651.22\n1,1969,3669.36\n2,1969,3688.13\n3,1969,3706.94\n4,1969,3725.54\n5,1969,3744.51\n6,1969,3763.35\n7,1969,3783.55\n8,1969,3805.62\n9,1969,3827.76\n10,1969,3850.37\n11,1969,3872.83\n12,1969,3896.20\n1,1970,3921.59\n2,1970,3947.31\n3,1970,3970.76\n4,1970,3992.70\n5,1970,4014.36\n6,1970,4037.24\n7,1970,4059.72\n8,1970,4081.54\n9,1970,4103.34\n10,1970,4124.27\n11,1970,4144.58\n12,1970,4162.82\n1,1971,4179.71\n2,1971,4195.18\n3,1971,4208.11\n4,1971,4219.96\n5,1971,4233.54\n6,1971,4248.14\n7,1971,4264.96\n8,1971,4284.15\n9,1971,4301.79\n10,1971,4318.60\n11,1971,4334.65\n12,1971,4349.89\n1,1972,4364.43\n2,1972,4376.72\n3,1972,4388.40\n4,1972,4402.04\n5,1972,4415.65\n6,1972,4429.22\n7,1972,4443.66\n8,1972,4458.39\n9,1972,4473.33\n10,1972,4490.70\n11,1972,4508.44\n12,1972,4526.40\n1,1973,4545.52\n2,1973,4566.01\n3,1973,4587.32\n4,1973,4610.60\n5,1973,4634.66\n6,1973,4659.22\n7,1973,4687.14\n8,1973,4718.42\n9,1973,4752.51\n10,1973,4785.34\n11,1973,4814.14\n12,1973,4845.55\n1,1974,4875.63\n2,1974,4907.20\n3,1974,4936.32\n4,1974,4969.06\n5,1974,5003.55\n6,1974,5037.87\n7,1974,5071.04\n8,1974,5102.94\n9,1974,5141.04\n10,1974,5175.57\n11,1974,5207.75\n12,1974,5240.17\n1,1975,5271.39\n2,1975,5298.89\n3,1975,5323.18\n4,1975,5347.53\n5,1975,5372.53\n6,1975,5395.94\n7,1975,5419.96\n8,1975,5447.64\n9,1975,5476.88\n10,1975,5506.18\n11,1975,5533.53\n12,1975,5558.80\n1,1976,5584.00\n2,1976,5606.66\n3,1976,5629.46\n4,1976,5652.92\n5,1976,5675.81\n6,1976,5700.41\n7,1976,5726.10\n8,1976,5751.06\n9,1976,5775.69\n10,1976,5800.14\n11,1976,5823.93\n12,1976,5846.98\n1,1977,5868.17\n2,1977,5890.77\n3,1977,5913.69\n4,1977,5936.36\n5,1977,5958.82\n6,1977,5983.45\n7,1977,6008.48\n8,1977,6034.47\n9,1977,6062.07\n10,1977,6091.43\n11,1977,6122.69\n12,1977,6153.82\n1,1978,6184.95\n2,1978,6218.14\n3,1978,6251.56\n4,1978,6284.33\n5,1978,6317.27\n6,1978,6351.01\n7,1978,6386.63\n8,1978,6423.94\n9,1978,6461.84\n10,1978,6504.11\n11,1978,6547.42\n12,1978,6594.56\n1,1979,6644.46\n2,1979,6696.23\n3,1979,6748.24\n4,1979,6801.55\n5,1979,6855.17\n6,1979,6910.07\n7,1979,6962.24\n8,1979,7015.85\n9,1979,7071.51\n10,1979,7131.97\n11,1979,7201.51\n12,1979,7272.26\n1,1980,7345.23\n2,1980,7418.68\n3,1980,7498.18\n4,1980,7593.16\n5,1980,7676.68\n6,1980,7731.57\n7,1980,7777.12\n8,1980,7829.36\n9,1980,7888.93\n10,1980,7956.44\n11,1980,8033.49\n12,1980,8125.41\n1,1981,8230.29\n2,1981,8333.31\n3,1981,8436.02\n4,1981,8529.94\n5,1981,8627.25\n6,1981,8744.44\n7,1981,8851.77\n8,1981,8962.05\n9,1981,9077.89\n10,1981,9189.09\n11,1981,9292.77\n12,1981,9376.87\n1,1982,9461.66\n2,1982,9558.48\n3,1982,9665.85\n4,1982,9767.99\n5,1982,9871.37\n6,1982,9970.82\n7,1982,10074.43\n8,1982,10169.72\n9,1982,10243.28\n10,1982,10310.89\n11,1982,10377.14\n12,1982,10446.92\n1,1983,10516.05\n2,1983,10584.93\n3,1983,10656.46\n4,1983,10730.61\n5,1983,10804.03\n6,1983,10877.77\n7,1983,10957.45\n8,1983,11040.36\n9,1983,11126.29\n10,1983,11209.74\n11,1983,11290.45\n12,1983,11372.87\n1,1984,11458.16\n2,1984,11543.14\n3,1984,11630.58\n4,1984,11722.85\n5,1984,11817.51\n6,1984,11914.32\n7,1984,12012.32\n8,1984,12113.62\n9,1984,12219.31\n10,1984,12324.91\n11,1984,12424.94\n12,1984,12514.09\n1,1985,12598.14\n2,1985,12679.61\n3,1985,12767.00\n4,1985,12857.64\n5,1985,12942.82\n6,1985,13023.50\n7,1985,13098.93\n8,1985,13176.21\n9,1985,13254.61\n10,1985,13333.03\n11,1985,13412.59\n12,1985,13493.51\n1,1986,13573.35\n2,1986,13653.32\n3,1986,13733.64\n4,1986,13808.72\n5,1986,13878.45\n6,1986,13949.58\n7,1986,14021.77\n8,1986,14089.89\n9,1986,14154.82\n10,1986,14216.28\n11,1986,14277.65\n12,1986,14341.30\n1,1987,14407.39\n2,1987,14472.58\n3,1987,14540.00\n4,1987,14607.73\n5,1987,14676.39\n6,1987,14745.61\n7,1987,14815.29\n8,1987,14885.54\n9,1987,14960.46\n10,1987,15040.25\n11,1987,15117.08\n12,1987,15188.76\n1,1988,15261.79\n2,1988,15335.69\n3,1988,15408.02\n4,1988,15481.21\n5,1988,15557.45\n6,1988,15638.61\n7,1988,15722.80\n8,1988,15810.98\n9,1988,15904.00\n10,1988,15999.95\n11,1988,16097.95\n12,1988,16202.05\n1,1989,16311.01\n2,1989,16423.42\n3,1989,16540.16\n4,1989,16661.73\n5,1989,16781.84\n6,1989,16899.73\n7,1989,17014.51\n8,1989,17126.24\n9,1989,17238.98\n10,1989,17350.32\n11,1989,17460.78\n12,1989,17572.68\n1,1990,17684.41\n2,1990,17797.00\n3,1990,17911.79\n4,1990,18029.71\n5,1990,18146.45\n6,1990,18263.50\n7,1990,18381.14\n8,1990,18497.86\n9,1990,18612.71\n10,1990,18726.86\n11,1990,18838.76\n12,1990,18949.59\n1,1991,19056.03\n2,1991,19154.80\n3,1991,19249.62\n4,1991,19344.42\n5,1991,19435.50\n6,1991,19523.93\n7,1991,19614.55\n8,1991,19705.76\n9,1991,19793.29\n10,1991,19879.39\n11,1991,19962.05\n12,1991,20037.91\n1,1992,20105.87\n2,1992,20169.54\n3,1992,20234.08\n4,1992,20302.20\n5,1992,20365.65\n6,1992,20427.26\n7,1992,20489.56\n8,1992,20544.37\n9,1992,20597.95\n10,1992,20647.90\n11,1992,20697.12\n12,1992,20751.10\n1,1993,20806.78\n2,1993,20858.80\n3,1993,20909.73\n4,1993,20961.13\n5,1993,21011.26\n6,1993,21063.09\n7,1993,21116.98\n8,1993,21170.48\n9,1993,21223.75\n10,1993,21275.93\n11,1993,21329.47\n12,1993,21384.58\n1,1994,21439.11\n2,1994,21492.35\n3,1994,21550.55\n4,1994,21613.41\n5,1994,21679.69\n6,1994,21754.49\n7,1994,21829.54\n8,1994,21908.31\n9,1994,21990.10\n10,1994,22074.76\n11,1994,22165.82\n12,1994,22263.53\n1,1995,22367.43\n2,1995,22473.86\n3,1995,22581.92\n4,1995,22689.75\n5,1995,22796.58\n6,1995,22904.30\n7,1995,23008.70\n8,1995,23112.62\n9,1995,23216.63\n10,1995,23318.78\n11,1995,23421.39\n12,1995,23526.00\n1,1996,23626.77\n2,1996,23725.22\n3,1996,23820.71\n4,1996,23919.17\n5,1996,24017.84\n6,1996,24118.31\n7,1996,24220.61\n8,1996,24324.56\n9,1996,24426.93\n10,1996,24530.54\n11,1996,24632.54\n12,1996,24735.79\n1,1997,24837.01\n2,1997,24941.11\n3,1997,25045.24\n4,1997,25152.52\n5,1997,25260.68\n6,1997,25366.98\n7,1997,25471.20\n8,1997,25578.39\n9,1997,25687.95\n10,1997,25793.91\n11,1997,25900.74\n12,1997,26011.68\n1,1998,26123.53\n2,1998,26233.25\n3,1998,26344.53\n4,1998,26454.95\n5,1998,26564.08\n6,1998,26674.76\n7,1998,26785.46\n8,1998,26896.18\n9,1998,27006.00\n10,1998,27109.75\n11,1998,27199.21\n12,1998,27299.17\n1,1999,27399.04\n2,1999,27498.13\n3,1999,27599.88\n4,1999,27702.00\n5,1999,27801.03\n6,1999,27905.28\n7,1999,28011.56\n8,1999,28117.77\n9,1999,28228.36\n10,1999,28338.45\n11,1999,28453.22\n12,1999,28573.44\n1,2000,28697.26\n2,2000,28824.48\n3,2000,28957.80\n4,2000,29095.10\n5,2000,29232.34\n6,2000,29373.38\n7,2000,29512.66\n8,2000,29659.24\n9,2000,29809.76\n10,2000,29958.81\n11,2000,30111.35\n12,2000,30266.17\n1,2001,30411.70\n2,2001,30542.22\n3,2001,30666.42\n4,2001,30779.38\n5,2001,30878.64\n6,2001,30971.79\n7,2001,31061.87\n8,2001,31152.72\n9,2001,31239.95\n10,2001,31308.68\n11,2001,31365.04\n12,2001,31413.91\n1,2002,31458.15\n2,2002,31501.41\n3,2002,31546.56\n4,2002,31593.62\n5,2002,31638.64\n6,2002,31684.25\n7,2002,31729.14\n8,2002,31773.56\n9,2002,31816.45\n10,2002,31859.67\n11,2002,31901.62\n12,2002,31934.32\n1,2003,31965.99\n2,2003,31997.15\n3,2003,32028.35\n4,2003,32058.51\n5,2003,32088.70\n6,2003,32117.31\n7,2003,32141.93\n8,2003,32166.04\n9,2003,32191.51\n10,2003,32216.72\n11,2003,32241.42\n12,2003,32266.41\n1,2004,32290.61\n2,2004,32314.29\n3,2004,32339.33\n4,2004,32364.66\n5,2004,32390.02\n6,2004,32417.55\n7,2004,32451.86\n8,2004,32487.82\n9,2004,32527.89\n10,2004,32572.62\n11,2004,32620.39\n12,2004,32676.66\n1,2005,32736.30\n2,2005,32799.86\n3,2005,32869.29\n4,2005,32944.34\n5,2005,33020.66\n6,2005,33098.81\n7,2005,33180.73\n8,2005,33269.76\n9,2005,33365.14\n10,2005,33460.23\n11,2005,33563.67\n12,2005,33672.20\n1,2006,33781.35\n2,2006,33900.71\n3,2006,34025.86\n4,2006,34153.74\n5,2006,34284.66\n6,2006,34419.52\n7,2006,34556.91\n8,2006,34699.46\n9,2006,34842.88\n10,2006,34982.54\n11,2006,35125.97\n12,2006,35270.57\n1,2007,35413.12\n2,2007,35560.09\n3,2007,35709.15\n4,2007,35856.15\n5,2007,36001.66\n6,2007,36143.57\n7,2007,36282.42\n8,2007,36428.16\n9,2007,36555.65\n10,2007,36674.16\n11,2007,36793.35\n12,2007,36893.61\n1,2008,36985.84\n2,2008,37070.60\n3,2008,37136.09\n4,2008,37175.09\n5,2008,37215.05\n6,2008,37268.70\n7,2008,37326.47\n8,2008,37377.17\n9,2008,37430.74\n10,2008,37465.99\n11,2008,37486.91\n12,2008,37492.85\n1,2009,37493.78\n2,2009,37497.84\n3,2009,37507.22\n4,2009,37513.78\n5,2009,37518.78\n6,2009,37524.41\n7,2009,37530.04\n8,2009,37535.67\n9,2009,37540.99\n10,2009,37544.74\n11,2009,37546.93\n12,2009,37548.50\n1,2010,37550.06\n2,2010,37551.94\n3,2010,37555.38\n4,2010,37560.08\n5,2010,37565.08\n6,2010,37570.09\n7,2010,37573.85\n8,2010,37578.86\n9,2010,37583.87\n10,2010,37588.57\n11,2010,37592.64\n12,2010,37597.03\n1,2011,37601.41\n2,2011,37606.11\n3,2011,37610.19\n4,2011,37613.32\n5,2011,37615.20\n6,2011,37616.45\n7,2011,37617.71\n8,2011,37618.96\n9,2011,37619.59\n10,2011,37619.90\n11,2011,37620.53\n12,2011,37620.84\n1,2012,37621.16\n2,2012,37622.10\n3,2012,37624.92\n4,2012,37627.43\n5,2012,37629.94\n6,2012,37632.76\n7,2012,37635.58\n8,2012,37638.72\n9,2012,37641.85\n10,2012,37645.30\n11,2012,37648.44\n12,2012,37651.26\n1,2013,37653.46\n2,2013,37655.66\n3,2013,37658.80\n4,2013,37661.62\n5,2013,37663.50\n6,2013,37664.76\n7,2013,37666.33\n8,2013,37667.58\n9,2013,37668.84\n10,2013,37669.47\n11,2013,37671.04\n12,2013,37673.23\n1,2014,37675.43\n2,2014,37676.69\n3,2014,37678.26\n4,2014,37679.83\n5,2014,37680.77\n6,2014,37681.71\n7,2014,37682.97\n8,2014,37683.91\n9,2014,37684.85\n10,2014,37685.48\n11,2014,37686.11\n12,2014,37686.74\n1,2015,37687.68\n2,2015,37688.62\n3,2015,37689.25\n4,2015,37690.19\n5,2015,37690.82\n6,2015,37691.45\n7,2015,37692.07\n8,2015,37693.02\n9,2015,37695.22\n10,2015,37695.84\n11,2015,37696.47\n12,2015,37700.24\n1,2016,37707.47\n2,2016,37715.64\n3,2016,37725.38\n4,2016,37734.50\n5,2016,37741.73\n6,2016,37750.22\n7,2016,37758.72\n8,2016,37768.16\n9,2016,37777.60\n10,2016,37786.73\n11,2016,37797.12\n12,2016,37811.29\n1,2017,37827.36\n2,2017,37843.44\n3,2017,37859.84\n4,2017,37883.18\n5,2017,37908.44\n6,2017,37936.56\n7,2017,37967.54\n8,2017,38001.39\n9,2017,38033.38\n10,2017,38066.02\n11,2017,38099.96\n12,2017,38139.02\n1,2018,38180.97\n2,2018,38225.83\n3,2018,38275.84\n4,2018,38330.07\n5,2018,38386.29\n6,2018,38445.78\n7,2018,38506.66\n8,2018,38569.55\n9,2018,38634.80\n10,2018,38703.37\n11,2018,38775.94\n12,2018,38851.23\n1,2019,38927.96\n2,2019,39004.85\n3,2019,39082.53\n4,2019,39160.70\n5,2019,39238.37\n6,2019,39315.21\n7,2019,39386.30\n8,2019,39455.23\n9,2019,39519.34\n10,2019,39581.59\n11,2019,39636.01\n12,2019,39686.88\n1,2020,39737.81\n2,2020,39788.14\n3,2020,39838.54\n4,2020,39848.17\n5,2020,39852.82\n6,2020,39857.13\n7,2020,39862.45\n8,2020,39866.77\n9,2020,39870.09\n10,2020,39873.74\n11,2020,39877.07\n12,2020,39880.06\n1,2021,39883.05\n2,2021,39885.71\n3,2021,39887.04\n4,2021,39888.03\n5,2021,39888.70\n6,2021,39889.36\n7,2021,39890.69\n8,2021,39892.36\n9,2021,39894.02\n10,2021,39895.35\n11,2021,39897.01\n12,2021,39898.67\n1,2022,39900.67\n2,2022,39905.66\n3,2022,39916.63\n4,2022,39931.27\n5,2022,39956.56\n6,2022,39989.19\n7,2022,40038.84\n8,2022,40113.25\n9,2022,40201.16\n10,2022,40306.02\n11,2022,40430.97\n12,2022,40570.79\n1,2023,40714.48\n2,2023,40868.52\n3,2023,41026.88\n4,2023,41187.23\n5,2023,41356.10\n6,2023,41533.24\n7,2023,41711.83\n8,2023,41894.32\n9,2023,42079.35\n10,2023,42265.90\n11,2023,42453.99\n12,2023,42640.43\n1,2024,42826.63\n2,2024,43012.92\n3,2024,43200.75\n4,2024,43389.39\n5,2024,43578.86\n6,2024,43769.51\n7,2024,43960.64\n8,2024,44151.14\n9,2024,44336.94\n10,2024,44511.33\n11,2024,44678.62\n12,2024,44843.19\n1,2025,45002.75\n2,2025,45160.64\n3,2025,45319.45\n4,2025,45478.07\n5,2025,45637.62\n6,2025,45799.26\n7,2025,45960.70\n8,2025,46123.48\n9,2025,46281.83\n10,2025,46433.02\n11,2025,46580.83\n12,2025,46727.56\n`,
        'us_inflation': `1,1871,12.464\n2,1871,12.845\n3,1871,13.035\n4,1871,12.559\n5,1871,12.274\n6,1871,12.083\n7,1871,12.083\n8,1871,11.893\n9,1871,12.179\n10,1871,12.369\n11,1871,12.369\n12,1871,12.654\n1,1872,12.654\n2,1872,12.654\n3,1872,12.845\n4,1872,13.130\n5,1872,13.130\n6,1872,13.035\n7,1872,12.845\n8,1872,12.940\n9,1872,13.035\n10,1872,12.749\n11,1872,13.130\n12,1872,12.940\n1,1873,12.940\n2,1873,13.225\n3,1873,13.225\n4,1873,13.225\n5,1873,12.940\n6,1873,12.559\n7,1873,12.559\n8,1873,12.559\n9,1873,12.559\n10,1873,12.274\n11,1873,11.893\n12,1873,12.179\n1,1874,12.369\n2,1874,12.369\n3,1874,12.369\n4,1874,12.179\n5,1874,12.083\n6,1874,11.798\n7,1874,11.893\n8,1874,11.798\n9,1874,11.798\n10,1874,11.608\n11,1874,11.513\n12,1874,11.513\n1,1875,11.513\n2,1875,11.513\n3,1875,11.513\n4,1875,11.608\n5,1875,11.322\n6,1875,11.132\n7,1875,11.132\n8,1875,11.227\n9,1875,11.132\n10,1875,11.132\n11,1875,11.037\n12,1875,10.942\n1,1876,10.847\n2,1876,10.847\n3,1876,10.847\n4,1876,10.751\n5,1876,10.371\n6,1876,10.085\n7,1876,10.085\n8,1876,10.181\n9,1876,10.276\n10,1876,10.466\n11,1876,10.561\n12,1876,10.751\n1,1877,10.942\n2,1877,10.656\n3,1877,10.181\n4,1877,10.466\n5,1877,10.656\n6,1877,10.085\n7,1877,10.181\n8,1877,9.800\n9,1877,9.705\n10,1877,9.705\n11,1877,9.515\n12,1877,9.515\n1,1878,9.229\n2,1878,9.134\n3,1878,8.944\n4,1878,8.849\n5,1878,8.563\n6,1878,8.373\n7,1878,8.468\n8,1878,8.563\n9,1878,8.563\n10,1878,8.468\n11,1878,8.373\n12,1878,8.183\n1,1879,8.278\n2,1879,8.373\n3,1879,8.278\n4,1879,8.183\n5,1879,8.183\n6,1879,8.087\n7,1879,8.183\n8,1879,8.183\n9,1879,8.468\n10,1879,8.944\n11,1879,9.419\n12,1879,9.705\n1,1880,9.990\n2,1880,9.990\n3,1880,10.085\n4,1880,9.705\n5,1880,9.419\n6,1880,9.229\n7,1880,9.229\n8,1880,9.229\n9,1880,9.324\n10,1880,9.324\n11,1880,9.419\n12,1880,9.515\n1,1881,9.419\n2,1881,9.515\n3,1881,9.515\n4,1881,9.610\n5,1881,9.515\n6,1881,9.515\n7,1881,9.610\n8,1881,9.800\n9,1881,10.181\n10,1881,10.276\n11,1881,10.181\n12,1881,10.181\n1,1882,10.181\n2,1882,10.276\n3,1882,10.276\n4,1882,10.371\n5,1882,10.466\n6,1882,10.561\n7,1882,10.466\n8,1882,10.561\n9,1882,10.276\n10,1882,10.181\n11,1882,10.085\n12,1882,9.990\n1,1883,9.990\n2,1883,10.085\n3,1883,9.990\n4,1883,9.895\n5,1883,9.800\n6,1883,9.515\n7,1883,9.324\n8,1883,9.324\n9,1883,9.229\n10,1883,9.229\n11,1883,9.134\n12,1883,9.229\n1,1884,9.229\n2,1884,9.229\n3,1884,9.229\n4,1884,9.039\n5,1884,8.849\n6,1884,8.849\n7,1884,8.753\n8,1884,8.753\n9,1884,8.658\n10,1884,8.563\n11,1884,8.373\n12,1884,8.278\n1,1885,8.278\n2,1885,8.373\n3,1885,8.183\n4,1885,8.278\n5,1885,8.087\n6,1885,7.897\n7,1885,7.992\n8,1885,7.992\n9,1885,7.897\n10,1885,7.897\n11,1885,7.992\n12,1885,8.183\n1,1886,7.992\n2,1886,7.992\n3,1886,7.897\n4,1886,7.802\n5,1886,7.612\n6,1886,7.517\n7,1886,7.612\n8,1886,7.707\n9,1886,7.707\n10,1886,7.707\n11,1886,7.707\n12,1886,7.802\n1,1887,7.992\n2,1887,8.087\n3,1887,8.087\n4,1887,8.087\n5,1887,8.087\n6,1887,7.992\n7,1887,7.897\n8,1887,7.992\n9,1887,7.897\n10,1887,7.992\n11,1887,8.087\n12,1887,8.278\n1,1888,8.373\n2,1888,8.278\n3,1888,8.278\n4,1888,8.183\n5,1888,8.087\n6,1888,7.992\n7,1888,8.087\n8,1888,8.087\n9,1888,8.087\n10,1888,8.183\n11,1888,8.278\n12,1888,8.278\n1,1889,7.992\n2,1889,7.897\n3,1889,7.802\n4,1889,7.802\n5,1889,7.612\n6,1889,7.612\n7,1889,7.612\n8,1889,7.612\n9,1889,7.707\n10,1889,7.707\n11,1889,7.707\n12,1889,7.802\n1,1890,7.612\n2,1890,7.612\n3,1890,7.612\n4,1890,7.612\n5,1890,7.707\n6,1890,7.707\n7,1890,7.707\n8,1890,7.992\n9,1890,8.087\n10,1890,8.087\n11,1890,7.897\n12,1890,7.897\n1,1891,7.802\n2,1891,7.897\n3,1891,7.992\n4,1891,8.087\n5,1891,7.992\n6,1891,7.802\n7,1891,7.707\n8,1891,7.707\n9,1891,7.612\n10,1891,7.612\n11,1891,7.517\n12,1891,7.517\n1,1892,7.326\n2,1892,7.326\n3,1892,7.136\n4,1892,7.041\n5,1892,7.041\n6,1892,7.041\n7,1892,7.231\n8,1892,7.326\n9,1892,7.326\n10,1892,7.326\n11,1892,7.517\n12,1892,7.612\n1,1893,7.897\n2,1893,7.992\n3,1893,7.802\n4,1893,7.707\n5,1893,7.612\n6,1893,7.421\n7,1893,7.231\n8,1893,6.946\n9,1893,7.231\n10,1893,7.326\n11,1893,7.136\n12,1893,7.041\n1,1894,6.850\n2,1894,6.755\n3,1894,6.565\n4,1894,6.565\n5,1894,6.565\n6,1894,6.565\n7,1894,6.565\n8,1894,6.755\n9,1894,6.850\n10,1894,6.660\n11,1894,6.660\n12,1894,6.565\n1,1895,6.565\n2,1895,6.565\n3,1895,6.565\n4,1895,6.850\n5,1895,6.946\n6,1895,7.041\n7,1895,6.946\n8,1895,6.850\n9,1895,6.850\n10,1895,6.850\n11,1895,6.850\n12,1895,6.755\n1,1896,6.660\n2,1896,6.565\n3,1896,6.565\n4,1896,6.470\n5,1896,6.375\n6,1896,6.280\n7,1896,6.280\n8,1896,6.280\n9,1896,6.280\n10,1896,6.470\n11,1896,6.660\n12,1896,6.660\n1,1897,6.470\n2,1897,6.470\n3,1897,6.470\n4,1897,6.375\n5,1897,6.280\n6,1897,6.280\n7,1897,6.280\n8,1897,6.565\n9,1897,6.755\n10,1897,6.660\n11,1897,6.660\n12,1897,6.660\n1,1898,6.660\n2,1898,6.755\n3,1898,6.755\n4,1898,6.755\n5,1898,7.231\n6,1898,6.755\n7,1898,6.660\n8,1898,6.660\n9,1898,6.660\n10,1898,6.660\n11,1898,6.660\n12,1898,6.755\n1,1899,6.755\n2,1899,6.946\n3,1899,6.946\n4,1899,7.041\n5,1899,7.041\n6,1899,7.136\n7,1899,7.231\n8,1899,7.326\n9,1899,7.612\n10,1899,7.707\n11,1899,7.802\n12,1899,7.897\n1,1900,7.897\n2,1900,7.992\n3,1900,7.992\n4,1900,7.992\n5,1900,7.802\n6,1900,7.707\n7,1900,7.802\n8,1900,7.707\n9,1900,7.802\n10,1900,7.707\n11,1900,7.707\n12,1900,7.612\n1,1901,7.707\n2,1901,7.612\n3,1901,7.612\n4,1901,7.517\n5,1901,7.517\n6,1901,7.517\n7,1901,7.612\n8,1901,7.707\n9,1901,7.802\n10,1901,7.802\n11,1901,7.897\n12,1901,7.992\n1,1902,7.897\n2,1902,7.897\n3,1902,7.897\n4,1902,7.992\n5,1902,8.087\n6,1902,8.183\n7,1902,8.183\n8,1902,8.087\n9,1902,8.183\n10,1902,8.753\n11,1902,8.468\n12,1902,8.563\n1,1903,8.658\n2,1903,8.658\n3,1903,8.373\n4,1903,8.373\n5,1903,8.183\n6,1903,8.183\n7,1903,8.183\n8,1903,8.183\n9,1903,8.278\n10,1903,8.183\n11,1903,8.087\n12,1903,8.087\n1,1904,8.278\n2,1904,8.468\n3,1904,8.373\n4,1904,8.278\n5,1904,8.087\n6,1904,8.087\n7,1904,8.087\n8,1904,8.183\n9,1904,8.278\n10,1904,8.278\n11,1904,8.468\n12,1904,8.468\n1,1905,8.468\n2,1905,8.468\n3,1905,8.373\n4,1905,8.373\n5,1905,8.278\n6,1905,8.278\n7,1905,8.278\n8,1905,8.373\n9,1905,8.278\n10,1905,8.278\n11,1905,8.373\n12,1905,8.468\n1,1906,8.468\n2,1906,8.468\n3,1906,8.468\n4,1906,8.468\n5,1906,8.563\n6,1906,8.563\n7,1906,8.278\n8,1906,8.468\n9,1906,8.563\n10,1906,8.753\n11,1906,8.849\n12,1906,8.944\n1,1907,8.849\n2,1907,9.039\n3,1907,8.944\n4,1907,8.944\n5,1907,9.134\n6,1907,9.229\n7,1907,9.229\n8,1907,9.229\n9,1907,9.229\n10,1907,9.324\n11,1907,8.944\n12,1907,8.753\n1,1908,8.658\n2,1908,8.563\n3,1908,8.563\n4,1908,8.658\n5,1908,8.658\n6,1908,8.658\n7,1908,8.753\n8,1908,8.753\n9,1908,8.753\n10,1908,8.849\n11,1908,8.944\n12,1908,9.039\n1,1909,8.944\n2,1909,9.039\n3,1909,9.039\n4,1909,9.229\n5,1909,9.324\n6,1909,9.419\n7,1909,9.419\n8,1909,9.515\n9,1909,9.610\n10,1909,9.800\n11,1909,9.895\n12,1909,9.990\n1,1910,9.895\n2,1910,9.895\n3,1910,10.085\n4,1910,10.181\n5,1910,9.990\n6,1910,9.895\n7,1910,9.895\n8,1910,9.800\n9,1910,9.705\n10,1910,9.419\n11,1910,9.229\n12,1910,9.229\n1,1911,9.229\n2,1911,8.944\n3,1911,9.039\n4,1911,8.753\n5,1911,8.753\n6,1911,8.753\n7,1911,8.849\n8,1911,9.134\n9,1911,9.229\n10,1911,9.229\n11,1911,9.134\n12,1911,9.039\n1,1912,9.134\n2,1912,9.229\n3,1912,9.419\n4,1912,9.705\n5,1912,9.705\n6,1912,9.610\n7,1912,9.610\n8,1912,9.705\n9,1912,9.800\n10,1912,9.800\n11,1912,9.800\n12,1912,9.705\n1,1913,9.800\n2,1913,9.800\n3,1913,9.800\n4,1913,9.800\n5,1913,9.700\n6,1913,9.800\n7,1913,9.900\n8,1913,9.900\n9,1913,10.000\n10,1913,10.000\n11,1913,10.100\n12,1913,10.000\n1,1914,10.000\n2,1914,9.900\n3,1914,9.900\n4,1914,9.800\n5,1914,9.900\n6,1914,9.900\n7,1914,10.000\n8,1914,10.200\n9,1914,10.200\n10,1914,10.100\n11,1914,10.200\n12,1914,10.100\n1,1915,10.100\n2,1915,10.000\n3,1915,9.900\n4,1915,10.000\n5,1915,10.100\n6,1915,10.100\n7,1915,10.100\n8,1915,10.100\n9,1915,10.100\n10,1915,10.200\n11,1915,10.300\n12,1915,10.300\n1,1916,10.400\n2,1916,10.400\n3,1916,10.500\n4,1916,10.600\n5,1916,10.700\n6,1916,10.800\n7,1916,10.800\n8,1916,10.900\n9,1916,11.100\n10,1916,11.300\n11,1916,11.500\n12,1916,11.600\n1,1917,11.700\n2,1917,12.000\n3,1917,12.000\n4,1917,12.600\n5,1917,12.800\n6,1917,13.000\n7,1917,12.800\n8,1917,13.000\n9,1917,13.300\n10,1917,13.500\n11,1917,13.500\n12,1917,13.700\n1,1918,14.000\n2,1918,14.100\n3,1918,14.000\n4,1918,14.200\n5,1918,14.500\n6,1918,14.700\n7,1918,15.100\n8,1918,15.400\n9,1918,15.700\n10,1918,16.000\n11,1918,16.300\n12,1918,16.500\n1,1919,16.500\n2,1919,16.200\n3,1919,16.400\n4,1919,16.700\n5,1919,16.900\n6,1919,16.900\n7,1919,17.400\n8,1919,17.700\n9,1919,17.800\n10,1919,18.100\n11,1919,18.500\n12,1919,18.900\n1,1920,19.300\n2,1920,19.500\n3,1920,19.700\n4,1920,20.300\n5,1920,20.600\n6,1920,20.900\n7,1920,20.800\n8,1920,20.300\n9,1920,20.000\n10,1920,19.900\n11,1920,19.800\n12,1920,19.400\n1,1921,19.000\n2,1921,18.400\n3,1921,18.300\n4,1921,18.100\n5,1921,17.700\n6,1921,17.600\n7,1921,17.700\n8,1921,17.700\n9,1921,17.500\n10,1921,17.500\n11,1921,17.400\n12,1921,17.300\n1,1922,16.900\n2,1922,16.900\n3,1922,16.700\n4,1922,16.700\n5,1922,16.700\n6,1922,16.700\n7,1922,16.800\n8,1922,16.600\n9,1922,16.600\n10,1922,16.700\n11,1922,16.800\n12,1922,16.900\n1,1923,16.800\n2,1923,16.800\n3,1923,16.800\n4,1923,16.900\n5,1923,16.900\n6,1923,17.000\n7,1923,17.200\n8,1923,17.100\n9,1923,17.200\n10,1923,17.300\n11,1923,17.300\n12,1923,17.300\n1,1924,17.300\n2,1924,17.200\n3,1924,17.100\n4,1924,17.000\n5,1924,17.000\n6,1924,17.000\n7,1924,17.100\n8,1924,17.000\n9,1924,17.100\n10,1924,17.200\n11,1924,17.200\n12,1924,17.300\n1,1925,17.300\n2,1925,17.200\n3,1925,17.300\n4,1925,17.200\n5,1925,17.300\n6,1925,17.500\n7,1925,17.700\n8,1925,17.700\n9,1925,17.700\n10,1925,17.700\n11,1925,18.000\n12,1925,17.900\n1,1926,17.900\n2,1926,17.900\n3,1926,17.800\n4,1926,17.900\n5,1926,17.800\n6,1926,17.700\n7,1926,17.500\n8,1926,17.400\n9,1926,17.500\n10,1926,17.600\n11,1926,17.700\n12,1926,17.700\n1,1927,17.500\n2,1927,17.400\n3,1927,17.300\n4,1927,17.300\n5,1927,17.400\n6,1927,17.600\n7,1927,17.300\n8,1927,17.200\n9,1927,17.300\n10,1927,17.400\n11,1927,17.300\n12,1927,17.300\n1,1928,17.300\n2,1928,17.100\n3,1928,17.100\n4,1928,17.100\n5,1928,17.200\n6,1928,17.100\n7,1928,17.100\n8,1928,17.100\n9,1928,17.300\n10,1928,17.200\n11,1928,17.200\n12,1928,17.100\n1,1929,17.100\n2,1929,17.100\n3,1929,17.000\n4,1929,16.900\n5,1929,17.000\n6,1929,17.100\n7,1929,17.300\n8,1929,17.300\n9,1929,17.300\n10,1929,17.300\n11,1929,17.300\n12,1929,17.200\n1,1930,17.100\n2,1930,17.000\n3,1930,16.900\n4,1930,17.000\n5,1930,16.900\n6,1930,16.800\n7,1930,16.600\n8,1930,16.500\n9,1930,16.600\n10,1930,16.500\n11,1930,16.400\n12,1930,16.100\n1,1931,15.900\n2,1931,15.700\n3,1931,15.600\n4,1931,15.500\n5,1931,15.300\n6,1931,15.100\n7,1931,15.100\n8,1931,15.100\n9,1931,15.000\n10,1931,14.900\n11,1931,14.700\n12,1931,14.600\n1,1932,14.300\n2,1932,14.100\n3,1932,14.000\n4,1932,13.900\n5,1932,13.700\n6,1932,13.600\n7,1932,13.600\n8,1932,13.500\n9,1932,13.400\n10,1932,13.300\n11,1932,13.200\n12,1932,13.100\n1,1933,12.900\n2,1933,12.700\n3,1933,12.600\n4,1933,12.600\n5,1933,12.600\n6,1933,12.700\n7,1933,13.100\n8,1933,13.200\n9,1933,13.200\n10,1933,13.200\n11,1933,13.200\n12,1933,13.200\n1,1934,13.200\n2,1934,13.300\n3,1934,13.300\n4,1934,13.300\n5,1934,13.300\n6,1934,13.400\n7,1934,13.400\n8,1934,13.400\n9,1934,13.600\n10,1934,13.500\n11,1934,13.500\n12,1934,13.400\n1,1935,13.600\n2,1935,13.700\n3,1935,13.700\n4,1935,13.800\n5,1935,13.800\n6,1935,13.700\n7,1935,13.700\n8,1935,13.700\n9,1935,13.700\n10,1935,13.700\n11,1935,13.800\n12,1935,13.800\n1,1936,13.800\n2,1936,13.800\n3,1936,13.700\n4,1936,13.700\n5,1936,13.700\n6,1936,13.800\n7,1936,13.900\n8,1936,14.000\n9,1936,14.000\n10,1936,14.000\n11,1936,14.000\n12,1936,14.000\n1,1937,14.100\n2,1937,14.100\n3,1937,14.200\n4,1937,14.300\n5,1937,14.400\n6,1937,14.400\n7,1937,14.500\n8,1937,14.500\n9,1937,14.600\n10,1937,14.600\n11,1937,14.500\n12,1937,14.400\n1,1938,14.200\n2,1938,14.100\n3,1938,14.100\n4,1938,14.200\n5,1938,14.100\n6,1938,14.100\n7,1938,14.100\n8,1938,14.100\n9,1938,14.100\n10,1938,14.000\n11,1938,14.000\n12,1938,14.000\n1,1939,14.000\n2,1939,13.900\n3,1939,13.900\n4,1939,13.800\n5,1939,13.800\n6,1939,13.800\n7,1939,13.800\n8,1939,13.800\n9,1939,14.100\n10,1939,14.000\n11,1939,14.000\n12,1939,14.000\n1,1940,13.900\n2,1940,14.000\n3,1940,14.000\n4,1940,14.000\n5,1940,14.000\n6,1940,14.100\n7,1940,14.000\n8,1940,14.000\n9,1940,14.000\n10,1940,14.000\n11,1940,14.000\n12,1940,14.100\n1,1941,14.100\n2,1941,14.100\n3,1941,14.200\n4,1941,14.300\n5,1941,14.400\n6,1941,14.700\n7,1941,14.700\n8,1941,14.900\n9,1941,15.100\n10,1941,15.300\n11,1941,15.400\n12,1941,15.500\n1,1942,15.700\n2,1942,15.800\n3,1942,16.000\n4,1942,16.100\n5,1942,16.300\n6,1942,16.300\n7,1942,16.400\n8,1942,16.500\n9,1942,16.500\n10,1942,16.700\n11,1942,16.800\n12,1942,16.900\n1,1943,16.900\n2,1943,16.900\n3,1943,17.200\n4,1943,17.400\n5,1943,17.500\n6,1943,17.500\n7,1943,17.400\n8,1943,17.300\n9,1943,17.400\n10,1943,17.400\n11,1943,17.400\n12,1943,17.400\n1,1944,17.400\n2,1944,17.400\n3,1944,17.400\n4,1944,17.500\n5,1944,17.500\n6,1944,17.600\n7,1944,17.700\n8,1944,17.700\n9,1944,17.700\n10,1944,17.700\n11,1944,17.700\n12,1944,17.800\n1,1945,17.800\n2,1945,17.800\n3,1945,17.800\n4,1945,17.800\n5,1945,17.900\n6,1945,18.100\n7,1945,18.100\n8,1945,18.100\n9,1945,18.100\n10,1945,18.100\n11,1945,18.100\n12,1945,18.200\n1,1946,18.200\n2,1946,18.100\n3,1946,18.300\n4,1946,18.400\n5,1946,18.500\n6,1946,18.700\n7,1946,19.800\n8,1946,20.200\n9,1946,20.400\n10,1946,20.800\n11,1946,21.300\n12,1946,21.500\n1,1947,21.480\n2,1947,21.620\n3,1947,22.000\n4,1947,22.000\n5,1947,21.950\n6,1947,22.080\n7,1947,22.230\n8,1947,22.400\n9,1947,22.840\n10,1947,22.910\n11,1947,23.060\n12,1947,23.410\n1,1948,23.680\n2,1948,23.670\n3,1948,23.500\n4,1948,23.820\n5,1948,24.010\n6,1948,24.150\n7,1948,24.400\n8,1948,24.430\n9,1948,24.360\n10,1948,24.310\n11,1948,24.160\n12,1948,24.050\n1,1949,24.010\n2,1949,23.910\n3,1949,23.910\n4,1949,23.920\n5,1949,23.910\n6,1949,23.920\n7,1949,23.700\n8,1949,23.700\n9,1949,23.750\n10,1949,23.670\n11,1949,23.700\n12,1949,23.610\n1,1950,23.510\n2,1950,23.610\n3,1950,23.640\n4,1950,23.650\n5,1950,23.770\n6,1950,23.880\n7,1950,24.070\n8,1950,24.200\n9,1950,24.340\n10,1950,24.500\n11,1950,24.600\n12,1950,24.980\n1,1951,25.380\n2,1951,25.830\n3,1951,25.880\n4,1951,25.920\n5,1951,25.990\n6,1951,25.930\n7,1951,25.910\n8,1951,25.860\n9,1951,26.030\n10,1951,26.160\n11,1951,26.320\n12,1951,26.470\n1,1952,26.450\n2,1952,26.410\n3,1952,26.390\n4,1952,26.460\n5,1952,26.470\n6,1952,26.530\n7,1952,26.680\n8,1952,26.690\n9,1952,26.630\n10,1952,26.690\n11,1952,26.690\n12,1952,26.710\n1,1953,26.640\n2,1953,26.590\n3,1953,26.630\n4,1953,26.690\n5,1953,26.700\n6,1953,26.770\n7,1953,26.790\n8,1953,26.850\n9,1953,26.890\n10,1953,26.950\n11,1953,26.850\n12,1953,26.870\n1,1954,26.940\n2,1954,26.990\n3,1954,26.930\n4,1954,26.860\n5,1954,26.930\n6,1954,26.940\n7,1954,26.860\n8,1954,26.850\n9,1954,26.810\n10,1954,26.720\n11,1954,26.780\n12,1954,26.770\n1,1955,26.770\n2,1955,26.820\n3,1955,26.790\n4,1955,26.790\n5,1955,26.770\n6,1955,26.710\n7,1955,26.760\n8,1955,26.720\n9,1955,26.850\n10,1955,26.820\n11,1955,26.880\n12,1955,26.870\n1,1956,26.830\n2,1956,26.860\n3,1956,26.890\n4,1956,26.930\n5,1956,27.030\n6,1956,27.150\n7,1956,27.290\n8,1956,27.310\n9,1956,27.350\n10,1956,27.510\n11,1956,27.510\n12,1956,27.630\n1,1957,27.670\n2,1957,27.800\n3,1957,27.860\n4,1957,27.930\n5,1957,28.000\n6,1957,28.110\n7,1957,28.190\n8,1957,28.280\n9,1957,28.320\n10,1957,28.320\n11,1957,28.410\n12,1957,28.470\n1,1958,28.640\n2,1958,28.700\n3,1958,28.870\n4,1958,28.940\n5,1958,28.940\n6,1958,28.910\n7,1958,28.890\n8,1958,28.940\n9,1958,28.910\n10,1958,28.910\n11,1958,28.950\n12,1958,28.970\n1,1959,29.010\n2,1959,29.000\n3,1959,28.970\n4,1959,28.980\n5,1959,29.040\n6,1959,29.110\n7,1959,29.150\n8,1959,29.180\n9,1959,29.250\n10,1959,29.350\n11,1959,29.350\n12,1959,29.410\n1,1960,29.370\n2,1960,29.410\n3,1960,29.410\n4,1960,29.540\n5,1960,29.570\n6,1960,29.610\n7,1960,29.550\n8,1960,29.610\n9,1960,29.610\n10,1960,29.750\n11,1960,29.780\n12,1960,29.810\n1,1961,29.840\n2,1961,29.840\n3,1961,29.840\n4,1961,29.810\n5,1961,29.840\n6,1961,29.840\n7,1961,29.920\n8,1961,29.940\n9,1961,29.980\n10,1961,29.980\n11,1961,29.980\n12,1961,30.010\n1,1962,30.040\n2,1962,30.110\n3,1962,30.170\n4,1962,30.210\n5,1962,30.240\n6,1962,30.210\n7,1962,30.220\n8,1962,30.280\n9,1962,30.420\n10,1962,30.380\n11,1962,30.380\n12,1962,30.380\n1,1963,30.440\n2,1963,30.480\n3,1963,30.510\n4,1963,30.480\n5,1963,30.510\n6,1963,30.610\n7,1963,30.690\n8,1963,30.750\n9,1963,30.720\n10,1963,30.750\n11,1963,30.780\n12,1963,30.880\n1,1964,30.940\n2,1964,30.910\n3,1964,30.940\n4,1964,30.950\n5,1964,30.980\n6,1964,31.010\n7,1964,31.020\n8,1964,31.050\n9,1964,31.080\n10,1964,31.120\n11,1964,31.210\n12,1964,31.250\n1,1965,31.280\n2,1965,31.280\n3,1965,31.310\n4,1965,31.380\n5,1965,31.480\n6,1965,31.610\n7,1965,31.580\n8,1965,31.550\n9,1965,31.620\n10,1965,31.650\n11,1965,31.750\n12,1965,31.850\n1,1966,31.880\n2,1966,32.080\n3,1966,32.180\n4,1966,32.280\n5,1966,32.350\n6,1966,32.380\n7,1966,32.450\n8,1966,32.650\n9,1966,32.750\n10,1966,32.850\n11,1966,32.880\n12,1966,32.920\n1,1967,32.900\n2,1967,33.000\n3,1967,33.000\n4,1967,33.100\n5,1967,33.100\n6,1967,33.300\n7,1967,33.400\n8,1967,33.500\n9,1967,33.600\n10,1967,33.700\n11,1967,33.900\n12,1967,34.000\n1,1968,34.100\n2,1968,34.200\n3,1968,34.300\n4,1968,34.400\n5,1968,34.500\n6,1968,34.700\n7,1968,34.900\n8,1968,35.000\n9,1968,35.100\n10,1968,35.300\n11,1968,35.400\n12,1968,35.600\n1,1969,35.700\n2,1969,35.800\n3,1969,36.100\n4,1969,36.300\n5,1969,36.400\n6,1969,36.600\n7,1969,36.800\n8,1969,36.900\n9,1969,37.100\n10,1969,37.300\n11,1969,37.500\n12,1969,37.700\n1,1970,37.900\n2,1970,38.100\n3,1970,38.300\n4,1970,38.500\n5,1970,38.600\n6,1970,38.800\n7,1970,38.900\n8,1970,39.000\n9,1970,39.200\n10,1970,39.400\n11,1970,39.600\n12,1970,39.800\n1,1971,39.900\n2,1971,39.900\n3,1971,40.000\n4,1971,40.100\n5,1971,40.300\n6,1971,40.500\n7,1971,40.600\n8,1971,40.700\n9,1971,40.800\n10,1971,40.900\n11,1971,41.000\n12,1971,41.100\n1,1972,41.200\n2,1972,41.400\n3,1972,41.400\n4,1972,41.500\n5,1972,41.600\n6,1972,41.700\n7,1972,41.800\n8,1972,41.900\n9,1972,42.100\n10,1972,42.200\n11,1972,42.400\n12,1972,42.500\n1,1973,42.700\n2,1973,43.000\n3,1973,43.400\n4,1973,43.700\n5,1973,43.900\n6,1973,44.200\n7,1973,44.200\n8,1973,45.000\n9,1973,45.200\n10,1973,45.600\n11,1973,45.900\n12,1973,46.300\n1,1974,46.800\n2,1974,47.300\n3,1974,47.800\n4,1974,48.100\n5,1974,48.600\n6,1974,49.000\n7,1974,49.300\n8,1974,49.900\n9,1974,50.600\n10,1974,51.000\n11,1974,51.500\n12,1974,51.900\n1,1975,52.300\n2,1975,52.600\n3,1975,52.800\n4,1975,53.000\n5,1975,53.100\n6,1975,53.500\n7,1975,54.000\n8,1975,54.200\n9,1975,54.600\n10,1975,54.900\n11,1975,55.300\n12,1975,55.600\n1,1976,55.800\n2,1976,55.900\n3,1976,56.000\n4,1976,56.100\n5,1976,56.400\n6,1976,56.700\n7,1976,57.000\n8,1976,57.300\n9,1976,57.600\n10,1976,57.900\n11,1976,58.100\n12,1976,58.400\n1,1977,58.700\n2,1977,59.300\n3,1977,59.600\n4,1977,60.000\n5,1977,60.200\n6,1977,60.500\n7,1977,60.800\n8,1977,61.100\n9,1977,61.300\n10,1977,61.600\n11,1977,62.000\n12,1977,62.300\n1,1978,62.700\n2,1978,63.000\n3,1978,63.400\n4,1978,63.900\n5,1978,64.500\n6,1978,65.000\n7,1978,65.500\n8,1978,65.900\n9,1978,66.500\n10,1978,67.100\n11,1978,67.500\n12,1978,67.900\n1,1979,68.500\n2,1979,69.200\n3,1979,69.900\n4,1979,70.600\n5,1979,71.400\n6,1979,72.200\n7,1979,73.000\n8,1979,73.700\n9,1979,74.400\n10,1979,75.200\n11,1979,76.000\n12,1979,76.900\n1,1980,78.000\n2,1980,79.000\n3,1980,80.100\n4,1980,80.900\n5,1980,81.700\n6,1980,82.500\n7,1980,82.600\n8,1980,83.200\n9,1980,83.900\n10,1980,84.700\n11,1980,85.600\n12,1980,86.400\n1,1981,87.200\n2,1981,88.000\n3,1981,88.600\n4,1981,89.100\n5,1981,89.700\n6,1981,90.500\n7,1981,91.500\n8,1981,92.200\n9,1981,93.100\n10,1981,93.400\n11,1981,93.800\n12,1981,94.100\n1,1982,94.400\n2,1982,94.700\n3,1982,94.700\n4,1982,95.000\n5,1982,95.900\n6,1982,97.000\n7,1982,97.500\n8,1982,97.700\n9,1982,97.700\n10,1982,98.100\n11,1982,98.000\n12,1982,97.700\n1,1983,97.900\n2,1983,98.000\n3,1983,98.100\n4,1983,98.800\n5,1983,99.200\n6,1983,99.400\n7,1983,99.800\n8,1983,100.100\n9,1983,100.400\n10,1983,100.800\n11,1983,101.100\n12,1983,101.400\n1,1984,102.100\n2,1984,102.600\n3,1984,102.900\n4,1984,103.300\n5,1984,103.500\n6,1984,103.700\n7,1984,104.100\n8,1984,104.400\n9,1984,104.700\n10,1984,105.100\n11,1984,105.300\n12,1984,105.500\n1,1985,105.700\n2,1985,106.300\n3,1985,106.800\n4,1985,107.000\n5,1985,107.200\n6,1985,107.500\n7,1985,107.700\n8,1985,107.900\n9,1985,108.100\n10,1985,108.500\n11,1985,109.000\n12,1985,109.500\n1,1986,109.900\n2,1986,109.700\n3,1986,109.100\n4,1986,108.700\n5,1986,109.000\n6,1986,109.400\n7,1986,109.500\n8,1986,109.600\n9,1986,110.000\n10,1986,110.200\n11,1986,110.400\n12,1986,110.800\n1,1987,111.400\n2,1987,111.800\n3,1987,112.200\n4,1987,112.700\n5,1987,113.000\n6,1987,113.500\n7,1987,113.800\n8,1987,114.300\n9,1987,114.700\n10,1987,115.000\n11,1987,115.400\n12,1987,115.600\n1,1988,116.000\n2,1988,116.200\n3,1988,116.500\n4,1988,117.200\n5,1988,117.500\n6,1988,118.000\n7,1988,118.500\n8,1988,119.000\n9,1988,119.500\n10,1988,119.900\n11,1988,120.300\n12,1988,120.700\n1,1989,121.200\n2,1989,121.600\n3,1989,122.200\n4,1989,123.100\n5,1989,123.700\n6,1989,124.100\n7,1989,124.500\n8,1989,124.500\n9,1989,124.800\n10,1989,125.400\n11,1989,125.900\n12,1989,126.300\n1,1990,127.500\n2,1990,128.000\n3,1990,128.600\n4,1990,128.900\n5,1990,129.100\n6,1990,129.900\n7,1990,130.500\n8,1990,131.600\n9,1990,132.500\n10,1990,133.400\n11,1990,133.700\n12,1990,134.200\n1,1991,134.700\n2,1991,134.800\n3,1991,134.800\n4,1991,135.100\n5,1991,135.600\n6,1991,136.000\n7,1991,136.200\n8,1991,136.600\n9,1991,137.000\n10,1991,137.200\n11,1991,137.800\n12,1991,138.200\n1,1992,138.300\n2,1992,138.600\n3,1992,139.100\n4,1992,139.400\n5,1992,139.700\n6,1992,140.100\n7,1992,140.500\n8,1992,140.800\n9,1992,141.100\n10,1992,141.700\n11,1992,142.100\n12,1992,142.300\n1,1993,142.800\n2,1993,143.100\n3,1993,143.300\n4,1993,143.800\n5,1993,144.200\n6,1993,144.300\n7,1993,144.500\n8,1993,144.800\n9,1993,145.000\n10,1993,145.600\n11,1993,146.000\n12,1993,146.300\n1,1994,146.300\n2,1994,146.700\n3,1994,147.100\n4,1994,147.200\n5,1994,147.500\n6,1994,147.900\n7,1994,148.400\n8,1994,149.000\n9,1994,149.300\n10,1994,149.400\n11,1994,149.800\n12,1994,150.100\n1,1995,150.500\n2,1995,150.900\n3,1995,151.200\n4,1995,151.800\n5,1995,152.100\n6,1995,152.400\n7,1995,152.600\n8,1995,152.900\n9,1995,153.100\n10,1995,153.500\n11,1995,153.700\n12,1995,153.900\n1,1996,154.700\n2,1996,155.000\n3,1996,155.500\n4,1996,156.100\n5,1996,156.400\n6,1996,156.700\n7,1996,157.000\n8,1996,157.200\n9,1996,157.700\n10,1996,158.200\n11,1996,158.700\n12,1996,159.100\n1,1997,159.400\n2,1997,159.700\n3,1997,159.800\n4,1997,159.900\n5,1997,159.900\n6,1997,160.200\n7,1997,160.400\n8,1997,160.800\n9,1997,161.200\n10,1997,161.500\n11,1997,161.700\n12,1997,161.800\n1,1998,162.000\n2,1998,162.000\n3,1998,162.000\n4,1998,162.200\n5,1998,162.600\n6,1998,162.800\n7,1998,163.200\n8,1998,163.400\n9,1998,163.500\n10,1998,163.900\n11,1998,164.100\n12,1998,164.400\n1,1999,164.700\n2,1999,164.700\n3,1999,164.800\n4,1999,165.900\n5,1999,166.000\n6,1999,166.000\n7,1999,166.700\n8,1999,167.100\n9,1999,167.800\n10,1999,168.100\n11,1999,168.400\n12,1999,168.800\n1,2000,169.300\n2,2000,170.000\n3,2000,171.000\n4,2000,170.900\n5,2000,171.200\n6,2000,172.200\n7,2000,172.700\n8,2000,172.700\n9,2000,173.600\n10,2000,173.900\n11,2000,174.200\n12,2000,174.600\n1,2001,175.600\n2,2001,176.000\n3,2001,176.100\n4,2001,176.400\n5,2001,177.300\n6,2001,177.700\n7,2001,177.400\n8,2001,177.400\n9,2001,178.100\n10,2001,177.600\n11,2001,177.500\n12,2001,177.400\n1,2002,177.700\n2,2002,178.000\n3,2002,178.500\n4,2002,179.300\n5,2002,179.500\n6,2002,179.600\n7,2002,180.000\n8,2002,180.500\n9,2002,180.800\n10,2002,181.200\n11,2002,181.500\n12,2002,181.800\n1,2003,182.600\n2,2003,183.600\n3,2003,183.900\n4,2003,183.200\n5,2003,182.900\n6,2003,183.100\n7,2003,183.700\n8,2003,184.500\n9,2003,185.100\n10,2003,184.900\n11,2003,185.000\n12,2003,185.500\n1,2004,186.300\n2,2004,186.700\n3,2004,187.100\n4,2004,187.400\n5,2004,188.200\n6,2004,188.900\n7,2004,189.100\n8,2004,189.200\n9,2004,189.800\n10,2004,190.800\n11,2004,191.700\n12,2004,191.700\n1,2005,191.600\n2,2005,192.400\n3,2005,193.100\n4,2005,193.700\n5,2005,193.600\n6,2005,193.700\n7,2005,194.900\n8,2005,196.100\n9,2005,198.800\n10,2005,199.100\n11,2005,198.100\n12,2005,198.100\n1,2006,199.300\n2,2006,199.400\n3,2006,199.700\n4,2006,200.700\n5,2006,201.300\n6,2006,201.800\n7,2006,202.900\n8,2006,203.800\n9,2006,202.800\n10,2006,201.900\n11,2006,202.000\n12,2006,203.100\n1,2007,203.437\n2,2007,204.226\n3,2007,205.288\n4,2007,205.904\n5,2007,206.755\n6,2007,207.234\n7,2007,207.603\n8,2007,207.667\n9,2007,208.547\n10,2007,209.190\n11,2007,210.834\n12,2007,211.445\n1,2008,212.174\n2,2008,212.687\n3,2008,213.448\n4,2008,213.942\n5,2008,215.208\n6,2008,217.463\n7,2008,219.016\n8,2008,218.690\n9,2008,218.877\n10,2008,216.995\n11,2008,213.153\n12,2008,211.398\n1,2009,211.933\n2,2009,212.705\n3,2009,212.495\n4,2009,212.709\n5,2009,213.022\n6,2009,214.790\n7,2009,214.726\n8,2009,215.445\n9,2009,215.861\n10,2009,216.509\n11,2009,217.234\n12,2009,217.347\n1,2010,217.488\n2,2010,217.281\n3,2010,217.353\n4,2010,217.403\n5,2010,217.290\n6,2010,217.199\n7,2010,217.605\n8,2010,217.923\n9,2010,218.275\n10,2010,219.035\n11,2010,219.590\n12,2010,220.472\n1,2011,221.187\n2,2011,221.898\n3,2011,223.046\n4,2011,224.093\n5,2011,224.806\n6,2011,224.806\n7,2011,225.395\n8,2011,226.106\n9,2011,226.597\n10,2011,226.750\n11,2011,227.169\n12,2011,227.223\n1,2012,227.842\n2,2012,228.329\n3,2012,228.807\n4,2012,229.187\n5,2012,228.713\n6,2012,228.524\n7,2012,228.590\n8,2012,229.918\n9,2012,231.015\n10,2012,231.638\n11,2012,231.249\n12,2012,231.221\n1,2013,231.679\n2,2013,232.937\n3,2013,232.282\n4,2013,231.797\n5,2013,231.893\n6,2013,232.445\n7,2013,232.900\n8,2013,233.456\n9,2013,233.544\n10,2013,233.669\n11,2013,234.100\n12,2013,234.719\n1,2014,235.288\n2,2014,235.547\n3,2014,236.028\n4,2014,236.468\n5,2014,236.918\n6,2014,237.231\n7,2014,237.498\n8,2014,237.460\n9,2014,237.477\n10,2014,237.430\n11,2014,236.983\n12,2014,236.252\n1,2015,234.718\n2,2015,235.236\n3,2015,236.005\n4,2015,236.156\n5,2015,236.974\n6,2015,237.684\n7,2015,238.053\n8,2015,238.028\n9,2015,237.506\n10,2015,237.781\n11,2015,238.016\n12,2015,237.817\n1,2016,237.833\n2,2016,237.469\n3,2016,238.038\n4,2016,238.827\n5,2016,239.464\n6,2016,240.167\n7,2016,240.150\n8,2016,240.602\n9,2016,241.051\n10,2016,241.691\n11,2016,242.029\n12,2016,242.772\n1,2017,243.780\n2,2017,243.961\n3,2017,243.749\n4,2017,244.051\n5,2017,243.962\n6,2017,244.182\n7,2017,244.390\n8,2017,245.297\n9,2017,246.418\n10,2017,246.587\n11,2017,247.332\n12,2017,247.901\n1,2018,248.884\n2,2018,249.369\n3,2018,249.498\n4,2018,249.956\n5,2018,250.646\n6,2018,251.134\n7,2018,251.597\n8,2018,251.879\n9,2018,252.010\n10,2018,252.794\n11,2018,252.760\n12,2018,252.723\n1,2019,252.673\n2,2019,253.113\n3,2019,254.148\n4,2019,254.958\n5,2019,255.325\n6,2019,255.361\n7,2019,255.900\n8,2019,256.179\n9,2019,256.596\n10,2019,257.305\n11,2019,257.788\n12,2019,258.263\n1,2020,258.682\n2,2020,259.007\n3,2020,258.165\n4,2020,256.094\n5,2020,255.944\n6,2020,257.217\n7,2020,258.543\n8,2020,259.580\n9,2020,260.190\n10,2020,260.352\n11,2020,260.721\n12,2020,261.560\n1,2021,262.518\n2,2021,263.583\n3,2021,264.910\n4,2021,266.752\n5,2021,268.452\n6,2021,270.664\n7,2021,271.994\n8,2021,272.789\n9,2021,273.887\n10,2021,276.434\n11,2021,278.799\n12,2021,280.808\n1,2022,282.390\n2,2022,284.535\n3,2022,287.553\n4,2022,288.764\n5,2022,291.359\n6,2022,294.996\n7,2022,294.977\n8,2022,295.209\n9,2022,296.341\n10,2022,297.863\n11,2022,298.648\n12,2022,298.812\n1,2023,300.356\n2,2023,301.509\n3,2023,301.744\n4,2023,303.032\n5,2023,303.365\n6,2023,304.003\n7,2023,304.628\n8,2023,306.187\n9,2023,307.288\n10,2023,307.531\n11,2023,308.024\n12,2023,308.742\n1,2024,309.685\n2,2024,311.054\n3,2024,312.230\n4,2024,313.207\n5,2024,313.225\n6,2024,313.049\n7,2024,313.534\n8,2024,314.121\n9,2024,314.686\n10,2024,315.454\n11,2024,316.441\n12,2024,317.685\n1,2025,319.086\n2,2025,319.775\n3,2025,319.615\n4,2025,320.321\n5,2025,320.580\n6,2025,321.500\n7,2025,322.132\n8,2025,323.364\n9,2025,324.368\n10,2025,324.699\n11,2025,325.031\n12,2025,326.030\n`,
        'ch_inflation': `1,1921,215.7\n2,1921,213.2\n3,1921,210.3\n4,1921,208.2\n5,1921,203.3\n6,1921,199.5\n7,1921,197.5\n8,1921,196.6\n9,1921,194.3\n10,1921,192.2\n11,1921,188.4\n12,1921,183.8\n1,1922,183.2\n2,1922,175.8\n3,1922,168.7\n4,1922,163.6\n5,1922,159.5\n6,1922,159.2\n7,1922,159.6\n8,1922,158.3\n9,1922,158.4\n10,1922,159.6\n11,1922,160.7\n12,1922,160.6\n1,1923,160.9\n2,1923,159.6\n3,1923,160.4\n4,1923,161.7\n5,1923,163.2\n6,1923,164.7\n7,1923,164.7\n8,1923,164.7\n9,1923,164.8\n10,1923,165.3\n11,1923,167.5\n12,1923,168.3\n1,1924,169\n2,1924,168.2\n3,1924,168.2\n4,1924,167.4\n5,1924,167.1\n6,1924,167.6\n7,1924,168.1\n8,1924,168\n9,1924,168.2\n10,1924,170.8\n11,1924,171.5\n12,1924,171.1\n1,1925,169.7\n2,1925,169.6\n3,1925,169.3\n4,1925,168.3\n5,1925,168\n6,1925,168.1\n7,1925,167.9\n8,1925,168\n9,1925,168.4\n10,1925,167.3\n11,1925,167.2\n12,1925,166.8\n1,1926,165.8\n2,1926,164.3\n3,1926,163.4\n4,1926,162\n5,1926,161.8\n6,1926,161.7\n7,1926,161.6\n8,1926,160.8\n9,1926,161.1\n10,1926,161.4\n11,1926,161\n12,1926,160.9\n1,1927,160.2\n2,1927,159.7\n3,1927,158.8\n4,1927,158\n5,1927,159.6\n6,1927,160.4\n7,1927,160\n8,1927,159.8\n9,1927,161.2\n10,1927,161.5\n11,1927,162.3\n12,1927,162\n1,1928,161.3\n2,1928,160.6\n3,1928,159.8\n4,1928,160.1\n5,1928,160.4\n6,1928,160.8\n7,1928,161.1\n8,1928,160.6\n9,1928,161\n10,1928,162\n11,1928,162.3\n12,1928,162.2\n1,1929,161.3\n2,1929,161.3\n3,1929,160.6\n4,1929,159.3\n5,1929,160\n6,1929,161\n7,1929,160.8\n8,1929,161.6\n9,1929,162.5\n10,1929,162.5\n11,1929,162\n12,1929,161.5\n1,1930,160.6\n2,1930,159.8\n3,1930,159.4\n4,1930,157.9\n5,1930,157.8\n6,1930,158.3\n7,1930,158.6\n8,1930,158.8\n9,1930,158.7\n10,1930,157.7\n11,1930,157.3\n12,1930,156.2\n1,1931,155.6\n2,1931,154.7\n3,1931,153.1\n4,1931,150.6\n5,1931,150.3\n6,1931,150.2\n7,1931,149.9\n8,1931,149.2\n9,1931,149.2\n10,1931,147.6\n11,1931,146.7\n12,1931,144.8\n1,1932,143.7\n2,1932,142.3\n3,1932,141.7\n4,1932,139.7\n5,1932,138.7\n6,1932,138.3\n7,1932,137.6\n8,1932,137\n9,1932,136.4\n10,1932,136.2\n11,1932,135.5\n12,1932,134.4\n1,1933,133.4\n2,1933,132.8\n3,1933,132.1\n4,1933,131.2\n5,1933,130.5\n6,1933,130.8\n7,1933,130.7\n8,1933,130.7\n9,1933,131.2\n10,1933,131.2\n11,1933,131.4\n12,1933,131.3\n1,1934,131.1\n2,1934,130.8\n3,1934,130.1\n4,1934,129.9\n5,1934,129.2\n6,1934,129.5\n7,1934,129\n8,1934,128.7\n9,1934,128.8\n10,1934,128.8\n11,1934,129\n12,1934,128.8\n1,1935,128\n2,1935,127.5\n3,1935,127.2\n4,1935,126.6\n5,1935,126.3\n6,1935,127.3\n7,1935,128.2\n8,1935,128.7\n9,1935,128.8\n10,1935,129.3\n11,1935,129.9\n12,1935,130\n1,1936,129.7\n2,1936,129.5\n3,1936,129.7\n4,1936,129.9\n5,1936,129.5\n6,1936,130.1\n7,1936,130.2\n8,1936,130.2\n9,1936,130.5\n10,1936,131.6\n11,1936,132\n12,1936,132\n1,1937,133.5\n2,1937,136.4\n3,1937,136.3\n4,1937,136.7\n5,1937,136.3\n6,1937,137.2\n7,1937,137.1\n8,1937,137\n9,1937,137\n10,1937,137.6\n11,1937,137.8\n12,1937,137.8\n1,1938,137.8\n2,1938,137.4\n3,1938,137\n4,1938,136.5\n5,1938,136.3\n6,1938,136.9\n7,1938,136.8\n8,1938,136.4\n9,1938,137.3\n10,1938,137.1\n11,1938,137.1\n12,1938,136.9\n1,1939,136.6\n2,1939,136\n3,1939,135.9\n4,1939,136.4\n5,1939,136.7\n6,1939,137.4\n7,1939,137.5\n8,1939,137.2\n9,1939,138.2\n10,1939,140.5\n11,1939,141.7\n12,1939,142\n1,1940,144.2\n2,1940,144.6\n3,1940,144.8\n4,1940,147.3\n5,1940,148.2\n6,1940,149.6\n7,1940,150.6\n8,1940,151\n9,1940,153.2\n10,1940,156.7\n11,1940,159.2\n12,1940,159.9\n1,1941,162.9\n2,1941,162.9\n3,1941,163.7\n4,1941,168.7\n5,1941,171.2\n6,1941,174.8\n7,1941,177.1\n8,1941,177.7\n9,1941,178.2\n10,1941,181.7\n11,1941,183.8\n12,1941,184.3\n1,1942,186.3\n2,1942,187.9\n3,1942,188.7\n4,1942,191.1\n5,1942,192.3\n6,1942,192.7\n7,1942,195.6\n8,1942,195.2\n9,1942,195.4\n10,1942,197.4\n11,1942,198.6\n12,1942,199.6\n1,1943,200.8\n2,1943,201.2\n3,1943,201.4\n4,1943,202.6\n5,1943,202.7\n6,1943,203.3\n7,1943,203.9\n8,1943,203.5\n9,1943,204.2\n10,1943,204.9\n11,1943,205.1\n12,1943,205.3\n1,1944,205.6\n2,1944,205.9\n3,1944,206.4\n4,1944,207.1\n5,1944,207.5\n6,1944,208.2\n7,1944,208.8\n8,1944,208\n9,1944,208\n10,1944,208.2\n11,1944,208.2\n12,1944,208.2\n1,1945,208.5\n2,1945,208.7\n3,1945,208.8\n4,1945,209.3\n5,1945,209.6\n6,1945,210.3\n7,1945,210.5\n8,1945,210\n9,1945,209.7\n10,1945,208.3\n11,1945,206.7\n12,1945,206.7\n1,1946,206.8\n2,1946,205.9\n3,1946,204.9\n4,1946,205.1\n5,1946,206.4\n6,1946,207.3\n7,1946,207.1\n8,1946,207.2\n9,1946,207.3\n10,1946,211.5\n11,1946,211.8\n12,1946,212\n1,1947,212.3\n2,1947,212.2\n3,1947,212.3\n4,1947,213.2\n5,1947,216.2\n6,1947,217.4\n7,1947,217.4\n8,1947,217.5\n9,1947,217.8\n10,1947,222.7\n11,1947,223\n12,1947,223.3\n1,1948,223.6\n2,1948,223.5\n3,1948,222.9\n4,1948,222.9\n5,1948,223.1\n6,1948,223.7\n7,1948,223\n8,1948,222.7\n9,1948,223.1\n10,1948,223.2\n11,1948,226.3\n12,1948,224.6\n1,1949,223.8\n2,1949,223\n3,1949,222\n4,1949,221.2\n5,1949,221.5\n6,1949,222\n7,1949,221.3\n8,1949,221.4\n9,1949,222\n10,1949,221.3\n11,1949,220.9\n12,1949,220.3\n1,1950,218\n2,1950,217.2\n3,1950,216.8\n4,1950,215.9\n5,1950,216.8\n6,1950,217\n7,1950,217\n8,1950,218.3\n9,1950,219.2\n10,1950,220.3\n11,1950,220.5\n12,1950,220.3\n1,1951,222.3\n2,1951,223\n3,1951,222.8\n4,1951,225.3\n5,1951,227.6\n6,1951,228.1\n7,1951,229.2\n8,1951,230.6\n9,1951,231.3\n10,1951,232.9\n11,1951,234.1\n12,1951,234.3\n1,1952,233.6\n2,1952,234.1\n3,1952,234.1\n4,1952,233.2\n5,1952,234.1\n6,1952,234.8\n7,1952,234.3\n8,1952,234.8\n9,1952,235.3\n10,1952,234.6\n11,1952,234.8\n12,1952,234.6\n1,1953,233.2\n2,1953,232.7\n3,1953,232.5\n4,1953,231.8\n5,1953,232.7\n6,1953,232.9\n7,1953,232.7\n8,1953,232.9\n9,1953,233.6\n10,1953,233.8\n11,1953,233.8\n12,1953,233.3\n1,1954,232.8\n2,1954,232.3\n3,1954,232.1\n4,1954,232.3\n5,1954,233\n6,1954,233.5\n7,1954,234.2\n8,1954,235.1\n9,1954,235.6\n10,1954,236.3\n11,1954,237\n12,1954,236.8\n1,1955,236.1\n2,1955,235.4\n3,1955,235.4\n4,1955,235.6\n5,1955,236.4\n6,1955,236.4\n7,1955,236.5\n8,1955,237.1\n9,1955,237.5\n10,1955,237.9\n11,1955,238.2\n12,1955,238.2\n1,1956,236.8\n2,1956,237.4\n3,1956,238\n4,1956,237.6\n5,1956,240.1\n6,1956,240.6\n7,1956,240.9\n8,1956,241.7\n9,1956,242.2\n10,1956,242.4\n11,1956,243.1\n12,1956,243.4\n1,1957,243\n2,1957,242.6\n3,1957,241.9\n4,1957,242.7\n5,1957,244.2\n6,1957,244.4\n7,1957,244.9\n8,1957,246.3\n9,1957,246.8\n10,1957,247.6\n11,1957,248.3\n12,1957,248.3\n1,1958,247.6\n2,1958,247.6\n3,1958,247.6\n4,1958,247.9\n5,1958,250\n6,1958,250.3\n7,1958,250.3\n8,1958,250.5\n9,1958,250.9\n10,1958,250.8\n11,1958,250.9\n12,1958,250.5\n1,1959,249\n2,1959,248.2\n3,1959,247.8\n4,1959,246.8\n5,1959,247.1\n6,1959,246.8\n7,1959,246.8\n8,1959,247.6\n9,1959,248.5\n10,1959,248.9\n11,1959,249.2\n12,1959,249\n1,1960,248.3\n2,1960,249.6\n3,1960,249.6\n4,1960,250\n5,1960,251.1\n6,1960,251.4\n7,1960,252\n8,1960,252.6\n9,1960,253.3\n10,1960,253.7\n11,1960,253.7\n12,1960,253.4\n1,1961,252.7\n2,1961,252.9\n3,1961,252.9\n4,1961,252.9\n5,1961,254.8\n6,1961,255.2\n7,1961,255.7\n8,1961,257\n9,1961,257.4\n10,1961,258.5\n11,1961,262.1\n12,1961,262.3\n1,1962,262.6\n2,1962,263.3\n3,1962,263.7\n4,1962,264.9\n5,1962,267\n6,1962,267.7\n7,1962,268.5\n8,1962,269.6\n9,1962,269.5\n10,1962,269\n11,1962,270.3\n12,1962,270.8\n1,1963,271.7\n2,1963,273.3\n3,1963,273.3\n4,1963,273.7\n5,1963,275.4\n6,1963,276\n7,1963,276.6\n8,1963,277.4\n9,1963,278.2\n10,1963,279.3\n11,1963,281\n12,1963,281.3\n1,1964,281.5\n2,1964,281.9\n3,1964,282.1\n4,1964,283.9\n5,1964,285.4\n6,1964,285\n7,1964,285.1\n8,1964,285.8\n9,1964,286.3\n10,1964,287.2\n11,1964,287.4\n12,1964,287.8\n1,1965,288.1\n2,1965,289.1\n3,1965,289.2\n4,1965,290.2\n5,1965,293.3\n6,1965,294.4\n7,1965,295.3\n8,1965,296.9\n9,1965,297.7\n10,1965,298.7\n11,1965,301.3\n12,1965,302\n1,1966,303.6\n2,1966,304.4\n3,1966,304.9\n4,1966,305.3\n5,1966,309.1\n6,1966,308.7\n7,1966,308.7\n8,1966,309.7\n9,1966,309.9\n10,1966,310.5\n11,1966,314.2\n12,1966,315.8\n1,1967,316.7\n2,1967,316.1\n3,1967,316.1\n4,1967,316.4\n5,1967,319.8\n6,1967,322\n7,1967,323.2\n8,1967,324.5\n9,1967,323.2\n10,1967,322.9\n11,1967,326\n12,1967,326.9\n1,1968,327.6\n2,1968,328.2\n3,1968,326.9\n4,1968,326.6\n5,1968,327.6\n6,1968,327.9\n7,1968,327.6\n8,1968,328.5\n9,1968,328.8\n10,1968,330\n11,1968,333.1\n12,1968,334.1\n1,1969,335\n2,1969,335.6\n3,1969,335\n4,1969,334.4\n5,1969,335.9\n6,1969,337.5\n7,1969,337.5\n8,1969,336.9\n9,1969,337.2\n10,1969,337.8\n11,1969,340.6\n12,1969,341.8\n1,1970,342.7\n2,1970,342.7\n3,1970,343.4\n4,1970,343.1\n5,1970,346.5\n6,1970,348\n7,1970,348.9\n8,1970,350.2\n9,1970,352.4\n10,1970,354.2\n11,1970,358.9\n12,1970,360.4\n1,1971,362.6\n2,1971,364.1\n3,1971,366.3\n4,1971,366.6\n5,1971,370.6\n6,1971,371\n7,1971,372.5\n8,1971,373.1\n9,1971,375.9\n10,1971,377.5\n11,1971,382.4\n12,1971,384.3\n1,1972,386.8\n2,1972,388.6\n3,1972,389.5\n4,1972,389.9\n5,1972,393.9\n6,1972,396.1\n7,1972,396.4\n8,1972,397.9\n9,1972,401.3\n10,1972,405\n11,1972,408.4\n12,1972,410.6\n1,1973,415.3\n2,1973,418.1\n3,1973,421.5\n4,1973,422.4\n5,1973,425.5\n6,1973,428.6\n7,1973,429.2\n8,1973,430.8\n9,1973,434.5\n10,1973,443.5\n11,1973,452.8\n12,1973,459.6\n1,1974,463.3\n2,1974,459.9\n3,1974,462.1\n4,1974,459.3\n5,1974,467.3\n6,1974,469.8\n7,1974,471.4\n8,1974,476\n9,1974,483.8\n10,1974,486.9\n11,1974,493.7\n12,1974,494.3\n1,1975,497.1\n2,1975,498.6\n3,1975,500.5\n4,1975,501.7\n5,1975,505.4\n6,1975,507.3\n7,1975,506.4\n8,1975,507.9\n9,1975,509.8\n10,1975,510.4\n11,1975,512\n12,1975,511.3\n1,1976,514.1\n2,1976,513.8\n3,1976,512.9\n4,1976,512.9\n5,1976,512\n6,1976,512.9\n7,1976,513.8\n8,1976,515.7\n9,1976,514.4\n10,1976,515.7\n11,1976,516.6\n12,1976,517.8\n1,1977,518.8\n2,1977,519.1\n3,1977,518.2\n4,1977,518.8\n5,1977,518.5\n6,1977,521.9\n7,1977,522.2\n8,1977,522.2\n9,1977,522.5\n10,1977,523.6\n11,1977,523.2\n12,1977,523.8\n1,1978,524.1\n2,1978,524.6\n3,1978,525.2\n4,1978,526.2\n5,1978,526.9\n6,1978,527.8\n7,1978,527.9\n8,1978,528.1\n9,1978,526.8\n10,1978,525.8\n11,1978,526.5\n12,1978,527.6\n1,1979,529.6\n2,1979,535.4\n3,1979,538.3\n4,1979,539.7\n5,1979,541.6\n6,1979,549.2\n7,1979,550.5\n8,1979,549.5\n9,1979,552.1\n10,1979,551.9\n11,1979,554\n12,1979,555\n1,1980,556.7\n2,1980,557.5\n3,1980,559.2\n4,1980,561.7\n5,1980,565.1\n6,1980,567.1\n7,1980,568.9\n8,1980,572.7\n9,1980,573\n10,1980,571.9\n11,1980,577.4\n12,1980,579.4\n1,1981,585\n2,1981,590.7\n3,1981,594.7\n4,1981,593.4\n5,1981,598.9\n6,1981,602.7\n7,1981,606.3\n8,1981,615.3\n9,1981,615.8\n10,1981,613.7\n11,1981,617.9\n12,1981,617.8\n1,1982,620.8\n2,1982,621.8\n3,1982,622.9\n4,1982,626.4\n5,1982,634.5\n6,1982,640.1\n7,1982,642.5\n8,1982,647.4\n9,1982,649.9\n10,1982,651.6\n11,1982,653.4\n12,1982,651.5\n1,1983,650.5\n2,1983,651.4\n3,1983,652.7\n4,1983,654.7\n5,1983,655.3\n6,1983,657.9\n7,1983,656.7\n8,1983,658.5\n9,1983,659.3\n10,1983,660.9\n11,1983,665.1\n12,1983,665.4\n1,1984,667.8\n2,1984,670.2\n3,1984,674.6\n4,1984,675.5\n5,1984,674.2\n6,1984,676.3\n7,1984,675.1\n8,1984,677.6\n9,1984,677.1\n10,1984,681.4\n11,1984,685\n12,1984,684.7\n1,1985,691.4\n2,1985,697.1\n3,1985,700.9\n4,1985,700.1\n5,1985,699.6\n6,1985,699.3\n7,1985,697.8\n8,1985,697.6\n9,1985,699.8\n10,1985,701.5\n11,1985,706.5\n12,1985,706.9\n1,1986,706.6\n2,1986,706.4\n3,1986,707.3\n4,1986,706.9\n5,1986,704.8\n6,1986,704.6\n7,1986,701.3\n8,1986,702.6\n9,1986,703.9\n10,1986,704.1\n11,1986,705.8\n12,1986,707.2\n1,1987,711.3\n2,1987,713.4\n3,1987,714.4\n4,1987,715.3\n5,1987,711.3\n6,1987,713.6\n7,1987,713.8\n8,1987,716.5\n9,1987,714.8\n10,1987,718\n11,1987,720.6\n12,1987,720.6\n1,1988,722.4\n2,1988,725.9\n3,1988,727.6\n4,1988,729\n5,1988,727.2\n6,1988,728.3\n7,1988,726.7\n8,1988,729.2\n9,1988,729.4\n10,1988,730.6\n11,1988,733.3\n12,1988,734.6\n1,1989,738.6\n2,1989,742.3\n3,1989,744.3\n4,1989,748.2\n5,1989,748.8\n6,1989,750\n7,1989,748.4\n8,1989,750.9\n9,1989,754.1\n10,1989,757.1\n11,1989,765.8\n12,1989,771.5\n1,1990,776\n2,1990,778.5\n3,1990,781.2\n4,1990,782.8\n5,1990,786.6\n6,1990,787.7\n7,1990,788.1\n8,1990,796.5\n9,1990,800.3\n10,1990,805.2\n11,1990,812.2\n12,1990,812.2\n1,1991,818.8\n2,1991,826.9\n3,1991,827\n4,1991,829\n5,1991,836\n6,1991,839.5\n7,1991,839.7\n8,1991,844.1\n9,1991,845.7\n10,1991,846.5\n11,1991,856.7\n12,1991,854.6\n1,1992,858.6\n2,1992,864.8\n3,1992,867.3\n4,1992,868.7\n5,1992,871\n6,1992,874.4\n7,1992,871.8\n8,1992,874.1\n9,1992,875.1\n10,1992,876.4\n11,1992,884.8\n12,1992,883.9\n1,1993,888.4\n2,1993,894.1\n3,1993,898.9\n4,1993,901.6\n5,1993,902.1\n6,1993,901.9\n7,1993,901.3\n8,1993,905.8\n9,1993,905.2\n10,1993,905.9\n11,1993,904.7\n12,1993,905.8\n1,1994,906.9\n2,1994,910.5\n3,1994,910.6\n4,1994,911\n5,1994,905.4\n6,1994,906.8\n7,1994,906.6\n8,1994,910.2\n9,1994,910.6\n10,1994,909.8\n11,1994,909.8\n12,1994,909.6\n1,1995,916.1\n2,1995,924.2\n3,1995,924.8\n4,1995,925.6\n5,1995,923.8\n6,1995,925.7\n7,1995,925\n8,1995,928\n9,1995,928.8\n10,1995,927.8\n11,1995,927.1\n12,1995,927.3\n1,1996,930\n2,1996,931.5\n3,1996,933.1\n4,1996,934\n5,1996,930.6\n6,1996,932.4\n7,1996,931.1\n8,1996,933.5\n9,1996,934.1\n10,1996,935.6\n11,1996,933.8\n12,1996,934.6\n1,1997,937.7\n2,1997,939.3\n3,1997,938\n4,1997,938.9\n5,1997,936\n6,1997,936.9\n7,1997,935.9\n8,1997,938\n9,1997,937.9\n10,1997,938\n11,1997,937.7\n12,1997,938.2\n1,1998,937.8\n2,1998,939\n3,1998,938.3\n4,1998,938.7\n5,1998,936.7\n6,1998,937.9\n7,1998,936.6\n8,1998,939.3\n9,1998,938.5\n10,1998,938.3\n11,1998,936.8\n12,1998,936.6\n1,1999,938.5\n2,1999,941.7\n3,1999,942.7\n4,1999,944.3\n5,1999,942.1\n6,1999,943.2\n7,1999,943.5\n8,1999,948.1\n9,1999,949.9\n10,1999,949.9\n11,1999,949\n12,1999,952.2\n1,2000,953.4\n2,2000,957\n3,2000,956.7\n4,2000,957.5\n5,2000,957\n6,2000,960.6\n7,2000,961.3\n8,2000,958.8\n9,2000,963.6\n10,2000,962.6\n11,2000,967.2\n12,2000,966.4\n1,2001,965.8\n2,2001,964.4\n3,2001,966\n4,2001,968.7\n5,2001,973.9\n6,2001,975.8\n7,2001,974.3\n8,2001,968.9\n9,2001,970.1\n10,2001,968.7\n11,2001,969.9\n12,2001,969.6\n1,2002,970.8\n2,2002,970.8\n3,2002,970.9\n4,2002,979.3\n5,2002,980.2\n6,2002,978.9\n7,2002,973.8\n8,2002,973.5\n9,2002,974.9\n10,2002,980.6\n11,2002,978.8\n12,2002,978.2\n1,2003,979\n2,2003,980\n3,2003,983.9\n4,2003,985.9\n5,2003,984.3\n6,2003,984.3\n7,2003,976.4\n8,2003,978.7\n9,2003,980.1\n10,2003,985.1\n11,2003,983.8\n12,2003,984\n1,2004,980.7\n2,2004,980.9\n3,2004,983\n4,2004,991.3\n5,2004,993.5\n6,2004,995.3\n7,2004,984.8\n8,2004,988.5\n9,2004,988.5\n10,2004,997.8\n11,2004,998.8\n12,2004,997.1\n1,2005,992.5\n2,2005,994.7\n3,2005,997.1\n4,2005,1005.3\n5,2005,1004.3\n6,2005,1002\n7,2005,996.6\n8,2005,998\n9,2005,1002.4\n10,2005,1011.1\n11,2005,1008.3\n12,2005,1007.2\n1,2006,1005.3\n2,2006,1008.5\n3,2006,1007.4\n4,2006,1015.9\n5,2006,1018\n6,2006,1017.7\n7,2006,1010.8\n8,2006,1012.5\n9,2006,1010.3\n10,2006,1013.7\n11,2006,1013.3\n12,2006,1013.4\n1,2007,1006.4\n2,2007,1008.3\n3,2007,1009.1\n4,2007,1020.6\n5,2007,1022.9\n6,2007,1024.1\n7,2007,1018\n8,2007,1016.9\n9,2007,1017.9\n10,2007,1026.6\n11,2007,1031.2\n12,2007,1033.7\n1,2008,1030.8\n2,2008,1032.2\n3,2008,1035.7\n4,2008,1043.9\n5,2008,1052.1\n6,2008,1053.9\n7,2008,1049.3\n8,2008,1046.6\n9,2008,1047.7\n10,2008,1053.2\n11,2008,1046.2\n12,2008,1041\n1,2009,1032.2\n2,2009,1034.6\n3,2009,1031.3\n4,2009,1040.4\n5,2009,1042\n6,2009,1043.9\n7,2009,1037\n8,2009,1038.1\n9,2009,1038\n10,2009,1044.4\n11,2009,1046.5\n12,2009,1043.9\n1,2010,1042.8\n2,2010,1044.3\n3,2010,1045.7\n4,2010,1054.7\n5,2010,1053.6\n6,2010,1049\n7,2010,1041.3\n8,2010,1041.2\n9,2010,1040.9\n10,2010,1046.5\n11,2010,1049\n12,2010,1049.4\n1,2011,1045.7\n2,2011,1049.6\n3,2011,1056.2\n4,2011,1057.4\n5,2011,1057.5\n6,2011,1054.9\n7,2011,1046.2\n8,2011,1043.2\n9,2011,1046\n10,2011,1045.3\n11,2011,1043.5\n12,2011,1041.9\n1,2012,1037.4\n2,2012,1040.3\n3,2012,1046.1\n4,2012,1046.9\n5,2012,1046.7\n6,2012,1043.8\n7,2012,1038.8\n8,2012,1038.4\n9,2012,1041.7\n10,2012,1043\n11,2012,1039.6\n12,2012,1037.3\n1,2013,1034.6\n2,2013,1037.7\n3,2013,1039.9\n4,2013,1040.3\n5,2013,1041.4\n6,2013,1042.5\n7,2013,1038.7\n8,2013,1038\n9,2013,1041.1\n10,2013,1040.3\n11,2013,1040.4\n12,2013,1038\n1,2014,1035.2\n2,2014,1036.2\n3,2014,1040\n4,2014,1040.7\n5,2014,1043.7\n6,2014,1043\n7,2014,1039.1\n8,2014,1038.7\n9,2014,1040.2\n10,2014,1040.2\n11,2014,1039.8\n12,2014,1034.6\n1,2015,1030.2\n2,2015,1027.5\n3,2015,1030.9\n4,2015,1029\n5,2015,1031.4\n6,2015,1032.1\n7,2015,1025.8\n8,2015,1024.2\n9,2015,1025.2\n10,2015,1026\n11,2015,1025.3\n12,2015,1021.1\n1,2016,1017.1\n2,2016,1019\n3,2016,1022\n4,2016,1025.4\n5,2016,1026.9\n6,2016,1028.3\n7,2016,1023.7\n8,2016,1022.7\n9,2016,1023.3\n10,2016,1023.8\n11,2016,1021.8\n12,2016,1021\n1,2017,1020.7\n2,2017,1025.6\n3,2017,1027.8\n4,2017,1029.9\n5,2017,1031.8\n6,2017,1030.3\n7,2017,1027.1\n8,2017,1027.4\n9,2017,1030\n10,2017,1030.6\n11,2017,1029.9\n12,2017,1029.6\n1,2018,1028.2\n2,2018,1032\n3,2018,1036\n4,2018,1038.1\n5,2018,1042.1\n6,2018,1042.1\n7,2018,1039.7\n8,2018,1039.6\n9,2018,1040.2\n10,2018,1042\n11,2018,1039.4\n12,2018,1036.7\n1,2019,1034\n2,2019,1038\n3,2019,1043.5\n4,2019,1045.5\n5,2019,1048.7\n6,2019,1048.4\n7,2019,1043\n8,2019,1042.9\n9,2019,1041.7\n10,2019,1039.4\n11,2019,1038\n12,2019,1038.3\n1,2020,1036.1\n3,2020,1037.4\n4,2020,1038.1\n5,2020,1034.4\n6,2020,1034.8\n7,2020,1035.0\n8,2020,1033.4\n9,2020,1033.8\n10,2020,1033.4\n11,2020,1033.5\n12,2020,1030.9\n1,2021,1029.9\n2,2021,1030.4\n3,2021,1032.1\n4,2021,1035.6\n5,2021,1037.8\n6,2021,1040.5\n7,2021,1041.3\n8,2021,1040.4\n9,2021,1043.0\n10,2021,1043.1\n11,2021,1046.3\n12,2021,1046.7\n1,2022,1045.6\n2,2022,1047.4\n3,2022,1054.3\n4,2022,1060.3\n5,2022,1064.2\n6,2022,1071.1\n7,2022,1076.5\n8,2022,1076.1\n9,2022,11079.0\n10,2022,11077.1\n11,2022,11077.6\n12,2022,11077.7\n1,2023,1075.3\n2,2023,1081.8\n3,2023,1089.9\n4,2023,1091.5\n5,2023,1091.5\n6,2023,1094.2\n7,2023,1094.9\n8,2023,1093.4\n9,2023,1095.7\n`
    };

    
    let portfolioRows = [];

    function addPortfolioRow(asset = 'us_stocks', allocation = 0) {
        const row = document.createElement('div');
        row.className = 'swr-portfolio-asset-row';
        row.innerHTML = `
            <select class="swr-asset-select">
                ${AVAILABLE_ASSETS.map(a => `<option value="${a.value}" ${a.value === asset ? 'selected' : ''}>${a.label}</option>`).join('')}
            </select>
            <input type="number" class="swr-asset-allocation" min="0" max="100" step="0.1" value="${allocation}" placeholder="%">
            <button type="button" class="swr-remove-asset">×</button>
        `;

        row.querySelector('.swr-remove-asset').addEventListener('click', () => {
            row.remove();
            portfolioRows = portfolioRows.filter(r => r !== row);
            updateAllocationTotal();
            updateAddAssetButtonState();
        });

        row.querySelector('.swr-asset-allocation').addEventListener('input', updateAllocationTotal);
        row.querySelector('.swr-asset-select').addEventListener('change', () => {
            updateDropdownOptions();
            updateAddAssetButtonState();
        });

        portfolioListDiv.appendChild(row);
        portfolioRows.push(row);
        updateAllocationTotal();
        return row;
    }

    function updateAllocationTotal() {
        const total = Array.from(portfolioListDiv.querySelectorAll('.swr-asset-allocation'))
            .reduce((sum, input) => sum + (parseFloat(input.value) || 0), 0);

        allocationTotalSpan.textContent = `Total: ${total.toFixed(1)}%`;
        allocationTotalSpan.className = 'swr-allocation-total ' + (Math.abs(total - 100) < 0.01 ? 'valid' : 'invalid');

        calculateBtn.disabled = Math.abs(total - 100) >= 0.01;
    }

    function updateDropdownOptions() {
        const selectedAssets = new Set(
            Array.from(portfolioListDiv.querySelectorAll('.swr-asset-select'))
                .map(select => select.value)
        );

        portfolioListDiv.querySelectorAll('.swr-asset-select').forEach(select => {
            const currentValue = select.value;
            Array.from(select.options).forEach(option => {
                option.disabled = selectedAssets.has(option.value) && option.value !== currentValue;
            });
        });
    }

    function updateAddAssetButtonState() {
        const selectedAssets = new Set(
            Array.from(portfolioListDiv.querySelectorAll('.swr-asset-select'))
                .map(select => select.value)
        );
        addAssetBtn.disabled = selectedAssets.size >= AVAILABLE_ASSETS.length;
    }

    addAssetBtn.addEventListener('click', () => {
        if (portfolioRows.length < AVAILABLE_ASSETS.length) {
            const selectedAssets = new Set(
                Array.from(portfolioListDiv.querySelectorAll('.swr-asset-select'))
                    .map(select => select.value)
            );
            const firstUnusedAsset = AVAILABLE_ASSETS.find(a => !selectedAssets.has(a.value));
            addPortfolioRow(firstUnusedAsset ? firstUnusedAsset.value : AVAILABLE_ASSETS[0].value, 0);
            updateDropdownOptions();
            updateAddAssetButtonState();
        }
    });

    
    advancedToggleBtn.addEventListener('click', () => {
        advancedOptions.classList.toggle('show');
        advancedToggleBtn.textContent = advancedOptions.classList.contains('show')
            ? 'Hide Advanced Options'
            : 'Show Advanced Options';
    });

    
    addPortfolioRow('us_stocks', 100);
    updateDropdownOptions();
    updateAddAssetButtonState();

    
    const DATA_CACHE = {};

    function parseCsv(csvText) {
        const lines = csvText.split('\n');
        const data = [];
        for (let i = 0; i < lines.length; i++) {
            const line = lines[i].trim();
            if (line) {
                const parts = line.split(',');
                if (parts.length >= 3) {
                    data.push({
                        month: parseInt(parts[0]),
                        year: parseInt(parts[1]),
                        value: parseFloat(parts[2])
                    });
                }
            }
        }
        return data;
    }

    async function loadData(name) {
        if (DATA_CACHE[name]) return DATA_CACHE[name];
        const csvText = embeddedData[name];
        const data = parseCsv(csvText);
        DATA_CACHE[name] = data;
        return data;
    }

    function normalizeData(data) {
        let df = [...data];
        
        while (df.length > 0 && df[df.length - 1].month !== 12) { df.pop(); }
        while (df.length > 0 && df[0].month !== 1) { df.shift(); }
        if (df.length === 0 || df[0].value === 1.0) return df;

        
        const normalized_df = [];
        let previous_value = df[0].value;
        normalized_df.push({ ...df[0], value: 1.0 });

        for (let i = 1; i < df.length; ++i) {
            const value = df[i].value;
            const new_value = normalized_df[i-1].value * (value / previous_value);
            normalized_df.push({ ...df[i], value: new_value });
            previous_value = value;
        }

        return normalized_df;
    }

    function transformToReturns(data) {
        if (data.length === 0) return [];

        const returns_df = [{...data[0], value: 1.0}];
        let previous_value = data[0].value;

        for (let i = 1; i < data.length; i++) {
            const new_value = data[i].value / previous_value;
            returns_df.push({ ...data[i], value: new_value });
            previous_value = data[i].value;
        }

        return returns_df;
    }

    
    async function runSimulation(scenario) {
        
        const assetDataPromises = scenario.portfolio.map(p => loadData(p.asset));
        const inflationDataPromise = scenario.inflationData === 'no_inflation'
            ? Promise.resolve(null)
            : loadData(scenario.inflationData);

        const rawAssetData = await Promise.all(assetDataPromises);
        const rawInflationData = await inflationDataPromise;

        const assetValues = rawAssetData.map(data => transformToReturns(normalizeData(data)));
        let inflationData = rawInflationData
            ? transformToReturns(normalizeData(rawInflationData))
            : assetValues[0].map(d => ({...d, value: 1.0}));

        if (assetValues.some(d => d.length === 0) || (rawInflationData && inflationData.length === 0)) {
            throw new Error("Could not load required financial data.");
        }

        
        const allData = {};
        const all_dfs = [...assetValues, inflationData].filter(Boolean);
        const max_start_year = Math.max(...all_dfs.map(df => df[0].year));
        const min_end_year = Math.min(...all_dfs.map(df => df[df.length - 1].year));

        
        for (let y = max_start_year; y <= min_end_year; ++y) {
            for (let m = 1; m <= 12; ++m) {
                const key = `${y}-${String(m).padStart(2, '0')}`;
                allData[key] = { year: y, month: m };
            }
        }

        
        assetValues.forEach((assetDf, i) => {
            for (const row of assetDf) {
                const key = `${row.year}-${String(row.month).padStart(2, '0')}`;
                if (allData[key]) {
                    allData[key][`asset_${i}`] = row.value;
                }
            }
        });

        
        for (const row of inflationData) {
            const key = `${row.year}-${String(row.month).padStart(2, '0')}`;
            if (allData[key]) {
                allData[key].inflation = row.value;
            }
        }

        
        Object.values(allData).forEach(dp => {
            for(let i = 0; i < assetValues.length; i++) {
                if (dp[`asset_${i}`] === undefined) dp[`asset_${i}`] = 1.0;
            }
            if (dp.inflation === undefined) dp.inflation = 1.0;
        });

        const allDataArray = Object.values(allData).sort((a, b) => a.year - b.year || a.month - b.month);

        
        const totalMonths = scenario.years * 12;
        const terminalValues = [];
        let bestTerminalValue = -Infinity;
        let bestTerminalValueStart = '';
        let worstTerminalValue = Infinity;
        let worstTerminalValueStart = '';
        let worstDurationMonths = totalMonths;
        let worstDurationStart = '';
        let successes = 0, failures = 0;

        const dataLookup = new Map(allDataArray.map(d => [`${d.year}-${d.month}`, d]));
        const allDataKeys = Array.from(dataLookup.keys()).sort();

        
        for (let year = scenario.startYear; year <= scenario.endYear - scenario.years; year++) {
            for (let month = 1; month <= 12; month++) {
                const startKey = `${year}-${month}`;
                const startIndex = allDataKeys.indexOf(startKey);

                if (startIndex === -1 || startIndex + totalMonths > allDataArray.length) {
                    continue;
                }

                const cohortData = allDataArray.slice(startIndex, startIndex + totalMonths);
                if (cohortData.length < totalMonths) continue;

                
                let currentValues = scenario.portfolio.map(p => scenario.initialValue * (p.allocation / 100));
                let portfolioAllocations = scenario.portfolio.map(p => p.allocation);

                let context = {
                    withdrawal: scenario.initialValue * (scenario.wr / 100),
                    minimum: scenario.initialValue * (scenario.minimum / 100),
                    targetValue: scenario.initialValue,
                    months: 1,
                    totalMonths: totalMonths
                };

                let cohortFailed = false;
                let monthsSurvived = 0;
                let monthInYear = 0;

                
                for (let j = 0; j < cohortData.length; j++) {
                    monthsSurvived = j + 1;
                    context.months = j + 1;
                    monthInYear = (j % 12);
                    const monthData = cohortData[j];

                    
                    for(let k = 0; k < scenario.portfolio.length; k++) {
                        currentValues[k] *= monthData[`asset_${k}`] || 1.0;
                    }

                    
                    let totalValue = currentValues.reduce((a, b) => a + b, 0);
                    if (totalValue <= 0) {
                        cohortFailed = true;
                        break;
                    }

                    
                    if (scenario.rebalance === 'monthly' && scenario.portfolio.length > 1) {
                        
                        currentValues = currentValues.map(val => val * (1.0 - MONTHLY_REBALANCING_COST / 100));
                        totalValue = currentValues.reduce((a, b) => a + b, 0);

                        if (totalValue <= 0) {
                            cohortFailed = true;
                            break;
                        }

                        
                        currentValues = portfolioAllocations.map(alloc => totalValue * (alloc / 100));
                    }

                    
                    if (scenario.rebalance === 'threshold' && scenario.portfolio.length > 1) {
                        let needsRebalance = false;
                        for (let k = 0; k < scenario.portfolio.length; k++) {
                            const currentAlloc = currentValues[k] / totalValue;
                            const targetAlloc = portfolioAllocations[k] / 100;
                            if (Math.abs(currentAlloc - targetAlloc) >= scenario.threshold / 100) {
                                needsRebalance = true;
                                break;
                            }
                        }

                        if (needsRebalance) {
                            
                            currentValues = currentValues.map(val => val * (1.0 - THRESHOLD_REBALANCING_COST / 100));
                            totalValue = currentValues.reduce((a, b) => a + b, 0);

                            if (totalValue <= 0) {
                                cohortFailed = true;
                                break;
                            }

                            
                            currentValues = portfolioAllocations.map(alloc => totalValue * (alloc / 100));
                        }
                    }

                    
                    if (scenario.fees > 0) {
                        const monthlyFee = scenario.fees / 12.0;
                        currentValues = currentValues.map(val => val * (1.0 - monthlyFee));
                        totalValue = currentValues.reduce((a, b) => a + b, 0);

                        if (totalValue <= 0) {
                            cohortFailed = true;
                            break;
                        }
                    }

                    
                    context.withdrawal *= monthData.inflation;
                    context.minimum *= monthData.inflation;
                    context.targetValue *= monthData.inflation;

                    
                    
                    
                    if (j % scenario.withdrawFrequency === 0) {
                        const periods = 12 / scenario.withdrawFrequency;
                        let withdrawalAmount;

                        if (scenario.withdrawalMethod === 'standard') {
                            withdrawalAmount = context.withdrawal / periods;
                        } else if (scenario.withdrawalMethod === 'current') {
                            withdrawalAmount = Math.max(
                                (totalValue * scenario.wr / 100) / periods,
                                context.minimum / periods
                            );
                        } else if (scenario.withdrawalMethod === 'vanguard') {
                            
                            withdrawalAmount = context.withdrawal / periods;
                        }

                        if (withdrawalAmount >= totalValue) {
                            cohortFailed = true;
                            break;
                        }

                        
                        const withdrawalPercentages = currentValues.map(val => val / totalValue);
                        currentValues = currentValues.map((val, k) =>
                            Math.max(0, val - (withdrawalAmount * withdrawalPercentages[k]))
                        );

                        totalValue = currentValues.reduce((a, b) => a + b, 0);
                        if (totalValue <= 0) {
                            cohortFailed = true;
                            break;
                        }
                    }

                    
                    if (monthInYear === 11 && scenario.rebalance === 'yearly' && scenario.portfolio.length > 1) {
                        
                        currentValues = currentValues.map(val => val * (1.0 - YEARLY_REBALANCING_COST / 100));
                        totalValue = currentValues.reduce((a, b) => a + b, 0);

                        if (totalValue <= 0) {
                            cohortFailed = true;
                            break;
                        }

                        
                        currentValues = portfolioAllocations.map(alloc => totalValue * (alloc / 100));
                    }
                }

                
                const finalValue = cohortFailed ? 0 : currentValues.reduce((a, b) => a + b, 0);
                const thresholdValue = scenario.finalInflation
                    ? scenario.finalThreshold * context.targetValue / 100
                    : scenario.finalThreshold * scenario.initialValue / 100;

                if (!cohortFailed && finalValue <= thresholdValue) {
                    cohortFailed = true;
                }

                terminalValues.push(finalValue);

                if (cohortFailed) {
                    failures++;
                    if (monthsSurvived < worstDurationMonths) {
                        worstDurationMonths = monthsSurvived;
                        worstDurationStart = `${month}/${year}`;
                    }
                    if (finalValue <= worstTerminalValue) {
                        worstTerminalValue = finalValue;
                        worstTerminalValueStart = `${month}/${year}`;
                    }
                } else {
                    successes++;
                }

                if (finalValue > bestTerminalValue) {
                    bestTerminalValue = finalValue;
                    bestTerminalValueStart = `${month}/${year}`;
                }
                if (finalValue < worstTerminalValue) {
                    worstTerminalValue = finalValue;
                    worstTerminalValueStart = `${month}/${year}`;
                }
            }
        }

        
        if (successes + failures === 0) {
            return {
                successRate: 0, successes: 0, failures: 0, totalScenarios: 0,
                bestTerminalValue: 0, bestTerminalValueStart: '',
                worstTerminalValue: 0, worstTerminalValueStart: '',
                worstDuration: 0, worstDurationStart: '',
                medianTerminalValue: 0, averageTerminalValue: 0,
                minTerminalValue: 0, maxTerminalValue: 0
            };
        }

        const totalScenarios = successes + failures;
        const successRate = 100 * (successes / totalScenarios);

        const averageTerminalValue = terminalValues.reduce((a, b) => a + b, 0) / terminalValues.length;
        terminalValues.sort((a, b) => a - b);
        const mid = Math.floor(terminalValues.length / 2);
        const medianTerminalValue = terminalValues.length % 2 === 0
            ? (terminalValues[mid - 1] + terminalValues[mid]) / 2
            : terminalValues[mid];

        return {
            successRate,
            successes,
            failures,
            totalScenarios,
            bestTerminalValue,
            bestTerminalValueStart,
            worstTerminalValue,
            worstTerminalValueStart,
            worstDuration: worstDurationMonths,
            worstDurationStart,
            medianTerminalValue,
            averageTerminalValue,
            minTerminalValue: terminalValues[0],
            maxTerminalValue: terminalValues[terminalValues.length - 1]
        };
    }

    
    calculateBtn.addEventListener('click', async () => {
        resultsDiv.style.display = 'block';
        resultsDiv.innerHTML = '<div class="swr-spinner"></div>';
        calculateBtn.disabled = true;
        calculateBtn.textContent = 'Calculating...';

        try {
            
            const totalAllocation = Array.from(portfolioListDiv.querySelectorAll('.swr-asset-allocation'))
                .reduce((sum, input) => sum + (parseFloat(input.value) || 0), 0);

            if (Math.abs(totalAllocation - 100) >= 0.01) {
                throw new Error("Total portfolio allocation must be exactly 100%.");
            }

            const initialValue = parseFloat(document.getElementById('swr-initial-value').value);
            if (initialValue <= 0) {
                throw new Error("Initial portfolio value must be greater than 0.");
            }

            
            const portfolioRows = portfolioListDiv.querySelectorAll('.swr-portfolio-asset-row');
            let portfolioAssets = Array.from(portfolioRows).map(row => ({
                asset: row.querySelector('.swr-asset-select').value,
                allocation: parseFloat(row.querySelector('.swr-asset-allocation').value) || 0,
            }));

            const scenario = {
                initialValue: initialValue,
                years: parseInt(document.getElementById('swr-years').value),
                startYear: parseInt(document.getElementById('swr-start-year').value),
                endYear: parseInt(document.getElementById('swr-end-year').value),
                wr: parseFloat(document.getElementById('swr-withdrawal-rate').value),
                fees: parseFloat(document.getElementById('swr-fees').value) / 100.0,
                portfolio: portfolioAssets.filter(p => p.allocation > 0),
                inflationData: document.getElementById('swr-inflation').value,
                withdrawFrequency: parseInt(document.getElementById('swr-withdraw-frequency').value),
                withdrawalMethod: document.getElementById('swr-withdrawal-method').value,
                minimum: parseFloat(document.getElementById('swr-minimum').value),
                rebalance: document.getElementById('swr-rebalance').value,
                threshold: parseFloat(document.getElementById('swr-threshold').value),
                finalThreshold: parseFloat(document.getElementById('swr-final-threshold').value),
                finalInflation: document.getElementById('swr-final-inflation').checked
            };

            if (scenario.portfolio.length === 0) {
                throw new Error("Portfolio must have at least one asset with an allocation greater than 0.");
            }
            if (scenario.years <= 0) {
                throw new Error("Number of years must be positive.");
            }

            
            const results = await runSimulation(scenario);

            
            resultsDiv.innerHTML = `
                <h4>Simulation Results</h4>
                <p><strong>Success Rate:</strong> ${results.successRate.toFixed(2)}%
                   (${results.successes} successes / ${results.totalScenarios} scenarios)</p>
                <p><strong>Failures:</strong> ${results.failures}</p>

                <h5 style="margin-top: 1.5rem; margin-bottom: 0.5rem;">Terminal Values</h5>
                <p><strong>Best:</strong> $${results.bestTerminalValue.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}
                   (starting ${results.bestTerminalValueStart})</p>
                <p><strong>Worst:</strong> $${results.worstTerminalValue.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}
                   (starting ${results.worstTerminalValueStart})</p>
                <p><strong>Median:</strong> $${results.medianTerminalValue.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}</p>
                <p><strong>Average:</strong> $${results.averageTerminalValue.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}</p>

                <h5 style="margin-top: 1.5rem; margin-bottom: 0.5rem;">Worst Case</h5>
                <p><strong>Worst Duration:</strong> ${results.worstDuration} months
                   (starting ${results.worstDurationStart})</p>
            `;
        } catch (error) {
            resultsDiv.innerHTML = `<div style="color: var(--swr-failure-color);"><strong>Error:</strong> ${error.message}</div>`;
            console.error(error);
        } finally {
            calculateBtn.textContent = 'Calculate Success Rate';
            calculateBtn.disabled = false;
        }
    });
})();
</script>

<p><strong>Quick Start — How to use this calculator</strong></p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    >For a comprehensive guide, refer to the <a href="/posts/how_to_use_the_swr_calculator_a_practical_guide/" >SWR Calculator Guide</a>.</span>
</div>

<ul>
<li>Enter your <strong>Initial Value</strong>, <strong>Years (horizon)</strong>, and <strong>Withdrawal Rate (%)</strong>.</li>
<li>Set your <strong>Start Year</strong> and <strong>End Year</strong> to define the historical window.</li>
<li>Choose your <strong>Withdrawal Frequency</strong>, <strong>Inflation Adjustment</strong>, and <strong>Rebalancing Strategy</strong>.</li>
<li>Build your <strong>Portfolio allocation</strong>; allocations must sum to <strong>exactly 100%</strong>.</li>
<li>Optionally set <strong>Annual Fees (%)</strong>.</li>
<li>Click <strong>Calculate</strong>. The tool runs monthly rolling simulations and shows success probability plus summary statistics.</li>
</ul>
<p>Notes:</p>
<ul>
<li>This calculator runs historical rolling-window simulations using embedded monthly return series. It does <u>NOT</u> run Monte Carlo simulations. I will have a separate calculator for that. Withdrawals can be inflation-adjusted (or not), and the portfolio can be rebalanced yearly or not at all.</li>
</ul>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This calculator reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/interactive_safe_withdrawal_rate_calculator.webp" medium="image"/></item><item><title>The 50/30/20 Rule: Simple Budgeting That Actually Works</title><link>https://libreleo.com/posts/50-30-20-rule-simple-budgeting/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/50-30-20-rule-simple-budgeting/</guid><description>Forget complicated spreadsheets. The 50/30/20 budgeting rule is stupid simple and actually works. Three buckets, one formula, zero guilt about your coffee habit.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Most people hear &quot;budget&quot; and immediately think of complicated spreadsheets. That's not what this is. The 50/30/20 rule is different. It's flexible. It's simple. And most importantly, it works.
</div>

<hr>

<h2 class="relative group">So what is this thing?
    <div id="so-what-is-this-thing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#so-what-is-this-thing" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The 50/30/20 rule splits your after-tax income into three buckets:</p>
<pre class="not-prose mermaid">
graph TD
    A[After-Tax Income<br/>100%] --> B[NEEDS<br/>50%]
    A --> C[WANTS<br/>30%]
    A --> D[SAVINGS<br/>20%]

    B --> E[Housing, Utilities<br/>Groceries, Transport]
    C --> F[Dining, Entertainment<br/>Shopping, Travel]
    D --> G[Emergency Fund<br/>Retirement, Investments]

    style B fill:#1e3a5f,stroke:#60a5fa,color:#e2e8f0
    style C fill:#664d03,stroke:#ffc107,color:#fff3cd
    style D fill:#0f5132,stroke:#75b798,color:#d1e7dd
</pre>

<p>That's it. Three categories. One formula.</p>
<p>You're not tracking every coffee purchase. You're not feeling guilty about buying that book. You're just making sure your money flows into the right places.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>This uses your <strong>after-tax income</strong> - the money that actually hits your account, not what you see on paper before taxes get taken out.</p></div></div><hr>

<h2 class="relative group">Breaking down the buckets
    <div id="breaking-down-the-buckets" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#breaking-down-the-buckets" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">The 50%: Needs (stuff you actually need)
    <div id="the-50-needs-stuff-you-actually-need" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-50-needs-stuff-you-actually-need" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>These are your essentials. The the stuff you need to survive and function:</p>
<table>
	<thead>
			<tr>
					<th>Category</th>
					<th>Examples</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Housing</strong></td>
					<td>Rent or mortgage, property taxes, home insurance</td>
			</tr>
			<tr>
					<td><strong>Utilities</strong></td>
					<td>Electricity, water, internet</td>
			</tr>
			<tr>
					<td><strong>Groceries</strong></td>
					<td>Food you cook at home</td>
			</tr>
			<tr>
					<td><strong>Transportation</strong></td>
					<td>Car payments, gas, insurance, public transit</td>
			</tr>
			<tr>
					<td><strong>Healthcare</strong></td>
					<td>Insurance, prescriptions, basic medical care</td>
			</tr>
			<tr>
					<td><strong>Minimum Debt</strong></td>
					<td>The absolute minimum you have to pay</td>
			</tr>
	</tbody>
</table>
<p>Key word: <em>minimum</em>. You're not paying extra on loans here - that goes in the 20% bucket.</p>
<p>If your needs eat up more than 50%? You've got two options: make more money or spend less. Maybe that means getting a roommate. Moving somewhere cheaper. Downsizing your car.</p>
<p>Doesn't sound like fun but it keeps you stable.</p>

<h3 class="relative group">The 30%: Wants
    <div id="the-30-wants" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-30-wants" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Everything that isn't essential but makes life enjoyable:</p>
<table>
	<thead>
			<tr>
					<th>Category</th>
					<th>Examples</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Dining Out</strong></td>
					<td>Restaurants, takeout, etc.</td>
			</tr>
			<tr>
					<td><strong>Entertainment</strong></td>
					<td>Movies, concerts, hobbies.</td>
			</tr>
			<tr>
					<td><strong>Shopping</strong></td>
					<td>New clothes (beyond basics), gadgets, home stuff, accessories</td>
			</tr>
			<tr>
					<td><strong>Travel</strong></td>
					<td>Vacations, weekend trips, experiences, staycations.</td>
			</tr>
			<tr>
					<td><strong>Personal Care</strong></td>
					<td>Gym (You don't need a gym for keeping yourself fit) , subscriptions, grooming</td>
			</tr>
	</tbody>
</table>
<p>You don't need to justify every purchase. As long as you're in this 30%, you're fine. Enjoy it.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>The trap?</strong> Convincing yourself wants are needs.</p>
<p>Membership? Want. The $250 sneakers? Want. New phone every year? Definitely a want.</p>
<p>Be honest with yourself.</p></div></div>
<h3 class="relative group">The 20%: Savings &amp; debts
    <div id="the-20-savings--debts" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-20-savings--debts" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This bucket sets you free. It's your escape plan, safety net, and ticket to financial independence.</p>
<table>
	<thead>
			<tr>
					<th>Category</th>
					<th>What Goes In</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Emergency Fund</strong></td>
					<td>3-6 months of expenses in a savings account</td>
			</tr>
			<tr>
					<td><strong>Retirement</strong></td>
					<td>Whatever tax-advantaged accounts your country offers</td>
			</tr>
			<tr>
					<td><strong>Debt Payoff</strong></td>
					<td>Anything beyond minimum payments</td>
			</tr>
			<tr>
					<td><strong>Investments</strong></td>
					<td>Stocks, bonds, index funds</td>
			</tr>
			<tr>
					<td><strong>Big Purchases</strong></td>
					<td>Down payment for a house, car replacement fund</td>
			</tr>
	</tbody>
</table>
<p>Not hitting 20% yet? Start where you can. Even 10% or 15% beats nothing.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Make it automatic.</strong> Set up direct deposit so money goes to savings before you see it. Out of sight, out of mind.</p></div></div><hr>

<h2 class="relative group">Why this actually works
    <div id="why-this-actually-works" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-this-actually-works" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">It's simple
    <div id="its-simple" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#its-simple" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>You're not tracking multiple categories. You're not logging every transaction. You're dividing your income into three piles.</p>
<p>That's it. Keep it simple. And simple means you'll stick with it.</p>

<h3 class="relative group">It's flexible
    <div id="its-flexible" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#its-flexible" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Your life doesn't fit a one-size-fits-all budget.</p>
<table>
	<thead>
			<tr>
					<th>Your Situation</th>
					<th>Adjustment</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Expensive city</td>
					<td>Housing might push the limits - that's okay</td>
			</tr>
			<tr>
					<td>Work from home</td>
					<td>Transportation lower - shift money elsewhere</td>
			</tr>
			<tr>
					<td>You have kids</td>
					<td>Needs category will be larger</td>
			</tr>
			<tr>
					<td>Aggressive saver</td>
					<td>Flip to 50/20/30 or 40/20/40</td>
			</tr>
	</tbody>
</table>
<p>You decide what counts as a need based on YOUR life.</p>

<h3 class="relative group">It forces you to save
    <div id="it-forces-you-to-save" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#it-forces-you-to-save" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>You're not saving &quot;whatever's left over&quot; at the end of the month. Lock those 20% for savings and debts.</p>
<p>You're paying yourself first.</p>

<h3 class="relative group">It gives you permission to enjoy life
    <div id="it-gives-you-permission-to-enjoy-life" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#it-gives-you-permission-to-enjoy-life" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The 30% bucket gives you breathing room. You can enjoy life AND build wealth.</p>
<hr>

<h2 class="relative group">How to actually use this
    <div id="how-to-actually-use-this" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-actually-use-this" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Step 1: Figure out your after-tax income
    <div id="step-1-figure-out-your-after-tax-income" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-figure-out-your-after-tax-income" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Look at your bank account. What goes in? That's your number.</p>

<h3 class="relative group">Step 2: Do the math
    <div id="step-2-do-the-math" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-do-the-math" aria-label="Anchor">#</a>
    </span>
    
</h3>
<table>
	<thead>
			<tr>
					<th>Bucket</th>
					<th>Formula</th>
					<th>Example ($5000/month)</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Needs</strong></td>
					<td>Income × 0.50</td>
					<td>$2,500</td>
			</tr>
			<tr>
					<td><strong>Wants</strong></td>
					<td>Income × 0.30</td>
					<td>$1,500</td>
			</tr>
			<tr>
					<td><strong>Savings</strong></td>
					<td>Income × 0.20</td>
					<td>$1000</td>
			</tr>
	</tbody>
</table>

<h3 class="relative group">Step 3: Track your spending (just for a month)
    <div id="step-3-track-your-spending-just-for-a-month" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-track-your-spending-just-for-a-month" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>You don't have to do this forever. But track everything for one month.</p>
<p>Use a spreadsheet, an app, or pen and paper. Categorize every expense into needs, wants, or savings.</p>
<p>And be brutally honest. It doesn't work otherwise.</p>

<h3 class="relative group">Step 4: Adjust as needed
    <div id="step-4-adjust-as-needed" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-4-adjust-as-needed" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Needs eating up 60% of your income? Look for cuts - cheaper phone plan, meal prep instead of takeout, downgrade the car.</p>
<p>Wants creeping into savings? Pull back!</p>

<h3 class="relative group">Step 5: Automate everything
    <div id="step-5-automate-everything" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-5-automate-everything" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Set up automatic transfers on payday:</p>
<ul>
<li>20% straight to savings/investments</li>
<li>Bills paid automatically</li>
<li>What's left is yours to spend</li>
</ul>
<p>Set it and forget it.</p>
<hr>

<h2 class="relative group">When this rule doesn't work
    <div id="when-this-rule-doesnt-work" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#when-this-rule-doesnt-work" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The 50/30/20 rule is a starting point, not a law.
Tweak it to fit your life. See below</p>
<table>
	<thead>
			<tr>
					<th>Situation</th>
					<th>Why It Struggles</th>
					<th>Alternative</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>High cost-of-living</td>
					<td>Needs hit 70%+</td>
					<td>Try 60/20/20 or 70/10/20</td>
			</tr>
			<tr>
					<td>Drowning in debt</td>
					<td>Need aggressive payoff</td>
					<td>Debt avalanche/snowball first</td>
			</tr>
			<tr>
					<td>Irregular income</td>
					<td>Can't predict monthly</td>
					<td>Zero-based budget</td>
			</tr>
			<tr>
					<td>Aggressive FIRE goals</td>
					<td>20% isn't enough</td>
					<td>50/10/40 or higher savings</td>
			</tr>
	</tbody>
</table>
<hr>

<h2 class="relative group">Is this right for you?
    <div id="is-this-right-for-you" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#is-this-right-for-you" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The best budget is the one you'll actually follow.</p>
<p>If 50/30/20 feels right and you can stick with it? Perfect.</p>
<p>If it feels too loose? Change it. Make it 60/20/20 or 50/20/30. Whatever works.</p>
<p>The point is being intentional with your money.</p>
<p>The real magic of this rule isn't the exact percentages. It's the mindset shift.</p>
<p>It forces you to:</p>
<ul>
<li>Separate needs from wants</li>
<li>Prioritize your future</li>
<li>Still enjoy the present</li>
</ul>
<p>You're not depriving yourself. You're not ignoring your goals. You're finding balance.</p>
<hr>

<h2 class="relative group">The Bottom Line
    <div id="the-bottom-line" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-bottom-line" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #0f5132"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #75b798"
    
    >
    
  </span>

  <span
    
      style="color: #d1e7dd"
    
    ><p><strong>50/30/20 In a Nutshell</strong></p>
<table>
	<thead>
			<tr>
					<th>Bucket</th>
					<th>%</th>
					<th>Purpose</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Needs</strong></td>
					<td>50%</td>
					<td>Survival - housing, food, transport, healthcare</td>
			</tr>
			<tr>
					<td><strong>Wants</strong></td>
					<td>30%</td>
					<td>Enjoyment - spending on life</td>
			</tr>
			<tr>
					<td><strong>Savings</strong></td>
					<td>20%</td>
					<td>Freedom - your future</td>
			</tr>
	</tbody>
</table></span>
</div>

<p>Ready to try it? Start tracking for one month and check where your money actually goes. You might be surprised.</p>
<p>What percentage of your income do you think goes to Wants right now? Bet it's higher than you'd guess.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/50-30-20-rule-simple-budgeting.webp" medium="image"/></item><item><title>Options Trading: My Journey from Penny Stocks to Passive Income</title><link>https://libreleo.com/passive_active_investments/options_trading/options-trading-introduction/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/passive_active_investments/options_trading/options-trading-introduction/</guid><description>How I went from losing 40% on a penny stock tip to building passive income through options trading. This is my story and why I'm sharing everything I've learned.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  I've been trading since I was 20 years old. It started with a tip from a coworker, a penny stock, and every dollar I had in savings. What followed was a rollercoaster that changed my life—and eventually led me to options trading.
</div>

<hr>

<h2 class="relative group">How It All Started
    <div id="how-it-all-started" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-it-all-started" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>It was at work that a colleague started talking about stocks and penny stocks. He was raving about how his purchases had appreciated over the course of the year. I barely knew what stocks were at the time. He told me I should invest in the one stock he highly praised.</p>
<p>So I did. I put in all my savings.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          Novies Mistake
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Putting all your savings into a single stock based on someone else's tip is one of the worst things you can do. Don't do this.</p></div></div><p>The first few weeks, it dropped like a stone. I had lost over 40% on paper. I got discouraged and wrote it off mentally. I stopped checking the price altogether.</p>
<p>But a year later, out of curiosity—and because I remembered I still had that stock sitting in my portfolio—I decided to have a look and see what the damage was.</p>
<p>To my surprise, the stock had appreciated over 100%.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          The Hook
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>That's the day I got hooked. I started researching everything I could about markets, investing, and trading. To this day, I've never stopped learning—reading books and articles daily, watching news channels, exploring new ways of passive investment.</p></div></div><hr>

<h2 class="relative group">The Path to Options
    <div id="the-path-to-options" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-path-to-options" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Years 1-5">
          <span class="flex items-center gap-1">
            
            Years 1-5
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Years 5-10">
          <span class="flex items-center gap-1">
            
            Years 5-10
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Year 10&#43;">
          <span class="flex items-center gap-1">
            
            Year 10&#43;
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <h3 class="relative group">Early Exploration
    <div id="early-exploration" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#early-exploration" aria-label="Anchor">#</a>
    </span>
    
</h3>
<table>
	<thead>
			<tr>
					<th>Asset Class</th>
					<th>What I Learned</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Individual Stocks</strong></td>
					<td>Stock picking is hard; most people underperform the index</td>
			</tr>
			<tr>
					<td><strong>ETFs</strong></td>
					<td>Diversification matters; low costs compound over time</td>
			</tr>
			<tr>
					<td><strong>Warrants (European Market)</strong></td>
					<td>Leverage can work both ways—fast gains, faster losses</td>
			</tr>
	</tbody>
</table>
<p>I made money. I lost money. But most importantly, I learned.</p>
      </div><div class="tab__panel " data-tab-index="1">
        <h3 class="relative group">Expanding Horizons
    <div id="expanding-horizons" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#expanding-horizons" aria-label="Anchor">#</a>
    </span>
    
</h3>
<table>
	<thead>
			<tr>
					<th>Asset Class</th>
					<th>What I Learned</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Forex</strong></td>
					<td>24-hour markets are exhausting; leverage is dangerous</td>
			</tr>
			<tr>
					<td><strong>More ETFs</strong></td>
					<td>Index investing works, but I wanted more control</td>
			</tr>
			<tr>
					<td><strong>Research</strong></td>
					<td>Books, courses, articles—I consumed everything</td>
			</tr>
	</tbody>
</table>
<p>I was profitable, but I felt like something was missing. I wanted a way to generate consistent income without staring at charts all day.</p>
      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Discovering Options
    <div id="discovering-options" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#discovering-options" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>After about 10 years of heavily exploring stocks, ETFs, warrants, and forex, I finally decided to jump into options trading.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          A New World
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Options opened a new world to me. I realized that options (on the US market) are not high risk if employed correctly. On the contrary—they can be highly lucrative and serve as a form of passive investment.</p></div></div><p>Did I burn my fingers? Yes, absolutely. I learned the hard way more than once. But options transformed my approach, showing me how to trade smarter, not harder.</p>

      </div></div>
</div>

<hr>

<h2 class="relative group">Why Options?
    <div id="why-options" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-options" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Here's what I've learned after years of trading options:</p>
<table>
	<thead>
			<tr>
					<th>Myth</th>
					<th>Reality</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>&quot;Options are gambling&quot;</td>
					<td>Options can reduce risk when used properly (selling puts, covered calls)</td>
			</tr>
			<tr>
					<td>&quot;Options are too complicated&quot;</td>
					<td>The basics are simpler than you think; complexity is optional</td>
			</tr>
			<tr>
					<td>&quot;You need a lot of money&quot;</td>
					<td>You can start with a few thousand dollars</td>
			</tr>
			<tr>
					<td>&quot;Only professionals should trade options&quot;</td>
					<td>Retail traders have more advantages today than ever</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          The Key Insight
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Options aren't for everyone. But with knowledge and discipline, they can supercharge your investing. They've certainly transformed mine.</p></div></div><hr>

<h2 class="relative group">What This Series Covers
    <div id="what-this-series-covers" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-this-series-covers" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>I decided to write this Options Series to share everything I've learned and show you how you can benefit from options trading too.</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Strategies">
          <span class="flex items-center gap-1">
            
            Strategies
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Risk Management">
          <span class="flex items-center gap-1">
            
            Risk Management
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Practical Examples">
          <span class="flex items-center gap-1">
            
            Practical Examples
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">Strategies You'll Learn
    <div id="strategies-youll-learn" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#strategies-youll-learn" aria-label="Anchor">#</a>
    </span>
    
</h3>
<ul>
<li><strong>Cash Secured Puts</strong> - Get paid to buy stocks you want at prices you choose</li>
<li><strong>Covered Calls</strong> - Generate income from stocks you already own</li>
<li><strong>The Wheel Strategy</strong> - Combine puts and calls for consistent premium</li>
<li><strong>Credit Spreads</strong> - Defined risk, defined reward</li>
<li><strong>Iron Condors</strong> - Profit when markets go nowhere</li>
<li><strong>Poor Man's Covered Call</strong> - Capital-efficient income generation</li>
</ul>

      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Risk Management Topics
    <div id="risk-management-topics" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#risk-management-topics" aria-label="Anchor">#</a>
    </span>
    
</h3>
<ul>
<li>Position sizing that won't blow up your account</li>
<li>When to take profits (and when to cut losses)</li>
<li>Rolling positions to manage losing trades</li>
<li>The Greeks explained simply</li>
<li>Building a diversified options portfolio</li>
</ul>

      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Real-World Application
    <div id="real-world-application" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#real-world-application" aria-label="Anchor">#</a>
    </span>
    
</h3>
<ul>
<li>Step-by-step trade examples with actual numbers</li>
<li>Entry checklists you can print and use</li>
<li>Workflow guides for managing positions</li>
<li>What I do daily, weekly, and monthly</li>
<li>Mistakes I've made (so you don't have to)</li>
</ul>

      </div></div>
</div>

<hr>

<h2 class="relative group">A Word of Caution
    <div id="a-word-of-caution" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-word-of-caution" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Be Realistic
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>I'm not going to promise you'll get rich quick. Options trading requires:</p>
<ul>
<li><strong>Time</strong> to learn the fundamentals</li>
<li><strong>Capital</strong> that you can afford to have at risk</li>
<li><strong>Discipline</strong> to follow your rules</li>
<li><strong>Patience</strong> to let strategies play out</li>
</ul>
<p>If you're looking for a get-rich-quick scheme, this isn't it. If you're looking to build a skill that can generate consistent income over time, keep reading.</p></div></div><hr>

<h2 class="relative group">Let's Get Started
    <div id="lets-get-started" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#lets-get-started" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>I hope this intro sparks your interest. In the upcoming articles in this series, I'll dive deeper into strategies, examples, and risk management.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          My Goal
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>My goal is simple: share what I've learned so you can avoid the mistakes I made and get to profitability faster. Whether you're completely new to options or have some experience, there's something here for you.</p></div></div><p>Hope you find it useful.</p>
<p>Cheers,
Chris</p>
]]></content:encoded><media:content url="https://libreleo.com/img/featured/options-trading-introduction.webp" medium="image"/></item><item><title>Build a Financial Independence Morning Routine Workflow That Actually Runs Itself</title><link>https://libreleo.com/ai/morning-routine-workflow-obsidian-claude/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/ai/morning-routine-workflow-obsidian-claude/</guid><description>Stop relying on willpower every morning. Here's how I built an automated morning routine workflow in Obsidian that reviews yesterday, plans today, and schedules my calendar - all with one command.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  It's 2026. Why not start fresh and automate your FI morning routine? Most morning routines fail because they rely on willpower. You wake up, check your phone, get distracted by notifications, and suddenly it's 10 AM and you haven't done the one thing you said you'd do yesterday.
</div>

<p>I had the same problem. So I built a workflow.</p>
<p>One command. Five minutes. My entire day planned, calendar blocked, and yesterday's patterns analyzed.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          No Willpower Required
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>This workflow is designed to automate the planning and review process</p></div></div>
<h2 class="relative group">What is this thing?
    <div id="what-is-this-thing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-is-this-thing" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>It's a multi-stage workflow built in Obsidian using Claude Code slash commands. Think of it as a personal assistant that actually knows your context.</p>
<p>Here's what it does automatically:</p>
<ol>
<li><strong>Reviews the last 3 days</strong> - Creates a vivid reconstruction of what actually happened (with exact timestamps)</li>
<li><strong>Morning check-in</strong> - Asks reflection questions and creates a daily note</li>
<li><strong>Reviews your goals</strong> - Generates contextual questions based on deadlines and progress</li>
<li><strong>Schedules your day</strong> - Creates calendar events and a time-blocked task list</li>
<li><strong>Logs everything</strong> - Tracks patterns so you see what's actually working</li>
</ol>
<p>You run <code>/morning-routine:main</code> and it handles the rest.</p>
<p>No manual journaling. No staring at blank pages. No &quot;what should I do today&quot; paralysis.</p>

<h2 class="relative group">Why I built this
    <div id="why-i-built-this" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-i-built-this" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Every morning I had to:</p>
<ul>
<li>Remember what I did yesterday</li>
<li>Figure out what matters today</li>
<li>Manually create calendar events</li>
<li>Review goals scattered across different notes</li>
<li>Actually motivate myself to do all this</li>
</ul>
<p>That's too many steps.</p>
<p>So I automated it. Now the system remembers yesterday for me, asks smart questions about my goals, and creates calendar events automatically.</p>
<p>I just answer questions and make decisions. The workflow handles everything else.</p>

<h2 class="relative group">How it actually works
    <div id="how-it-actually-works" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-it-actually-works" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Stage 1: Review yesterday (and the last 3 days)
    <div id="stage-1-review-yesterday-and-the-last-3-days" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-1-review-yesterday-and-the-last-3-days" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Most people can't remember what they did yesterday
The workflow reads your last 3 days of check-ins and creates a reconstruction with:</p>
<p><strong>Specific timestamps:</strong> Not &quot;worked in the morning&quot; but &quot;9:15 AM - started to log my expenses, got distracted by email at 9:47 AM&quot;</p>
<p><strong>Direct quotes:</strong> Your actual words from yesterday's reflections</p>
<p><strong>Pattern analysis:</strong> &quot;You mentioned being distracted 3 out of 3 days - always between 2-4 PM&quot;</p>
<p><strong>Action items you committed to:</strong> What you said you'd do yesterday vs what actually happened</p>

<h3 class="relative group">Stage 2: Morning check-in
    <div id="stage-2-morning-check-in" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-2-morning-check-in" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Once you know what happened yesterday, the workflow asks reflection questions:</p>
<ul>
<li>What's on your mind right now?</li>
<li>What went well yesterday?</li>
<li>What would make today great?</li>
<li>Any blockers or concerns?</li>
</ul>
<p>You answer however you want. Bullet points, full sentences, single words - doesn't matter.</p>
<p>The workflow accepts whatever you give it and creates a dated check-in file: <code>2026-01-07. Morning Check-in.md</code></p>

<h3 class="relative group">Stage 3: Review goals
    <div id="stage-3-review-goals" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-3-review-goals" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The workflow reads all your goal files and generates contextual questions based on:</p>
<p><strong>Deadlines:</strong> &quot;You have 4 days left on that blog post. Are you on track?&quot;</p>
<p><strong>Status:</strong> If a goal says &quot;In progress&quot; and you haven't logged anything in 5 days, it asks what's blocking you</p>
<p><strong>Your own questions:</strong> If you ended a goal log with &quot;Next review: What's the outline for section 2?&quot; - it asks that</p>
<p><strong>Patterns:</strong> If you keep mentioning the same blocker, it asks how to address it</p>
<p>You're not getting generic prompts like &quot;What progress did you make?&quot; You're getting questions that actually fit your context.</p>
<p>It uses extended thinking mode (AI reasoning) to analyze each goal and generate relevant questions.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Extended Thinking Mode:</strong> This feature allows the AI to perform a deeper analysis of your goals, leading to more insightful and relevant questions.</p></div></div><p>After you answer, it updates your goal logs automatically with timestamps and your responses.</p>

<h3 class="relative group">Stage 4: Schedule your day
    <div id="stage-4-schedule-your-day" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-4-schedule-your-day" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Based on what you just said about your goals, the workflow creates:</p>
<p><strong>Calendar events</strong> - 25-minute Pomodoro sessions scheduled sequentially using gcalcli (Google Calendar CLI)</p>
<p><strong>A daily task file</strong> - Time-blocked list linking tasks to related goals</p>
<p><strong>Realistic blocks</strong> -Actual time blocks accounting for breaks.</p>
<p>The calendar events appear immediately in your Google Calendar. You don't have to manually create them.</p>
<p>Your day is blocked before you start working.</p>

<h3 class="relative group">Stage 5: Completion log
    <div id="stage-5-completion-log" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stage-5-completion-log" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The workflow logs:</p>
<ul>
<li>Start time</li>
<li>End time</li>
<li>Total duration</li>
</ul>
<p>Over weeks, you see patterns.</p>

<h2 class="relative group">Using this for financial planning
    <div id="using-this-for-financial-planning" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#using-this-for-financial-planning" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>You can use the goal tracking system to monitor financial habits and investment strategies:</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Daily">
          <span class="flex items-center gap-1">
            
            Daily
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Weekly">
          <span class="flex items-center gap-1">
            
            Weekly
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Monthly">
          <span class="flex items-center gap-1">
            
            Monthly
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <ul>
<li>Review market news and economic indicators</li>
<li>Check portfolio performance and rebalancing needs</li>
<li>Log passive income streams (dividends, interest, rental income)</li>
<li>Track spending against your budget categories</li>
<li>Review stock picks or potential investment opportunities</li>
</ul>

      </div><div class="tab__panel " data-tab-index="1">
        <ul>
<li>&quot;Research 3 dividend aristocrats for portfolio&quot;</li>
<li>&quot;Review and rebalance portfolio if needed&quot;</li>
<li>&quot;Update net worth tracker&quot;</li>
<li>&quot;Read 2 financial articles and summarize key insights&quot;</li>
</ul>

      </div><div class="tab__panel " data-tab-index="2">
        <ul>
<li>Goal: &quot;Increase savings rate from 35% to 40%&quot;</li>
<li>The workflow asks: &quot;What specific expense can you cut this month?&quot;</li>
<li>Progress bar shows: &quot;15 days into month, $2,847 saved (32% rate so far)&quot;</li>
</ul>

      </div></div>
</div>

<p>The contextual questions adapt to your situation. If you set a goal to &quot;Research REITs for passive income&quot; and don't log progress for a week, it'll ask: &quot;What's blocking the REIT research? Need better resources?&quot;</p>
<p>I use it to track:</p>
<ul>
<li>My monthly stock pick research (3 new companies minimum)</li>
<li>Weekly portfolio reviews (every Sunday)</li>
<li>Daily market check-ins (15 minutes before work)</li>
<li>Quarterly goal reviews (adjust FIRE number, check SWR assumptions)</li>
</ul>
<p>The pattern analysis is incredibly useful. I noticed I skip my &quot;review portfolio&quot; goal every time the market drops more than 5%. That's emotional investing. The data made it obvious.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="important">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Now I have a rule: &quot;Review portfolio Sunday morning regardless of market conditions.&quot; The workflow holds me accountable.</p></div></div>
<h2 class="relative group">What you need to set this up
    <div id="what-you-need-to-set-this-up" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-you-need-to-set-this-up" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Required">
          <span class="flex items-center gap-1">
            
            Required
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Optional">
          <span class="flex items-center gap-1">
            
            Optional
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <ul>
<li><strong>Obsidian</strong> - The note-taking app (free, open-source)</li>
<li><strong>Claude Code</strong> - AI coding assistant with slash command support</li>
<li><strong>A separate vault</strong> - For your morning routine (I call mine <code>levicroutinevault</code>)</li>
</ul>

      </div><div class="tab__panel " data-tab-index="1">
        <ul>
<li><strong>gcalcli</strong> - Google Calendar CLI for automatic calendar event creation
<ul>
<li>Works on Linux, macOS, and WSL2</li>
<li>Install with: <code>pip install gcalcli</code></li>
<li>One-time OAuth authentication required</li>
</ul>
</li>
</ul>

      </div></div>
</div>

<p>The core workflow works on any OS. Calendar integration works anywhere gcalcli runs (Linux/macOS/WSL2).</p>

<h2 class="relative group">Installation overview
    <div id="installation-overview" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#installation-overview" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The complete workflow is available in my GitHub repository: <div class="github-card-wrapper">
    <a id="github-f463e7bfe65b860b8bac25a5ceccca4c" target="_blank" href="https://github.com/leviceroy/morning-routine-system" class="cursor-pointer">
      <div
        class="w-full md:w-auto p-0 m-0 border border-neutral-200 dark:border-neutral-700 border rounded-md shadow-2xl"><div class="w-full nozoom">
            <img
              src="https://opengraph.githubassets.com/0/leviceroy/morning-routine-system"
              alt="GitHub Repository Thumbnail"
              class="nozoom mt-0 mb-0 w-full h-full object-cover">
          </div><div class="w-full md:w-auto pt-3 p-5">
          <div class="flex items-center">
            <span class="text-2xl text-neutral-800 dark:text-neutral me-2">
              <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</span>
            </span>
            <div
              id="github-f463e7bfe65b860b8bac25a5ceccca4c-full_name"
              class="m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral">
              leviceroy/morning-routine-system
            </div>
          </div>

          <p id="github-f463e7bfe65b860b8bac25a5ceccca4c-description" class="m-0 mt-2 text-md text-neutral-800 dark:text-neutral">
            
          </p>

          <div class="m-0 mt-2 flex items-center">
            <span class="mr-1 inline-block h-3 w-3 rounded-full language-dot" data-language="Shell"></span>
            <div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
              Shell
            </div>

            <span class="text-md mr-1 text-neutral-800 dark:text-neutral">
              <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span>
            </span>
            <div id="github-f463e7bfe65b860b8bac25a5ceccca4c-stargazers" class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
              0
            </div>

            <span class="text-md mr-1 text-neutral-800 dark:text-neutral">
              <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM248 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z"/></svg></span>
            </span>
            <div id="github-f463e7bfe65b860b8bac25a5ceccca4c-forks" class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
              0
            </div>
          </div>
        </div>
      </div>
      
      
      <script
        async
        type="text/javascript"
        src="/js/fetch-repo.min.dc5533c50cefd50405344b235937142271f26229fe39cbee27fd4960e8bb897a0beebfad77a1091ca91cd0d1fb14e70fc37cc114dd9674fb2c32e0ab512ec8a4.js"
        integrity="sha512-3FUzxQzv1QQFNEsjWTcUInHyYin&#43;OcvuJ/1JYOi7iXoL7r&#43;td6EJHKkc0NH7FOcPw3zBFN2WdPssMuCrUS7IpA=="
        data-repo-url="https://api.github.com/repos/leviceroy/morning-routine-system"
        data-repo-id="github-f463e7bfe65b860b8bac25a5ceccca4c"></script>
    </a>
  </div></p>
<p>You can clone the entire vault structure or just grab the <code>.claude/commands/morning-routine/</code> folder and adapt it to your needs.</p>
<p><strong>Quick setup:</strong></p>
<ol>
<li>Clone the repository or download the vault files</li>
<li>Open it as a vault in Obsidian</li>
<li>Install Claude Code if you haven't already</li>
<li>(Optional) Set up gcalcli for Google Calendar integration</li>
<li>Run <code>/morning-routine:main</code> to start</li>
</ol>
<p>The repository includes:</p>
<ul>
<li>All five workflow command files</li>
<li>Template files for check-ins and goals</li>
<li>Complete gcalcli setup instructions for Google Calendar integration</li>
<li>Troubleshooting guide in <code>.claude/README.md</code></li>
<li>Sample goal files so you can see the format</li>
</ul>
<p>If you want to customize it, the command files are just markdown with YAML frontmatter. Easy to modify.</p>
<p><strong>Note:</strong> You'll need to set up gcalcli authentication once (it opens a browser for OAuth), then it works automatically from the command line.</p>

<h2 class="relative group">What I learned using this daily
    <div id="what-i-learned-using-this-daily" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-i-learned-using-this-daily" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Patterns">
          <span class="flex items-center gap-1">
            
            Patterns
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Deadlines">
          <span class="flex items-center gap-1">
            
            Deadlines
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Decision Fatigue">
          <span class="flex items-center gap-1">
            
            Decision Fatigue
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <h3 class="relative group">Patterns you'd never notice manually
    <div id="patterns-youd-never-notice-manually" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#patterns-youd-never-notice-manually" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>After two weeks, I saw that I'm consistently distracted between certain times. Now I schedule certain tasks differently.</p>
      </div><div class="tab__panel " data-tab-index="1">
        <h3 class="relative group">Goals need deadlines
    <div id="goals-need-deadlines" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#goals-need-deadlines" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Before this, I had vague goals like &quot;write more blog posts.&quot; No deadline. No pressure. The progress bars and countdown timers (&quot;7 days remaining&quot;) create urgency without stress.</p>
      </div><div class="tab__panel " data-tab-index="2">
        <h3 class="relative group">Automation removes decision fatigue
    <div id="automation-removes-decision-fatigue" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#automation-removes-decision-fatigue" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>I used to waste energy deciding what to journal about, which goals to review, what to schedule. Now? The workflow makes those decisions. I just respond.</p>
      </div></div>
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>That saved energy goes into actual work. Automate the decisions, not just the tasks.</p></div></div>
<h2 class="relative group">Is this overkill?
    <div id="is-this-overkill" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#is-this-overkill" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Maybe.</p>
<p>If you're happy with a paper journal or Apple Reminders and it works for you, stick with that.</p>
<p>But if you:</p>
<ul>
<li>Keep starting morning routines and quitting after a week</li>
<li>Have goals scattered across different tools</li>
<li>Struggle to remember what you did yesterday</li>
<li>Spend 20 minutes every morning &quot;figuring out&quot; your day</li>
<li>Want pattern analysis without manual tracking</li>
<li>Need accountability for financial goals and investment research</li>
</ul>
<p>Then yeah, this might be worth it.</p>
<p>The upfront setup takes an hour or two. But then you're running a personalized morning system that adapts to your life.</p>
<p>A workflow that knows your context and helps you act on it.</p>

<h2 class="relative group">What's next?
    <div id="whats-next" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#whats-next" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>I'm planning to add:</p>
<ul>
<li><strong>Weekly review</strong> - Aggregate the 7-day patterns and show progress on goals</li>
<li><strong>Cross AI Platform</strong> - Make it work for AI platforms other than Claude Code</li>
<li><strong>Financial goal templates</strong> - Pre-built templates for FIRE goals, savings rates, portfolio reviews</li>
</ul>
<hr>
<p>Want to try it yourself? Download the complete workflow from the <div class="github-card-wrapper">
    <a id="github-4ad4870547a763c56920d09b99301305" target="_blank" href="https://github.com/leviceroy/morning-routine-system" class="cursor-pointer">
      <div
        class="w-full md:w-auto p-0 m-0 border border-neutral-200 dark:border-neutral-700 border rounded-md shadow-2xl"><div class="w-full nozoom">
            <img
              src="https://opengraph.githubassets.com/0/leviceroy/morning-routine-system"
              alt="GitHub Repository Thumbnail"
              class="nozoom mt-0 mb-0 w-full h-full object-cover">
          </div><div class="w-full md:w-auto pt-3 p-5">
          <div class="flex items-center">
            <span class="text-2xl text-neutral-800 dark:text-neutral me-2">
              <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</span>
            </span>
            <div
              id="github-4ad4870547a763c56920d09b99301305-full_name"
              class="m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral">
              leviceroy/morning-routine-system
            </div>
          </div>

          <p id="github-4ad4870547a763c56920d09b99301305-description" class="m-0 mt-2 text-md text-neutral-800 dark:text-neutral">
            
          </p>

          <div class="m-0 mt-2 flex items-center">
            <span class="mr-1 inline-block h-3 w-3 rounded-full language-dot" data-language="Shell"></span>
            <div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
              Shell
            </div>

            <span class="text-md mr-1 text-neutral-800 dark:text-neutral">
              <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span>
            </span>
            <div id="github-4ad4870547a763c56920d09b99301305-stargazers" class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
              0
            </div>

            <span class="text-md mr-1 text-neutral-800 dark:text-neutral">
              <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM248 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z"/></svg></span>
            </span>
            <div id="github-4ad4870547a763c56920d09b99301305-forks" class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
              0
            </div>
          </div>
        </div>
      </div>
      
      
      <script
        async
        type="text/javascript"
        src="/js/fetch-repo.min.dc5533c50cefd50405344b235937142271f26229fe39cbee27fd4960e8bb897a0beebfad77a1091ca91cd0d1fb14e70fc37cc114dd9674fb2c32e0ab512ec8a4.js"
        integrity="sha512-3FUzxQzv1QQFNEsjWTcUInHyYin&#43;OcvuJ/1JYOi7iXoL7r&#43;td6EJHKkc0NH7FOcPw3zBFN2WdPssMuCrUS7IpA=="
        data-repo-url="https://api.github.com/repos/leviceroy/morning-routine-system"
        data-repo-id="github-4ad4870547a763c56920d09b99301305"></script>
    </a>
  </div> - everything you need is included.</p>
<p>Or just start simple: create a daily note every morning and write down what you did yesterday. You'd be surprised what patterns emerge.</p>
<p>What would you automate in your morning routine if you could? Possibilities are endless. Just think creatively</p>
]]></content:encoded><media:content url="https://libreleo.com/img/featured/morning-routine-workflow-obsidian-claude.webp" medium="image"/></item><item><title>Asking AI the Right Questions: Your Secret Weapon for Financial Freedom</title><link>https://libreleo.com/ai/ai-prompting-financial-freedom/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/ai/ai-prompting-financial-freedom/</guid><description>Stop getting generic advice from AI. Learn how to ask ChatGPT or Claude the right questions about your money so you actually get helpful answers. Real examples for budgeting, investing, and debt payoff included.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  I know you've tried asking ChatGPT, Gemini or Claude about your finances. You type &quot;how can I save more money?&quot; and get back the same generic stuff you could've found on any finance blog. Meanwhile, there's people getting detailed investment breakdowns, personalized budget plans, and tax strategies from the exact same AI you're using.
</div>

<p>What's the difference?</p>
<p>The way they're asking.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>A prompt isn't just a question - it's a set of instructions. Think of it as programming the AI to give you exactly what you need instead of just... whatever it feels like spitting out.</p></div></div><p>Let me show you how this works, specifically for money stuff.</p>

<h2 class="relative group">What actually is a prompt?
    <div id="what-actually-is-a-prompt" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-actually-is-a-prompt" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>A prompt is basically your way of telling an AI model what you want. But there's a huge difference between asking like you're Googling something and actually giving the AI enough info to help you.</p>
<p>Bad version: &quot;Help me budget&quot;</p>
<p>Good version: &quot;Act as a certified financial planner. I make $85,000/year, my fixed expenses are $3,500/month. Create a detailed budget using the 50/30/20 rule with specific dollar amounts and savings goals.&quot;</p>
<p>See what happened there? The second one gives the AI everything it needs. Who to be. What numbers to work with. How to format the answer.</p>

<h3 class="relative group">Why this matters for your money
    <div id="why-this-matters-for-your-money" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-this-matters-for-your-money" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Financial decisions compound. You know this. A mediocre budget over ten years costs you thousands. A poorly thought-out investment strategy? Tens of thousands left on the table.</p>
<p>If you can get AI to give you actually useful financial advice - like, really tailored to your situation - you're basically getting a financial advisor for free. But only if you know how to ask.</p>

<h2 class="relative group">The four things every good prompt needs
    <div id="the-four-things-every-good-prompt-needs" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-four-things-every-good-prompt-needs" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Alright, there's four pieces to this puzzle. Get these right and you'll get better advice than most people pay hundreds for.</p>

<h3 class="relative group">1. Give it a persona
    <div id="1-give-it-a-persona" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-give-it-a-persona" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This is where you tell the AI what kind of expert you need it to be. And this totally changes the answer you get.</p>
<p>Here's what I mean:</p>
<p>Generic: &quot;How should I invest?&quot;</p>
<p>With a persona: &quot;You're a fee-only fiduciary financial advisor who's helped middle-income people reach financial independence for 20 years. How should I invest?&quot;</p>
<p>That second version? It's telling the AI to think like someone who has a legal duty to act in YOUR best interest. Someone who doesn't get paid commissions. Someone who knows the path to FI.</p>
<p>More examples you can use:</p>
<ul>
<li>&quot;You're a tax specialist who helps high earners optimize their tax strategy...&quot;</li>
<li>&quot;You're a retirement specialist who helps people in their 40s catch up on savings...&quot;</li>
<li>&quot;You're a behavioral economist who gets why people struggle with spending...&quot;</li>
<li>&quot;You're a debt elimination coach who's helped thousands pay off six-figure debts...&quot;</li>
</ul>
<p>Give your AI a personality. Seriously, it makes a massive difference.</p>

<h3 class="relative group">2. Load it up with context
    <div id="2-load-it-up-with-context" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-load-it-up-with-context" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Context is the details about YOUR situation. This is what turns generic advice into something you can actually use.</p>
<p>No context: &quot;Give me investment ideas under $10,000&quot;</p>
<p>Loaded with context: &quot;I'm 32, have $10,000 to invest. Already maxing out my tax-advantaged retirement accounts. Emergency fund's covered. I've got moderate risk tolerance, 30-year time horizon. Want to diversify outside retirement accounts. Give me five specific options with pros and cons.&quot;</p>
<p>The second one tells the AI:</p>
<ul>
<li>How old you are</li>
<li>What you've already done</li>
<li>How much risk you're okay with</li>
<li>What timeframe you're working with</li>
<li>Exactly what format you want</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="important">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Always be contexting!</strong></p></div></div><p>Throw in everything that's relevant:</p>
<ul>
<li>Your income and expenses</li>
<li>Current debts and assets</li>
<li>Time horizons (when do you need this money?)</li>
<li>How much risk you can stomach</li>
<li>Family situation</li>
<li>Career stuff</li>
<li>Your actual goals</li>
</ul>
<p>The more you give it, the better it gets.</p>

<h3 class="relative group">3. Tell it how to format the answer
    <div id="3-tell-it-how-to-format-the-answer" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3-tell-it-how-to-format-the-answer" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This is where you get specific about how you want the information back. Format, length, tone. All of it.</p>
<p>Format example:</p>
<p>&quot;Present the budget breakdown as:</p>
<ol>
<li>A table with categories, amounts, and percentages</li>
<li>A ranked list of where I can cut spending</li>
<li>Action steps I can do this week&quot;</li>
</ol>
<p>Length example:</p>
<p>&quot;Keep it under 300 words, but give me a detailed spreadsheet format for the calculations.&quot;</p>
<p>Tone example:</p>
<p>&quot;Be professional but encouraging. I need straight talk, not sugar-coating. But also don't make me feel bad about my mistakes.&quot;</p>
<p>For financial stuff, you can ask for:</p>
<ul>
<li>Spreadsheet-ready formats</li>
<li>Comparison tables</li>
<li>Decision matrices</li>
<li>Priority rankings</li>
<li>Step-by-step plans</li>
</ul>
<p>Whatever makes it easiest for YOU to use.</p>

<h3 class="relative group">4. Show it examples (few-shot prompting)
    <div id="4-show-it-examples-few-shot-prompting" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#4-show-it-examples-few-shot-prompting" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This one's sneaky powerful. You literally show the AI exactly what you want by giving it an example.</p>
<p>Like this:</p>
<p>&quot;I want you to analyze investment options. Format your response EXACTLY like this:</p>
<p><strong>Investment Option:</strong> Global Stock Market Index Fund
<strong>Risk Level:</strong> Moderate (6/10)
<strong>Minimum Investment:</strong> $1,000
<strong>Expected Return:</strong> 7-10% annually
<strong>Pros:</strong></p>
<ul>
<li>Low expense ratio (typically 0.05-0.20%)</li>
<li>Broad diversification across thousands of stocks</li>
<li>Strong long-term historical performance
<strong>Cons:</strong></li>
<li>No downside protection in bear markets</li>
<li>Value fluctuates with market conditions
<strong>Best For:</strong> Long-term investors (10+ years) comfortable with market swings</li>
</ul>
<p>Now analyze these three investments using the same format: [your list]&quot;</p>
<p>The AI will copy your structure exactly. Makes comparing options super easy.</p>

<h2 class="relative group">Advanced stuff (Chain of Thought and Tree of Thoughts)
    <div id="advanced-stuff-chain-of-thought-and-tree-of-thoughts" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#advanced-stuff-chain-of-thought-and-tree-of-thoughts" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Okay so once you've got the basics down, there's some advanced techniques that'll blow your mind.</p>

<h3 class="relative group">Chain of Thought (making it show its work)
    <div id="chain-of-thought-making-it-show-its-work" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#chain-of-thought-making-it-show-its-work" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This is where you tell the AI to think step-by-step before answering. It's like when your math teacher made you show your work, except here it actually helps.</p>
<p>Example for retirement planning:</p>
<p>&quot;I'm 35 with $50,000 saved for retirement. Want to retire at 55 with $2 million. Before you give me a plan, think through step-by-step:</p>
<ol>
<li>How much do I need to save monthly to hit $2 million by 55?</li>
<li>What investment return assumptions are we using? Are they realistic?</li>
<li>What could derail this plan? (Market crashes, job loss, inflation)</li>
<li>What adjustments could I make if I fall behind?</li>
</ol>
<p>Show all your calculations and reasoning, then give me the recommendation.&quot;</p>
<p>Why this works:</p>
<ul>
<li>The AI catches its own mistakes</li>
<li>You see the reasoning (builds trust)</li>
<li>You actually learn something, not just get an answer</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>ChatGPT has an &quot;extended thinking&quot; mode (looks like a clock icon). Use it for complex financial calculations - it forces the AI to reason step-by-step.</p></div></div>
<h3 class="relative group">Tree of Thoughts (exploring multiple paths)
    <div id="tree-of-thoughts-exploring-multiple-paths" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tree-of-thoughts-exploring-multiple-paths" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This one's wild. You have the AI explore multiple approaches, evaluate each one, then combine the best parts into one optimal strategy.</p>
<p>Here's an example for debt payoff:</p>
<p>&quot;You're a financial counselor who specializes in debt elimination. I've got:</p>
<ul>
<li>$35,000 student loans at 5.5%</li>
<li>$8,000 credit card debt at 18%</li>
<li>$12,000 car loan at 4%</li>
<li>$2,000/month surplus after minimums</li>
</ul>
<p>Use Tree of Thoughts to find the best payoff strategy:</p>
<p><strong>Step 1:</strong> Brainstorm three approaches:</p>
<ul>
<li>Branch A: &quot;Debt Avalanche&quot; - highest interest first (pure math)</li>
<li>Branch B: &quot;Debt Snowball&quot; - smallest balance first (psychology)</li>
<li>Branch C: &quot;Hybrid&quot; - balance transfer the credit card to 0%, then avalanche</li>
</ul>
<p><strong>Step 2:</strong> Evaluate each:</p>
<ul>
<li>Calculate total interest and timeline for each</li>
<li>What are the psychological pros/cons?</li>
<li>Risk factors (what if I lose my job?)</li>
<li>Which builds momentum vs. saves most money?</li>
</ul>
<p><strong>Step 3:</strong> Combine the best parts into one &quot;Golden Path&quot; that balances:</p>
<ul>
<li>Math efficiency</li>
<li>Psychological wins</li>
<li>Risk management</li>
</ul>
<p><strong>Step 4:</strong> Give me the complete plan:</p>
<ul>
<li>Month-by-month payment schedule</li>
<li>Total interest saved vs. just paying minimums</li>
<li>Milestones to celebrate</li>
<li>Backup plan if income changes</li>
</ul>
<p>Show your reasoning for everything.&quot;</p>
<p>Why this is powerful: You get the benefits of multiple strategies combined. Pure optimization + psychological momentum + creative alternatives. All customized to YOUR situation.</p>

<h2 class="relative group">Build a prompt library (I'm using Obsidian for that)
    <div id="build-a-prompt-library-im-using-obsidian-for-that" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#build-a-prompt-library-im-using-obsidian-for-that" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Here's what nobody tells you: once you find a prompt that works great, SAVE IT. Build a collection.</p>

<h3 class="relative group">Good ones to save
    <div id="good-ones-to-save" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#good-ones-to-save" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Monthly budget review:</strong>
&quot;Act as my CFO. Review last month's spending [paste data]. Compare to my budget [paste budget]. Identify top 3 areas where I overspent, explain why, give me specific fixes. Format: Problem | Why It Happened | Solution | Expected Savings.&quot;</p>
<p><strong>Investment rebalancing:</strong>
&quot;You're a fee-only advisor. Target allocation: 70% stocks, 25% bonds, 5% cash. Current allocation: [paste data]. Calculate exactly what I need to buy/sell to rebalance. Give me a specific action list with dollar amounts.&quot;</p>
<p><strong>Tax optimization:</strong>
&quot;Act as a tax specialist for middle-income earners. Income: $X, current deductions: $Y, investments: $Z. Give me the top 5 ways to reduce my tax burden before year-end. Prioritize by savings amount and how easy they are to do.&quot;</p>
<p><strong>Emergency fund check:</strong>
&quot;You're a risk management specialist. Monthly expenses: $X, current emergency savings: $Y, job stability: [level], dependents: [number]. Is my emergency fund adequate? If not, how much more and how fast should I build it?&quot;</p>

<h3 class="relative group">Where to keep them
    <div id="where-to-keep-them" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#where-to-keep-them" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Keep it simple:</p>
<ul>
<li>Text file (old school works)</li>
<li>Note app (Obsidian, Notion, Evernote)</li>
<li>Fabric tool (has an <code>improve_prompt</code> feature)</li>
<li>Spreadsheet (organized by topic)</li>
</ul>
<p>Tag them so you can find stuff:</p>
<ul>
<li>By topic (budgeting, investing, debt, taxes)</li>
<li>By complexity (beginner, advanced)</li>
<li>By time needed</li>
<li>By output format</li>
</ul>

<h2 class="relative group">Making your prompts better over time
    <div id="making-your-prompts-better-over-time" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#making-your-prompts-better-over-time" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Your first attempts won't be perfect. That's normal. The key is getting better at it.</p>
<p>The cycle:</p>
<ol>
<li>Try a prompt on a real question</li>
<li>Look at what you got back - was it useful?</li>
<li>Figure out what was missing</li>
<li>Adjust the prompt (more context, better formatting, whatever)</li>
<li>Try the new version</li>
</ol>
<p>People like Daniel Miessler, Joseph Thacker, and Eric Pope have built entire frameworks around this. Miessler's Fabric tool has this <code>improve_prompt</code> feature that'll analyze your prompts and suggest how to make them better.</p>
<p>Common fixes:</p>
<ul>
<li>Too vague? Add more context and numbers</li>
<li>Too long? Break it into multiple prompts</li>
<li>Wrong tone? Adjust the persona and output requirements</li>
<li>Missing stuff? Add examples</li>
<li>Getting bad answers? Use Chain of Thought so you can see where it's going wrong</li>
</ul>

<h2 class="relative group">The real skill here is clarity
    <div id="the-real-skill-here-is-clarity" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-real-skill-here-is-clarity" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>At the end of the day, this whole prompting thing is really about thinking clearly. When you get good at articulating exactly what you need from an AI, you also get better at:</p>
<ul>
<li>Asking good questions in real life</li>
<li>Making clearer financial decisions</li>
<li>Talking to actual financial advisors</li>
<li>Understanding your own goals</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Better prompting = better thinking. It's not just an AI hack - it's a life skill.</p></div></div>
<h2 class="relative group">Your action plan for 2026
    <div id="your-action-plan-for-2026" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#your-action-plan-for-2026" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Ready to actually use this stuff? Here's what to do:</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="This Week">
          <span class="flex items-center gap-1">
            
            This Week
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="This Month">
          <span class="flex items-center gap-1">
            
            This Month
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="This Quarter">
          <span class="flex items-center gap-1">
            
            This Quarter
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <ol>
<li>Pick ONE financial question you're stuck on (budget, investing, debt, whatever)</li>
<li>Write a complete prompt with all four pieces (persona, context, output format, examples if needed)</li>
<li>Run it in ChatGPT, Claude, or whatever AI you use</li>
<li>Save both the prompt and the results</li>
</ol>

      </div><div class="tab__panel " data-tab-index="1">
        <ol>
<li>Create 5 core prompts for questions you ask a lot</li>
<li>Test and tweak each one</li>
<li>Organize them by topic</li>
<li>Try Chain of Thought on a complex calculation</li>
<li>Test Tree of Thoughts on a big decision</li>
</ol>

      </div><div class="tab__panel " data-tab-index="2">
        <ol>
<li>Build a complete library covering your whole financial life</li>
<li>Share prompts with friends (help them level up too)</li>
<li>Track if this actually improves your results</li>
<li>Check out Fabric or other prompt tools</li>
</ol>

      </div></div>
</div>

<p>Look, AI is changing how we deal with money. But it only helps if you know how to use it. Most people are getting garbage advice because they're asking garbage questions. And remember, it's not just for dealing with money, it's for everything else too.</p>
<p>You don't have to be most people.</p>
<p>Start building your prompt library today. Your financial freedom literally depends on asking the right questions the right way.</p>
<p>What's the first financial decision you're gonna tackle with this?</p>
]]></content:encoded><media:content url="https://libreleo.com/img/featured/ai-prompting-financial-freedom.webp" medium="image"/></item><item><title>Python for Financial Freedom: Code Your Way to Wealth</title><link>https://libreleo.com/scripts/python-for-financial-freedom/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/scripts/python-for-financial-freedom/</guid><description>Spreadsheets won't get you to financial freedom. Learn how Python can automate your finances, predict your future, and stress-test your retirement plan like the pros do.</description><content:encoded><![CDATA[<p>Spreadsheets are great for tracking what already happened. But they're terrible at predicting what's gonna happen.</p>
<p>And if you're serious about financial freedom, you need to stop just tracking the past and start modeling the future.</p>
<p>That's where Python comes in.</p>

<h2 class="relative group">Why your spreadsheet is holding you back
    <div id="why-your-spreadsheet-is-holding-you-back" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-your-spreadsheet-is-holding-you-back" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Financial independence means your passive income covers your living expenses. Simple concept but not that easy to execute.</p>
<p>You're planning for 30+ years of retirement. You've got inflation, market volatility and  sequence of returns risk (the danger that the market crashes right when you retire). Unknown healthcare costs. Life not turning the way you expect.</p>
<p>A static spreadsheet with some formulas? That's not gonna cut it.</p>
<p>You need to model volatility and not assume stability. Worst case scenario!</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Critical
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Critical:</strong> Always model volatility and plan for worst-case scenarios. Your financial future depends on it!</p></div></div><p>Python lets you move from just reporting on your money to actually simulating and optimizing your future. It's the difference between looking in the rear mirror and having a GPS that shows you every possible route.</p>

<h2 class="relative group">The four ways Python changes your financial game
    <div id="the-four-ways-python-changes-your-financial-game" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-four-ways-python-changes-your-financial-game" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Python and its libraries turn personal finance into a legit analytical project. Where YOU are the analyst.</p>

<h3 class="relative group">1. Automated budgeting
    <div id="1-automated-budgeting" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-automated-budgeting" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>First step to FI? Knowing exactly where your money goes.</p>
<p>Here's what Python can do:</p>
<table>
	<thead>
			<tr>
					<th>Library</th>
					<th>What It Does</th>
					<th>Why It's Powerful</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Pandas</strong></td>
					<td>Organizes your data</td>
					<td>Imports transactions from all your accounts into clean, organized tables you can actually work with</td>
			</tr>
			<tr>
					<td><strong>Plaid/APIs</strong></td>
					<td>Connects to your banks</td>
					<td>Pulls data automatically from over 11,000 financial institutions - no more manual downloads</td>
			</tr>
			<tr>
					<td><strong>Matplotlib/Seaborn</strong></td>
					<td>Creates charts</td>
					<td>Generates spending heatmaps and savings trends that show you patterns you'd never spot otherwise</td>
			</tr>
	</tbody>
</table>
<p><strong>My daily routine:</strong> I run Python scripts daily that track my spending and email me a report before I've had my morning coffee. I perfected that routine to my own liking.</p>
<p>No manual work. No forgetting to log stuff. Just automated tracking that runs in the background.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Pro Tip: Automate Everything
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Automated tracking isn't just convenient; it ensures accuracy and consistency, freeing you from manual errors and forgotten entries. Embrace automation to gain a true, real-time picture of your financial flows. Make it a habit!</p></div></div>
<h3 class="relative group">2. Portfolio optimization
    <div id="2-portfolio-optimization" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-portfolio-optimization" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>This is where Python separates amateurs from pros.</p>

<h4 class="relative group">Monte Carlo simulations
    <div id="monte-carlo-simulations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#monte-carlo-simulations" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Instead of assuming &quot;the market returns 7% every year&quot; (which never happens), you can run 10,000+ simulations of different possible futures.</p>
<p>Each simulation represents a different way the market could play out. Some years are up 30%. Some are down 20%. Some are flat.</p>
<p><strong>What you get:</strong></p>
<ul>
<li>Actual probability your money lasts 30+ years</li>
<li>Real success rates (like &quot;95% chance of success&quot;)</li>
<li>Quantified sequence of returns risk</li>
</ul>
<p>This is what financial advisors charge thousands for. You can do it yourself.</p>

<h4 class="relative group">Building better portfolios
    <div id="building-better-portfolios" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#building-better-portfolios" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Python lets you use Modern Portfolio Theory to find the optimal mix of assets for YOUR risk tolerance.</p>
<p>Pull historical data using free libraries like <code>yfinance</code>. Test different allocations. Customize everything based on when you want to retire and how much risk you can take.</p>
<p>Not some generic &quot;60/40&quot; portfolio everyone recommends. YOUR optimal mix.</p>

<h3 class="relative group">3. Automated rebalancing
    <div id="3-automated-rebalancing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3-automated-rebalancing" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Your target is 80% stocks, 20% bonds. Market moves and now you're at 75/25.</p>
<p>Manually calculating what to buy or sell? A pain in the ass.</p>
<p>Python script? Tells you exactly how many shares to buy or sell to get back to your target. Accounts for trading costs. Optimizes which accounts to trade in for tax efficiency.</p>
<p>One click and you're done. Check out my portfolio rebalancing calculator.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Maximize Tax Efficiency
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Automated rebalancing isn't just about maintaining your target asset allocation; it can also be configured to optimize for tax efficiency by making trades in the most advantageous accounts.</p></div></div>
<h3 class="relative group">4. Back-testing your plan
    <div id="4-back-testing-your-plan" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#4-back-testing-your-plan" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The biggest barrier to pulling the trigger on early retirement is Fear.</p>
<p>&quot;What if I run out of money?&quot;
&quot;What if the market crashes?&quot;
&quot;What if I'm wrong about my safe withdrawal rate rule?&quot;</p>
<p>Python lets you stress-test your exact plan against decades of real market history.</p>
<p>Want to know what would've happened if you retired in 2008? Run it.</p>
<p>Curious if 3.5% withdrawal is safer than 4%? Test both.</p>
<p>Wondering if a dynamic withdrawal strategy beats a static one? Back-test it.</p>
<p>This turns &quot;hopeful guessing&quot; into data-driven conviction.</p>
<p>You'll know if your plan would've survived the Great Depression, the dot-com crash, 2008, COVID. All of it.</p>

<h2 class="relative group">How to actually start (my own framework)
    <div id="how-to-actually-start-my-own-framework" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-actually-start-my-own-framework" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>You don't need to be a developer. You just need a plan.</p>
<p>Here's my PLOUTOS 4.0 framework:</p>
<table>
	<thead>
			<tr>
					<th>Phase</th>
					<th>What You're Doing</th>
					<th>Tools</th>
					<th>First Action</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Phase 1: Data Gathering</strong></td>
					<td>Automate tracking of transactions and balances</td>
					<td>Pandas, yfinance, API calls</td>
					<td>Write a script to download and categorize 12 months of spending into five buckets: Housing, Food, Transport, Fun, Investing</td>
			</tr>
			<tr>
					<td><strong>Phase 2: Prediction</strong></td>
					<td>Figure out if your plan will actually work</td>
					<td>NumPy, SciPy</td>
					<td>Build a Monte Carlo simulator to test the 4% rule against your portfolio over 30 years - see your actual success rate</td>
			</tr>
			<tr>
					<td><strong>Phase 3: Optimization</strong></td>
					<td>Make your portfolio better</td>
					<td>riskfolio-lib, Pandas</td>
					<td>Create a function that shows your current allocation and tells you exactly what trades to make to hit your targets</td>
			</tr>
			<tr>
					<td><strong>Phase 4: Monitoring</strong></td>
					<td>Track everything in real-time</td>
					<td>Streamlit, Plotly</td>
					<td>Build a simple dashboard showing your FI status, withdrawal safety score, and spending vs budget</td>
			</tr>
	</tbody>
</table>
<p><strong>Pro tip:</strong> Check out my calculators on LibreLeo for back-testing and simulations. I've already built a bunch of this stuff.</p>

<h2 class="relative group">Why this actually matters
    <div id="why-this-actually-matters" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-this-actually-matters" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Financial independence is about maximizing freedom in your life.</p>
<p>Python is the tool that lets you:</p>
<p><strong>1. Reduce anxiety</strong> by putting numbers on your risks instead of just worrying about them</p>
<p><strong>2. Save time</strong> by automating tedious tasks that eat up hours every month</p>
<p><strong>3. Gain confidence</strong> by stress-testing your plan against history's worst scenarios</p>
<p>You will have to put in the time to learn Python. There are some great learning platforms for python. For example Udemy.</p>
<p>But with AI tools now? It's easier than ever. AI tools can be a great coding companion.</p>
<p>The power you get over your financial future is worth the effort.</p>

<h2 class="relative group">Your next steps
    <div id="your-next-steps" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#your-next-steps" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Stop reading. Start doing.</p>
<p><strong>This week:</strong></p>
<ol>
<li>Install Python</li>
<li>Download your transaction history from your bank (CSV file)</li>
<li>Run a basic Pandas script to categorize your spending</li>
</ol>
<p><strong>This month:</strong>
4. Build a simple Monte Carlo simulation for retirement
5. Test your current portfolio allocation
6. Set up automated data pulls from your accounts</p>
<p><strong>This quarter:</strong>
7. Create your first dashboard
8. Run back-tests on different withdrawal strategies
9. Optimize your portfolio based on actual data</p>
<p>The difference between people who talk about FI and people who achieve it? The ones who achieve it measure everything, test everything, and optimize relentlessly.</p>
<p>Python is how you do that without spending 40 hours a week on spreadsheets. Don’t get me wrong. Spreadsheets still have their place, but not as a standalone tool. They are far more powerful when combined with Python.</p>
<p>Start coding. Start automating. Accelerate your path to freedom.</p>
<p>Your future self will thank you.</p>
<hr>
<p>Got questions about getting started with Python for finance? Drop them in the comments. I've been doing this for years and I'm happy to help.</p>
]]></content:encoded><media:content url="https://libreleo.com/img/featured/python-for-financial-freedom.webp" medium="image"/></item><item><title>Emergency Fund: Your Financial Safety Net</title><link>https://libreleo.com/posts/emergency-fund-calculator-guide/</link><pubDate>Fri, 02 Jan 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/emergency-fund-calculator-guide/</guid><description>Learn why an emergency fund is essential for financial stability, how much you should save, and use our free calculator to determine your ideal emergency fund size.</description><content:encoded><![CDATA[<p>Life is unpredictable. Your car breaks down before payday (Murphy's law) or you get unexpectedly fired among other events. These moments are stressful enough without wondering how you'll pay for all of it.</p>
<p>That's where an emergency fund comes in!</p>
<p><strong>→ Calculate your exact emergency fund target:</strong> <a href="/calculators/emergency-fund-calculator/" >Emergency Fund Calculator</a></p>

<h2 class="relative group">What Is an Emergency Fund?
    <div id="what-is-an-emergency-fund" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-is-an-emergency-fund" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>An emergency fund is money set aside specifically for emergencies. Not vacations. Not a new TV. Just emergencies.</p>

<h3 class="relative group">Why You Need One
    <div id="why-you-need-one" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-you-need-one" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Without an emergency fund, you're one unexpected expense away from:</p>
<ul>
<li>Credit card debt at a ridiculous 20%+ interest</li>
<li>Using your retirement accounts</li>
<li>Borrowing</li>
<li>Selling some of your investments</li>
<li>Desperate financial decisions under pressure</li>
</ul>

<h3 class="relative group">What Counts as an Emergency?
    <div id="what-counts-as-an-emergency" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-counts-as-an-emergency" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Is it urgent, necessary, and unexpected?</p>
<p><strong>True emergencies:</strong></p>
<ul>
<li>Job loss or a salary cut</li>
<li>Medical emergencies not covered by insurance</li>
<li>Urgent home repairs</li>
<li>Unexpected car repairs</li>
<li>Emergency family travel</li>
</ul>
<p><strong>Not emergencies:</strong></p>
<ul>
<li>Holiday shopping</li>
<li>Concert tickets</li>
<li>&quot;Good deals&quot; on things you want</li>
<li>Annual expenses you could have planned for</li>
</ul>

<h2 class="relative group">How Much Should You Save?
    <div id="how-much-should-you-save" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-much-should-you-save" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Depends on you. But standard advice is: 3-6 months of essential expenses.</p>

<h3 class="relative group">Save 3 Months If You Have:
    <div id="save-3-months-if-you-have" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#save-3-months-if-you-have" aria-label="Anchor">#</a>
    </span>
    
</h3>
<ul>
<li>Stable employment in secure industry</li>
<li>Dual-income household</li>
<li>Minimal debts</li>
<li>Easy job replacement in your field</li>
</ul>

<h3 class="relative group">Save 6+ Months If You Have:
    <div id="save-6-months-if-you-have" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#save-6-months-if-you-have" aria-label="Anchor">#</a>
    </span>
    
</h3>
<ul>
<li>Self-employed</li>
<li>One income</li>
<li>Significant health concerns</li>
<li>Difficulty replacing income quickly</li>
</ul>
<p><strong>Stop guessing. Calculate your exact number:</strong>
<a href="/calculators/emergency-fund-calculator/" >Emergency Fund Calculator</a></p>
<p>The calculator breaks down your monthly expenses and shows exactly how much you need based on your desired runway.</p>

<h2 class="relative group">Where to Keep It &amp; How to Build It
    <div id="where-to-keep-it--how-to-build-it" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#where-to-keep-it--how-to-build-it" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Best Places for Your Fund
    <div id="best-places-for-your-fund" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#best-places-for-your-fund" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Your emergency fund needs three qualities:</p>
<p><strong>1. Accessible</strong> (within 1-2 days)</p>
<ul>
<li>High-yield savings accounts ✓</li>
<li>Money market accounts ✓</li>
<li>or Treasury Bonds. For example ticker: CLIP ✓</li>
</ul>
<p><strong>Avoid:</strong></p>
<ul>
<li>Stocks or similar</li>
<li>Retirement accounts</li>
</ul>
<p><strong>2. Safe</strong> (Make sure your money is in a safe place)
<strong>3. Separate</strong> (a different account from checking)</p>
<p><strong>Best option:</strong> High-yield savings accounts or Treasury Bonds (they pay monthly dividends)</p>

<h3 class="relative group">Building Your Fund: Start Small
    <div id="building-your-fund-start-small" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#building-your-fund-start-small" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Phase 1: The $1,000 Mini-Fund</strong>
Your first goal is not huge, but should cover for most emergencies.  emergencies:</p>
<ul>
<li>Minor car repairs</li>
<li>Urgent dental work</li>
<li>Small home repairs</li>
<li>Replacement appliances</li>
</ul>
<p><strong>Phase 2: Automate Everything</strong></p>
<ol>
<li>Set up automatic transfers when you get your salary</li>
<li>Decide on a recurring amount</li>
<li>It's non-negotiable</li>
<li>Increase when you get raises or a bonus</li>
</ol>
<p><strong>Phase 3: Increase Your Savings</strong>
Any extraordinary income is transferred to the fund:</p>
<ul>
<li>refunds</li>
<li>Work bonuses</li>
<li>Gift money</li>
<li>Side hustle income</li>
<li>Money from selling unused items</li>
</ul>

<h2 class="relative group">Using It Wisely
    <div id="using-it-wisely" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#using-it-wisely" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">The Three Questions Test
    <div id="the-three-questions-test" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-three-questions-test" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Before touching your emergency fund, ask:</p>
<ol>
<li>Is this truly unexpected?</li>
<li>Is it necessary for health, safety, or survival?</li>
<li>Do I have no other reasonable way to pay for this?</li>
</ol>
<p>All three &quot;yes&quot;? Use it. That's what it's for.</p>

<h3 class="relative group">Avoid These Mistakes
    <div id="avoid-these-mistakes" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#avoid-these-mistakes" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Mistake #1: Too Accessible</strong>
Keep it in a separate account. Not your checking.</p>
<p><strong>Mistake #2: Never Adjusting</strong>
Review annually.</p>
<p><strong>Mistake #3: Chasing Returns</strong>
Accept the yield you get from savings accounts or treasury  bonds. Your emergency fund is NOT an investment. It's insurance.</p>
<p><strong>Mistake #4: Not Replenishing</strong>
Used your fund? Your new #1 priority is rebuilding it immediately.</p>

<h2 class="relative group">Your Action Plan
    <div id="your-action-plan" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#your-action-plan" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>This Week:</strong></p>
<ol>
<li><strong>Calculate your target:</strong> <a href="/calculators/emergency-fund-calculator/" >Emergency Fund Calculator</a></li>
<li>Open a high-yield account or start putting some money in Treasury Bonds.</li>
<li>Set up automatic transfer</li>
</ol>
<p><strong>This Month:</strong></p>
<ul>
<li>Review budget for temporary cuts</li>
<li>Redirect one income stream to fund</li>
</ul>
<p><strong>This Quarter:</strong></p>
<ul>
<li>Reach $1,000 mini fund goal</li>
<li>Adjust automatic transfers</li>
<li>Keep momentum toward full fund</li>
</ul>
<p><strong>This Year:</strong></p>
<ul>
<li>Hit your 3-6 month target</li>
<li>Review for life changes</li>
<li>Sleep better knowing you're protected. And trust me, you'll be happy to know you've got an emergency fund</li>
</ul>

<h2 class="relative group">The Bottom Line
    <div id="the-bottom-line" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-bottom-line" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>An emergency fund is not sexy. It won't make you rich. But it helps prevent you from becoming poor when life suddenly doesn’t go as planned.</p>
<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Peace of mind!
</div>

<p><strong>→ Start now:</strong> <a href="/calculators/emergency-fund-calculator/" >Emergency Fund Calculator</a></p>
<p>Calculate your target, set your goal, and start building your safety net today.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/emergency-fund-calculator-guide.webp" medium="image"/></item><item><title>How to Use the Emergency Fund Calculator</title><link>https://libreleo.com/calculators/emergency-fund-calculator/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://libreleo.com/calculators/emergency-fund-calculator/</guid><description>Step-by-step guide to using my free emergency fund calculator to determine how much cash you should save for emergencies.</description><content:encoded><![CDATA[<span class="flex cursor-pointer">
  
  
  
  
    <span
      class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
  
    
Updated: 19/06/2026

  </span>
</span>


<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Use this interactive calculator to determine exactly how much you should save for emergencies based on your actual monthly expenses and desired runway length.
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Want to understand emergency funds better?</strong> Read my complete guide: <a href="/posts/emergency-fund-calculator-guide/" >Emergency Fund - Your Financial Safety Net</a></p></div></div><hr>

<h2 class="relative group">Emergency Fund Calculator
    <div id="emergency-fund-calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#emergency-fund-calculator" aria-label="Anchor">#</a>
    </span>
    
</h2>

<style>
    :root {
        --ef-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
        --ef-background-color: #ffffff;
        --ef-card-background-color: #ffffff;
        --ef-border-color: #e2e8f0;
        --ef-text-color: #1a202c;
        --ef-label-color: #4a5568;
        --ef-input-background-color: #ffffff;
        --ef-input-border-color: #cbd5e0;
        --ef-primary-color: #48bb78;  
        --ef-primary-color-light: #9ae6b4;  
        --ef-results-background: #f0fff4;  
        --ef-tooltip-bg: #555;
        --ef-tooltip-text: #fff;
        --ef-slider-bg: #e2e8f0;
        --ef-button-hover-bg: #e2e8f0;
    }

    .dark {
        --ef-background-color: #1a202c;
        --ef-card-background-color: #2d3748;
        --ef-border-color: #4a5568;
        --ef-text-color: #e2e8f0;
        --ef-label-color: #a0aec0;
        --ef-input-background-color: #1a202c;
        --ef-input-border-color: #4a5568;
        --ef-primary-color: #48bb78;  
        --ef-primary-color-light: #68d391;  
        --ef-results-background: #2f4f3f;  
        --ef-tooltip-bg: #4a5568;
        --ef-tooltip-text: #e2e8f0;
        --ef-slider-bg: #4a5568;
        --ef-button-hover-bg: #4a5568;
    }

    .ef-calculator {
        font-family: var(--ef-font-family);
        background-color: var(--ef-card-background-color);
        color: var(--ef-text-color);
        border: 1px solid var(--ef-border-color);
        border-radius: 0.75rem;
        padding: 2rem;
        margin: 2rem auto;
        max-width: 900px;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    }

    .ef-header {
        text-align: left;
        margin-bottom: 2rem;
    }

    .ef-calculator h2 {
        margin-top: 0;
        margin-bottom: 0.5rem;
        font-size: 2.25rem;
        font-weight: 700;
        color: var(--ef-text-color);
    }

    .ef-calculator .ef-subtitle {
        font-size: 1.125rem;
        color: var(--ef-label-color);
    }

    .ef-main-grid {
        display: flex;
        flex-direction: column;
        gap: 3rem;
    }

    .ef-inputs-column {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
    }

    .ef-section-title {
        font-weight: 700;
        text-transform: uppercase;
        font-size: 0.875rem;
        color: var(--ef-label-color);
        margin-bottom: 0.75rem;
    }

    .ef-form-group {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        position: relative;
    }

    .ef-form-group label {
        flex: 1;
        color: var(--ef-label-color);
        white-space: nowrap;
    }

    .ef-form-group input[type="text"],
    .ef-form-group input[type="number"] {
        padding: 0.75rem;
        border: 1px solid var(--ef-input-border-color);
        border-radius: 0.375rem;
        background-color: var(--ef-input-background-color);
        color: var(--ef-text-color);
        width: 120px;
        box-sizing: border-box;
        font-size: 1rem;
        text-align: right;
    }

    .ef-form-group input[type="text"]:focus,
    .ef-form-group input[type="number"]:focus {
        outline: none;
        border-color: var(--ef-primary-color);
        box-shadow: 0 0 0 1px var(--ef-primary-color);
    }

    .ef-tooltip {
        position: relative;
        cursor: pointer;
        margin-left: 0.25rem;
    }

    .ef-tooltip .ef-tooltip-text {
        visibility: hidden;
        width: 200px;
        background-color: var(--ef-tooltip-bg);
        color: var(--ef-tooltip-text);
        text-align: center;
        border-radius: 6px;
        padding: 5px;
        position: absolute;
        z-index: 1;
        bottom: 125%;
        left: 50%;
        margin-left: -100px;
        opacity: 0;
        transition: opacity 0.3s;
        font-size: 0.875rem;
        white-space: normal;
    }

    .ef-tooltip:hover .ef-tooltip-text {
        visibility: visible;
        opacity: 1;
    }

     
    .ef-runway-section {
        margin-top: 1.5rem;
    }

    .ef-runway-slider-group {
        display: flex;
        align-items: center;
        gap: 1rem;
        margin-top: 1rem;
    }

    #ef-runway-length-slider {
        -webkit-appearance: none;
        appearance: none;
        width: 100%;
        height: 8px;
        background: var(--ef-slider-bg);
        border-radius: 5px;
        outline: none;
        opacity: 0.7;
        -webkit-transition: .2s;
        transition: opacity .2s;
    }
    #ef-runway-length-slider:hover {
        opacity: 1;
    }
    #ef-runway-length-slider::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 20px;
        height: 20px;
        background: var(--ef-primary-color);
        cursor: pointer;
        border-radius: 50%;
    }
    #ef-runway-length-slider::-moz-range-thumb {
        width: 20px;
        height: 20px;
        background: var(--ef-primary-color);
        cursor: pointer;
        border-radius: 50%;
    }

    .ef-runway-display {
        display: flex;
        align-items: center;
        border: 1px solid var(--ef-input-border-color);
        border-radius: 0.375rem;
        padding: 0.75rem;
        gap: 0.5rem;
    }
    .ef-runway-display span {
        color: var(--ef-label-color);
        font-size: 0.875rem;
    }
    .ef-runway-display input {
        border: none;
        background: none;
        color: var(--ef-text-color);
        font-size: 1rem;
        width: 40px;
        text-align: center;
        padding: 0;
    }
    .ef-runway-display input:focus {
        outline: none;
    }

     
    .ef-results {
        margin-top: 2rem;
        background-color: var(--ef-results-background);
        border: 1px solid var(--ef-primary-color-light);
        border-radius: 0.375rem;
        padding: 1.5rem;
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .ef-result-item {
        display: flex;
        justify-content: space-between;
        font-size: 1.125rem;
        font-weight: 600;
        color: var(--ef-text-color);
    }
    .ef-result-item span:first-child {
        color: var(--ef-label-color);
    }

     
    .ef-reset-button {
        margin-top: 1rem;
        padding: 0.75rem 1.5rem;
        background-color: transparent;
        color: var(--ef-label-color);
        border: 1px solid var(--ef-input-border-color);
        border-radius: 0.375rem;
        font-size: 0.875rem;
        font-weight: 600;
        cursor: pointer;
        width: 100%;
        transition: all 0.2s;
    }

    .ef-reset-button:hover {
        background-color: var(--ef-button-hover-bg);
        border-color: var(--ef-label-color);
    }

    .ef-reset-button:active {
        transform: scale(0.98);
    }

    .ef-chart-container {
        position: relative;
        height: 350px;
        width: 380px;
        padding: 1rem;
        border: 1px solid var(--ef-border-color);
        border-radius: 0.75rem;
    }

</style>

<div class="ef-calculator">

    
<script>
(function () {
  if (window.finfreeCurrency) return;  

  var SYMBOLS = {
    USD: '$',
    EUR: '€',
    GBP: '£',
    CHF: 'CHF ',
    AED: 'AED ',
    SGD: 'S$',
    HKD: 'HK$',
    CNY: 'CN¥',
    PHP: '₱',
    MYR: 'RM ',
    INR: '₹'
  };

  var STORAGE_KEY = 'finfree-currency';
  var EVENT_NAME = 'finfree-currency-change';

  function safeRead() {
    try { return localStorage.getItem(STORAGE_KEY) || 'USD'; } catch (e) { return 'USD'; }
  }
  function safeWrite(code) {
    try { localStorage.setItem(STORAGE_KEY, code); } catch (e) {}
  }

  window.finfreeCurrency = {
    getCode: function () { return safeRead(); },
    getSymbol: function () { return SYMBOLS[safeRead()] || '$'; },
    getSymbolFor: function (code) { return SYMBOLS[code] || '$'; },
    set: function (code) {
      if (!SYMBOLS[code]) return;
      safeWrite(code);
      var detail = { code: code, symbol: SYMBOLS[code] };
      document.dispatchEvent(new CustomEvent(EVENT_NAME, { detail: detail }));
    },
    EVENT_NAME: EVENT_NAME,
    SYMBOLS: SYMBOLS
  };

  
  document.addEventListener(EVENT_NAME, function (e) {
    var selectors = document.querySelectorAll('select[data-finfree-currency]');
    selectors.forEach(function (s) {
      if (s.value !== e.detail.code) s.value = e.detail.code;
    });
  });

  document.addEventListener('DOMContentLoaded', function () {
    var current = safeRead();
    var selectors = document.querySelectorAll('select[data-finfree-currency]');
    selectors.forEach(function (s) {
      s.value = current;
      s.addEventListener('change', function () {
        window.finfreeCurrency.set(s.value);
      });
    });
  });
})();
</script>

<style>
  .finfree-currency-selector {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-bottom: 14px;
    font-size: 0.85em;
    color: var(--muted, #666);
  }
  .finfree-currency-selector select {
    padding: 4px 8px;
    border: 1px solid var(--input-border, #ced4da);
    border-radius: 4px;
    background-color: var(--input-bg, #ffffff);
    color: var(--card-text, #212529);
    font-size: 0.95em;
  }
</style>

<div class="finfree-currency-selector">
  <label for="finfree-currency-select-1782461070869363000">Currency:</label>
  <select id="finfree-currency-select-1782461070869366000" data-finfree-currency>
    <option value="USD">USD ($)</option>
    <option value="EUR">EUR (€)</option>
    <option value="GBP">GBP (£)</option>
    <option value="CHF">CHF (Fr.)</option>
    <option value="AED">AED (د.إ)</option>
    <option value="SGD">SGD (S$)</option>
    <option value="HKD">HKD (HK$)</option>
    <option value="CNY">CNY (¥)</option>
    <option value="PHP">PHP (₱)</option>
    <option value="MYR">MYR (RM)</option>
    <option value="INR">INR (₹)</option>
  </select>
</div>


    <div class="ef-header">
        <h2>Emergency Fund Calculator</h2>
        <p class="ef-subtitle">How much cash should you have saved up in case of an emergency?</p>
    </div>
    <div class="ef-main-grid">
        <div class="ef-inputs-column">
            <div>
                <div class="ef-section-title">YOUR EXPENSES</div>
                <div class="ef-form-group">
                    <label for="ef-housing">Housing</label>
                    <input type="text" id="ef-housing" value="1000">
                    <span class="ef-tooltip">
                        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        <span class="ef-tooltip-text">Monthly cost for rent or mortgage.</span>
                    </span>
                </div>
                <div class="ef-form-group">
                    <label for="ef-transportation">Transportation</label>
                    <input type="text" id="ef-transportation" value="300">
                    <span class="ef-tooltip">
                        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        <span class="ef-tooltip-text">Monthly cost for car payments, fuel, public transport, etc.</span>
                    </span>
                </div>
                <div class="ef-form-group">
                    <label for="ef-food">Food</label>
                    <input type="text" id="ef-food" value="300">
                    <span class="ef-tooltip">
                        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        <span class="ef-tooltip-text">Monthly cost for groceries and dining out.</span>
                    </span>
                </div>
                <div class="ef-form-group">
                    <label for="ef-insurance">Insurance</label>
                    <input type="text" id="ef-insurance" value="400">
                    <span class="ef-tooltip">
                        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        <span class="ef-tooltip-text">Monthly cost for health, car, home, or other insurance premiums.</span>
                    </span>
                </div>
                <div class="ef-form-group">
                    <label for="ef-debt-repayment">Debt Repayment</label>
                    <input type="text" id="ef-debt-repayment" value="500">
                    <span class="ef-tooltip">
                        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        <span class="ef-tooltip-text">Minimum monthly payments on debts like credit cards, student loans, etc.</span>
                    </span>
                </div>
                <div class="ef-form-group">
                    <label for="ef-other-spending">Other Spending</label>
                    <input type="text" id="ef-other-spending" value="400">
                    <span class="ef-tooltip">
                        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        <span class="ef-tooltip-text">Any other recurring monthly expenses not covered above.</span>
                    </span>
                </div>
            </div>

            <div class="ef-runway-section">
                <div class="ef-section-title">
                    RUNWAY LENGTH (IN MONTHS)
                    <span class="ef-tooltip">
                        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        <span class="ef-tooltip-text">The number of months you want your emergency fund to cover your expenses.</span>
                    </span>
                </div>
                <div class="ef-runway-slider-group">
                    <input type="range" id="ef-runway-length-slider" min="1" max="24" step="1" value="6">
                    <div class="ef-runway-display">
                        <input type="number" id="ef-runway-length-input" value="6">
                        <span>Months</span>
                    </div>
                </div>
            </div>

            <div class="ef-results">
                <div class="ef-result-item">
                    <span>MONTHLY SPENDING:</span>
                    <span id="ef-monthly-spending-output">$2,900</span>
                </div>
                <div class="ef-result-item">
                    <span>EMERGENCY FUND:</span>
                    <span id="ef-emergency-fund-output">$17,400</span>
                </div>
            </div>

            <button id="ef-reset-button" class="ef-reset-button">Reset to Default Values</button>
        </div>
        <div class="ef-chart-container">
            <canvas id="ef-chart"></canvas>
        </div>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
    
    const defaultValues = {
        housing: 1000,
        transportation: 300,
        food: 300,
        insurance: 400,
        debtRepayment: 500,
        otherSpending: 400,
        runwayLength: 6
    };

    
    const expenseInputs = [
        document.getElementById('ef-housing'),
        document.getElementById('ef-transportation'),
        document.getElementById('ef-food'),
        document.getElementById('ef-insurance'),
        document.getElementById('ef-debt-repayment'),
        document.getElementById('ef-other-spending')
    ];
    const runwayLengthSlider = document.getElementById('ef-runway-length-slider');
    const runwayLengthInput = document.getElementById('ef-runway-length-input');
    const monthlySpendingOutput = document.getElementById('ef-monthly-spending-output');
    const emergencyFundOutput = document.getElementById('ef-emergency-fund-output');
    const chartCanvas = document.getElementById('ef-chart');
    const resetButton = document.getElementById('ef-reset-button');

    let chart;

    function _efCurrencyCode() {
        return (window.finfreeCurrency && window.finfreeCurrency.getCode()) || 'USD';
    }

    function formatCurrency(value, withDecimals = false) {
        const options = {
            style: 'currency',
            currency: _efCurrencyCode(),
            minimumFractionDigits: withDecimals ? 2 : 0,
            maximumFractionDigits: withDecimals ? 2 : 0,
        };
        try {
            return new Intl.NumberFormat('en-US', options).format(value);
        } catch (e) {
            
            var sym = (window.finfreeCurrency && window.finfreeCurrency.getSymbol()) || '$';
            return sym + value.toLocaleString('en-US', { maximumFractionDigits: withDecimals ? 2 : 0 });
        }
    }

    document.addEventListener('finfree-currency-change', function () {
        try { calculateEmergencyFund(); } catch (e) {}
    });

    function parseCurrency(value) {
        return parseFloat(String(value).replace(/[^0-9.-]+/g,"")) || 0;
    }

    function calculateEmergencyFund() {
        let totalMonthlySpending = 0;
        expenseInputs.forEach(input => {
            totalMonthlySpending += parseCurrency(input.value);
        });

        const runwayMonths = parseInt(runwayLengthInput.value) || 0;
        const emergencyFundNeeded = totalMonthlySpending * runwayMonths;

        monthlySpendingOutput.textContent = formatCurrency(totalMonthlySpending);
        emergencyFundOutput.textContent = formatCurrency(emergencyFundNeeded);

        updateChart(totalMonthlySpending, runwayMonths, emergencyFundNeeded);
    }

    function updateChart(monthlySpending, runwayMonths, emergencyFundNeeded) {
        const ctx = chartCanvas.getContext('2d');
        let labels = [];
        let data = [];

        for (let i = 0; i <= runwayMonths; i++) {
            labels.push(i);
            data.push(emergencyFundNeeded - (monthlySpending * i));
        }

        if (chart) {
            chart.data.labels = labels;
            chart.data.datasets[0].data = data;
            chart.options.scales.y.max = emergencyFundNeeded * 1.1;
            chart.update();
        } else {
            chart = new Chart(ctx, {
                type: 'line',
                data: {
                    labels: labels,
                    datasets: [{
                        label: 'Emergency Fund Remaining',
                        data: data,
                        borderColor: 'var(--ef-primary-color)',
                        backgroundColor: 'rgba(72, 187, 120, 0.2)',
                        fill: true,
                        tension: 0.1,
                        pointRadius: 0,
                    }]
                },
                options: {
                    responsive: true,
                    maintainAspectRatio: false,
                    scales: {
                        y: {
                            beginAtZero: true,
                            max: emergencyFundNeeded * 1.1,
                            ticks: {
                                callback: function(value, index, values) {
                                    return formatCurrency(value);
                                }
                            }
                        },
                        x: {
                           title: {
                                display: true,
                                text: 'Month'
                           },
                           ticks: {
                                precision: 0
                           }
                        }
                    },
                    plugins: {
                        legend: {
                           align: 'end',
                           position: 'top',
                           labels: {
                                usePointStyle: true,
                                boxWidth: 6,
                           }
                        },
                        tooltip: {
                           callbacks: {
                               label: function(context) {
                                   let label = context.dataset.label || '';
                                   if (label) {
                                       label += ': ';
                                   }
                                   if (context.parsed.y !== null) {
                                       label += formatCurrency(context.parsed.y, true);
                                   }
                                   return label;
                               }
                           }
                        }
                    }
                }
            });
        }
    }

    function resetCalculator() {
        
        document.getElementById('ef-housing').value = formatCurrency(defaultValues.housing);
        document.getElementById('ef-transportation').value = formatCurrency(defaultValues.transportation);
        document.getElementById('ef-food').value = formatCurrency(defaultValues.food);
        document.getElementById('ef-insurance').value = formatCurrency(defaultValues.insurance);
        document.getElementById('ef-debt-repayment').value = formatCurrency(defaultValues.debtRepayment);
        document.getElementById('ef-other-spending').value = formatCurrency(defaultValues.otherSpending);

        
        runwayLengthInput.value = defaultValues.runwayLength;
        runwayLengthSlider.value = defaultValues.runwayLength;

        
        calculateEmergencyFund();
    }

    
    expenseInputs.forEach(input => {
        input.addEventListener('input', calculateEmergencyFund);
        input.addEventListener('blur', (e) => {
            e.target.value = formatCurrency(parseCurrency(e.target.value));
        });
    });

    runwayLengthSlider.addEventListener('input', (e) => {
        runwayLengthInput.value = e.target.value;
        calculateEmergencyFund();
    });

    runwayLengthInput.addEventListener('input', () => {
        let value = parseInt(runwayLengthInput.value);
        if (isNaN(value) || value < 1) value = 1;
        if (value > 24) value = 24;
        runwayLengthSlider.value = value;
        calculateEmergencyFund();
    });
    runwayLengthInput.addEventListener('blur', (e) => {
        let value = parseInt(e.target.value);
        if (isNaN(value) || value < 1) value = 1;
        if (value > 24) value = 24;
        e.target.value = value;
        runwayLengthSlider.value = value;
        calculateEmergencyFund();
    });

    resetButton.addEventListener('click', resetCalculator);

    
    expenseInputs.forEach(input => {
        input.value = formatCurrency(parseCurrency(input.value));
    });
    calculateEmergencyFund();
});
</script>

<hr>

<h2 class="relative group">How to Use This Calculator
    <div id="how-to-use-this-calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-use-this-calculator" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Step 1: Enter your monthly expenses
    <div id="step-1-enter-your-monthly-expenses" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-enter-your-monthly-expenses" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Input your estimated monthly costs for each category. Focus on <strong>essential expenses only</strong>—what you'd need to cover if you lost your income.</p>
<table>
	<thead>
			<tr>
					<th>Category</th>
					<th>What to Include</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Housing</strong></td>
					<td>Rent/mortgage, utilities, property taxes</td>
			</tr>
			<tr>
					<td><strong>Transportation</strong></td>
					<td>Car payment, fuel, insurance, public transit</td>
			</tr>
			<tr>
					<td><strong>Food</strong></td>
					<td>Groceries, essential dining</td>
			</tr>
			<tr>
					<td><strong>Insurance</strong></td>
					<td>Health, life, other insurance premiums</td>
			</tr>
			<tr>
					<td><strong>Debt Repayment</strong></td>
					<td>Minimum payments on loans, credit cards</td>
			</tr>
			<tr>
					<td><strong>Other Spending</strong></td>
					<td>Phone, internet, subscriptions, childcare</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Click the question mark icon (?) next to each field for detailed explanations.</p></div></div>
<h3 class="relative group">Step 2: Set your runway length
    <div id="step-2-set-your-runway-length" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-set-your-runway-length" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Use the slider to select how many months you want your emergency fund to cover:</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="3 Months">
          <span class="flex items-center gap-1">
            
            3 Months
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="6 Months">
          <span class="flex items-center gap-1">
            
            6 Months
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="9-12 Months">
          <span class="flex items-center gap-1">
            
            9-12 Months
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="3"
          data-tab-label="12-24 Months">
          <span class="flex items-center gap-1">
            
            12-24 Months
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <p><strong>Minimum recommended</strong></p>
<p>Good for:</p>
<ul>
<li>Dual-income households</li>
<li>Stable employment with strong job market</li>
<li>Low fixed expenses</li>
</ul>

      </div><div class="tab__panel " data-tab-index="1">
        <p><strong>Standard recommendation</strong></p>
<p>Good for:</p>
<ul>
<li>Single-income households</li>
<li>Moderate job stability</li>
<li>Homeowners with maintenance costs</li>
</ul>

      </div><div class="tab__panel " data-tab-index="2">
        <p><strong>Conservative approach</strong></p>
<p>Good for:</p>
<ul>
<li>Self-employed or freelancers</li>
<li>Volatile industries</li>
<li>Single parents or sole breadwinners</li>
</ul>

      </div><div class="tab__panel " data-tab-index="3">
        <p><strong>Maximum security</strong></p>
<p>Good for:</p>
<ul>
<li>High uncertainty situations</li>
<li>Planning major life transitions</li>
<li>Maximum peace of mind</li>
</ul>

      </div></div>
</div>


<h3 class="relative group">Step 3: Review your results
    <div id="step-3-review-your-results" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-review-your-results" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The calculator instantly displays:</p>
<table>
	<thead>
			<tr>
					<th>Result</th>
					<th>What It Means</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Monthly Spending</strong></td>
					<td>Sum of all your expense categories</td>
			</tr>
			<tr>
					<td><strong>Emergency Fund Target</strong></td>
					<td>Monthly Spending × Runway Length</td>
			</tr>
			<tr>
					<td><strong>Depletion Chart</strong></td>
					<td>Visual showing how your fund would last</td>
			</tr>
	</tbody>
</table>
<hr>

<h2 class="relative group">Example Calculation
    <div id="example-calculation" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#example-calculation" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #60a5fa"
    
    >
    
  </span>

  <span
    
      style="color: #e2e8f0"
    
    ><p><strong>Sample Monthly Expenses:</strong></p>
<table>
	<thead>
			<tr>
					<th>Category</th>
					<th>Amount</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Housing</td>
					<td>$1,500</td>
			</tr>
			<tr>
					<td>Transportation</td>
					<td>$400</td>
			</tr>
			<tr>
					<td>Food</td>
					<td>$500</td>
			</tr>
			<tr>
					<td>Insurance</td>
					<td>$300</td>
			</tr>
			<tr>
					<td>Debt</td>
					<td>$200</td>
			</tr>
			<tr>
					<td>Other</td>
					<td>$200</td>
			</tr>
			<tr>
					<td><strong>Total</strong></td>
					<td><strong>$3,100</strong></td>
			</tr>
	</tbody>
</table>
<p>With a 6-month runway: $3,100 × 6 = <strong>$18,600 target</strong></p>
</span>
</div>

<hr>

<h2 class="relative group">Tips for Accurate Calculations
    <div id="tips-for-accurate-calculations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tips-for-accurate-calculations" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="important">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Be realistic with your numbers</strong></p>
<ul>
<li>Don't underestimate expenses—round up if unsure</li>
<li>Include only essentials, not your full lifestyle budget</li>
<li>Review and update annually as your life changes</li>
<li>Account for dependents (more people = higher expenses)</li>
<li>Consider job security (less stable = longer runway)</li>
</ul></div></div><hr>

<h2 class="relative group">What's Next?
    <div id="whats-next" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#whats-next" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Once you know your target:</p>
<ol>
<li><strong>Set it as a goal</strong> — Write down your target and deadline</li>
<li><strong>Open a high-yield savings account</strong> — Keep it separate from checking</li>
<li><strong>Automate transfers</strong> — Set up automatic savings on payday</li>
<li><strong>Start small</strong> — Even $25/paycheck adds up over time</li>
<li><strong>Track milestones</strong> — Celebrate 1 month, 3 months, full target</li>
</ol>
<hr>

<h2 class="relative group">Related Calculators
    <div id="related-calculators" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#related-calculators" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #0f5132"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #75b798"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M172.5 131.1C228.1 75.51 320.5 75.51 376.1 131.1C426.1 181.1 433.5 260.8 392.4 318.3L391.3 319.9C381 334.2 361 337.6 346.7 327.3C332.3 317 328.9 297 339.2 282.7L340.3 281.1C363.2 249 359.6 205.1 331.7 177.2C300.3 145.8 249.2 145.8 217.7 177.2L105.5 289.5C73.99 320.1 73.99 372 105.5 403.5C133.3 431.4 177.3 435 209.3 412.1L210.9 410.1C225.3 400.7 245.3 404 255.5 418.4C265.8 432.8 262.5 452.8 248.1 463.1L246.5 464.2C188.1 505.3 110.2 498.7 60.21 448.8C3.741 392.3 3.741 300.7 60.21 244.3L172.5 131.1zM467.5 380C411 436.5 319.5 436.5 263 380C213 330 206.5 251.2 247.6 193.7L248.7 192.1C258.1 177.8 278.1 174.4 293.3 184.7C307.7 194.1 311.1 214.1 300.8 229.3L299.7 230.9C276.8 262.1 280.4 306.9 308.3 334.8C339.7 366.2 390.8 366.2 422.3 334.8L534.5 222.5C566 191 566 139.1 534.5 108.5C506.7 80.63 462.7 76.99 430.7 99.9L429.1 101C414.7 111.3 394.7 107.1 384.5 93.58C374.2 79.2 377.5 59.21 391.9 48.94L393.5 47.82C451 6.731 529.8 13.25 579.8 63.24C636.3 119.7 636.3 211.3 579.8 267.7L467.5 380z"/></svg>
</span>
  </span>

  <span
    
      style="color: #d1e7dd"
    
    ><p><strong>More Financial Tools:</strong></p>
<ul>
<li><strong><a href="/calculators/interactive_calculator_to_your_fire_number/" >FIRE Calculator</a></strong> — Calculate your financial independence number</li>
<li><strong><a href="/calculators/interactive_safe_withdrawal_rate_calculator/" >SWR Calculator</a></strong> — Determine your safe withdrawal rate using 150 years of historical data</li>
<li><strong><a href="/posts/emergency-fund-calculator-guide/" >Complete Emergency Fund Guide</a></strong> — Learn everything about building your safety net</li>
</ul></span>
</div>

<hr>
<p><strong>Questions or feedback?</strong> Leave a comment below—I'd love to hear how you're building your emergency fund!</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This calculator reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/emergency-fund-calculator.webp" medium="image"/></item><item><title>How to Use the Safe Withdrawal Rate (SWR) Calculator: A Practical Guide</title><link>https://libreleo.com/posts/how_to_use_the_swr_calculator_a_practical_guide/</link><pubDate>Sat, 20 Dec 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/how_to_use_the_swr_calculator_a_practical_guide/</guid><description>Your step-by-step guide to mastering the Safe Withdrawal Rate (SWR) calculator. Learn what it does, how to use it, and how to interpret the results for confident retirement planning.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  You want to know how much you can safely spend each year? Welcome to my guide for the interactive Safe Withdrawal Rate (SWR) calculator. This post will walk you through exactly how the calculator works, what settings to use, and most importantly, how to confidently interpret the results.
</div>

<p>If you're ready, you can find the checklist here: <strong><a href="/posts/swr_checklist_practical_steps_for_retirement_withdrawal_planning" >SWR Checklist</a></strong>, or open the calculator and follow along: <strong><a href="/calculators/interactive_safe_withdrawal_rate_calculator/" >SWR Calculator</a></strong>.</p>
<p><strong>Here's what I'll cover:</strong></p>
<ul>
<li>What the SWR Calculator <em>Really</em> Does</li>
<li>Your Toolkit: Understanding the Inputs</li>
<li>The Engine: How the Simulation Works</li>
<li>Step-by-Step: Running Your First Scenario</li>
<li>Making Sense of the Numbers: Understanding the Output</li>
<li>Pro-Tips and Limitations</li>
</ul>
<hr>

<h2 class="relative group">What the SWR Calculator <em>Really</em> Does
    <div id="what-the-swr-calculator-really-does" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-the-swr-calculator-really-does" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The calculator uses decades of historical market data to stress-test your retirement plan. For every possible starting month in your chosen timeframe, it runs a full simulation of your retirement, month by month, to see if your portfolio would have survived.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Historical Backtesting
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>This method is the gold standard for understanding how a strategy might have performed through a wide range of economic conditions, from bull markets to painful downturns. The calculator uses a historical dataset from 1871 up to today. Each year I will update the figures with the previous year's data.</p></div></div><p><strong>Key operational details:</strong></p>
<ul>
<li><strong>Monthly Precision:</strong> The simulation applies investment returns to each of your chosen assets every single month.</li>
<li><strong>Realistic Withdrawals:</strong> Your spending is modeled based on your selected <strong>Withdrawal Frequency</strong>. The tool calculates your initial annual withdrawal amount and then gives it a cost-of-living adjustment for inflation throughout the simulation.</li>
<li><strong>Fees Matter:</strong> It accounts for the slow drag of fees by applying your specified <strong>Annual Fees</strong> on a monthly basis.</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          The Result
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>A powerful set of statistics that gives you a clear picture of your retirement plan's viability.</p></div></div><hr>

<h2 class="relative group">Your Toolkit: Understanding the Inputs
    <div id="your-toolkit-understanding-the-inputs" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#your-toolkit-understanding-the-inputs" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Getting a meaningful result starts with feeding the calculator the right data. Here's a breakdown of each setting:</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Core Settings">
          <span class="flex items-center gap-1">
            
            Core Settings
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Withdrawal Settings">
          <span class="flex items-center gap-1">
            
            Withdrawal Settings
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Portfolio Settings">
          <span class="flex items-center gap-1">
            
            Portfolio Settings
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <h3 class="relative group">Core Settings
    <div id="core-settings" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#core-settings" aria-label="Anchor">#</a>
    </span>
    
</h3>
<table>
	<thead>
			<tr>
					<th>Input</th>
					<th>Description</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Initial Value</strong></td>
					<td>The starting amount of your retirement nest egg (e.g., <code>1,000,000</code>)</td>
			</tr>
			<tr>
					<td><strong>Years</strong></td>
					<td>Your planned retirement duration (e.g., 30 years)</td>
			</tr>
			<tr>
					<td><strong>Start Year / End Year</strong></td>
					<td>The historical window you want to test against</td>
			</tr>
			<tr>
					<td><strong>Withdrawal Rate (%)</strong></td>
					<td>The percentage of your <em>initial</em> portfolio you'll withdraw in the first year</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Wider Historical Range
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>A wider date range gives you more scenarios and a more robust test. This is the core variable you'll be testing.</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Withdrawal Settings
    <div id="withdrawal-settings" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#withdrawal-settings" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Withdrawal Frequency:</strong> How often you take withdrawals.</p>
<table>
	<thead>
			<tr>
					<th>Option</th>
					<th>Description</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Yearly</strong></td>
					<td>One withdrawal per year</td>
			</tr>
			<tr>
					<td><strong>Semi-Annually</strong></td>
					<td>Withdrawals every 6 months</td>
			</tr>
			<tr>
					<td><strong>Quarterly</strong></td>
					<td>Withdrawals every 3 months</td>
			</tr>
			<tr>
					<td><strong>Monthly</strong></td>
					<td>Monthly withdrawals</td>
			</tr>
	</tbody>
</table>
<p><strong>Inflation Data:</strong> Choose whether to adjust your withdrawals for inflation.</p>
<table>
	<thead>
			<tr>
					<th>Option</th>
					<th>Use Case</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>US Inflation</strong></td>
					<td>Maintain purchasing power over time</td>
			</tr>
			<tr>
					<td><strong>No Inflation</strong></td>
					<td>Keep withdrawals fixed (not recommended)</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Always Plan for Inflation
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>As a rule, always plan for inflation. Fixed withdrawals lose purchasing power over time.</p></div></div>
      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Portfolio Settings
    <div id="portfolio-settings" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#portfolio-settings" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Portfolio Allocation:</strong> This is where you build your investment mix.</p>
<ul>
<li>Add multiple assets (like stocks and bonds)</li>
<li>Set their percentage allocation</li>
<li>For the calculator to run, your total allocation <strong>must equal 100%</strong></li>
</ul>
<p><strong>Annual Fees (%):</strong> The total expense ratio (TER) of your investments.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          Fees Add Up
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Even small fees compound over decades. Don't skip this input. It has a real impact on your results!</p></div></div>
      </div></div>
</div>

<hr>

<h2 class="relative group">The Engine: How the Simulation Works
    <div id="the-engine-how-the-simulation-works" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-engine-how-the-simulation-works" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Ever wonder what's happening behind the scenes? For each and every historical starting point, the calculator runs this simple, transparent loop:</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Simulation Process
        </div>
      </div></div><p><strong>1. Setup:</strong> It carves up your initial portfolio into the different asset buckets you defined.</p>
<p><strong>2. First Withdrawal:</strong> It calculates your starting annual withdrawal amount based on your chosen rate.</p>
<p><strong>3. Monthly Loop:</strong> For every month of your planned retirement, it does the following:</p>
<ul>
<li>Applies the historical return for that month to each of your assets</li>
<li>Deducts a small slice of the annual fee</li>
<li>If it's a withdrawal month, it takes out the inflation-adjusted spending amount</li>
<li>Checks if the portfolio has run out of money. If so, the simulation ends and is marked as a failure</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Comprehensive Testing
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>This process repeats for hundreds of overlapping historical periods, giving you a powerful statistical overview of your plan's strengths and weaknesses.</p></div></div><hr>

<h2 class="relative group">Step-by-Step: Running Your First Scenario
    <div id="step-by-step-running-your-first-scenario" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-by-step-running-your-first-scenario" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Let's run a test together.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Quick Start Guide
        </div>
      </div></div><ol>
<li>Fill in the main fields: <code>Initial Value</code>, <code>Years</code>, <code>Start/End Year</code>, <code>Withdrawal Rate (%)</code>, and <code>Annual Fees (%)</code></li>
<li>Choose your <code>Withdrawal Frequency</code> and set <code>Inflation Data</code> to &quot;US Inflation&quot;</li>
<li>Build your portfolio:
<ul>
<li>Use the &quot;Add Asset&quot; button</li>
<li>Adjust the percentages until the total is exactly 100%</li>
<li>The &quot;Total&quot; label will turn green when you're ready</li>
</ul>
</li>
<li>Click <strong>Calculate</strong></li>
</ol>
<p>The tool will now run all the simulations. When it's done, the results panel will appear with a summary of the findings.</p>
<hr>

<h2 class="relative group">Making Sense of the Numbers: Understanding the Output
    <div id="making-sense-of-the-numbers-understanding-the-output" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#making-sense-of-the-numbers-understanding-the-output" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Here's what each number means for you:</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Success Metrics">
          <span class="flex items-center gap-1">
            
            Success Metrics
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Terminal Values">
          <span class="flex items-center gap-1">
            
            Terminal Values
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <h3 class="relative group">Success Metrics
    <div id="success-metrics" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#success-metrics" aria-label="Anchor">#</a>
    </span>
    
</h3>
<table>
	<thead>
			<tr>
					<th>Metric</th>
					<th>What It Means</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Chance of Success</strong></td>
					<td>The headline number: the percentage of historical scenarios where your money lasted for the entire retirement period</td>
			</tr>
			<tr>
					<td><strong>Worst Duration</strong></td>
					<td>In failed scenarios, how long your money lasted in the absolute worst case</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          What to Look For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>A high success rate (90%+) means your plan survived most historical conditions. The worst duration tells you your margin of safety.</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        <h3 class="relative group">Terminal Values
    <div id="terminal-values" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#terminal-values" aria-label="Anchor">#</a>
    </span>
    
</h3>
<table>
	<thead>
			<tr>
					<th>Metric</th>
					<th>What It Means</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Best Terminal Value</strong></td>
					<td>The highest final portfolio balance from all successful scenarios</td>
			</tr>
			<tr>
					<td><strong>Worst Terminal Value</strong></td>
					<td>The lowest final balance. If $0, at least one scenario failed</td>
			</tr>
			<tr>
					<td><strong>Median Terminal Value</strong></td>
					<td>The &quot;middle&quot; outcome. 50% ended higher, 50% ended lower</td>
			</tr>
			<tr>
					<td><strong>Average Terminal Value</strong></td>
					<td>The average final balance across all scenarios</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Interpreting Terminal Values
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If the worst terminal value is positive, it shows the closest you ever came to running out of money while still succeeding.</p></div></div>
      </div></div>
</div>

<hr>

<h2 class="relative group">Pro-Tips and Limitations
    <div id="pro-tips-and-limitations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pro-tips-and-limitations" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Pro Tips">
          <span class="flex items-center gap-1">
            
            Pro Tips
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Limitations">
          <span class="flex items-center gap-1">
            
            Limitations
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">Pro Tips
    <div id="pro-tips" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pro-tips" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Stress-Test Your Rate
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Don't just test one withdrawal rate. Try a few different ones (e.g., 3.0%, 3.5%, 4.0%) to understand how sensitive your plan is.</p></div></div><div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Keep It Simple
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Start with a simple allocation (like US Stocks and US Bonds) before adding more complexity.</p></div></div><div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Run Multiple Scenarios
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Test different retirement lengths (25, 30, 35 years) to see how duration affects your success rate.</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Limitations
    <div id="limitations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#limitations" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Taxes Are Not Included
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>This calculator does not model taxes. Remember to account for taxes. Check your own circumstances.</p></div></div><div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          History is Only a Guide
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>This tool shows what <em>did</em> happen, not what <em>will</em> happen. A high success rate is a great confidence booster, but it's not a guarantee. Use it to make informed decisions, not to predict the future.</p></div></div><div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          No Guarantees
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Past performance is not indicative of future results. Use this as one tool among many in your planning process.</p></div></div>
      </div></div>
</div>

<hr>

<h2 class="relative group">Quick Reference Summary
    <div id="quick-reference-summary" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#quick-reference-summary" aria-label="Anchor">#</a>
    </span>
    
</h2>
<table>
	<thead>
			<tr>
					<th>Step</th>
					<th>Action</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>1. Set Up</strong></td>
					<td>Enter initial value, years, and historical date range</td>
			</tr>
			<tr>
					<td><strong>2. Configure</strong></td>
					<td>Choose withdrawal rate, frequency, and inflation setting</td>
			</tr>
			<tr>
					<td><strong>3. Allocate</strong></td>
					<td>Build portfolio to exactly 100%</td>
			</tr>
			<tr>
					<td><strong>4. Calculate</strong></td>
					<td>Click Calculate and wait for results</td>
			</tr>
			<tr>
					<td><strong>5. Interpret</strong></td>
					<td>Focus on success rate and worst duration</td>
			</tr>
			<tr>
					<td><strong>6. Iterate</strong></td>
					<td>Test multiple scenarios to stress-test your plan</td>
			</tr>
	</tbody>
</table>
<p>Happy planning!</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/how_to_use_the_swr_calculator_a_practical_guide.webp" medium="image"/></item><item><title>Your Safe Withdrawal Rate (SWR) Checklist: A Simple Path to Confident Retirement Planning</title><link>https://libreleo.com/posts/swr-checklist-practical-steps-for-retirement-withdrawal-planning/</link><pubDate>Sat, 20 Dec 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/swr-checklist-practical-steps-for-retirement-withdrawal-planning/</guid><description>A simple, step-by-step checklist for using the Safe Withdrawal Rate (SWR) calculator. Your practical guide to stress-testing your retirement withdrawal strategy.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Planning your retirement withdrawals can feel complicated, but it doesn't have to be. This checklist is your simple, step-by-step companion to stress-testing your retirement plan.
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Ready to run the numbers?</strong> Open the <a href="/calculators/interactive_safe_withdrawal_rate_calculator/" >Safe Withdrawal Rate (SWR) Calculator</a> in another tab and follow along.</p></div></div><hr>

<h2 class="relative group">Step 1: Gather your key numbers
    <div id="step-1-gather-your-key-numbers" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-gather-your-key-numbers" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Before you can test your plan, you need to know your starting point. The better your input, the better your output.</p>
<table>
	<thead>
			<tr>
					<th>Input</th>
					<th>What You Need</th>
					<th>Tips</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Initial Portfolio Value</strong></td>
					<td>Total amount of your retirement nest egg</td>
					<td>Only count invested assets</td>
			</tr>
			<tr>
					<td><strong>Retirement Duration</strong></td>
					<td>How many years you're planning for (30, 40, 50 years)</td>
					<td>Be realistic about longevity</td>
			</tr>
			<tr>
					<td><strong>Historical Period</strong></td>
					<td>Year range to test against</td>
					<td>Use full history (1871-2024) for best stress test</td>
			</tr>
			<tr>
					<td><strong>Withdrawal Rate (%)</strong></td>
					<td>First-year withdrawal as % of portfolio</td>
					<td>Start with 4%, adjust to your risk profile</td>
			</tr>
			<tr>
					<td><strong>Portfolio Allocation</strong></td>
					<td>How your money is invested</td>
					<td>Must add up to exactly 100%</td>
			</tr>
			<tr>
					<td><strong>Annual Fees</strong></td>
					<td>Total expense ratio (TER)</td>
					<td>Look up on <a href="https://seekingalpha.com/"  target="_blank" rel="noreferrer">Seeking Alpha</a></td>
			</tr>
			<tr>
					<td><strong>Inflation</strong></td>
					<td>Whether withdrawals adjust for cost of living</td>
					<td>Always select &quot;US Inflation&quot; for realistic planning</td>
			</tr>
			<tr>
					<td><strong>Withdrawal Frequency</strong></td>
					<td>How often you'll take money out</td>
					<td>Yearly, Semi-Annually, Quarterly, or Monthly</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="note">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Note
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>My personal approach:</strong> I'm using a 3.4% withdrawal rate. This works best for me. Yours might be different. Start with 4% and gradually adjust to fit your risk tolerance.</p></div></div><hr>

<h2 class="relative group">Step 2: Run the simulation
    <div id="step-2-run-the-simulation" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-run-the-simulation" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>With your numbers in hand, this is the easy part.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #60a5fa"
    
    >
    
  </span>

  <span
    
      style="color: #e2e8f0"
    
    ><p><strong>Checklist:</strong></p>
<ul>
<li><input disabled="" type="checkbox"> Double-check all inputs make sense</li>
<li><input disabled="" type="checkbox"> Confirm portfolio allocation totals exactly 100% (label turns green)</li>
<li><input disabled="" type="checkbox"> Click &quot;Calculate&quot; and let the simulator run</li>
</ul>
<p>The calculator will test your plan against decades of historical market data.</p>
</span>
</div>

<hr>

<h2 class="relative group">Step 3: Understand your results
    <div id="step-3-understand-your-results" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-understand-your-results" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The simulation is done. Here's how to translate the results into actionable insights, from most to least important:</p>

<h3 class="relative group">Key metrics explained
    <div id="key-metrics-explained" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#key-metrics-explained" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Success Rate">
          <span class="flex items-center gap-1">
            
            Success Rate
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Worst Duration">
          <span class="flex items-center gap-1">
            
            Worst Duration
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Terminal Values">
          <span class="flex items-center gap-1">
            
            Terminal Values
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <p><strong>This is your headline number.</strong></p>
<p>The percentage of times your plan succeeded across all historical scenarios. A higher number means more resilience.</p>
<table>
	<thead>
			<tr>
					<th>Success Rate</th>
					<th>What It Means</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>95%+</td>
					<td>Very conservative, high confidence</td>
			</tr>
			<tr>
					<td>90-95%</td>
					<td>Strong plan, recommended target</td>
			</tr>
			<tr>
					<td>80-90%</td>
					<td>Acceptable, but monitor closely</td>
			</tr>
			<tr>
					<td>Below 80%</td>
					<td>Consider adjusting your plan</td>
			</tr>
	</tbody>
</table>
<p><strong>Ask yourself:</strong> What level of certainty do you feel comfortable with?</p>

      </div><div class="tab__panel " data-tab-index="1">
        <p><strong>Your margin of safety.</strong></p>
<p>In scenarios that failed, how long did your money last in the absolute worst case?</p>
<p>This tells you how much buffer you have before running out. If your worst duration is 25 years on a 30-year plan, you have a 5-year margin.</p>

      </div><div class="tab__panel " data-tab-index="2">
        <p><strong>Worst Terminal Value:</strong></p>
<ul>
<li>If $0 → Failures occurred in some scenarios</li>
<li>If positive → Your portfolio survived every single scenario</li>
</ul>
<p><strong>Median Terminal Value:</strong></p>
<ul>
<li>Your middle outcome</li>
<li>Realistic expectation, avoiding best/worst extremes</li>
<li>Often surprisingly high with conservative withdrawal rates</li>
</ul>

      </div></div>
</div>

<hr>

<h2 class="relative group">What to do next
    <div id="what-to-do-next" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-to-do-next" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #0f5132"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #75b798"
    
    >
    
  </span>

  <span
    
      style="color: #d1e7dd"
    
    ><p><strong>Not happy with the success rate?</strong></p>
<p>Go back to Step 1 and try a slightly lower withdrawal rate. You'll be amazed at how much a small change can improve your odds.</p>
<table>
	<thead>
			<tr>
					<th>Withdrawal Rate</th>
					<th>Typical Success Rate (30 years)</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>4.0%</td>
					<td>~95%</td>
			</tr>
			<tr>
					<td>3.5%</td>
					<td>~98%</td>
			</tr>
			<tr>
					<td>3.0%</td>
					<td>~99%+</td>
			</tr>
	</tbody>
</table>
</span>
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="important">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg></span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Use this checklist anytime you want to test a new assumption or track your progress toward a secure retirement.</p></div></div><hr>

<h2 class="relative group">Related resources
    <div id="related-resources" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#related-resources" aria-label="Anchor">#</a>
    </span>
    
</h2>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow" style="background-color: #1e3a5f"
  
  >
  <span
    
      class="pe-3 flex items-center" style="color: #60a5fa"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M172.5 131.1C228.1 75.51 320.5 75.51 376.1 131.1C426.1 181.1 433.5 260.8 392.4 318.3L391.3 319.9C381 334.2 361 337.6 346.7 327.3C332.3 317 328.9 297 339.2 282.7L340.3 281.1C363.2 249 359.6 205.1 331.7 177.2C300.3 145.8 249.2 145.8 217.7 177.2L105.5 289.5C73.99 320.1 73.99 372 105.5 403.5C133.3 431.4 177.3 435 209.3 412.1L210.9 410.1C225.3 400.7 245.3 404 255.5 418.4C265.8 432.8 262.5 452.8 248.1 463.1L246.5 464.2C188.1 505.3 110.2 498.7 60.21 448.8C3.741 392.3 3.741 300.7 60.21 244.3L172.5 131.1zM467.5 380C411 436.5 319.5 436.5 263 380C213 330 206.5 251.2 247.6 193.7L248.7 192.1C258.1 177.8 278.1 174.4 293.3 184.7C307.7 194.1 311.1 214.1 300.8 229.3L299.7 230.9C276.8 262.1 280.4 306.9 308.3 334.8C339.7 366.2 390.8 366.2 422.3 334.8L534.5 222.5C566 191 566 139.1 534.5 108.5C506.7 80.63 462.7 76.99 430.7 99.9L429.1 101C414.7 111.3 394.7 107.1 384.5 93.58C374.2 79.2 377.5 59.21 391.9 48.94L393.5 47.82C451 6.731 529.8 13.25 579.8 63.24C636.3 119.7 636.3 211.3 579.8 267.7L467.5 380z"/></svg>
</span>
  </span>

  <span
    
      style="color: #e2e8f0"
    
    ><p><strong>Dive Deeper:</strong></p>
<ul>
<li><strong><a href="/calculators/interactive_safe_withdrawal_rate_calculator/" >SWR Calculator</a></strong> - Run the simulation yourself</li>
<li><strong><a href="/posts/how_to_use_the_swr_calculator_a_practical_guide/" >How to Use the SWR Calculator: A Practical Guide</a></strong> - Full methodology walkthrough</li>
<li><strong><a href="/calculators/interactive_calculator_to_your_fire_number/" >FIRE Calculator</a></strong> - Calculate your financial independence number</li>
</ul></span>
</div>

<hr>
<p><strong>Questions or feedback?</strong> Drop me a comment below with what features you'd like to see in future SWR calculator updates!</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/swr-checklist-practical-steps-for-retirement-withdrawal-planning.webp" medium="image"/></item><item><title>Query My Digital Card with AI: The Future of Human Connection</title><link>https://libreleo.com/daemon-api-public-access/</link><pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/daemon-api-public-access/</guid><description>My public daemon API is enabling AI-to-AI discovery and facilitates serendipitous human connections. This isn't about replacing human interaction—it's about enabling more of it.</description><content:encoded><![CDATA[<p>Want to know what I'm working on? Need to schedule a meeting? Looking for book recommendations? <strong>Just ask your AI assistant.</strong></p>
<p>My daemon is a queryable digital card that your AI can read using natural language. No forms, no manual searching—your AI talks to my daemon automatically.</p>
<p>My daemon API is intentionally <strong>public and accessible</strong>. I want your AI to query it. I want to be found by people who would benefit from connecting with me.</p>
<hr>

<h2 class="relative group">⚡ Quick Start (3 Steps)
    <div id="-quick-start-3-steps" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#-quick-start-3-steps" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Step 1: Add to Claude Desktop
    <div id="step-1-add-to-claude-desktop" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-add-to-claude-desktop" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Open your Claude Desktop config file:</p>
<ul>
<li><strong>Mac:</strong> <code>~/Library/Application Support/Claude/claude_desktop_config.json</code></li>
<li><strong>Windows:</strong> <code>%APPDATA%\Claude\claude_desktop_config.json</code></li>
</ul>
<p>Add this server (no API key required):</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;mcpServers&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;chris-daemon&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">      <span class="nt">&#34;url&#34;</span><span class="p">:</span> <span class="s2">&#34;https://mcp-daemon.chriswenk.workers.dev&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div>
<p>Restart Claude Desktop. You'll see a 🔌 icon indicating the server is connected.</p>

<h3 class="relative group">Step 2: Add to Claude Code (CLI)
    <div id="step-2-add-to-claude-code-cli" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-add-to-claude-code-cli" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>For Claude Code 2.0.69+</strong>, run this one command:</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">claude mcp add --transport http chris-daemon https://mcp-daemon.chriswenk.workers.dev</span></span></code></pre></div></div>
<p>Then verify it's connected:</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/mcp</span></span></code></pre></div></div>
<p>Select <code>chris-daemon</code> and ensure it's enabled.</p>

<h3 class="relative group">Step 3: Start Asking Questions
    <div id="step-3-start-asking-questions" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-start-asking-questions" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Open Claude Code and try:</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Query chris-daemon to learn about Chris Wenk</span></span></code></pre></div></div>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">What projects is Chris working on? Query chris-daemon</span></span></code></pre></div></div>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Query chris-daemon for book recommendations about financial independence</span></span></code></pre></div></div>
<p><strong>That's it.</strong> Your AI handles everything else.</p>
<hr>

<h2 class="relative group">💬 What You Can Ask
    <div id="-what-you-can-ask" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#-what-you-can-ask" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Ask your AI assistant in plain English:</p>
<p>✅ <strong>&quot;What is Chris working on?&quot;</strong></p>
<ul>
<li>Queries my projects automatically</li>
</ul>
<p>✅ <strong>&quot;Find a good time to meet with Chris&quot;</strong></p>
<ul>
<li>Checks my location (Dubai) and daily routine</li>
</ul>
<p>✅ <strong>&quot;What books does Chris recommend?&quot;</strong></p>
<ul>
<li>Gets my reading list</li>
</ul>
<p>✅ <strong>&quot;Is Chris interested in Python automation?&quot;</strong></p>
<ul>
<li>Checks my mission, projects, and preferences for compatibility</li>
</ul>
<p>✅ <strong>&quot;Show me Chris's predictions about AI&quot;</strong></p>
<ul>
<li>Retrieves my future forecasts</li>
</ul>
<p><strong>No coding required.</strong> Your AI translates your questions into API calls automatically.</p>
<hr>

<h2 class="relative group">📡 All 13 Available MCP Tools
    <div id="-all-13-available-mcp-tools" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#-all-13-available-mcp-tools" aria-label="Anchor">#</a>
    </span>
    
</h2>
<table>
	<thead>
			<tr>
					<th>Tool</th>
					<th>What It Returns</th>
					<th>Ask This</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><code>about</code></td>
					<td>My background and bio</td>
					<td>&quot;Tell me about Chris&quot;</td>
			</tr>
			<tr>
					<td><code>narrative</code></td>
					<td>My professional journey</td>
					<td>&quot;What's Chris's story?&quot;</td>
			</tr>
			<tr>
					<td><code>mission</code></td>
					<td>My mission statement</td>
					<td>&quot;What's Chris's mission?&quot;</td>
			</tr>
			<tr>
					<td><code>projects</code></td>
					<td>Current projects</td>
					<td>&quot;What is Chris working on?&quot;</td>
			</tr>
			<tr>
					<td><code>telos</code></td>
					<td>My ultimate goals</td>
					<td>&quot;What are Chris's long-term goals?&quot;</td>
			</tr>
			<tr>
					<td><code>current_location</code></td>
					<td>Where I am (Dubai)</td>
					<td>&quot;Where is Chris located?&quot;</td>
			</tr>
			<tr>
					<td><code>daily_routine</code></td>
					<td>My daily schedule</td>
					<td>&quot;What's Chris's daily routine?&quot;</td>
			</tr>
			<tr>
					<td><code>preferences</code></td>
					<td>Work style &amp; values</td>
					<td>&quot;How does Chris prefer to work?&quot;</td>
			</tr>
			<tr>
					<td><code>favorite_books</code></td>
					<td>Book recommendations</td>
					<td>&quot;What books does Chris recommend?&quot;</td>
			</tr>
			<tr>
					<td><code>favorite_movies</code></td>
					<td>Movie recommendations</td>
					<td>&quot;What movies does Chris like?&quot;</td>
			</tr>
			<tr>
					<td><code>favorite_podcasts</code></td>
					<td>Podcast recommendations</td>
					<td>&quot;What podcasts does Chris listen to?&quot;</td>
			</tr>
			<tr>
					<td><code>favorite-games</code></td>
					<td>Games recommendations</td>
					<td>&quot;What games does Chris play?&quot;</td>
			</tr>
			<tr>
					<td><code>predictions</code></td>
					<td>Future forecasts</td>
					<td>&quot;What are Chris's predictions about AI?&quot;</td>
			</tr>
	</tbody>
</table>
<p><strong>Your AI automatically picks the right tool based on your question.</strong></p>
<hr>

<h2 class="relative group">🔧 For Developers: Direct API Access
    <div id="-for-developers-direct-api-access" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#-for-developers-direct-api-access" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Want to build your own tools? Use the API directly (no authentication required).</p>

<h3 class="relative group">List Available Tools
    <div id="list-available-tools" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#list-available-tools" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -X POST https://mcp-daemon.chriswenk.workers.dev/ <span class="se">\
</span></span></span><span class="line"><span class="cl">  -H <span class="s2">&#34;Content-Type: application/json&#34;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">  -d <span class="s1">&#39;{
</span></span></span><span class="line"><span class="cl"><span class="s1">    &#34;jsonrpc&#34;: &#34;2.0&#34;,
</span></span></span><span class="line"><span class="cl"><span class="s1">    &#34;method&#34;: &#34;tools/list&#34;,
</span></span></span><span class="line"><span class="cl"><span class="s1">    &#34;id&#34;: 1
</span></span></span><span class="line"><span class="cl"><span class="s1">  }&#39;</span></span></span></code></pre></div></div>

<h3 class="relative group">Query Specific Tool
    <div id="query-specific-tool" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#query-specific-tool" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -X POST https://mcp-daemon.chriswenk.workers.dev/ <span class="se">\
</span></span></span><span class="line"><span class="cl">  -H <span class="s2">&#34;Content-Type: application/json&#34;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl">  -d <span class="s1">&#39;{
</span></span></span><span class="line"><span class="cl"><span class="s1">    &#34;jsonrpc&#34;: &#34;2.0&#34;,
</span></span></span><span class="line"><span class="cl"><span class="s1">    &#34;method&#34;: &#34;tools/call&#34;,
</span></span></span><span class="line"><span class="cl"><span class="s1">    &#34;params&#34;: {&#34;name&#34;: &#34;mission&#34;},
</span></span></span><span class="line"><span class="cl"><span class="s1">    &#34;id&#34;: 2
</span></span></span><span class="line"><span class="cl"><span class="s1">  }&#39;</span></span></span></code></pre></div></div>

<h3 class="relative group">Python Example
    <div id="python-example" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#python-example" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">import</span> <span class="nn">requests</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">query_chris_daemon</span><span class="p">(</span><span class="n">tool_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;&#34;&#34;Query Chris&#39;s daemon for information.&#34;&#34;&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="n">url</span> <span class="o">=</span> <span class="s2">&#34;https://mcp-daemon.chriswenk.workers.dev/&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="n">payload</span> <span class="o">=</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="s2">&#34;jsonrpc&#34;</span><span class="p">:</span> <span class="s2">&#34;2.0&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="s2">&#34;method&#34;</span><span class="p">:</span> <span class="s2">&#34;tools/call&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="s2">&#34;params&#34;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&#34;name&#34;</span><span class="p">:</span> <span class="n">tool_name</span><span class="p">},</span>
</span></span><span class="line"><span class="cl">        <span class="s2">&#34;id&#34;</span><span class="p">:</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="n">headers</span> <span class="o">=</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="s2">&#34;Content-Type&#34;</span><span class="p">:</span> <span class="s2">&#34;application/json&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">json</span><span class="o">=</span><span class="n">payload</span><span class="p">,</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()[</span><span class="s2">&#34;result&#34;</span><span class="p">][</span><span class="s2">&#34;content&#34;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s2">&#34;text&#34;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Usage</span>
</span></span><span class="line"><span class="cl"><span class="n">mission</span> <span class="o">=</span> <span class="n">query_chris_daemon</span><span class="p">(</span><span class="s2">&#34;mission&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">mission</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">projects</span> <span class="o">=</span> <span class="n">query_chris_daemon</span><span class="p">(</span><span class="s2">&#34;projects&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">projects</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">books</span> <span class="o">=</span> <span class="n">query_chris_daemon</span><span class="p">(</span><span class="s2">&#34;favorite_books&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">books</span><span class="p">)</span></span></span></code></pre></div></div>
<hr>

<h2 class="relative group">🎯 Common Use Cases
    <div id="-common-use-cases" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#-common-use-cases" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">1. Check Collaboration Fit
    <div id="1-check-collaboration-fit" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-check-collaboration-fit" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>You:</strong> &quot;I'm building a Python tool for portfolio tracking. Query chris-daemon to see if Chris would be interested.&quot;</p>
<p><strong>AI:</strong> Queries <code>mission</code>, <code>projects</code>, <code>preferences</code> → Analyzes compatibility → Gives you a score and recommendation</p>
<hr>

<h3 class="relative group">2. Schedule a Meeting
    <div id="2-schedule-a-meeting" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-schedule-a-meeting" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>You:</strong> &quot;I'm in Dubai. Query chris-daemon and find a good time for a 30-minute call.&quot;</p>
<p><strong>AI:</strong> Queries <code>current_location</code> + <code>daily_routine</code> → Calculates timezone difference → Suggests 3 optimal meeting times</p>
<hr>

<h3 class="relative group">3. Get Personalized Recommendations
    <div id="3-get-personalized-recommendations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3-get-personalized-recommendations" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>You:</strong> &quot;Query chris-daemon for book recommendations about financial independence.&quot;</p>
<p><strong>AI:</strong> Queries <code>favorite_books</code> → Filters by topic → Returns relevant titles with explanations</p>
<hr>

<h3 class="relative group">4. Understand My Journey
    <div id="4-understand-my-journey" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#4-understand-my-journey" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>You:</strong> &quot;Query chris-daemon for Chris's narrative. I want to understand how he achieved financial independence.&quot;</p>
<p><strong>AI:</strong> Queries <code>narrative</code> + <code>about</code> → Summarizes the journey from South Africa to Dubai to Financial Independence</p>
<hr>

<h2 class="relative group">🌐 Technical Details
    <div id="-technical-details" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#-technical-details" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>Base URL:</strong> <code>https://mcp-daemon.chriswenk.workers.dev</code>
<strong>Protocol:</strong> MCP (Model Context Protocol) 2024-11-05 - JSON-RPC 2.0 over HTTP
<strong>Transport:</strong> HTTP (recommended for Claude Code 2.0.69+)</p>
<p><strong>Authentication:</strong> None required (public access)
<strong>Response Time:</strong> &lt; 200ms average
<strong>Availability:</strong> 99.9% uptime (Cloudflare Workers global network)
<strong>Infrastructure:</strong> Two-tier architecture with service binding
<strong>Rate Limit:</strong> Standard Cloudflare limits (designed for public use)</p>

<h3 class="relative group">Architecture
    <div id="architecture" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#architecture" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Client (Your AI Assistant)
</span></span><span class="line"><span class="cl">    ↓
</span></span><span class="line"><span class="cl">Frontend MCP Server (Public - No Auth)
</span></span><span class="line"><span class="cl">    ↓
</span></span><span class="line"><span class="cl">    ↓ Service Binding (Internal)
</span></span><span class="line"><span class="cl">    ↓ INTERNAL_AUTH_TOKEN
</span></span><span class="line"><span class="cl">    ↓
</span></span><span class="line"><span class="cl">Backend Worker (Private)
</span></span><span class="line"><span class="cl">    ↓
</span></span><span class="line"><span class="cl">daemon.md (Data Source)</span></span></code></pre></div></div>
<p><strong>Security:</strong></p>
<ul>
<li>Frontend is completely public (no authentication required)</li>
<li>Backend is completely private (only accessible via service binding)</li>
<li>Internal authentication token protects service-to-service communication</li>
<li>All data is intentionally public by design</li>
</ul>
<hr>

<h2 class="relative group">❓ FAQ
    <div id="-faq" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#-faq" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>Q: Do I need an API key?</strong>
A: No! This server is completely public. No authentication required.</p>
<p><strong>Q: Can I use this for my app?</strong>
A: Yes! Build tools, integrations, discovery platforms—whatever helps people connect. It's free and open.</p>
<p><strong>Q: What if I need private information?</strong>
A: Contact me directly at <a href="mailto:whitealba@icloud.com" >whitealba@icloud.com</a></p>
<p><strong>Q: Can I build my own daemon?</strong>
A: Absolutely! The source code architecture uses Cloudflare Workers with MCP protocol. Contact me for implementation guidance.</p>
<p><strong>Q: Does this work with Claude Code 2.0.69+?</strong>
A: Yes! Just run: <code>claude mcp add --transport http chris-daemon https://mcp-daemon.chriswenk.workers.dev</code></p>
<p><strong>Q: Does this work with Claude Desktop?</strong>
A: Yes! Add <code>{&quot;url&quot;: &quot;https://mcp-daemon.chriswenk.workers.dev&quot;}</code> to your claude_desktop_config.json</p>
<hr>

<h2 class="relative group">🚀 Get Started Now
    <div id="-get-started-now" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#-get-started-now" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>Option 1: Use Claude Code</strong> (Recommended)</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">claude mcp add --transport http chris-daemon https://mcp-daemon.chriswenk.workers.dev</span></span></code></pre></div></div>
<p>Then in Claude Code:</p>
<ol>
<li>Run <code>/mcp</code> to verify the server is connected</li>
<li>Ask: &quot;What is Chris Wenk working on?&quot;</li>
<li>Claude will automatically query the MCP server</li>
</ol>
<p><strong>Troubleshooting:</strong></p>
<ul>
<li>If connection fails, try: <code>claude mcp remove chris-daemon</code> then re-add</li>
<li>Run <code>/doctor</code> to check for configuration issues</li>
<li>View detailed logs: <code>claude --debug</code></li>
</ul>
<p><strong>Option 2: Use Claude Desktop</strong></p>
<p>Add to your <code>claude_desktop_config.json</code>:</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;mcpServers&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;chris-daemon&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">      <span class="nt">&#34;url&#34;</span><span class="p">:</span> <span class="s2">&#34;https://mcp-daemon.chriswenk.workers.dev&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div>
<p>Restart Claude Desktop and look for the 🔌 icon.</p>
<p><strong>Option 3: Build Your Own Tool</strong></p>
<ol>
<li>Use the curl or Python examples from the &quot;For Developers&quot; section above</li>
<li>Customize for your use case</li>
<li>Integrate into your workflow - it's completely free!</li>
</ol>
<hr>

<h2 class="relative group">📬 Contact
    <div id="-contact" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#-contact" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>Questions?</strong> Leave a comment and I'll reply
<strong>API:</strong> <code>https://mcp-daemon.chriswenk.workers.dev</code></p>
<hr>
<p><strong>The future of networking is AI-mediated discovery. My daemon is public and queryable. Use it. Build with it. Help enable the future.</strong></p>
]]></content:encoded></item><item><title>Value Averaging: A Deep Dive into a Disciplined Investment Strategy</title><link>https://libreleo.com/posts/value-averaging-deep-dive/</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/value-averaging-deep-dive/</guid><description>A comprehensive guide to the Value Averaging investment strategy. Learn how it works, how it compares to Dollar Cost Averaging, and if it's the right strategy for you to achieve financial freedom.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  You've heard of Dollar Cost Averaging, the &quot;set it and forget it&quot; method. But what if there was a strategy that forces you to buy low and sell high automatically? Enter <strong>Value Averaging (VA)</strong>.
</div>

<p>If you haven't read my DCA post, check it out here: <strong><a href="/posts/dca-dollar-cost-averaging---the-pros-and-cons/" >DCA Dollar Cost Averaging - The Pros and Cons</a></strong></p>
<hr>

<h2 class="relative group">What is Value Averaging?
    <div id="what-is-value-averaging" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-is-value-averaging" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Value Averaging was developed by former Harvard professor Michael E. Edleson. Instead of investing a fixed amount each period (like DCA), you aim for your portfolio's <strong>value to increase by a fixed amount</strong>.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          The Core Principle
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li><strong>Portfolio underperforms?</strong> Invest more to reach your target.</li>
<li><strong>Portfolio overperforms?</strong> Invest less, or even sell some assets.</li>
</ul></div></div><p>This forces you to be a contrarian investor, automatically buying more when prices are low and less when prices are high.</p>
<hr>

<h2 class="relative group">VA vs. DCA: Quick Comparison
    <div id="va-vs-dca-quick-comparison" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#va-vs-dca-quick-comparison" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Dollar Cost Averaging">
          <span class="flex items-center gap-1">
            
            Dollar Cost Averaging
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Value Averaging">
          <span class="flex items-center gap-1">
            
            Value Averaging
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <table>
	<thead>
			<tr>
					<th>Aspect</th>
					<th>DCA Approach</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Investment</strong></td>
					<td>Fixed amount (e.g., $500/month)</td>
			</tr>
			<tr>
					<td><strong>Market Down</strong></td>
					<td>Buy more shares automatically</td>
			</tr>
			<tr>
					<td><strong>Market Up</strong></td>
					<td>Buy fewer shares automatically</td>
			</tr>
			<tr>
					<td><strong>Effort</strong></td>
					<td>Set it and forget it</td>
			</tr>
			<tr>
					<td><strong>Cash Flow</strong></td>
					<td>Predictable</td>
			</tr>
	</tbody>
</table>

      </div><div class="tab__panel " data-tab-index="1">
        <table>
	<thead>
			<tr>
					<th>Aspect</th>
					<th>VA Approach</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Investment</strong></td>
					<td>Variable, based on performance</td>
			</tr>
			<tr>
					<td><strong>Market Down</strong></td>
					<td>Invest MORE to hit target</td>
			</tr>
			<tr>
					<td><strong>Market Up</strong></td>
					<td>Invest less or SELL</td>
			</tr>
			<tr>
					<td><strong>Effort</strong></td>
					<td>Requires monitoring</td>
			</tr>
			<tr>
					<td><strong>Cash Flow</strong></td>
					<td>Unpredictable</td>
			</tr>
	</tbody>
</table>

      </div></div>
</div>

<hr>

<h2 class="relative group">Real Example: VA vs DCA Side-by-Side
    <div id="real-example-va-vs-dca-side-by-side" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#real-example-va-vs-dca-side-by-side" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>Goal:</strong> Grow portfolio by $1,000/quarter. Starting with $1,000.</p>
<table>
	<thead>
			<tr>
					<th>Quarter</th>
					<th>Price</th>
					<th>VA Investment</th>
					<th>VA Value</th>
					<th>DCA Investment</th>
					<th>DCA Value</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Q1</td>
					<td>$10.00</td>
					<td>$1,000</td>
					<td>$1,000</td>
					<td>$1,000</td>
					<td>$1,000</td>
			</tr>
			<tr>
					<td>Q2</td>
					<td>$12.50</td>
					<td>$750</td>
					<td>$2,000</td>
					<td>$1,000</td>
					<td>$2,250</td>
			</tr>
			<tr>
					<td>Q3</td>
					<td>$8.00</td>
					<td><strong>$1,720</strong></td>
					<td>$3,000</td>
					<td>$1,000</td>
					<td>$2,440</td>
			</tr>
			<tr>
					<td>Q4</td>
					<td>$11.00</td>
					<td><strong>-$125</strong> (sell)</td>
					<td>$4,000</td>
					<td>$1,000</td>
					<td>$4,355</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Results
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><table>
	<thead>
			<tr>
					<th>Strategy</th>
					<th>Total Invested</th>
					<th>Final Value</th>
					<th>Gain</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>VA</strong></td>
					<td>$3,345</td>
					<td>$4,000</td>
					<td><strong>$655 (19.6%)</strong></td>
			</tr>
			<tr>
					<td><strong>DCA</strong></td>
					<td>$4,000</td>
					<td>$4,355</td>
					<td>$355 (8.9%)</td>
			</tr>
	</tbody>
</table>
<p>VA achieved <strong>nearly double the return</strong> while investing <strong>$655 less capital</strong>.</p></div></div><p><strong>The key insight:</strong> In Q3 when prices dropped, VA forced a larger investment. In Q4 when prices recovered, VA actually sold $125, locking in gains automatically.</p>
<hr>

<h2 class="relative group">Visual Comparison
    <div id="visual-comparison" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#visual-comparison" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h4 class="relative group">Portfolio Growth
    <div id="portfolio-growth" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#portfolio-growth" aria-label="Anchor">#</a>
    </span>
    
</h4>

<div class="va-chart-container" style="position: relative; height: 400px; width: 100%; margin: 2rem auto;">
    <canvas id="va-vs-dca-portfolio-chart"></canvas>
</div>

<script>
document.addEventListener('DOMContentLoaded', () => {
    
    function isChartJsLoaded() {
        return typeof Chart !== 'undefined';
    }

    
    function loadChartJs(callback) {
        if (isChartJsLoaded()) {
            callback();
            return;
        }
        const script = document.createElement('script');
        script.src = "https://cdn.jsdelivr.net/npm/chart.js";
        script.onload = callback;
        document.head.appendChild(script);
    }

    function renderChart() {
        const ctx = document.getElementById('va-vs-dca-portfolio-chart').getContext('2d');

        const labels = ['Q1', 'Q2', 'Q3', 'Q4'];
        const vaData = [1000, 2000, 3000, 4000];
        const dcaData = [1000, 2250, 2440, 4355];

        new Chart(ctx, {
            type: 'line',
            data: {
                labels: labels,
                datasets: [
                    {
                        label: 'Value Averaging Portfolio Value',
                        data: vaData,
                        borderColor: 'rgba(75, 192, 192, 1)',
                        backgroundColor: 'rgba(75, 192, 192, 0.2)',
                        fill: true,
                        tension: 0.1
                    },
                    {
                        label: 'Dollar Cost Averaging Portfolio Value',
                        data: dcaData,
                        borderColor: 'rgba(255, 99, 132, 1)',
                        backgroundColor: 'rgba(255, 99, 132, 0.2)',
                        fill: true,
                        tension: 0.1
                    }
                ]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                plugins: {
                    title: {
                        display: true,
                        text: 'VA vs. DCA: Portfolio Value'
                    },
                    tooltip: {
                        mode: 'index',
                        intersect: false,
                        callbacks: {
                           label: function(context) {
                               let label = context.dataset.label || '';
                               if (label) {
                                   label += ': ';
                               }
                               if (context.parsed.y !== null) {
                                   label += new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(context.parsed.y);
                               }
                               return label;
                           }
                        }
                    },
                },
                scales: {
                    x: {
                        display: true,
                        title: {
                            display: true,
                            text: 'Quarter'
                        }
                    },
                    y: {
                        display: true,
                        title: {
                            display: true,
                            text: 'Portfolio Value'
                        },
                        ticks: {
                            callback: function(value, index, values) {
                                return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(value);
                            }
                        }
                    }
                }
            }
        });
    }

    loadChartJs(renderChart);
});
</script>


<h4 class="relative group">Investment Per Quarter
    <div id="investment-per-quarter" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#investment-per-quarter" aria-label="Anchor">#</a>
    </span>
    
</h4>

<div class="va-chart-container" style="position: relative; height: 400px; width: 100%; margin: 2rem auto;">
    <canvas id="va-vs-dca-investment-chart"></canvas>
</div>

<script>
document.addEventListener('DOMContentLoaded', () => {
    
    function isChartJsLoaded() {
        return typeof Chart !== 'undefined';
    }

    
    function loadChartJs(callback) {
        if (isChartJsLoaded()) {
            callback();
            return;
        }
        const script = document.createElement('script');
        script.src = "https://cdn.jsdelivr.net/npm/chart.js";
        script.onload = callback;
        document.head.appendChild(script);
    }

    function renderChart() {
        const ctx = document.getElementById('va-vs-dca-investment-chart').getContext('2d');

        const labels = ['Q2', 'Q3', 'Q4'];
        const vaData = [750, 1720, -125];
        const dcaData = [1000, 1000, 1000];

        new Chart(ctx, {
            type: 'bar',
            data: {
                labels: labels,
                datasets: [
                    {
                        label: 'Value Averaging Investment',
                        data: vaData,
                        backgroundColor: 'rgba(75, 192, 192, 0.8)',
                        borderColor: 'rgba(75, 192, 192, 1)',
                        borderWidth: 1
                    },
                    {
                        label: 'Dollar Cost Averaging Investment',
                        data: dcaData,
                        backgroundColor: 'rgba(255, 99, 132, 0.8)',
                        borderColor: 'rgba(255, 99, 132, 1)',
                        borderWidth: 1
                    }
                ]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                plugins: {
                    title: {
                        display: true,
                        text: 'VA vs. DCA: Quarterly Investment'
                    },
                    tooltip: {
                        mode: 'index',
                        intersect: false,
                        callbacks: {
                           label: function(context) {
                               let label = context.dataset.label || '';
                               if (label) {
                                   label += ': ';
                               }
                               if (context.parsed.y !== null) {
                                   label += new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(context.parsed.y);
                               }
                               return label;
                           }
                        }
                    },
                },
                scales: {
                    x: {
                        display: true,
                        title: {
                            display: true,
                            text: 'Quarter'
                        }
                    },
                    y: {
                        display: true,
                        title: {
                            display: true,
                            text: 'Investment Amount'
                        },
                        ticks: {
                            callback: function(value, index, values) {
                                return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(value);
                            }
                        }
                    }
                }
            }
        });
    }

    loadChartJs(renderChart);
});
</script>

<p>Notice how VA invests more when prices dip (Q3) and sells when prices rise (Q4). That's &quot;buy low, sell high&quot; on autopilot.</p>
<hr>

<h2 class="relative group">Pros and Cons
    <div id="pros-and-cons" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pros-and-cons" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Advantages">
          <span class="flex items-center gap-1">
            
            Advantages
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Disadvantages">
          <span class="flex items-center gap-1">
            
            Disadvantages
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Why VA Works
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ol>
<li><strong>Automatic contrarian investing</strong> - Buy low, sell high by design</li>
<li><strong>Removes emotion</strong> - The math decides, not your feelings</li>
<li><strong>Lower average cost</strong> - Tends to outperform DCA over time</li>
<li><strong>Goal-oriented</strong> - Great for specific targets (down payment, etc.)</li>
</ol></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        <div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Watch Out For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ol>
<li><strong>Complexity</strong> - Requires regular calculations</li>
<li><strong>Cash drag</strong> - May hold cash during bull markets</li>
<li><strong>Large investments needed</strong> - Market crashes require big buys</li>
<li><strong>Tax events</strong> - Selling triggers capital gains</li>
</ol></div></div>
      </div></div>
</div>

<hr>

<h2 class="relative group">Is VA Right for You?
    <div id="is-va-right-for-you" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#is-va-right-for-you" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          VA is great if you're...
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li>A disciplined, hands-on investor</li>
<li>Someone with irregular income who can deploy lump sums</li>
<li>Approaching a specific financial goal</li>
</ul></div></div><div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          VA is NOT great if you're...
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li>A beginner who wants simplicity</li>
<li>On a fixed monthly budget</li>
<li>Uncomfortable holding cash during bull runs</li>
</ul></div></div><hr>

<h2 class="relative group">Getting Started: 5 Steps
    <div id="getting-started-5-steps" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#getting-started-5-steps" aria-label="Anchor">#</a>
    </span>
    
</h2>
<ol>
<li><strong>Define your value path</strong> - How much should your portfolio grow each period?</li>
<li><strong>Choose your investment</strong> - Low-cost index fund or ETF</li>
<li><strong>Make your first investment</strong> - Get on the path</li>
<li><strong>Schedule check-ins</strong> - Monthly or quarterly reviews</li>
<li><strong>Maintain a cash reserve</strong> - You'll need it for market dips</li>
</ol>
<hr>

<h2 class="relative group">Bottom Line
    <div id="bottom-line" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#bottom-line" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Value Averaging is a powerful strategy that mathematically enforces &quot;buy low, sell high.&quot; It can outperform DCA, but requires more effort and a cash buffer.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Final Thought
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If you're ready to take a more active role in your investments and embrace a contrarian approach, Value Averaging might be exactly what you're looking for.</p></div></div>
  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/value-averaging-deep-dive.webp" medium="image"/></item><item><title>How The Benner Cycle Predicts 100+ Years of Market Movement</title><link>https://libreleo.com/posts/benner-cycle-market-predictions/</link><pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/benner-cycle-market-predictions/</guid><description>We explore the mysterious Benner Cycle from 1875, a market forecasting chart created by a farmer. Does it hold up today, or is it just a historical curiosity?</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Have you ever wished for a map of the stock market? A simple guide that tells you when to be fearful and when to be greedy? What if a 19th-century farmer stumbled upon a secret rhythm of the market, a cycle that has supposedly predicted major movements for over 100 years?
</div>

<p>This is the story of the <strong>Benner Cycle</strong>, and honestly, it's one of the most fascinating rabbit holes in finance.</p>
<p>I'm going to break down exactly what this cycle is, see if it has any teeth in today's wild markets, and figure out if this old farmer's wisdom can actually make us better investors.</p>
<hr>

<h2 class="relative group">Who Was Samuel Benner?
    <div id="who-was-samuel-benner" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#who-was-samuel-benner" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Samuel Benner wasn't some Wall Street guru. He was an Ohio farmer who got absolutely wiped out financially by the Panic of 1873. Instead of just licking his wounds, he became obsessed with figuring out why markets moved in such dramatic, repeating waves.</p>
<p>So, he hit the books, studying everything from pig iron prices to corn harvests, and in 1875, he published a book with his findings. His work boiled down to a simple, powerful idea:</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Benner's Core Insight
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>The market moves in cycles, and these cycles can be charted.</p></div></div><hr>

<h2 class="relative group">The Three Flavors of Market Years
    <div id="the-three-flavors-of-market-years" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-three-flavors-of-market-years" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Benner's system wasn't complicated. He categorized years into three distinct types:</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Panic Years">
          <span class="flex items-center gap-1">
            
            Panic Years
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Good Times">
          <span class="flex items-center gap-1">
            
            Good Times
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Hard Times">
          <span class="flex items-center gap-1">
            
            Hard Times
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">Panic Years
    <div id="panic-years" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#panic-years" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The big ones. Years of irrational fear (or greed) where prices either crash through the floor or launch into the stratosphere.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Historical Examples
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li>2008 Financial Crisis</li>
<li>Dot-com bust (2000-2002)</li>
<li>April 2025 &quot;Liberation Day&quot;</li>
</ul></div></div><p>It's when things get crazy.</p>

      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Good Times
    <div id="good-times" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#good-times" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The boom years. Prices are high, everyone's making money, and your portfolio looks brilliant.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Benner's Advice
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>This is the <strong>best time to sell</strong> your assets and take profits. Don't get greedy.</p></div></div>
      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Hard Times
    <div id="hard-times" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#hard-times" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The winter of the market cycle. Prices are low, sentiment is gloomy, and it feels like the world is ending.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Benner's Prescription
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Buy.</strong> Buy stocks, buy assets, and hold on until the &quot;Good Times&quot; roll back around.</p></div></div>
      </div></div>
</div>

<hr>

<h2 class="relative group">What Does the Cycle Look Like?
    <div id="what-does-the-cycle-look-like" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-does-the-cycle-look-like" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>This is where it gets interesting. Benner laid out his predictions on a hand-drawn chart, which has since been adapted and passed down.</p>
<figure><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="low"
    alt="Image Description"
    src="/images/Pasted%20image%2020251124195140.png"
    ></figure>
<blockquote><p>A visual representation of Benner's cyclical chart, showing the waves of panic, good times, and hard times.</p>
</blockquote>
<h3 class="relative group">The Rhythm of the Market
    <div id="the-rhythm-of-the-market" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-rhythm-of-the-market" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Benner identified a recurring pattern in market tops of <strong>8, 9, and 10 years</strong>. This simple rhythm forms the backbone of his forecast for &quot;Good Times&quot; to sell.</p>
<p>Similarly, he found patterns for market bottoms, giving him his &quot;Hard Times&quot; to buy. It was a mechanical, almost agricultural way of looking at finance. Planting during the bad years to harvest during the good ones.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          The Surprising Part
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>For a while, it seemed to work surprisingly well, lining up with several major market events long after Benner was gone.</p></div></div><hr>

<h2 class="relative group">Should You Trade Using a 150-Year-Old Chart?
    <div id="should-you-trade-using-a-150-year-old-chart" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#should-you-trade-using-a-150-year-old-chart" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>This is the million-dollar question. It's one thing to look at a historical chart and nod along, but it's another thing entirely to bet your hard-earned money on it.</p>
<figure><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="low"
    alt="Image Description"
    src="/images/Pasted%20image%2020251124194952.png"
    ></figure>

<h3 class="relative group">The &quot;Map vs. GPS&quot; Analogy
    <div id="the-map-vs-gps-analogy" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-map-vs-gps-analogy" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Here's how I see it:</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Think of It This Way
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>The Benner Cycle is like a hand-drawn map of a coastline from the 1800s. It gives you the general shape, the major capes, the big bays. It's useful for general orientation.</p>
<p>But you would <strong>never</strong> use it as a GPS to navigate a super-tanker through a narrow, rocky channel in a storm.</p></div></div><p>The economy of 1875 was based on agriculture and railroads, pegged to a gold standard. Today's market is a complex, globalized, high-frequency, algorithm-driven beast connected in ways Benner could never have imagined.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          The Danger of Confirmation Bias
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>The biggest pitfall is our own brain. When you look at the chart, it's incredibly easy to see the times it worked and ignore the times it didn't. This is called <strong>confirmation bias</strong>, and it's a great way to lose money.</p></div></div><hr>

<h2 class="relative group">How to <em>Actually</em> Use the Benner Cycle
    <div id="how-to-actually-use-the-benner-cycle" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-actually-use-the-benner-cycle" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>So, if we're not using it as a trading signal, is it useless? Not at all.</p>
<p>Its real value isn't in its predictive power, but in its ability to help us manage our own worst enemy: <strong>our emotions</strong>.</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="During Hard Times">
          <span class="flex items-center gap-1">
            
            During Hard Times
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="During Good Times">
          <span class="flex items-center gap-1">
            
            During Good Times
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">A Tool for Emotional Discipline
    <div id="a-tool-for-emotional-discipline" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-tool-for-emotional-discipline" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>When the market is in &quot;Hard Times&quot; and everyone is panicking, having a 150-year-old chart that says <strong>&quot;BUY&quot;</strong> can be a powerful psychological tool.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          The Benefit
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>It can give you the courage to follow Warren Buffett's advice and &quot;be greedy when others are fearful.&quot;</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">A Sanity Check
    <div id="a-sanity-check" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-sanity-check" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>When the market is euphoric and stories of overnight millionaires are everywhere (what Benner called &quot;Good Times&quot;), his chart serves as a sober reminder.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          The Reminder
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>&quot;Hey, maybe don't go all-in at the top.&quot; Take some profits.</p></div></div>
      </div></div>
</div>

<hr>

<h2 class="relative group">The Real Secret Weapon
    <div id="the-real-secret-weapon" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-real-secret-weapon" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The real secret weapon in investing isn't a perfect timing tool. It's <strong>patience</strong>.</p>
<p>The Benner Cycle, for all its flaws, is a testament to the fact that markets are cyclical:</p>
<table>
	<thead>
			<tr>
					<th>Phase</th>
					<th>What Happens</th>
					<th>What To Do</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Hard Times</strong></td>
					<td>Prices low, sentiment gloomy</td>
					<td>Buy and hold</td>
			</tr>
			<tr>
					<td><strong>Recovery</strong></td>
					<td>Prices rising, optimism returns</td>
					<td>Stay invested</td>
			</tr>
			<tr>
					<td><strong>Good Times</strong></td>
					<td>Prices high, euphoria</td>
					<td>Take profits</td>
			</tr>
			<tr>
					<td><strong>Panic</strong></td>
					<td>Prices crash, fear everywhere</td>
					<td>Prepare to buy</td>
			</tr>
	</tbody>
</table>
<p>Bad times are followed by good times, and good times are followed by bad.</p>
<hr>

<h2 class="relative group">Conclusion
    <div id="conclusion" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#conclusion" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>So, can a farmer from 1875 predict the market?</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          The Answer
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>No.</strong> Don't use it to time the market.</p></div></div><div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          But...
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Can it make you a smarter, more level-headed investor? <strong>Absolutely.</strong></p></div></div><p>The Benner Cycle is a fascinating historical artifact and a brilliant mental model:</p>
<ul>
<li>Use it to understand that markets have a natural ebb and flow</li>
<li>Use it to check your own greed and fear</li>
<li><strong>Don't</strong> use it to time specific trades</li>
</ul>
<p>The real, boring, and effective secret to building wealth remains the same: <strong>buy good assets, diversify, and give it time.</strong> Lots of time.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/benner-cycle-market-predictions.webp" medium="image"/></item><item><title>Portfolio Rebalancing Calculator</title><link>https://libreleo.com/calculators/portfolio-rebalancer/interactive_portfolio_rebalancing_calculator/</link><pubDate>Wed, 03 Dec 2025 12:00:00 +0800</pubDate><guid>https://libreleo.com/calculators/portfolio-rebalancer/interactive_portfolio_rebalancing_calculator/</guid><description>An interactive tool to help you rebalance your investment portfolio back to its target allocation.</description><content:encoded><![CDATA[<p>Portfolio rebalancing is the process of realigning the weightings of a portfolio of assets to maintain your target allocation. This interactive calculator helps you determine the exact actions needed to bring your portfolio back into balance.</p>
<p><strong>Want to learn more about portfolio rebalancing?</strong> Check out our comprehensive guide: <a href="/posts/portfolio_rebalancing_the_essential_guide_to_maintaining_your_investment/" >Portfolio Rebalancing: The Essential Guide to Maintaining Your Investment Allocation</a></p>

<h3 class="relative group">How to Use the Calculator
    <div id="how-to-use-the-calculator" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-use-the-calculator" aria-label="Anchor">#</a>
    </span>
    
</h3>
<ol>
<li><strong>List Your Assets</strong>: The calculator starts with a common four-asset portfolio. You can change the names, add new assets with the &quot;Add Asset&quot; button, or remove them with the &quot;✖&quot; button.</li>
<li><strong>Set Target Allocations</strong>: Enter your desired allocation percentage for each asset class. Ensure the total sums to 100%.</li>
<li><strong>Enter Current Values</strong>: Input the current market value of your holdings for each asset.</li>
<li><strong>Review the Actions</strong>: The &quot;Action&quot; column will automatically update, telling you exactly how much you need to buy or sell of each asset to match your target allocation.</li>
</ol>
<div class="rebalancer-container">
    <h2>Portfolio Rebalancer</h2>
    <p class="rebalancer-intro">Enter your assets, target allocations, and current values to calculate the rebalancing actions needed.</p>

    <div class="rebalancer-table-container">
        <table>
            <thead>
                <tr>
                    <th>Asset Class</th>
                    <th>Target Allocation (%)</th>
                    <th>Current Value ($)</th>
                    <th>Action</th>
                    <th></th>
                </tr>
            </thead>
            <tbody id="rebalancer-assets">
                
            </tbody>
            <tfoot>
                <tr>
                    <td><strong>Total</strong></td>
                    <td id="total-target-allocation"><strong>0%</strong></td>
                    <td id="total-current-value"><strong>$0.00</strong></td>
                    <td colspan="2"></td>
                </tr>
            </tfoot>
        </table>
    </div>

    <button id="add-asset-btn" class="rebalancer-btn">Add Asset</button>
    <div id="rebalance-summary" class="rebalancer-summary"></div>
    
    <div class="rebalancer-chart-container">
        <canvas id="rebalance-chart"></canvas>
    </div>

    <p class="rebalancer-disclaimer">
        <strong>Disclaimer:</strong> This calculator is for informational and educational purposes only. It does not constitute financial, investment, or tax advice. Always consult with a qualified professional before making any investment decisions.
    </p>

</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
    const assetsContainer = document.getElementById('rebalancer-assets');
    const addAssetBtn = document.getElementById('add-asset-btn');
    const totalTargetCell = document.getElementById('total-target-allocation');
    const totalValueCell = document.getElementById('total-current-value');
    const summaryDiv = document.getElementById('rebalance-summary');
    let rebalanceChart = null;

    const initialAssets = [
        { name: 'US Stocks', target: 60, value: 65000 },
        { name: 'International Stocks', target: 20, value: 18000 },
        { name: 'Bonds', target: 15, value: 15000 },
        { name: 'Gold', target: 5, value: 7000 }
    ];

    function createAssetRow(asset = { name: '', target: '', value: '' }) {
        const row = document.createElement('tr');
        row.innerHTML = `
            <td><input type="text" class="asset-name" placeholder="e.g., US Stocks" value="${asset.name}"></td>
            <td><input type="number" class="asset-target" placeholder="%" min="0" max="100" step="0.1" value="${asset.target}"></td>
            <td><input type="number" class="asset-value" placeholder="$" min="0" step="100" value="${asset.value}"></td>
            <td class="asset-action">--</td>
            <td><button class="remove-asset-btn">✖</button></td>
        `;
        assetsContainer.appendChild(row);
        row.querySelector('.remove-asset-btn').addEventListener('click', () => {
            row.remove();
            calculateRebalance();
        });
        row.querySelectorAll('input').forEach(input => input.addEventListener('input', calculateRebalance));
    }

    function calculateRebalance() {
        const assetRows = assetsContainer.querySelectorAll('tr');
        let totalTarget = 0;
        let totalValue = 0;
        const assets = [];

        assetRows.forEach(row => {
            const name = row.querySelector('.asset-name').value || 'Unnamed Asset';
            const target = parseFloat(row.querySelector('.asset-target').value) || 0;
            const value = parseFloat(row.querySelector('.asset-value').value) || 0;
            
            totalTarget += target;
            totalValue += value;
            assets.push({ name, target, value, row });
        });

        totalTargetCell.textContent = `${totalTarget.toFixed(1)}%`;
        totalTargetCell.style.color = Math.abs(totalTarget - 100) < 0.1 ? 'var(--color-primary-500)' : 'var(--color-red)';
        totalValueCell.textContent = `$${totalValue.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
        
        summaryDiv.innerHTML = '';
        if (Math.abs(totalTarget - 100) > 0.1) {
            summaryDiv.innerHTML = '<p class="error">Total target allocation must equal 100% to rebalance.</p>';
            assets.forEach(asset => asset.row.querySelector('.asset-action').textContent = '--');
            updateChart([], [], []);
            return;
        }

        assets.forEach(asset => {
            const targetValue = totalValue * (asset.target / 100);
            const difference = targetValue - asset.value;
            const actionCell = asset.row.querySelector('.asset-action');

            if (Math.abs(difference) < 1) {
                actionCell.textContent = 'Hold';
                actionCell.style.color = 'inherit';
            } else if (difference > 0) {
                actionCell.textContent = `Buy $${difference.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
                actionCell.style.color = 'var(--color-green)';
            } else {
                actionCell.textContent = `Sell $${(-difference).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
                actionCell.style.color = 'var(--color-red)';
            }
        });

        const labels = assets.map(a => a.name);
        const currentAllocations = assets.map(a => totalValue > 0 ? (a.value / totalValue) * 100 : 0);
        const targetAllocations = assets.map(a => a.target);
        updateChart(labels, currentAllocations, targetAllocations);
    }
    
    function getChartThemeColors() {
        const styles = getComputedStyle(document.documentElement);
        const isDark = document.documentElement.classList.contains('dark');
        const cardText = styles.getPropertyValue('--card-text').trim() || '#212529';
        const fontFamily = styles.getPropertyValue('--font-stack').trim() || '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif';
        const cardBg = styles.getPropertyValue('--card-bg').trim() || (isDark ? '#2d2d2d' : '#ffffff');
        const innerBg = styles.getPropertyValue('--inner-bg').trim() || (isDark ? '#2d2d2d' : '#f8f9fa');
        const inputBorder = styles.getPropertyValue('--input-border').trim() || '#ced4da';
        const tooltipBg = isDark ? innerBg : '#ffffff';
        const tooltipText = cardText;
        const borderColor = isDark ? '#222' : '#ffffff';
        return {
            textColor: cardText,
            legendFont: { family: fontFamily, size: 13 },
            borderColor: borderColor,
            tooltipBg: tooltipBg,
            tooltipText: tooltipText,
            fontFamily: fontFamily,
            gridColor: inputBorder
        };
    }
    
    function updateChart(labels, currentData, targetData) {
            const themeColors = getChartThemeColors();

            function readChartPalette() {
                const styles = getComputedStyle(document.documentElement);
                const palette = [];
                for (let i = 1; i <= 9; i++) {
                    const v = styles.getPropertyValue(`--chart-color-${i}`).trim();
                    if (v) palette.push(v);
                }
                if (palette.length === 0) {
                    return ['#4e73df', '#1cc88a', '#36b9cc', '#f6c23e', '#e74a3b', '#858796', '#5a5c69', '#6f42c1', '#fd7e14'];
                }
                return palette;
            }

            function applyAlphaIfHex(col, alphaHex = 'B3') {
                if (typeof col !== 'string') return col;
                const c = col.trim();
                
                if (/^#[0-9a-fA-F]{6}$/.test(c)) return c + alphaHex;
                
                if (/^#[0-9a-fA-F]{3}$/.test(c)) {
                    const r = c[1]; const g = c[2]; const b = c[3];
                    return `#${r}${r}${g}${g}${b}${b}` + alphaHex;
                }
                
                return c;
            }

            const chartColors = readChartPalette();

        const data = {
            labels: labels,
            datasets: [{
                label: 'Current Allocation',
                data: currentData,
                backgroundColor: chartColors.map(c => applyAlphaIfHex(c)),
                borderColor: themeColors.borderColor,
                borderWidth: 2,
            }, {
                label: 'Target Allocation',
                data: targetData,
                backgroundColor: chartColors.map(c => applyAlphaIfHex(c)),
                borderColor: themeColors.borderColor,
                borderWidth: 2,
            }]
        };

        const chartOptions = {
            responsive: true,
            maintainAspectRatio: false,
            cutout: '50%',
            plugins: {
                legend: {
                    position: 'top',
                    labels: {
                        color: themeColors.textColor,
                        font: themeColors.legendFont
                    }
                },
                tooltip: {
                    backgroundColor: themeColors.tooltipBg,
                    titleColor: themeColors.tooltipText,
                    bodyColor: themeColors.tooltipText,
                    callbacks: {
                        label: function(context) {
                            let label = context.dataset.label || '';
                            if (label) label += ': ';
                            if (context.parsed !== null) label += context.parsed.toFixed(2) + '%';
                            return label;
                        }
                    }
                }
            }
        };

        if (rebalanceChart) {
            rebalanceChart.data = data;
            rebalanceChart.options.plugins.legend.labels.color = themeColors.textColor;
            rebalanceChart.options.plugins.tooltip.backgroundColor = themeColors.tooltipBg;
            rebalanceChart.options.plugins.tooltip.titleColor = themeColors.tooltipText;
            rebalanceChart.options.plugins.tooltip.bodyColor = themeColors.tooltipText;
            rebalanceChart.update();
        } else {
            const ctx = document.getElementById('rebalance-chart').getContext('2d');
            rebalanceChart = new Chart(ctx, {
                type: 'doughnut',
                data: data,
                options: chartOptions
            });
        }
    }

    addAssetBtn.addEventListener('click', () => createAssetRow());

    const themeObserver = new MutationObserver((mutationsList) => {
        for (const mutation of mutationsList) {
            if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
                calculateRebalance();
            }
        }
    });
    themeObserver.observe(document.documentElement, { attributes: true });

    initialAssets.forEach(createAssetRow);
    calculateRebalance();
});
</script>

<style>
   
  :root {
    --card-max-width: 800px;
    --card-padding: 24px;
    --card-bg: #efefef;
    --card-text: #212529;
    --input-bg: #ffffff;
    --input-border: #ced4da;
    --accent: #4CAF50;
    --muted: #666;
    --inner-bg: #f8f9fa;
    --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --color-green: #28a745;
    --color-red: #dc3545;
         
        --chart-color-1: #4e73df;
        --chart-color-2: #1cc88a;
        --chart-color-3: #36b9cc;
        --chart-color-4: #f6c23e;
        --chart-color-5: #e74a3b;
        --chart-color-6: #858796;
        --chart-color-7: #5a5c69;
        --chart-color-8: #6f42c1;
        --chart-color-9: #fd7e14;
  }

  .dark {
    --card-bg: #2d2d2d;
    --card-text: #ccc;
    --input-bg: #404040;
    --input-border: #555;
    --accent: #4CAF50;
    --muted: #999;
    --inner-bg: #404040;
    --color-green: #48bb78;
    --color-red: #f56565;
  }

  .rebalancer-container {
    font-family: var(--font-stack);
    max-width: var(--card-max-width);
    margin: 2rem auto;
    padding: var(--card-padding);
    background-color: var(--card-bg);
    border: 1px solid var(--input-border);
    border-radius: 8px;
    color: var(--card-text);
  }
  .rebalancer-intro { font-size: 1rem; color: var(--muted); margin-bottom: 1.25rem; }
  .rebalancer-table-container { overflow-x: auto; }
  .rebalancer-container table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; }
  .rebalancer-container th, .rebalancer-container td { padding: 0.6rem; text-align: left; border-bottom: 1px solid var(--input-border); vertical-align: middle; }
  .rebalancer-container th { background-color: var(--inner-bg); font-weight: 600; font-size: 0.9rem; }
  .rebalancer-container tfoot td { font-weight: bold; }
  .rebalancer-container input[type="text"], .rebalancer-container input[type="number"] {
    width: 95%; padding: 6px 8px; border: 1px solid var(--input-border); border-radius: 4px; background-color: var(--input-bg); color: var(--card-text); transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; font-family: var(--font-stack);
  }
     
    .rebalancer-container td input.asset-name { width: 100%; font-weight: 600; color: var(--card-text); }
    .rebalancer-container td input.asset-target, .rebalancer-container td input.asset-value { width: 80px; text-align: right; }
    .rebalancer-container td .asset-action { font-weight: 600; color: var(--muted); }
    .rebalancer-container input::placeholder { color: var(--muted); }
  .rebalancer-container input:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 0.12rem rgba(76,175,80,0.12); }
  .rebalancer-btn { background-color: var(--accent); color: #fff; border: none; padding: 0.5rem 0.9rem; border-radius: 5px; cursor: pointer; font-size: 0.9rem; transition: background-color 0.2s; margin-bottom: 1rem; }
  .rebalancer-btn:hover { opacity: 0.95; }
  .remove-asset-btn { background: none; border: none; color: var(--color-red); font-size: 1.1rem; cursor: pointer; padding: 0 0.5rem; }
  .rebalancer-summary { margin-bottom: 1.25rem; font-weight: 500; }
  .rebalancer-summary .error { color: var(--color-red); background-color: rgba(0,0,0,0.03); border: 1px solid rgba(0,0,0,0.05); padding: 0.6rem; border-radius: 5px; }
  .rebalancer-chart-container { position: relative; height: 350px; width: 100%; margin-bottom: 1.5rem; }
  .rebalancer-disclaimer { font-size: 0.8rem; color: var(--muted); border-top: 1px solid var(--input-border); padding-top: 1rem; margin-top: 1.25rem; }
</style>

<hr>

<h2 class="relative group">Learn More
    <div id="learn-more" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#learn-more" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>For a comprehensive guide on portfolio rebalancing, including when and how to rebalance, tax strategies, and real-world examples, visit our full article: <strong><a href="/posts/portfolio_rebalancing_the_essential_guide_to_maintaining_your_investment/" >Portfolio Rebalancing: The Essential Guide</a></strong></p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This calculator reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/interactive_portfolio_rebalancing_calculator.webp" medium="image"/></item><item><title>Interactive Calculator to Your FI (Financial Independence) Number</title><link>https://libreleo.com/calculators/interactive_calculator_to_your_fire_number/</link><pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/calculators/interactive_calculator_to_your_fire_number/</guid><description>Use my interactive calculator to discover your Financial Independence, Retire Early (FIRE) number and understand the key factors that influence it.</description><content:encoded><![CDATA[<span class="flex cursor-pointer">
  
  
  
  
    <span
      class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
  
    
Updated: 19/06/2026

  </span>
</span>


<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Understanding your <strong>Financial Independence, <del>Retire Early</del> (FIRE)</strong> number is the first step toward building a solid financial future. This number represents the amount of investable assets you need—but it's unique to you. It depends on your annual expenses, your expected withdrawal rate, and any other income you might have.
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          My Priority
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>My priority is achieving financial independence rather than retiring early. The pace at which you pursue financial independence is your choice.</p></div></div><p>Use my interactive calculator below to find out your personal FIRE number!</p>

<style>
  :root {
    --card-max-width: 600px;
    --card-padding: 20px;
    --card-bg: #efefef;
    --card-text: #212529;
    --input-bg: #ffffff;
    --input-border: #ced4da;
    --accent: #4CAF50;
    --muted: #666;
    --inner-bg: #f8f9fa;
    --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  }

  .dark {
    --card-bg: #2d2d2d;
    --card-text: #ccc;
    --input-bg: #404040;
    --input-border: #555;
    --accent: #4CAF50;
    --muted: #999;
    --inner-bg: #404040;
  }

  .fire-calculator {
    max-width: var(--card-max-width);
    margin: auto;
    padding: var(--card-padding);
    background-color: var(--card-bg);
    color: var(--card-text);
    border-radius: 8px;
    font-family: var(--font-stack);
  }

  .fire-calculator .form-group { margin-bottom: 20px; }
  .fire-calculator label { display:block; margin-bottom:6px; }
  .fire-calculator input[type="number"], .fire-calculator input[type="range"] {
    width:100%;
    background-color: var(--input-bg);
    color: var(--card-text);
    border: 1px solid var(--input-border);
    padding: 10px;
    border-radius: 4px;
    box-sizing: border-box;
  }

  .fire-calculator .section-header {
    font-size:0.85em;
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--muted);
    margin: 24px 0 10px 0;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--input-border);
  }

  .fire-calculator .result-label { display:block; margin-bottom:6px; }
  .fire-calculator .fire-number {
    font-size:1.5em; font-weight:bold; color:var(--accent); padding:10px; background-color:var(--inner-bg); border-radius:4px; text-align:center;
  }
  .fire-calculator .fire-number.secondary {
    font-size:1.2em; opacity:0.9;
  }

  .fire-calculator .muted { font-size:0.85em; text-align:center; margin-top:6px; color:var(--muted); }
</style>

<div class="fire-calculator">

  
<script>
(function () {
  if (window.finfreeCurrency) return;  

  var SYMBOLS = {
    USD: '$',
    EUR: '€',
    GBP: '£',
    CHF: 'CHF ',
    AED: 'AED ',
    SGD: 'S$',
    HKD: 'HK$',
    CNY: 'CN¥',
    PHP: '₱',
    MYR: 'RM ',
    INR: '₹'
  };

  var STORAGE_KEY = 'finfree-currency';
  var EVENT_NAME = 'finfree-currency-change';

  function safeRead() {
    try { return localStorage.getItem(STORAGE_KEY) || 'USD'; } catch (e) { return 'USD'; }
  }
  function safeWrite(code) {
    try { localStorage.setItem(STORAGE_KEY, code); } catch (e) {}
  }

  window.finfreeCurrency = {
    getCode: function () { return safeRead(); },
    getSymbol: function () { return SYMBOLS[safeRead()] || '$'; },
    getSymbolFor: function (code) { return SYMBOLS[code] || '$'; },
    set: function (code) {
      if (!SYMBOLS[code]) return;
      safeWrite(code);
      var detail = { code: code, symbol: SYMBOLS[code] };
      document.dispatchEvent(new CustomEvent(EVENT_NAME, { detail: detail }));
    },
    EVENT_NAME: EVENT_NAME,
    SYMBOLS: SYMBOLS
  };

  
  document.addEventListener(EVENT_NAME, function (e) {
    var selectors = document.querySelectorAll('select[data-finfree-currency]');
    selectors.forEach(function (s) {
      if (s.value !== e.detail.code) s.value = e.detail.code;
    });
  });

  document.addEventListener('DOMContentLoaded', function () {
    var current = safeRead();
    var selectors = document.querySelectorAll('select[data-finfree-currency]');
    selectors.forEach(function (s) {
      s.value = current;
      s.addEventListener('change', function () {
        window.finfreeCurrency.set(s.value);
      });
    });
  });
})();
</script>

<style>
  .finfree-currency-selector {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-bottom: 14px;
    font-size: 0.85em;
    color: var(--muted, #666);
  }
  .finfree-currency-selector select {
    padding: 4px 8px;
    border: 1px solid var(--input-border, #ced4da);
    border-radius: 4px;
    background-color: var(--input-bg, #ffffff);
    color: var(--card-text, #212529);
    font-size: 0.95em;
  }
</style>

<div class="finfree-currency-selector">
  <label for="finfree-currency-select-1782461070874397000">Currency:</label>
  <select id="finfree-currency-select-1782461070874402000" data-finfree-currency>
    <option value="USD">USD ($)</option>
    <option value="EUR">EUR (€)</option>
    <option value="GBP">GBP (£)</option>
    <option value="CHF">CHF (Fr.)</option>
    <option value="AED">AED (د.إ)</option>
    <option value="SGD">SGD (S$)</option>
    <option value="HKD">HKD (HK$)</option>
    <option value="CNY">CNY (¥)</option>
    <option value="PHP">PHP (₱)</option>
    <option value="MYR">MYR (RM)</option>
    <option value="INR">INR (₹)</option>
  </select>
</div>


  <div class="section-header">Your situation</div>

  <div class="form-group">
    <label for="annualExpenses">Current Annual Expenses (after tax)</label>
    <input type="number" id="annualExpenses" value="50000">
  </div>

  <div class="form-group">
    <label for="withdrawalRate">Target Withdrawal Rate: <span id="rateValue" style="font-weight: bold;">4.0%</span></label>
    <input type="range" id="withdrawalRate" min="0.1" max="10" step="0.1" value="4.0">
  </div>

  <div class="form-group">
    <label for="monthlyIncome">Monthly Recurring Income (rentals, side hustles)</label>
    <input type="number" id="monthlyIncome" value="0">
  </div>

  <div class="section-header">Tax &amp; Inflation</div>

  <div class="form-group">
    <label for="taxRate">Marginal Tax Rate on Withdrawals: <span id="taxRateValue" style="font-weight: bold;">0.0%</span></label>
    <input type="range" id="taxRate" min="0" max="60" step="0.5" value="0">
    <p class="muted" style="text-align:left">0% for UAE/GCC residents. 15-30% for most other jurisdictions.</p>
  </div>

  <div class="form-group">
    <label for="yearsToFIRE">Years Until You FIRE</label>
    <input type="number" id="yearsToFIRE" value="10" min="0" max="60" step="1">
  </div>

  <div class="form-group">
    <label for="inflationRate">Expected Annual Inflation Rate: <span id="inflationRateValue" style="font-weight: bold;">2.5%</span></label>
    <input type="range" id="inflationRate" min="0" max="10" step="0.1" value="2.5">
  </div>

  <div class="section-header">Your FIRE numbers</div>

  <div class="form-group">
    <label class="result-label">FIRE Number in today's money</label>
    <div id="fireNumberToday" class="fire-number">$1,250,000</div>
    <p class="muted">Investable assets needed if you stopped working today.</p>
  </div>

  <div class="form-group">
    <label class="result-label">FIRE Number at retirement (inflation-adjusted)</label>
    <div id="fireNumberFuture" class="fire-number secondary">$1,600,295</div>
    <p class="muted">What you actually need to save by your FIRE date.</p>
  </div>

</div>

<script>
function fireCurrencySymbol() {
  return (window.finfreeCurrency && window.finfreeCurrency.getSymbol()) || '$';
}

function calculateFIRE() {
  const expenses = parseFloat(document.getElementById('annualExpenses').value) || 0;
  const rate = parseFloat(document.getElementById('withdrawalRate').value) / 100;
  const income = (parseFloat(document.getElementById('monthlyIncome').value) || 0) * 12;
  const taxRate = Math.min(parseFloat(document.getElementById('taxRate').value) || 0, 99) / 100;
  const years = Math.max(parseFloat(document.getElementById('yearsToFIRE').value) || 0, 0);
  const inflation = Math.max(parseFloat(document.getElementById('inflationRate').value) || 0, 0) / 100;

  const fireTodayEl = document.getElementById('fireNumberToday');
  const fireFutureEl = document.getElementById('fireNumberFuture');
  const sym = fireCurrencySymbol();

  
  if (income >= expenses) {
    fireTodayEl.textContent = sym + "0 (You've FIRE'd!)";
    fireFutureEl.textContent = sym + "0";
    return;
  }

  if (rate === 0) {
    fireTodayEl.textContent = sym + '0';
    fireFutureEl.textContent = sym + '0';
    return;
  }

  
  const netExpensesPostTax = expenses - income;

  
  const grossExpensesPreTax = netExpensesPostTax / (1 - taxRate);

  
  const fireToday = grossExpensesPreTax / rate;

  
  const inflationMultiplier = Math.pow(1 + inflation, years);
  const fireFuture = fireToday * inflationMultiplier;

  fireTodayEl.textContent = sym + Math.round(fireToday).toLocaleString();
  fireFutureEl.textContent = sym + Math.round(fireFuture).toLocaleString();
}

document.addEventListener('finfree-currency-change', calculateFIRE);

document.getElementById('withdrawalRate').addEventListener('input', function() {
  document.getElementById('rateValue').textContent = parseFloat(this.value).toFixed(1) + '%';
  calculateFIRE();
});

document.getElementById('taxRate').addEventListener('input', function() {
  document.getElementById('taxRateValue').textContent = parseFloat(this.value).toFixed(1) + '%';
  calculateFIRE();
});

document.getElementById('inflationRate').addEventListener('input', function() {
  document.getElementById('inflationRateValue').textContent = parseFloat(this.value).toFixed(1) + '%';
  calculateFIRE();
});

document.getElementById('annualExpenses').addEventListener('input', calculateFIRE);
document.getElementById('monthlyIncome').addEventListener('input', calculateFIRE);
document.getElementById('yearsToFIRE').addEventListener('input', calculateFIRE);

document.addEventListener('DOMContentLoaded', function() {
    document.getElementById('rateValue').textContent = parseFloat(document.getElementById('withdrawalRate').value).toFixed(1) + '%';
    document.getElementById('taxRateValue').textContent = parseFloat(document.getElementById('taxRate').value).toFixed(1) + '%';
    document.getElementById('inflationRateValue').textContent = parseFloat(document.getElementById('inflationRate').value).toFixed(1) + '%';
    calculateFIRE();
});
</script>


<h2 class="relative group">Breaking Down the Numbers
    <div id="breaking-down-the-numbers" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#breaking-down-the-numbers" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Now that you have your FIRE number, let's talk about what it means. The formula is based on the 4% rule, but we've made it flexible...</p>

<h3 class="relative group">Understanding the 4% Rule (Might NOT be appropriate anymore)
    <div id="understanding-the-4-rule-might-not-be-appropriate-anymore" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#understanding-the-4-rule-might-not-be-appropriate-anymore" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The <strong>4% rule</strong> is a tried-and-tested withdrawal strategy developed by financial advisors William Bengen and later popularized by the Trinity Study. Here's how it works:</p>
<ul>
<li><strong>Starting withdrawal:</strong> You withdraw 4% of your invested portfolio in your first year of retirement.</li>
<li><strong>Adjustments:</strong> Each subsequent year, you adjust your withdrawal amount for inflation (typically 2-3% annually).</li>
<li><strong>Success rate:</strong> Historical data (1926-1995) showed this strategy had a 95% success rate of lasting 30+ years without depleting capital.</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Example Calculation
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If your annual expenses are $60,000 and you withdraw 4% from your portfolio:</p>
<ul>
<li>Required portfolio = $60,000 ÷ 0.04 = <strong>$1,500,000</strong></li>
</ul>
<p>This is your FIRE number using the standard 4% rule.</p></div></div>
<h3 class="relative group">The Math Behind Your FIRE Number
    <div id="the-math-behind-your-fire-number" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-math-behind-your-fire-number" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The calculator uses this simple formula:</p>
<p><strong>FIRE Number = Annual Expenses ÷ Withdrawal Rate</strong></p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Annual Expenses">
          <span class="flex items-center gap-1">
            
            Annual Expenses
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Withdrawal Rate">
          <span class="flex items-center gap-1">
            
            Withdrawal Rate
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Additional Income">
          <span class="flex items-center gap-1">
            
            Additional Income
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">Annual Expenses
    <div id="annual-expenses" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#annual-expenses" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Your total yearly spending. This should be realistic and based on:</p>
<table>
	<thead>
			<tr>
					<th>Category</th>
					<th>Examples</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Housing</strong></td>
					<td>Mortgage, rent, property tax, insurance, maintenance</td>
			</tr>
			<tr>
					<td><strong>Essentials</strong></td>
					<td>Utilities, food, transportation</td>
			</tr>
			<tr>
					<td><strong>Healthcare</strong></td>
					<td>Insurance, out-of-pocket costs</td>
			</tr>
			<tr>
					<td><strong>Lifestyle</strong></td>
					<td>Entertainment, travel, hobbies</td>
			</tr>
			<tr>
					<td><strong>Other</strong></td>
					<td>Miscellaneous and discretionary spending</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Pro Tip
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Many people overestimate their expenses in retirement. Consider tracking your current spending for 6-12 months to get an accurate baseline.</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Withdrawal Rate
    <div id="withdrawal-rate" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#withdrawal-rate" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The percentage of your portfolio you withdraw annually:</p>
<table>
	<thead>
			<tr>
					<th>Rate</th>
					<th>Risk Level</th>
					<th>Best For</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>3% rule</strong></td>
					<td>Conservative</td>
					<td>Early retirees (age 30-40); 96%+ historical success rate</td>
			</tr>
			<tr>
					<td><strong>4% rule</strong></td>
					<td>Balanced</td>
					<td>Standard retirement; 90-95% historical success rate</td>
			</tr>
			<tr>
					<td><strong>5% rule</strong></td>
					<td>Aggressive</td>
					<td>Those with other income sources or flexibility</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          My Preference
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Personally I go for a rate around 3.5%. Check my SWR Calculator for more on this.</p></div></div>
      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Additional Income
    <div id="additional-income" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#additional-income" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>If you have rental income, side business revenue, or pensions, you can reduce the portfolio withdrawal requirement accordingly.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          The Multiplier Effect
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Each $1 of additional annual income reduces your required FIRE number by $25 (using 4% rule).</p>
<p><strong>Example:</strong> $30,000 rental income = $750,000 less needed in your portfolio!</p></div></div>
      </div></div>
</div>


<h3 class="relative group">Adjusting for Life Changes
    <div id="adjusting-for-life-changes" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#adjusting-for-life-changes" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Your FIRE number isn't static. Reassess it when:</p>
<table>
	<thead>
			<tr>
					<th>Life Event</th>
					<th>Why Reassess</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Major life events</strong></td>
					<td>Marriage, children, empty nest, health changes</td>
			</tr>
			<tr>
					<td><strong>Career changes</strong></td>
					<td>Significant income increase or decrease</td>
			</tr>
			<tr>
					<td><strong>Market conditions</strong></td>
					<td>Large market moves can affect your withdrawal rate sustainability</td>
			</tr>
			<tr>
					<td><strong>Expense changes</strong></td>
					<td>Relocating to a lower cost-of-living area, downsizing, or lifestyle shifts</td>
			</tr>
	</tbody>
</table>
<hr>

<h2 class="relative group">Beyond the 4% Rule: Advanced Considerations
    <div id="beyond-the-4-rule-advanced-considerations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#beyond-the-4-rule-advanced-considerations" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Sequence of Returns">
          <span class="flex items-center gap-1">
            
            Sequence of Returns
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Healthcare Costs">
          <span class="flex items-center gap-1">
            
            Healthcare Costs
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Inflation">
          <span class="flex items-center gap-1">
            
            Inflation
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">Sequence of Returns Risk
    <div id="sequence-of-returns-risk" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#sequence-of-returns-risk" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>One critical factor many investors overlook: <strong>the order of returns matters</strong>. You could have identical average returns but very different outcomes depending on <em>when</em> those returns occur.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          Critical Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Retiring right before a market crash is far riskier than retiring during a bull market, even if average returns are identical over 30 years.</p></div></div><p><strong>Mitigation strategies:</strong></p>
<ul>
<li>Build a <strong>2-3 year cash buffer</strong> before retiring (especially critical for early retirees)</li>
<li>Use a <strong>bond tent:</strong> Keep bonds/stable assets higher in early retirement years, gradually shifting to stocks</li>
<li>Practice <strong>dynamic withdrawal rates:</strong> Reduce withdrawals in down market years, increase in strong years</li>
</ul>

      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Healthcare Costs in Early Retirement
    <div id="healthcare-costs-in-early-retirement" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#healthcare-costs-in-early-retirement" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>If you're retiring before age 65, healthcare is a major expense often underestimated:</p>
<table>
	<thead>
			<tr>
					<th>Cost Type</th>
					<th>Estimated Range</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Individual/family health insurance</strong></td>
					<td>$400-$1,500+/month depending on age and coverage</td>
			</tr>
			<tr>
					<td><strong>Dental, vision, hearing aids</strong></td>
					<td>$2,000-$5,000 annually in later years (rarely covered)</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Action Item
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Get specific quotes from healthcare providers or brokers before locking in your FIRE number.</p></div></div>
      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Inflation Adjustment
    <div id="inflation-adjustment" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#inflation-adjustment" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The calculator shows nominal values, but inflation erodes purchasing power:</p>
<table>
	<thead>
			<tr>
					<th>Factor</th>
					<th>Impact</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Historical inflation</strong></td>
					<td>~2-3% annually (recent years saw higher rates). Check for your country</td>
			</tr>
			<tr>
					<td><strong>Portfolio growth requirement</strong></td>
					<td>Over 30 years, 2.5% inflation means $60,000 → ~$125,000 needed</td>
			</tr>
			<tr>
					<td><strong>Real returns matter</strong></td>
					<td>7% nominal return with 2.5% inflation = <strong>4.5% real return</strong></td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Focus on Real Returns
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>When investing, focus on <strong>real returns (after inflation)</strong>, not nominal returns.</p></div></div>
      </div></div>
</div>

<hr>

<h2 class="relative group">Real-World FIRE Examples
    <div id="real-world-fire-examples" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#real-world-fire-examples" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Coast FIRE">
          <span class="flex items-center gap-1">
            
            Coast FIRE
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Traditional FIRE">
          <span class="flex items-center gap-1">
            
            Traditional FIRE
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Phased Retirement">
          <span class="flex items-center gap-1">
            
            Phased Retirement
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">Example 1: Tech Professional, Age 35, Coast FIRE
    <div id="example-1-tech-professional-age-35-coast-fire" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#example-1-tech-professional-age-35-coast-fire" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Profile:</strong></p>
<ul>
<li>Current annual expenses: $80,000</li>
<li>Current portfolio: $1,200,000</li>
<li>Desired withdrawal rate: 3% (early retirement, conservative)</li>
</ul>
<p><strong>FIRE Number:</strong> $80,000 ÷ 0.03 = <strong>$2,666,667</strong></p>
<p><strong>Path to FIRE:</strong></p>
<ul>
<li>Current portfolio can grow: $1.2M at 7% annual return = $2.4M in ~12 years (age 47)</li>
<li>OR: stop working now, live on $36,000/year (3% of $1.2M), and work part-time/consulting to cover the gap</li>
<li>OR: &quot;coast&quot; approach: invest for 10 more years without additional contributions; reassess at 45</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Verdict
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Close to FI; coast FIRE or lean FIRE are realistic near-term options.</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Example 2: Dual Income Couple, Age 40, Traditional FIRE
    <div id="example-2-dual-income-couple-age-40-traditional-fire" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#example-2-dual-income-couple-age-40-traditional-fire" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Profile:</strong></p>
<ul>
<li>Combined annual expenses: $120,000</li>
<li>Combined portfolio: $2,500,000</li>
<li>Secondary income (rental properties): $30,000/year</li>
<li>Desired withdrawal rate: 4%</li>
</ul>
<p><strong>FIRE Number:</strong> ($120,000 - $30,000) ÷ 0.04 = <strong>$2,250,000</strong></p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Status: Already Achieved!
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>$2.5M &gt; $2.25M required</p></div></div><p><strong>Next steps:</strong></p>
<ul>
<li>Verify tax implications of rental income and capital gains</li>
<li>Plan healthcare</li>
<li>Consider one spouse continuing work part-time for benefits/social security boost</li>
</ul>

      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Example 3: High-Expense Household, Age 50, Phased Retirement
    <div id="example-3-high-expense-household-age-50-phased-retirement" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#example-3-high-expense-household-age-50-phased-retirement" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Profile:</strong></p>
<ul>
<li>Annual expenses: $250,000</li>
<li>Portfolio: $5,000,000</li>
<li>Desired withdrawal rate: 4%</li>
</ul>
<p><strong>FIRE Number:</strong> $250,000 ÷ 0.04 = <strong>$6,250,000</strong></p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Gap: $1.25M Shortfall
        </div>
      </div></div><p><strong>Options:</strong></p>
<ul>
<li><strong>Extend work 3-5 years:</strong> Let portfolio grow; $5M at 6% = $6.7M in 5 years</li>
<li><strong>Reduce expenses:</strong> Lower to $200,000/year → FIRE number drops to $5M (achievable now)</li>
<li><strong>Phased retirement:</strong> One spouse retires at 50; other works until 55; combined income bridges gap</li>
<li><strong>Rental/alternative income:</strong> Develop passive income streams to reduce portfolio withdrawal</li>
</ul>

      </div></div>
</div>

<hr>

<h2 class="relative group">Action Plan: From Calculator to Reality
    <div id="action-plan-from-calculator-to-reality" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#action-plan-from-calculator-to-reality" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Steps 1-2">
          <span class="flex items-center gap-1">
            
            Steps 1-2
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Steps 3-4">
          <span class="flex items-center gap-1">
            
            Steps 3-4
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Step 5">
          <span class="flex items-center gap-1">
            
            Step 5
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <h3 class="relative group">Step 1: Calculate Your FIRE Number (Done!)
    <div id="step-1-calculate-your-fire-number-done" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-calculate-your-fire-number-done" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Use the interactive calculator above with realistic assumptions.</p>

<h3 class="relative group">Step 2: Audit Your Current Position
    <div id="step-2-audit-your-current-position" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-audit-your-current-position" aria-label="Anchor">#</a>
    </span>
    
</h3>
<table>
	<thead>
			<tr>
					<th>Audit Item</th>
					<th>Questions to Answer</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Net worth snapshot</strong></td>
					<td>Assets minus debts</td>
			</tr>
			<tr>
					<td><strong>Portfolio allocation</strong></td>
					<td>What % stocks/bonds/real estate?</td>
			</tr>
			<tr>
					<td><strong>Annual savings rate</strong></td>
					<td>Can you increase it by 10-20%?</td>
			</tr>
	</tbody>
</table>
      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Step 3: Stress-Test Your Plan and Verify Your SWR
    <div id="step-3-stress-test-your-plan-and-verify-your-swr" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-stress-test-your-plan-and-verify-your-swr" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Use the SWR Calculator
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Based on historical figures (last 150 years), make sure you've got a Safe Withdrawal Rate you feel comfortable with.</p></div></div><p><strong>Stress-test scenarios:</strong></p>
<ul>
<li><strong>Market downturns:</strong> How would a 30% stock market crash affect your 10-year timeline?</li>
<li><strong>Longevity:</strong> Plan for living to 95 or 100, not just 85</li>
<li><strong>Healthcare scenarios:</strong> What if you need $10k/year in out-of-pocket medical costs?</li>
</ul>

<h3 class="relative group">Step 4: Optimize Tax and Investment Strategy
    <div id="step-4-optimize-tax-and-investment-strategy" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-4-optimize-tax-and-investment-strategy" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Check Your Own Situation
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Check the tax situation in your own country.</p></div></div>
      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Step 5: Build Your Transition Plan
    <div id="step-5-build-your-transition-plan" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-5-build-your-transition-plan" aria-label="Anchor">#</a>
    </span>
    
</h3>
<table>
	<thead>
			<tr>
					<th>Retirement Timing</th>
					<th>Key Considerations</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Early (before 55)</strong></td>
					<td>Understand your healthcare situation, plan for longer retirement (40+ years)</td>
			</tr>
			<tr>
					<td><strong>Traditional (60+)</strong></td>
					<td>Check your Social Security situation</td>
			</tr>
			<tr>
					<td><strong>Phased</strong></td>
					<td>Define your &quot;work vs. coast&quot; timeline and income bridge</td>
			</tr>
	</tbody>
</table>

      </div></div>
</div>

<hr>

<h2 class="relative group">Common Pitfalls to Avoid
    <div id="common-pitfalls-to-avoid" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#common-pitfalls-to-avoid" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Expenses &amp; Returns">
          <span class="flex items-center gap-1">
            
            Expenses &amp; Returns
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Healthcare &amp; Withdrawals">
          <span class="flex items-center gap-1">
            
            Healthcare &amp; Withdrawals
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Lifestyle">
          <span class="flex items-center gap-1">
            
            Lifestyle
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">1. Underestimating Expenses
    <div id="1-underestimating-expenses" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-underestimating-expenses" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Many retirees discover they spend 10-20% more than planned. Travel, gifts to family, and home repairs often exceed expectations.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Solution
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Track current spending for a full year; add a 15% buffer.</p></div></div>
<h3 class="relative group">2. Ignoring Sequence of Returns Risk
    <div id="2-ignoring-sequence-of-returns-risk" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-ignoring-sequence-of-returns-risk" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>A market crash in years 1-5 of retirement can permanently reduce your portfolio.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Solution
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Keep 2-3 years of expenses in cash/treasury bonds before retiring.</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">3. Neglecting Healthcare Costs
    <div id="3-neglecting-healthcare-costs" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3-neglecting-healthcare-costs" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Healthcare inflation is high. Make sure you cater for this.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Solution
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Budget $300-$500k for healthcare costs in retirement.</p></div></div>
<h3 class="relative group">4. Over-Withdrawing in Early Years
    <div id="4-over-withdrawing-in-early-years" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#4-over-withdrawing-in-early-years" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Inflation means you must withdraw more each year; starting too high leaves nothing for later.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Solution
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Use a constant withdrawal with inflation adjustment (from your initial portfolio), not a fixed percentage that resets.</p></div></div>
      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">5. Failing to Adjust for Lifestyle Changes
    <div id="5-failing-to-adjust-for-lifestyle-changes" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#5-failing-to-adjust-for-lifestyle-changes" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Retiring at 50 with an expensive hobby (travel, golf, boating) is very different from retiring at 65.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Solution
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Test your lifestyle assumptions; take a trial retirement month.</p></div></div>
      </div></div>
</div>

<hr>

<h2 class="relative group">When to Revisit Your FIRE Number
    <div id="when-to-revisit-your-fire-number" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#when-to-revisit-your-fire-number" aria-label="Anchor">#</a>
    </span>
    
</h2>
<table>
	<thead>
			<tr>
					<th>Life Event</th>
					<th>Action</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Major market downturn (&gt;20%)</td>
					<td>Review in 6-12 months; don't panic-sell</td>
			</tr>
			<tr>
					<td>Significant expense change</td>
					<td>Recalculate immediately</td>
			</tr>
			<tr>
					<td>Major life event (marriage, kids, inheritance)</td>
					<td>Adjust plan within 30 days</td>
			</tr>
			<tr>
					<td>Job loss or career change</td>
					<td>Reassess income and timeline</td>
			</tr>
			<tr>
					<td>Health diagnosis</td>
					<td>Update healthcare cost estimates and longevity assumptions</td>
			</tr>
			<tr>
					<td>Significant portfolio growth (&gt;25%)</td>
					<td>Celebrate, but don't inflate lifestyle (&quot;lifestyle creep&quot;)</td>
			</tr>
	</tbody>
</table>
<hr>

<h2 class="relative group">Conclusion: Your FIRE Number Is Just the Starting Point
    <div id="conclusion-your-fire-number-is-just-the-starting-point" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#conclusion-your-fire-number-is-just-the-starting-point" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Calculating your FIRE number is empowering—it gives you a concrete target. But FIRE is about more than math; it's about intentional living, spending aligned with your values, and building the freedom to choose your time.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Key Takeaways
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li>Your FIRE number = Annual Expenses ÷ Withdrawal Rate</li>
<li>The 4% rule is a solid starting point; adjust for your risk tolerance and timeline</li>
<li>Check my SWR-Safe Withdrawal Rate Calculator for your number</li>
<li>Plan for healthcare, taxes, and sequence-of-returns risk</li>
<li>Revisit your plan annually or after major life changes</li>
<li><strong>Start now:</strong> every year you delay costs you 7-10 years of compounding</li>
</ul></div></div>
  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This calculator reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/interactive_calculator_to_your_fire_number.webp" medium="image"/></item><item><title>Portfolio Rebalancing: The Essential Guide to Maintaining Your Investment Allocation</title><link>https://libreleo.com/posts/portfolio_rebalancing_the_essential_guide_to_maintaining_your_investment/</link><pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/portfolio_rebalancing_the_essential_guide_to_maintaining_your_investment/</guid><description>Master portfolio rebalancing to maintain your target allocation, reduce risk, and enhance returns. Learn when, how, and why to rebalance with practical examples and strategies.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Portfolio rebalancing is the cornerstone of disciplined investing. Yet many investors either ignore it entirely or approach it randomly, allowing their carefully planned allocations to drift into misaligned and riskier positions.
</div>

<p>This comprehensive guide covers everything you need to know about rebalancing your portfolio effectively.</p>
<hr>

<h2 class="relative group">What Is Portfolio Rebalancing?
    <div id="what-is-portfolio-rebalancing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-is-portfolio-rebalancing" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Portfolio rebalancing is the process of realigning the weightings of your assets. It involves periodically buying or selling assets to maintain your desired allocation.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Simple Example
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If your target allocation is 60% stocks and 40% bonds, market growth might cause your portfolio to drift to 70% stocks. To rebalance, you sell some stocks and buy bonds to return to 60/40.</p></div></div><p>If you want to visualize this process and calculate exact rebalancing actions, check out my <strong><a href="/calculators/portfolio-rebalancer/interactive_portfolio_rebalancing_calculator/" >Interactive Portfolio Rebalancing Calculator</a></strong>, which automatically computes the exact buy/sell actions needed.</p>
<hr>

<h2 class="relative group">Why Should I Rebalance My Portfolio?
    <div id="why-should-i-rebalance-my-portfolio" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-should-i-rebalance-my-portfolio" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">The Drift Problem
    <div id="the-drift-problem" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-drift-problem" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Over time, different asset classes grow at different rates. A stock market rally increases your equity weight, while bonds lag. Without rebalancing, your portfolio can drift significantly from your target, exposing you to unintended risk.</p>

<h3 class="relative group">Risk Management Through Rebalancing
    <div id="risk-management-through-rebalancing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#risk-management-through-rebalancing" aria-label="Anchor">#</a>
    </span>
    
</h3>

<h4 class="relative group">Maintaining Your Desired Risk Profile
    <div id="maintaining-your-desired-risk-profile" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#maintaining-your-desired-risk-profile" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Your target allocation reflects your risk tolerance and time horizon. A 60/40 portfolio is designed with specific volatility in mind.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          The Danger of Drift
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Example</strong>: You set a 60/40 allocation aligned with your risk tolerance. After a strong bull market, your holdings drift to 75/25. You're now exposed to significantly higher volatility than intended, potentially causing panic selling during the next downturn.</p></div></div>
<h4 class="relative group">The Rebalancing Bonus
    <div id="the-rebalancing-bonus" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-rebalancing-bonus" aria-label="Anchor">#</a>
    </span>
    
</h4>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Built-in Discipline
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Rebalancing forces you to &quot;sell high&quot; (reducing outperforming assets) and &quot;buy low&quot; (increasing underperforming assets). This naturally enhances returns over time, independent of market-timing ability.</p></div></div><p>Studies show that rebalanced portfolios exhibit lower volatility than drifting portfolios over long periods.</p>

<h3 class="relative group">Performance and Return Enhancement
    <div id="performance-and-return-enhancement" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#performance-and-return-enhancement" aria-label="Anchor">#</a>
    </span>
    
</h3>

<h4 class="relative group">Systematic Contrarian Investing
    <div id="systematic-contrarian-investing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#systematic-contrarian-investing" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Rebalancing embodies a contrarian principle: buy when assets are relatively undervalued and sell when overvalued. This automated discipline removes emotion and eliminates chasing recent performance.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Historical Evidence
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Academic research (including studies on 60/40 portfolios from 1926–present) demonstrates that regular rebalancing improves risk-adjusted returns. The benefit is modest in calm markets but pronounced during high-volatility periods.</p></div></div>
<h4 class="relative group">Compounding Effect Over Decades
    <div id="compounding-effect-over-decades" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#compounding-effect-over-decades" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>For long-term investors, rebalancing's impact compounds. By consistently harvesting gains from winners and reinvesting in losers, you amplify returns.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          The Numbers
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>The compounding benefit often amounts to <strong>0.1% to 0.5% per year</strong> in additional returns, translating to significant wealth over 20+ years.</p></div></div>
<h3 class="relative group">Tax-Loss Harvesting Opportunity
    <div id="tax-loss-harvesting-opportunity" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tax-loss-harvesting-opportunity" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Rebalancing provides a framework for tax-loss harvesting. By selling underperforming assets, you can realize losses to offset capital gains elsewhere, reducing your tax liability.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Country-Specific Rules
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Tax implications vary from country to country. Make sure you check your own circumstances.</p></div></div>
<h3 class="relative group">Behavioral Finance Benefit
    <div id="behavioral-finance-benefit" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#behavioral-finance-benefit" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Without rebalancing discipline, many investors:</p>
<ul>
<li>Hold winners too long (&quot;Let the winners run&quot;)</li>
<li>Sell losers prematurely out of regret (&quot;Cut losses&quot;)</li>
<li>Succumb to recency bias (buying high, selling low)</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          The Fix
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Rebalancing forces a rational, systematic approach that sidesteps these behavioral traps. By adhering to a schedule, you reduce the temptation to time the market.</p></div></div><hr>

<h2 class="relative group">When and How Do I Rebalance My Portfolio?
    <div id="when-and-how-do-i-rebalance-my-portfolio" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#when-and-how-do-i-rebalance-my-portfolio" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Rebalancing Frequency Options
    <div id="rebalancing-frequency-options" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rebalancing-frequency-options" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Annual">
          <span class="flex items-center gap-1">
            
            Annual
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Quarterly">
          <span class="flex items-center gap-1">
            
            Quarterly
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Semi-Annual">
          <span class="flex items-center gap-1">
            
            Semi-Annual
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="3"
          data-tab-label="Threshold-Based">
          <span class="flex items-center gap-1">
            
            Threshold-Based
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">Annual Rebalancing (Most Recommended)
    <div id="annual-rebalancing-most-recommended" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#annual-rebalancing-most-recommended" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Frequency</strong>: Once per year, typically at year-end or start of new year.</p>
<table>
	<thead>
			<tr>
					<th>Pros</th>
					<th>Cons</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Simple to implement</td>
					<td>Portfolio can drift significantly</td>
			</tr>
			<tr>
					<td>Minimal trading activity</td>
					<td>May miss volatility opportunities</td>
			</tr>
			<tr>
					<td>Aligns with tax-planning calendar</td>
					<td></td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Best For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Passive, buy-and-hold investors; portfolios with diversified, liquid holdings; those seeking simplicity.</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Quarterly Rebalancing
    <div id="quarterly-rebalancing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#quarterly-rebalancing" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Frequency</strong>: Every three months.</p>
<table>
	<thead>
			<tr>
					<th>Pros</th>
					<th>Cons</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Captures drift more frequently</td>
					<td>Higher trading costs</td>
			</tr>
			<tr>
					<td>Stricter adherence to target</td>
					<td>Potential tax consequences</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Best For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Investors actively monitoring portfolios; larger portfolios where rebalancing costs are negligible relative to assets.</p></div></div>
      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Semi-Annual Rebalancing
    <div id="semi-annual-rebalancing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#semi-annual-rebalancing" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p><strong>Frequency</strong>: Twice per year (e.g., June and December).</p>
<table>
	<thead>
			<tr>
					<th>Pros</th>
					<th>Cons</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Middle ground approach</td>
					<td>Moderate trading costs</td>
			</tr>
			<tr>
					<td>Captures significant drift</td>
					<td>Moderate tax impact</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Best For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Investors seeking balance between drift control and transaction efficiency.</p></div></div>
      </div><div class="tab__panel " data-tab-index="3">
        
<h3 class="relative group">Threshold-Based Rebalancing
    <div id="threshold-based-rebalancing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#threshold-based-rebalancing" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Rebalance only when an asset class drifts beyond a predetermined tolerance band.</p>
<p><strong>Example Thresholds</strong>:</p>
<ul>
<li><strong>5% drift</strong>: Rebalance when any allocation deviates by more than 5% from target</li>
<li><strong>10% relative drift</strong>: Rebalance when allocation changes by 10% relative to target</li>
</ul>
<table>
	<thead>
			<tr>
					<th>Pros</th>
					<th>Cons</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Captures high-volatility periods</td>
					<td>Requires active monitoring</td>
			</tr>
			<tr>
					<td>Reduces unnecessary trading</td>
					<td>Unpredictable timing</td>
			</tr>
	</tbody>
</table>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Best For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Sophisticated investors with larger portfolios who actively manage allocations.</p></div></div>
      </div></div>
</div>


<h4 class="relative group">Hybrid Approach (Recommended for Most)
    <div id="hybrid-approach-recommended-for-most" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#hybrid-approach-recommended-for-most" aria-label="Anchor">#</a>
    </span>
    
</h4>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Best of Both Worlds
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Combine calendar and threshold logic:</p>
<ul>
<li>Rebalance <strong>at least annually</strong> (calendar anchor)</li>
<li>Additionally rebalance if any asset deviates by <strong>more than 5%</strong> during the year (threshold trigger)</li>
</ul>
<p>This ensures minimum discipline while capturing significant drift.</p></div></div><hr>

<h3 class="relative group">Step-by-Step Rebalancing Process
    <div id="step-by-step-rebalancing-process" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-by-step-rebalancing-process" aria-label="Anchor">#</a>
    </span>
    
</h3>

<h4 class="relative group">Step 1: Calculate Current Allocations
    <div id="step-1-calculate-current-allocations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-1-calculate-current-allocations" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Determine current market value of each holding and calculate percentage of total. Compare to target.</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Asset Class     Target    Current Value    Current %    Variance
</span></span><span class="line"><span class="cl">US Stocks       60%       $180,000         75%          +15%
</span></span><span class="line"><span class="cl">Bonds           40%       $60,000          25%          -15%
</span></span><span class="line"><span class="cl">Portfolio Total           $240,000         100%</span></span></code></pre></div></div>

<h4 class="relative group">Step 2: Identify Required Trades
    <div id="step-2-identify-required-trades" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2-identify-required-trades" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Determine how much to buy or sell to return to target allocation.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          The Formula
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li><strong>Target Value</strong> = Total Portfolio × Target Allocation %</li>
<li><strong>Required Action</strong> = Target Value − Current Value</li>
</ul></div></div><p><strong>Continuing the Example</strong>:</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">US Stocks:  Target = $240,000 × 60% = $144,000
</span></span><span class="line"><span class="cl">            Action = $144,000 − $180,000 = SELL $36,000
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Bonds:      Target = $240,000 × 40% = $96,000
</span></span><span class="line"><span class="cl">            Action = $96,000 − $60,000 = BUY $36,000</span></span></code></pre></div></div>

<h4 class="relative group">Step 3: Execute Trades in Tax-Efficient Order
    <div id="step-3-execute-trades-in-tax-efficient-order" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-3-execute-trades-in-tax-efficient-order" aria-label="Anchor">#</a>
    </span>
    
</h4>
<ol>
<li><strong>Taxable Accounts</strong>: Prioritize selling assets with losses or lowest capital gains</li>
<li><strong>Tax-Advantaged Accounts</strong>: Trade freely without tax consequence (where available)</li>
<li><strong>Cross-Account</strong>: Consider trading between accounts if you hold similar assets</li>
</ol>

<h4 class="relative group">Step 4: Minimize Transaction Costs
    <div id="step-4-minimize-transaction-costs" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-4-minimize-transaction-costs" aria-label="Anchor">#</a>
    </span>
    
</h4>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Cost-Saving Tips
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li><strong>Batch Rebalancing</strong>: Combine trades to minimize per-trade costs</li>
<li><strong>Use Low-Cost Vehicles</strong>: Index funds or ETFs have lower fees and spreads</li>
<li><strong>Avoid Overtrading</strong>: Don't rebalance for small drifts (&lt;2%) if costs exceed benefit</li>
</ul></div></div>
<h4 class="relative group">Step 5: Document and Monitor
    <div id="step-5-document-and-monitor" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-5-document-and-monitor" aria-label="Anchor">#</a>
    </span>
    
</h4>
<ul>
<li>Record the rebalancing date, allocation before/after, and rationale</li>
<li>Set a calendar reminder for next scheduled rebalance</li>
<li>Monitor allocations quarterly to catch large drifts early</li>
</ul>
<hr>

<h3 class="relative group">Rebalancing in Different Account Types
    <div id="rebalancing-in-different-account-types" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rebalancing-in-different-account-types" aria-label="Anchor">#</a>
    </span>
    
</h3>

<h4 class="relative group">Tax-Advantaged vs. Taxable Accounts
    <div id="tax-advantaged-vs-taxable-accounts" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tax-advantaged-vs-taxable-accounts" aria-label="Anchor">#</a>
    </span>
    
</h4>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Rules vary from country to country. Check your own circumstances.</p></div></div>
<h4 class="relative group">New Contributions and Dividend Reinvestment
    <div id="new-contributions-and-dividend-reinvestment" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#new-contributions-and-dividend-reinvestment" aria-label="Anchor">#</a>
    </span>
    
</h4>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Smart Strategy
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Direct new contributions and reinvested dividends to underweight asset classes, reducing need for active rebalancing.</p>
<p><strong>Example</strong>: If bonds are underweight and you receive a dividend, reinvest it into bonds rather than the original holding.</p></div></div><hr>

<h3 class="relative group">Common Rebalancing Mistakes to Avoid
    <div id="common-rebalancing-mistakes-to-avoid" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#common-rebalancing-mistakes-to-avoid" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Too Frequent">
          <span class="flex items-center gap-1">
            
            Too Frequent
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Ignoring Taxes">
          <span class="flex items-center gap-1">
            
            Ignoring Taxes
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Emotional Trading">
          <span class="flex items-center gap-1">
            
            Emotional Trading
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="3"
          data-tab-label="Static Allocation">
          <span class="flex items-center gap-1">
            
            Static Allocation
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">Rebalancing Too Frequently
    <div id="rebalancing-too-frequently" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rebalancing-too-frequently" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          The Problem
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Excessive rebalancing increases transaction costs, taxes, and trading fees with minimal benefit.</p></div></div><p><strong>Solution</strong>: For most investors, annual rebalancing is sufficient. Set threshold triggers wide enough (5%+) to justify trading.</p>

      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Ignoring Tax Consequences
    <div id="ignoring-tax-consequences" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ignoring-tax-consequences" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          The Problem
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Rebalancing without considering taxes can create unnecessary capital gains tax. Check your own Tax situation.</p></div></div><p><strong>Solution</strong>: Always evaluate the after-tax impact of selling appreciated assets.</p>

      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Rebalancing During Emotional Moments
    <div id="rebalancing-during-emotional-moments" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rebalancing-during-emotional-moments" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          The Problem
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Rebalancing excessively during market crashes or rallies often locks in losses or misses recovery gains.</p></div></div><p><strong>Solution</strong>: Stick to your predetermined schedule or clear thresholds. Don't react to headlines.</p>

      </div><div class="tab__panel " data-tab-index="3">
        
<h3 class="relative group">Not Adjusting for Life Changes
    <div id="not-adjusting-for-life-changes" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#not-adjusting-for-life-changes" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          The Problem
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>As your circumstances change (retirement approaching, income needs rising), a fixed allocation may become misaligned with your goals.</p></div></div><p><strong>Solution</strong>: Review and adjust your target allocation as life circumstances change.</p>

      </div></div>
</div>

<hr>

<h3 class="relative group">Rebalancing Examples and Scenarios
    <div id="rebalancing-examples-and-scenarios" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rebalancing-examples-and-scenarios" aria-label="Anchor">#</a>
    </span>
    
</h3>

<h4 class="relative group">Scenario 1: Annual Calendar Rebalancing
    <div id="scenario-1-annual-calendar-rebalancing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#scenario-1-annual-calendar-rebalancing" aria-label="Anchor">#</a>
    </span>
    
</h4>
<table>
	<thead>
			<tr>
					<th>Detail</th>
					<th>Value</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Target</strong></td>
					<td>60% stocks / 40% bonds</td>
			</tr>
			<tr>
					<td><strong>Portfolio</strong></td>
					<td>$200,000</td>
			</tr>
			<tr>
					<td><strong>Current</strong> (after 1 year)</td>
					<td>$140,000 stocks (70%) / $60,000 bonds (30%)</td>
			</tr>
	</tbody>
</table>
<p><strong>Action Required</strong>:</p>
<ul>
<li>Sell $20,000 of stocks → Reduces to $120,000 (60%)</li>
<li>Buy $20,000 of bonds → Increases to $80,000 (40%)</li>
</ul>

<h4 class="relative group">Scenario 2: Threshold-Based Rebalancing
    <div id="scenario-2-threshold-based-rebalancing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#scenario-2-threshold-based-rebalancing" aria-label="Anchor">#</a>
    </span>
    
</h4>
<table>
	<thead>
			<tr>
					<th>Detail</th>
					<th>Value</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Target</strong></td>
					<td>50% US / 30% Intl / 20% bonds</td>
			</tr>
			<tr>
					<td><strong>Portfolio</strong></td>
					<td>$100,000</td>
			</tr>
			<tr>
					<td><strong>Threshold</strong></td>
					<td>Rebalance if any allocation drifts &gt;5%</td>
			</tr>
			<tr>
					<td><strong>Current</strong></td>
					<td>55% US / 25% Intl / 20% Bonds</td>
			</tr>
	</tbody>
</table>
<p><strong>US Stocks at 55%</strong> (target 50%, drift of +5%) → Rebalance triggered.</p>
<p><strong>Action</strong>: Sell $5k US stocks, redeploy to bonds and international stocks.</p>

<h4 class="relative group">Scenario 3: Using New Contributions
    <div id="scenario-3-using-new-contributions" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#scenario-3-using-new-contributions" aria-label="Anchor">#</a>
    </span>
    
</h4>
<table>
	<thead>
			<tr>
					<th>Detail</th>
					<th>Value</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Target</strong></td>
					<td>70% stocks / 30% bonds</td>
			</tr>
			<tr>
					<td><strong>Current</strong></td>
					<td>75% stocks / 25% bonds ($100,000)</td>
			</tr>
			<tr>
					<td><strong>New Contribution</strong></td>
					<td>$10,000</td>
			</tr>
	</tbody>
</table>
<p><strong>Action</strong>: Invest entire $10,000 in bonds, pushing bonds from 25% to 27.3%, reducing drift without selling appreciated stocks.</p>
<hr>

<h3 class="relative group">Advanced Rebalancing Considerations
    <div id="advanced-rebalancing-considerations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#advanced-rebalancing-considerations" aria-label="Anchor">#</a>
    </span>
    
</h3>

<h4 class="relative group">Sector Rebalancing
    <div id="sector-rebalancing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#sector-rebalancing" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Beyond asset class rebalancing, consider rebalancing within equity holdings.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Example
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If large-cap tech has grown to 40% of your stock allocation (vs. target 20%), consider harvesting some tech gains and redeploying to other sectors or small-cap.</p></div></div>
<h4 class="relative group">Currency Hedging and International Allocations
    <div id="currency-hedging-and-international-allocations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#currency-hedging-and-international-allocations" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>For portfolios with international exposure, rebalancing must account for currency fluctuations. Currency shifts can create unintended allocations independent of underlying asset performance.</p>

<h4 class="relative group">Rebalancing with Leverage or Margin
    <div id="rebalancing-with-leverage-or-margin" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rebalancing-with-leverage-or-margin" aria-label="Anchor">#</a>
    </span>
    
</h4>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          Higher Risk
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If using margin or leveraged investments, monitor rebalancing more carefully. Leverage amplifies drift and can trigger margin calls if not managed. Conservative investors should rebalance more frequently when using leverage.</p></div></div><hr>

<h2 class="relative group">Tools to Help You Rebalance
    <div id="tools-to-help-you-rebalance" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tools-to-help-you-rebalance" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>I've created an <strong><a href="/calculators/portfolio-rebalancer/interactive_portfolio_rebalancing_calculator/" >Interactive Portfolio Rebalancing Calculator</a></strong> to make the process easier. Simply input your current holdings and target allocations. The calculator shows exactly what to buy or sell.</p>
<hr>

<h2 class="relative group">The Bottom Line
    <div id="the-bottom-line" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-bottom-line" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Portfolio rebalancing is one of the most powerful yet underutilized tools for long-term success.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          What Rebalancing Does For You
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li><strong>Manages risk</strong> by preventing drift into unintended risk profiles</li>
<li><strong>Enhances returns</strong> through systematic contrarian investing</li>
<li><strong>Reduces emotions</strong> by following a predetermined framework</li>
<li><strong>Optimizes taxes</strong> through coordination with tax-loss harvesting</li>
<li><strong>Builds wealth</strong> faster through compounding benefits</li>
</ul></div></div><p>The best rebalancing strategy is the one you'll actually follow. Whether you choose annual calendar rebalancing, threshold-based triggers, or a hybrid approach, the key is <strong>consistency and discipline</strong>.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Start Today
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Your future self will thank you.</p></div></div>
  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/portfolio_rebalancing_the_essential_guide_to_maintaining_your_investment.webp" medium="image"/></item><item><title>What are Options</title><link>https://libreleo.com/passive_active_investments/options_trading/what-are-options/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/passive_active_investments/options_trading/what-are-options/</guid><description>Options are a versatile class of financial derivatives that give the buyer the right, but not the obligation, to buy or sell an underlying asset at a predetermined price before or on a specified date.</description><content:encoded><![CDATA[<span class="flex cursor-pointer">
  
  
  
  
    <span
      class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
  
    
Updated: 08/01/2026

  </span>
</span>


<p>Ever heard people talking about &quot;options&quot; and you had no clue what it means? But here's the secret. Options aren't as complicated as they sound and not necessarily as risky as you think.</p>
<p>Think of an option as a &quot;maybe&quot; for your stocks. It's a contract that gives you the <em>right</em>, but not the <em>obligation</em>, to buy or sell a stock at a set price by a certain date. It's like putting a deposit down on a house. You've locked in the price, but you can still walk away.</p>
<p>This article is your guide to understanding options without getting confused. I'll try to cover what they are, how they work, and a few simple ways people use them to either protect their investments or try to make a profit.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Quick Summary
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li><strong>Call Option:</strong> The right to <em>buy</em> a stock. You want the stock to go UP.</li>
<li><strong>Put Option:</strong> The right to <em>sell</em> a stock. You want the stock to go DOWN.</li>
<li><strong>Expiration Date &amp; Strike Price:</strong> Every option has a deadline and a set price.</li>
<li><strong>The Big Difference:</strong> When you <em>buy</em> options, your maximum loss is just the price you paid for the option (the &quot;premium&quot;). When you <em>sell</em> them, the risk can be much, much bigger.</li>
</ul></div></div>
<h2 class="relative group">So, what's an option?
    <div id="so-whats-an-option" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#so-whats-an-option" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>At its core, an option is just a contract between two people:</p>
<ul>
<li>The <strong>buyer</strong> pays a small fee (called a <strong>premium</strong>) for the right to buy or sell a stock later.</li>
<li>The <strong>seller</strong> gets that premium, but in exchange, they have to buy or sell the stock if the buyer decides to go through with it.</li>
</ul>
<p>Every option contract is tied to a few key things: an <strong>underlying asset</strong> (like shares of Nvidia), a <strong>strike price</strong> (the price you've agreed on), and an <strong>expiration date</strong> (the day the contract ends).</p>
<p>Because their value is <em>derived</em> from the stock they're linked to, options are called <strong>derivatives</strong>.</p>

<h2 class="relative group">Calls vs. Puts: The Two Flavors of Options
    <div id="calls-vs-puts-the-two-flavors-of-options" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#calls-vs-puts-the-two-flavors-of-options" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>This is the most important part to get right. There are only two types of options:</p>
<ul>
<li><strong>Call Option:</strong> Gives you the right to <strong>buy</strong> a stock at the strike price. You'd buy a call if you think the stock's price is going to rise. If you're right, you can buy the stock at a discount and sell it for a profit.</li>
<li><strong>Put Option:</strong> Gives you the right to <strong>sell</strong> a stock at the strike price. You'd buy a put if you think the stock's price is going to fall. If it does, you can sell the stock for more than it's worth.</li>
</ul>
<p>Here's a simple way to remember it:</p>
<ul>
<li><strong>Call up:</strong> You want the stock to go up.</li>
<li><strong>Put down:</strong> You want the stock to go down.</li>
</ul>

<h2 class="relative group">Key Terms
    <div id="key-terms" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#key-terms" aria-label="Anchor">#</a>
    </span>
    
</h2>
<ul>
<li><strong>Underlying:</strong> The stock or ETF the option is for (e.g., AMD, SPY).</li>
<li><strong>Strike Price:</strong> The locked-in price to buy or sell.</li>
<li><strong>Expiration Date:</strong> The &quot;use by&quot; date. The option is worthless after this.</li>
<li><strong>Premium:</strong> The cost of the option contract.</li>
<li><strong>In the Money (ITM):</strong> The option is currently profitable (not counting the premium). A call is ITM if the stock price is <em>above</em> the strike. A put is ITM if the stock price is <em>below</em> the strike.</li>
<li><strong>Out of the Money (OTM):</strong> The option is currently not profitable.</li>
<li><strong>At the Money (ATM):</strong> The strike price is pretty much the same as the stock's current price.</li>
<li><strong>Intrinsic Value:</strong> The actual value of an ITM option.</li>
<li><strong>Time Value:</strong> The &quot;hope&quot; value. It's the extra amount people will pay for the chance the option will become profitable before it expires.</li>
</ul>
<p><strong>How it works when you &quot;exercise&quot; an option:</strong></p>
<ul>
<li><strong>Physical settlement:</strong> You actually buy or sell the shares.</li>
<li><strong>Cash settlement:</strong> More common for index options. You just get paid the difference in cash.</li>
</ul>
<p><strong>Good to know:</strong> In the U.S., one stock option contract almost always represents 100 shares of the stock.</p>

<h2 class="relative group">Option pricing fundamentals
    <div id="option-pricing-fundamentals" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#option-pricing-fundamentals" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Option prices (premiums) are influenced by several factors:</p>
<ul>
<li><strong>Underlying price</strong>: moves in the underlying directly affect option value.</li>
<li><strong>Strike price</strong>: deeper ITM options have more intrinsic value.</li>
<li><strong>Time to expiration</strong>: more time increases time value.</li>
<li><strong>Volatility</strong>: higher expected future volatility increases option premiums.</li>
<li><strong>Interest rates and dividends</strong>: have smaller, but measurable effects.</li>
</ul>
<p>Two main components of an option's price:</p>
<ul>
<li>Intrinsic value = max(0, underlying - strike) for calls (reverse for puts).</li>
<li>Time (extrinsic) value = premium - intrinsic value.</li>
</ul>
<p>Mathematical models (e.g., Black-Scholes, binomial trees) are used to estimate fair option prices. However, market prices often reflect supply/demand and implied volatility rather than purely theoretical values.</p>

<h2 class="relative group">American vs European options
    <div id="american-vs-european-options" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#american-vs-european-options" aria-label="Anchor">#</a>
    </span>
    
</h2>
<ul>
<li>American-style options: can be exercised any time up to and including expiration (most equity options are American).</li>
<li>European-style options: can only be exercised at expiration (many index and OTC options are European).</li>
</ul>
<p>American options add complexity (early exercise decisions), but for many holders early exercise is suboptimal except for specific cases (e.g., capturing dividends with deep ITM calls).</p>

<h2 class="relative group">Basic option strategies
    <div id="basic-option-strategies" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#basic-option-strategies" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Options can be combined into strategies that change the payoff profile. Here are common building blocks:</p>
<ul>
<li>Long call: buy a call (bullish, limited downside = premium)</li>
<li>Long put: buy a put (bearish, limited downside = premium)</li>
<li>Covered call: own 100 shares and sell (write) a call against them (income generation, limited upside)</li>
<li>Protective put: own the underlying and buy a put as insurance (limits downside)</li>
<li>Cash-secured put: sell a put and hold enough cash to buy the underlying if assigned (income, buying at discount)</li>
<li>Spreads: combine options at different strikes and/or expirations (vertical, horizontal/calendar, diagonal)</li>
<li>Straddle/strangle: buy (or sell) both a call and a put at same (or different) strikes to bet on volatility</li>
</ul>
<p>Each strategy adjusts risk/reward, defined risk vs undefined risk, and capital requirements.</p>

<h2 class="relative group">Use cases: Hedging, income, and leverage
    <div id="use-cases-hedging-income-and-leverage" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#use-cases-hedging-income-and-leverage" aria-label="Anchor">#</a>
    </span>
    
</h2>
<ul>
<li><strong>Hedging</strong>: Options can protect portfolios. Example: buy puts to limit loss on a long equity position.</li>
<li><strong>Income</strong>: Selling covered calls or cash-secured puts generates premium income but caps upside or obligates purchase.</li>
<li><strong>Leverage and speculation</strong>: Buying options gives exposure to large percentage moves for a small premium. Leverage increases both potential gains and the risk of total loss (premium).</li>
</ul>

<h2 class="relative group">Risks and considerations
    <div id="risks-and-considerations" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#risks-and-considerations" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p><strong>Warning:</strong> Options trading involves significant risk and is not suitable for all investors. Selling options, in particular, can expose you to losses that are far greater than your initial investment.</p></div></div><ul>
<li>Time decay (theta): Options lose time value as expiration approaches. Long option holders lose value from time decay.</li>
<li>Volatility risk (vega): Changes in implied volatility can significantly affect premiums.</li>
<li>Assignment risk (for sellers): Sellers of options can be assigned at any time (especially American-style), requiring them to deliver or buy the underlying.</li>
<li>Liquidity and bid-ask spreads: Some strikes or expirations are illiquid; wide spreads increase trading costs.</li>
<li>Margin and capital requirements: Selling options may require margin and can expose you to large losses.</li>
<li>Complexity and behavior: Complex multi-leg strategies have non-linear payoffs and require careful analysis.</li>
</ul>

<h2 class="relative group">A simple worked example
    <div id="a-simple-worked-example" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-simple-worked-example" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Imagine stock XYZ trading at $50. You buy a 1 Month call with a strike of $55 for a premium of $1.50.</p>
<ul>
<li>Break-even at expiration = strike + premium = $56.50.</li>
<li>If XYZ finishes at $60, the call is worth $5 intrinsic (60 - 55), profit = $5 - $1.50 = $3.50 per share (x100 = $350).</li>
<li>If XYZ finishes at $53, the call expires worthless; loss = premium = $1.50 per share (x100 = $150).</li>
</ul>
<p>If instead you sold the same call (covered call with 100 shares owned):</p>
<ul>
<li>You keep the $150 premium as income upfront.</li>
<li>If XYZ rallies above $55, your shares may be called away and you forgo upside above $55.</li>
<li>If XYZ falls, the premium cushions losses slightly.</li>
</ul>

<h2 class="relative group">Practical tips for beginners
    <div id="practical-tips-for-beginners" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#practical-tips-for-beginners" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Getting Started Safely
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li>Start with covered calls and protective puts to learn mechanics with limited risk.</li>
<li>Trade liquid, well-known underlyings (large-cap stocks, popular ETFs).</li>
<li>Paper trade or use a small account to test strategies before committing significant capital.</li>
<li>Monitor implied volatility: buying options before a volatility spike can be expensive; selling premium when IV is high can be attractive.</li>
<li>Keep an eye on expiration dates and short option positions as theta accelerates near expiry.</li>
</ul></div></div>
<h2 class="relative group">Next steps &amp; learning resources
    <div id="next-steps--learning-resources" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#next-steps--learning-resources" aria-label="Anchor">#</a>
    </span>
    
</h2>
<ul>
<li>Read books about trading with Options</li>
<li>Practice: Use paper trading or virtual platforms provided by brokers to practice.</li>
<li>Study: Greeks (delta, gamma, theta, vega, rho) - understanding them is essential for risk management. I've got separate articles on this topic.</li>
<li>Explore: Common strategies in more depth. Focus on cash secured puts and covered calls.</li>
</ul>
<hr>

<h2 class="relative group">Visual Payoff Profiles (interactive)
    <div id="visual-payoff-profiles-interactive" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#visual-payoff-profiles-interactive" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>To make the concepts concrete, below is an interactive payoff diagram. Use the dropdown to select a strategy (Long Call, Long Put, Covered Call, or Protective Put), then adjust the <code>Strike</code>, <code>Premium</code>, or <code>Spot</code> and click <strong>Update</strong> to see how payoffs move.</p>
<div id="payoff-text-container">
  <div id="payoff-long-call-text" style="display:block;">
    <h3>Long Call</h3>
    <p>A long call profits when the underlying rises above the strike plus premium. Maximum loss is the premium paid. Use this when you're bullish on the stock and want unlimited upside with defined risk.</p>
  </div>
  <div id="payoff-long-put-text" style="display:none;">
    <h3>Long Put</h3>
    <p>A long put profits when the underlying falls below the strike minus premium. Maximum loss is the premium paid. Use this when you expect the stock to decline and want downside exposure with defined risk.</p>
  </div>
  <div id="payoff-covered-call-text" style="display:none;">
    <h3>Covered Call</h3>
    <p>A covered call combines stock ownership with selling a call: you receive premium income upfront but cap your upside above the strike. Use this in flat to moderately bullish markets to generate income from your holdings.</p>
  </div>
  <div id="payoff-protective-put-text" style="display:none;">
    <h3>Protective Put</h3>
    <p>A protective put is stock ownership plus buying a put as insurance — it limits downside at the cost of the put premium. Use this when you want to hold your stock but protect against a sharp decline.</p>
  </div>
</div>

<style>
   
  :root {
    --card-max-width: 600px;
    --card-padding: 20px;
    --card-bg: #efefef;
    --card-text: #212529;
    --input-bg: #ffffff;
    --input-border: #ced4da;
    --accent: #4CAF50;
    --muted: #666;
    --inner-bg: #f8f9fa;
    --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  }

  .dark {
    --card-bg: #2d2d2d;
    --card-text: #ccc;
    --input-bg: #404040;
    --input-border: #555;
    --accent: #4CAF50;
    --muted: #999;
    --inner-bg: #404040;
  }

  .options-payoff-container { max-width: 960px; margin: 1rem auto; padding: var(--card-padding); background-color: var(--card-bg); color: var(--card-text); border-radius: 8px; }
  .options-payoff-controls { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: flex-start; margin-bottom: 0.75rem; }
  .options-payoff-controls-row1 { display: flex; gap: 0.75rem; flex-wrap: nowrap; align-items: center; width: 100%; }
  .options-payoff-controls-row2 { display: flex; gap: 0.75rem; flex-wrap: nowrap; align-items: center; width: 100%; }
  .options-payoff-controls label { font-size: 0.85rem; color: var(--card-text); display: flex; align-items: center; gap: 0.25rem; white-space: nowrap; flex: 0 1 auto; }
  .options-payoff-controls label span { cursor: help; position: relative; }
  .options-payoff-controls input { width: 70px; padding: 6px 4px; border-radius: 4px; background-color: var(--input-bg); color: var(--card-text); border: 1px solid var(--input-border); font-family: var(--font-stack); font-size: 0.85rem; }
  .options-payoff-controls select { padding: 6px 4px; border-radius: 4px; background-color: var(--input-bg); color: var(--card-text); border: 1px solid var(--input-border); font-family: var(--font-stack); font-size: 0.85rem; }
  .options-payoff-controls label span[data-tooltip]:hover::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: 125%;
    left: -120px;
    width: 240px;
    background-color: var(--card-text);
    color: var(--card-bg);
    padding: 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: normal;
    z-index: 1000;
    white-space: normal;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  }
  .options-payoff-controls label span[data-tooltip]:hover::before {
    content: '';
    position: absolute;
    bottom: 117%;
    left: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid var(--card-text);
    z-index: 1000;
  }
  .options-payoff-container canvas { background: transparent; border-radius: 6px; }
  .opc-zero-line { height: 1px; background: var(--input-border); margin-top: 6px; }
  .opc-tip { font-size: 0.9rem; margin-top: 0.5rem; color: var(--muted); }
</style>

<div class="options-payoff-container">
  <div class="options-payoff-controls">
    <div class="options-payoff-controls-row1">
      <label><span data-tooltip="The exercise price at which the option can be executed. This is the fixed price at which you can buy (call) or sell (put) the underlying asset.">Strike:</span> <input id="opc_strike" type="number" step="0.01" value="50"></label>
      <label><span data-tooltip="The option price paid to purchase the option (for buyer) or received when selling (for seller). This is the cost of the right to buy/sell.">Premium:</span> <input id="opc_premium" type="number" step="0.01" value="1.50"></label>
      <label><span data-tooltip="The current market price of the underlying asset. This is the reference point around which the chart range is calculated.">Spot:</span> <input id="opc_spot" type="number" step="0.01" value="50"></label>
    </div>
    <div class="options-payoff-controls-row2">
      <label><span data-tooltip="The distance above and below the spot price to display on the chart. Larger values show a wider range of possible prices.">Range:</span> <input id="opc_range" type="number" step="1" value="30"></label>
      <label>Show: <select id="opc_show"><option value="all">All</option><option value="long_call">Long Call</option><option value="long_put">Long Put</option><option value="covered_call">Covered Call</option><option value="protective_put">Protective Put</option></select></label>
    </div>
  </div>
  <div style="position:relative; height:420px;">
    <canvas id="opc_chart"></canvas>
  </div>
  <div class="opc-tip">Tip: Charts update automatically as you change values.</div>
</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<script>
(function(){
  const ctx = document.getElementById('opc_chart').getContext('2d');

  function payoff_long_call(spotPrices, strike, premium){
    return spotPrices.map(s => Math.max(0, s - strike) - premium);
  }
  function payoff_long_put(spotPrices, strike, premium){
    return spotPrices.map(s => Math.max(0, strike - s) - premium);
  }
  function payoff_covered_call(spotPrices, strike, premium, spotCenter){
    
    return spotPrices.map(s => (s - spotCenter) - Math.max(0, s - strike) + premium);
  }
  function payoff_protective_put(spotPrices, strike, premium, spotCenter){
    
    return spotPrices.map(s => (s - spotCenter) + Math.max(0, strike - s) - premium);
  }

  
  let chart = null;
  let spotCenter = parseFloat(document.getElementById('opc_spot').value || 50);

  function buildData(){
    const strike = parseFloat(document.getElementById('opc_strike').value);
    const premium = parseFloat(document.getElementById('opc_premium').value);
    spotCenter = parseFloat(document.getElementById('opc_spot').value);
    const range = parseInt(document.getElementById('opc_range').value, 10);
    const show = document.getElementById('opc_show').value;

    const start = Math.max(0, Math.round(spotCenter - range));
    const end = Math.round(spotCenter + range);
    const step = Math.max(1, Math.round((end - start) / 200));
    const spots = [];
    for(let s = start; s <= end; s += step) spots.push(s);

    const datasets = [];
    if(show === 'all' || show === 'long_call'){
      datasets.push({label:'Long Call', data: payoff_long_call(spots, strike, premium), borderColor:'rgba(20,150,110,1)', tension:0.04});
    }
    if(show === 'all' || show === 'long_put'){
      datasets.push({label:'Long Put', data: payoff_long_put(spots, strike, premium), borderColor:'rgba(76,175,80,1)', tension:0.04});
    }
    if(show === 'all' || show === 'covered_call'){
      const coveredData = payoff_covered_call(spots, strike, premium, spotCenter);
      datasets.push({label:'Covered Call (net)', data: coveredData, borderColor:'rgba(255,167,38,1)', tension:0.04});
    }
    if(show === 'all' || show === 'protective_put'){
      const protectiveData = payoff_protective_put(spots, strike, premium, spotCenter);
      datasets.push({label:'Protective Put (net)', data: protectiveData, borderColor:'rgba(244,67,54,1)', tension:0.04});
    }

    return { spots, datasets };
  }

  function render(){
    const { spots, datasets } = buildData();
    const labels = spots.map(s => s.toString());
    const chartData = {
      labels,
      datasets: datasets.map((d, i) => ({
        label: d.label,
        data: d.data,
        borderColor: d.borderColor,
        backgroundColor: d.borderColor.replace('1)', '0.12)'),
        pointRadius: 0,
        borderWidth: 2,
        fill: i===0?'+"start"+': false,
      }))
    };

    const opts = {
      responsive: true,
      maintainAspectRatio: false,
      interaction: { mode: 'index', intersect: false },
      scales: {
        x: { title: { display:true, text: 'Underlying Price' }, grid: { color: getComputedStyle(document.documentElement).getPropertyValue('--input-border').trim() || '#ced4da' } },
        y: { title: { display:true, text: 'Profit / Loss (per share)' }, grid: { color: getComputedStyle(document.documentElement).getPropertyValue('--input-border').trim() || '#ced4da' } }
      },
      plugins: {
        legend: { position: 'bottom', labels: { usePointStyle: true } },
        tooltip: { mode: 'index', intersect: false }
      }
    };

    if(chart){ chart.destroy(); }
    chart = new Chart(ctx, { type: 'line', data: chartData, options: opts });
  }

  
  document.getElementById('opc_strike').addEventListener('change', render);
  document.getElementById('opc_premium').addEventListener('change', render);
  document.getElementById('opc_spot').addEventListener('change', render);
  document.getElementById('opc_range').addEventListener('change', render);
  document.getElementById('opc_show').addEventListener('change', render);
  
  
  render();
})();
</script>
<hr>
]]></content:encoded><media:content url="https://libreleo.com/img/featured/what-are-options.webp" medium="image"/></item><item><title>Don't Listen to Market Noise: A 32-Year Lesson in Doing Nothing</title><link>https://libreleo.com/posts/dont-listen-to-market-noise/</link><pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/dont-listen-to-market-noise/</guid><description>Financial media is in the engagement business, not the information business. Here's the cost of trading on noise, the behavioral gap research, and the five rules I built to ignore it.</description><content:encoded><![CDATA[<p>I sold a chunk of my position in March 2020.</p>
<p>It was during the second week of the COVID crash. Everything was red, every headline screamed catastrophe, and I convinced myself I was being &quot;prudent&quot; by taking some money off the table. I sold at roughly 30% below the January high. The market bottomed nine days later. By August it had recovered the entire drop. By the end of 2021 it was 60% above where I sold.</p>
<p>That single decision left a meaningful chunk of what should have been a much larger position on the table. It wasn't a position-sizing mistake. It wasn't a thesis error. It was a noise mistake. I traded on what I was hearing instead of what I'd planned. A fair amount of time inside corporate finance and I still made the rookie move.</p>
<p>This is the article I'd send to my younger self.</p>

<h2 class="relative group">Why noise feels so loud
    <div id="why-noise-feels-so-loud" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-noise-feels-so-loud" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Financial media is in the engagement business. CNBC doesn't make money when you don't watch. Bloomberg doesn't sell more terminals when markets are quiet. The X algorithm doesn't surface &quot;the market did basically nothing today&quot; because nobody clicks on it.</p>
<p>So the volume on bad news gets turned up, all the time. A perfectly normal correction gets called a CRASH. A 3% pullback after a 40% rally becomes BREAKING.</p>
<p>Add social media to the mix and you get amplification on top of selection bias. The people loudest about their predictions on X aren't the people quietly compounding into wealth. They're the people who need the dopamine of being right, or the engagement of being wrong loudly.</p>
<p>The asymmetry is brutal: fear is a stronger behavioural signal than greed by a factor of about 2 to 1 in the research. So the same volume of bad news hits you twice as hard as the same volume of good news. That's why a single screaming headline can undo six months of carefully built investing discipline.</p>

<h2 class="relative group">The cost of trading on noise
    <div id="the-cost-of-trading-on-noise" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-cost-of-trading-on-noise" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>DALBAR has been running an annual study since the 1990s called the Quantitative Analysis of Investor Behavior. The finding is depressingly consistent: individual investors underperform the funds they own by 1.5% to 3% annually. Not because they pick bad funds. Because they trade in and out of good ones at the wrong times.</p>
<p>Think about what that compounds to over a 30-year horizon. A 2% drag, compounded annually, halves your terminal wealth. That's not a rounding error. That's the difference between retiring at 55 and retiring at 70.</p>
<p>The behavioural gap isn't because individual investors are stupid. It's because they're listening. The pros aren't necessarily smarter. They're structurally insulated: institutional mandates, rebalancing rules, written investment policies they're required to follow.</p>
<p>You don't have those guardrails by default. You have to build them yourself.</p>

<h2 class="relative group">What I do instead
    <div id="what-i-do-instead" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-i-do-instead" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Five rules. Written down. I read them when I feel the urge to do something stupid.</p>
<p><strong>1. Auto-deposit, no exceptions.</strong> A fixed amount goes from my checking account into my brokerage on the 1st and 15th of every month. It buys whatever my allocation says I'm underweight in. No decision required, no chance for cleverness.</p>
<p><strong>2. No news between 9am and 4pm Dubai time.</strong> This covers the entire US market open. I don't watch CNBC. I don't refresh Yahoo Finance. I don't have the brokerage app on my phone's home screen. If I want to know how my portfolio did this week, I find out on Saturday morning when nothing is open.</p>
<p><strong>3. Quarterly review, not daily.</strong> I look at the actual numbers four times a year. I rebalance once. The other 361 days, I'm not allowed to make allocation changes.</p>
<p><strong>4. Written investment policy.</strong> Three pages. What I own, why I own it, what would have to be true for me to change. The discipline isn't in the document itself. It's in the requirement to re-read the document before making any decision. By the time I'm done reading it, the impulse usually passes.</p>
<p><strong>5. No leverage on the long-term portfolio.</strong> Margin and options are fine as active income overlays in a separate account. The long-term FIRE portfolio stays unleveraged. This means I'm never forced to sell at the bottom. That's a luxury I bought with discipline.</p>
<p>For the mechanics of DCA itself, see <a href="/posts/dca-dollar-cost-averaging-pros-cons/" >DCA Dollar Cost Averaging</a>. The rules above are what make DCA actually work.</p>

<h2 class="relative group">The &quot;do nothing&quot; power
    <div id="the-do-nothing-power" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-do-nothing-power" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The single best investing decision I've ever made wasn't a buy or a sell. It was the period from 2008 to 2013 when I did nothing. I auto-deposited into broad index funds every month. I didn't sell during the 2008 crash. I didn't pause contributions when the headlines said the world was ending. I didn't try to time the bottom.</p>
<p>Those five years of doing nothing produced more lifetime wealth than the next ten years of actively managing things did. The reason isn't mysterious: I bought when nobody else wanted to buy, and I let compounding work.</p>
<p>This is the cheat code. The market isn't trying to outsmart you. It's trying to scare you. The discipline to stay in your seat, especially when everything in the news is telling you not to, is worth more than any stock-picking edge you'll ever develop.</p>

<h2 class="relative group">The Rule
    <div id="the-rule" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-rule" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>If you can't follow the rules above, follow this one: every time you feel the urge to react to a headline, ask yourself a single question. &quot;Have I had this thought before? What happened the last time I acted on it?&quot;</p>
<p>If you're honest, the answer will usually be: it cost me money.</p>
<p>That's the lesson. The noise will not stop. Your job is to.</p>
<p>Have fun exploring.</p>
<p>Chris</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/dont-listen-to-market-noise.webp" medium="image"/></item><item><title>Selling Option Premiums - A Beginner's Guide to Active Income</title><link>https://libreleo.com/passive_active_investments/options_trading/selling-option-premiums-active-income-beginners-guide/</link><pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/passive_active_investments/options_trading/selling-option-premiums-active-income-beginners-guide/</guid><description>Selling option premiums is one of the most reliable ways to pull income out of a stock portfolio, but it is active income, not passive. Here is what it actually is, how it works, and the risks you need to manage.</description><content:encoded><![CDATA[<span class="flex cursor-pointer">
  
  
  
  
    <span
      class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
  
    
Updated: 18/06/2026

  </span>
</span>


<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Most articles you'll read about selling option premiums call it &quot;passive income.&quot; It isn't. It's one of the most reliable ways to generate cash flow from a stock portfolio I've ever found. But it is active income, and pretending otherwise is the fastest way to lose money doing it.
</div>

<p>After several years of selling premium on real capital, here's what I've learned: it pays consistently and compounds nicely. This article is the entry point of my Options Trading series: what option premiums are, why selling them is active income, and how the two core strategies (cash-secured puts and covered calls) actually work.</p>

<h2 class="relative group">Active income vs. passive income - get the framing right
    <div id="active-income-vs-passive-income---get-the-framing-right" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#active-income-vs-passive-income---get-the-framing-right" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Passive income is rent from a property, dividends from an index fund, interest from a bond. You make a decision once and the cash arrives while you sleep. Selling option premium is not that.</p>
<p>Every premium I collect comes from a decision: which ticker, which strike, which expiration, which size. Every position needs monitoring. Some need to be managed, like rolled, closed early, or defended.</p>
<p>That's why I've come to think of my portfolio in two lanes:</p>
<ul>
<li><strong>Passive lane</strong> - Index funds, dividend stocks, etc. Set the allocation, rebalance occasionally, otherwise leave it alone.</li>
<li><strong>Active lane</strong> - Options premium selling, layered on top of the cash and stock I already own. It generates an additional income stream, but I work for it.</li>
</ul>
<p>Both lanes belong in a serious financial-freedom plan.</p>

<h2 class="relative group">What is an option premium?
    <div id="what-is-an-option-premium" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-is-an-option-premium" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>An option premium is the fee a buyer pays a seller for a specific right tied to a stock - without any obligation to actually use that right.</p>
<p>There are two contract types you need to know:</p>
<ol>
<li><div class="flex mt-2">
  <span
    class="rounded-full bg-primary-500 dark:bg-primary-400 text-neutral-50 dark:text-neutral-800 px-1.5 py-[1px] text-xs font-normal">
    <span class="flex flex-row items-center"><span>Call options</span>
    </span>
  </span>
</div>: give the buyer the <em>right</em> to <div class="flex mt-2">
  <span
    class="rounded-full bg-primary-500 dark:bg-primary-400 text-neutral-50 dark:text-neutral-800 px-1.5 py-[1px] text-xs font-normal">
    <span class="flex flex-row items-center"><span>buy</span>
    </span>
  </span>
</div> a stock at a specific price (the strike) before a specific date (the expiration).</li>
<li><div class="flex mt-2">
  <span
    class="rounded-full bg-primary-500 dark:bg-primary-400 text-neutral-50 dark:text-neutral-800 px-1.5 py-[1px] text-xs font-normal">
    <span class="flex flex-row items-center"><span>Put options</span>
    </span>
  </span>
</div>: give the buyer the <em>right</em> to <div class="flex mt-2">
  <span
    class="rounded-full bg-primary-500 dark:bg-primary-400 text-neutral-50 dark:text-neutral-800 px-1.5 py-[1px] text-xs font-normal">
    <span class="flex flex-row items-center"><span>sell</span>
    </span>
  </span>
</div> a stock at a specific price before expiration.</li>
</ol>
<p>When you <strong>sell</strong> a contract, the buyer pays you an upfront fee. That fee is the <strong>premium</strong>. You keep it regardless of what the stock does, even if the buyer never exercises.</p>

<h2 class="relative group">The two core strategies for active income
    <div id="the-two-core-strategies-for-active-income" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-two-core-strategies-for-active-income" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>As a seller, what the industry calls a &quot;writer&quot;, you're effectively underwriting insurance. Buyers pay you to take on a defined risk. Done right, the math is in your favor: most options expire worthless, and the seller keeps the premium.</p>
<p>The two strategies a beginner should learn first are the most conservative ones.</p>

<h3 class="relative group">1. Selling cash-secured puts
    <div id="1-selling-cash-secured-puts" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-selling-cash-secured-puts" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Cash-Secured Puts in a Nutshell
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Pick a stock you'd actually want to own. Set cash aside equal to 100 shares × the strike price. Sell a put contract at that strike. The buyer pays you the premium. If the stock stays above your strike at expiration, the put expires worthless and you keep the premium and the cash. If it drops below, you buy the shares at the strike (a price you already wanted to pay) and you still keep the premium.</p></div></div><p>This is my preferred starting point. You're paid to wait for stocks you wanted to buy anyway.</p>

<h3 class="relative group">2. Selling covered calls
    <div id="2-selling-covered-calls" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-selling-covered-calls" aria-label="Anchor">#</a>
    </span>
    
</h3>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          Covered Calls in a Nutshell
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>If you already own at least 100 shares of a stock, you can sell a call against it. The buyer pays you the premium for the right to buy your shares at a higher (strike) price. If the stock stays below the strike, the call expires and you keep your shares plus the premium. If it goes above, your shares get called away at the strike, and you still keep the premium.</p></div></div><p>This turns a position you already own into a recurring income stream at the cost of capping your upside.</p>
<p>Put together, cash-secured puts and covered calls form the <strong>Wheel</strong> - sell a put, get assigned shares, sell calls against them, get called away, sell another put. Income on every leg. I'll cover the Wheel end-to-end in a dedicated article.</p>

<h3 class="relative group">Cash-Secured Put Flow
    <div id="cash-secured-put-flow" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#cash-secured-put-flow" aria-label="Anchor">#</a>
    </span>
    
</h3>
<pre class="not-prose mermaid">
graph TD
    A["Set Aside Cash"] --> B{"Sell Put Option"}
    B --> C["Collect Premium"]
    C --> D{"At Expiration: Stock Price above Strike?"}
    D -- "Yes" --> E["Keep Cash + Keep Premium"]
    D -- "No" --> F["Buy Shares at Strike Price + Keep Premium"]
</pre>


<h3 class="relative group">Covered Call Flow
    <div id="covered-call-flow" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#covered-call-flow" aria-label="Anchor">#</a>
    </span>
    
</h3>
<pre class="not-prose mermaid">
graph TD
    A["Own 100 Shares of Stock"] --> B{"Sell Call Option"}
    B --> C["Collect Premium"]
    C --> D{"At Expiration: Stock Price below Strike?"}
    D -- "Yes" --> E["Keep Shares + Keep Premium"]
    D -- "No" --> F["Shares Called Away at Strike Price + Keep Premium"]
</pre>


<h2 class="relative group">What are the real risks?
    <div id="what-are-the-real-risks" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-are-the-real-risks" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="danger">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor"  d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-2.8-5.6-5.6-11.2-9.8-16.8l-50.6 58.8s-81.4-103.6-87.1-110.6C133.1 243.8 112 273.2 112 306.8C112 375.4 162.6 416 225.7 416z"/></svg></span></div>
        <div class="grow">
          Critical Warning
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Selling options is NOT free money. The math is in your favor over time, but a single unmanaged position can wipe out months of premium. Never put on a trade you don't fully understand, and never sell premium on something you wouldn't be willing to own.</p></div></div><p>The risks split cleanly by strategy.</p>
<ul>
<li>
<p><strong>Risk of <div class="flex mt-2">
  <span
    class="rounded-full bg-primary-500 dark:bg-primary-400 text-neutral-50 dark:text-neutral-800 px-1.5 py-[1px] text-xs font-normal">
    <span class="flex flex-row items-center"><span>selling covered calls</span>
    </span>
  </span>
</div>: opportunity cost.</strong> If the stock rips far above your strike, the buyer exercises. You sell at the strike and miss the rest of the move. You still profit, just less than you would have holding the shares. This happened to me a few times. CAKE (Cheesecake company) spiked past my strike. Because I still liked the upside, I closed the call early and took a small loss on the option to keep the shares.</p>
</li>
<li>
<p><strong>Risk of <div class="flex mt-2">
  <span
    class="rounded-full bg-primary-500 dark:bg-primary-400 text-neutral-50 dark:text-neutral-800 px-1.5 py-[1px] text-xs font-normal">
    <span class="flex flex-row items-center"><span>selling cash-secured puts</span>
    </span>
  </span>
</div>: assignment at a bad price.</strong> If the stock drops well below the strike, you're obligated to buy it at the strike, possibly far above the current market. This is exactly why you should only sell puts on tickers you'd actually own long-term. Pick the wrong ticker and the &quot;discount&quot; turns into a bag-hold. I only trade very liquid and known stocks.</p>
</li>
</ul>
<p>In both cases you trade unlimited upside for smaller, more consistent gains and you accept that the position needs your attention.</p>

<h2 class="relative group">Is selling option premium a good fit for financial freedom?
    <div id="is-selling-option-premium-a-good-fit-for-financial-freedom" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#is-selling-option-premium-a-good-fit-for-financial-freedom" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Yes, if you treat it as a business. Over the past five years it's been one of the most consistent income lines in my portfolio. A few honest observations:</p>
<ul>
<li><strong>It generates real cash flow.</strong> Income that lands monthly, independent of dividends and price appreciation.</li>
<li><strong>It can lower your cost basis.</strong> Premiums collected against a long-term position effectively discount your entry over time.</li>
<li><strong>It demands active management.</strong> Not &quot;set and forget.&quot; You'll monitor positions, roll losers, defend assignments, and close winners early. Pretending otherwise is how beginners blow up accounts.</li>
<li><strong>A journal is non-negotiable.</strong> Every trade leaves a story - entry thesis, what changed, why you exited. I built Theta-Vault (my own Options Trading Journal) for exactly this reason: option-selling without a feedback loop is gambling, and the difference between a profitable year and a flat one is usually buried in trades you forgot you took.</li>
</ul>
<p>For traders willing to put in the work to learn, selling option premiums is one of the most compelling active income streams a stock portfolio can produce. In the next pieces of this series I'll walk through step-by-step examples of selling cash-secured puts and covered calls, then build the Wheel on top of them. Stay tuned!</p>
]]></content:encoded><media:content url="https://libreleo.com/img/featured/selling-option-premiums-active-income-beginners-guide.webp" medium="image"/></item><item><title>Financial Freedom: What It Actually Means (And Why It Isn't What You Think)</title><link>https://libreleo.com/posts/financial-freedom/</link><pubDate>Fri, 21 Nov 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/financial-freedom/</guid><description>Financial freedom isn't a number. It's the ability to make decisions without first running them through a money filter. Here's how I separate the math from the meaning, with the expat lens baked in.</description><content:encoded><![CDATA[<p>Financial freedom isn't a number. It isn't even the absence of work. It's the ability to make decisions without first running them through a money filter. That's the whole thing.</p>
<p>I spent a fair amount of time in the corporate world. The money was fine. The freedom wasn't. The decision was taken to let me go, and that gave me the opportunity to look after myself, focus on myself, and realize I'd already been free for years and just hadn't acted on it. The financial part was solved. The freedom part was a separate problem.</p>
<p>This is the piece I wish someone had handed me at thirty.</p>

<h2 class="relative group">What financial freedom actually means
    <div id="what-financial-freedom-actually-means" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-financial-freedom-actually-means" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Most definitions blur into the same shape: &quot;having enough money to live without worrying about money.&quot; That's accurate. It's also useless. Of course you want enough money. What does &quot;enough&quot; mean?</p>
<p>I think financial freedom is three things stacked. Take any one of them out and the whole structure falls.</p>
<p><strong>Coverage.</strong> Your passive cashflow exceeds your monthly burn. Reliably. In every market.</p>
<p><strong>Buffer.</strong> You have enough cushion that a bad year, a personal crisis, or a market that goes sideways for a decade doesn't move you off your seat.</p>
<p><strong>Choice.</strong> You can quit. Switch careers. Move countries. Take a year off. The &quot;can&quot; is the freedom. Whether you exercise it is a separate question.</p>
<p>Coverage is math. Buffer is risk management. Choice is the part everyone underestimates.</p>

<h2 class="relative group">Why &quot;financial independence&quot; isn't the same thing
    <div id="why-financial-independence-isnt-the-same-thing" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-financial-independence-isnt-the-same-thing" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>These two terms get used interchangeably, and they shouldn't be.</p>
<p>Financial independence is the mechanical version: your assets generate enough income to cover your expenses indefinitely. You can model it. You can hit it with discipline. You can know the day you arrive.</p>
<p>Financial freedom is the version where you actually live differently because of it. Most people who hit FI keep working anyway. Sometimes that's because they love the work, which is fine. Often it's because they don't know who they are without it, which isn't.</p>
<p>The Bogleheads and Reddit FI forums are full of people who passed their FI number five years ago and are still showing up to jobs they describe as soul-crushing. They have the freedom. They haven't taken it.</p>
<p>This is why I separate the two. FI is the gateway. Freedom is what's on the other side, and you have to do work on yourself to walk through it.</p>

<h2 class="relative group">How to actually get there
    <div id="how-to-actually-get-there" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-to-actually-get-there" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>I'm not going to summarise twelve calculators in three paragraphs. The structured journey is in <a href="/posts/seven-stages-financial-freedom/" >The 7 Stages of Financial Freedom</a>, and the math is in <a href="/calculators/interactive_calculator_to_your_fire_number/" >the FIRE calculator</a>.</p>
<p>The spine looks like this:</p>
<p><strong>Spend less than you earn.</strong> Whatever you make, build a habit where the gap between income and spending is large. Twenty percent is fine. Fifty percent is faster. The savings rate is the single most powerful lever you have. It controls how long the journey takes and how big the destination has to be.</p>
<p><strong>Invest the gap.</strong> Boring, broad-market index funds for the bulk. Add active income strategies (options premium selling, dividends, real estate cashflow) as overlays if you have the time and stomach. Don't pick stocks unless you can articulate why you have an edge.</p>
<p><strong>Wait.</strong> Compounding only works if you let it. Most people quit the strategy six years in because the market did something they didn't expect. The strategy didn't fail. They did.</p>
<p>Three steps. Ignore everything else.</p>

<h2 class="relative group">The expat angle
    <div id="the-expat-angle" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-expat-angle" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>If you're reading this from Dubai, Singapore, Manila, Riyadh, or any of the cities outside the US that get treated as footnotes by the financial press, the math gets weirder.</p>
<p>In the GCC, you might pay 0% income tax. That's a savings-rate cheat code. A 50% savings rate on AED 30,000 a month means you're saving AED 15,000 net. The equivalent American earner has to clear $4,500 a month from a pre-tax salary that's maybe $7,000. Same lifestyle, very different math.</p>
<p>In the Philippines, the cost of living is a third of US numbers. A $1.2M nest egg that funds a middle-class American retirement funds a luxurious one in Cebu.</p>
<p>This is geo-arbitrage. It bends the entire equation. I'll cover it properly in the Expat FI Playbook when that ships.</p>

<h2 class="relative group">What I'd tell my 30-year-old self
    <div id="what-id-tell-my-30-year-old-self" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-id-tell-my-30-year-old-self" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The biggest mistake I made wasn't a financial one. It was waiting until I had &quot;enough&quot; before I started acting like a free person. I was already past the math by my mid-fifties and I still showed up to the same building every day because that's what I knew.</p>
<p>The math gets you to the gateway. The decision to walk through is yours. Start working on that part now.</p>
<p>Have fun exploring.</p>
<p>Chris</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/financial-freedom.webp" medium="image"/></item><item><title>What Assets Make Up Wealth? Why the Rich Don't Own What You Think</title><link>https://libreleo.com/posts/what-assets-make-up-wealth/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/what-assets-make-up-wealth/</guid><description>The wealthier you get, the less of your net worth sits in your primary residence. The structure of wealth at the top is built around mobile, productive assets. Here's what that means for your own portfolio.</description><content:encoded><![CDATA[<p>If you ask the average person to picture a wealthy household, they'll describe a big house. Maybe two big houses. A nice car. Maybe a rental property somewhere.</p>
<p>This is almost exactly wrong.</p>
<p>The wealthiest 1% of US households hold less than 10% of their net worth in their primary residence. The middle class holds 60% of their net worth in theirs. As you climb the wealth ladder, the composition of net worth flips: residential real estate becomes a smaller and smaller fraction, while business interests, financial securities, and &quot;other investments&quot; expand to dominate.</p>
<p>This isn't a coincidence. It's the structure of how wealth actually works, and it has direct implications for how you should think about building your own.</p>

<h2 class="relative group">The data
    <div id="the-data" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-data" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The chart that crystallised this for me was from Visual Capitalist, drawn from Federal Reserve net worth distribution data. Net-worth tiers broken down by asset allocation:</p>
<p><strong>Bottom 50% (households worth $0 to $122k):</strong></p>
<ul>
<li>Primary residence: 70%</li>
<li>Vehicles: 9%</li>
<li>Retirement accounts: 8%</li>
<li>Financial securities: 2%</li>
</ul>
<p><strong>Middle 50th to 90th percentile (worth $122k to $1.2M):</strong></p>
<ul>
<li>Primary residence: 41%</li>
<li>Retirement accounts: 25%</li>
<li>Financial securities: 8%</li>
<li>Business equity: 4%</li>
</ul>
<p><strong>Top 10% to 1% (worth $1.2M to $11M):</strong></p>
<ul>
<li>Primary residence: 22%</li>
<li>Financial securities: 20%</li>
<li>Retirement accounts: 18%</li>
<li>Business equity: 16%</li>
</ul>
<p><strong>Top 1% (worth $11M+):</strong></p>
<ul>
<li>Business equity: 38%</li>
<li>Financial securities: 25%</li>
<li>Other real estate (investment properties): 11%</li>
<li>Primary residence: 7%</li>
</ul>
<p>The shape is unmistakable. The richer you are, the less of your wealth is in the place where you sleep.</p>

<h2 class="relative group">Why this happens
    <div id="why-this-happens" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-this-happens" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Three reasons.</p>
<p><strong>Primary residence is a forced concentration.</strong> You typically buy as much house as your income allows. So if your income is modest, your house IS the bulk of your net worth almost mechanically. As income and assets grow past the cost of one house, the additional wealth has to go somewhere else. The percentage in the house shrinks even if its absolute value goes up.</p>
<p><strong>Business equity is the engine of wealth creation.</strong> Almost everyone in the top 1% got there through equity in a business they built, ran, or owned. Not through property speculation. Not through being a high-salary employee. A 1% owner of a $500M company has $5M in equity. A founder selling at 20% to private equity for $50M takes home $10M after tax. Nobody flips suburban duplexes into $11M of net worth.</p>
<p><strong>Financial securities are scalable, mobile, and productive.</strong> A $5M portfolio of broad-market index funds throws off roughly $200,000 in dividends and rebalancing income annually, requires no maintenance, can be sold in 10 seconds, and moves with you to any country. A $5M apartment building requires a property manager, has a 5%-ish dividend yield after expenses, can take 6 months to sell, and is firmly anchored to one ZIP code.</p>
<p>This is what wealthy people actually optimise for: productivity per dollar, scalability, mobility. Primary residences fail on all three.</p>

<h2 class="relative group">The FI implication
    <div id="the-fi-implication" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-fi-implication" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>If you're building toward financial independence, the asset-mix question matters a lot.</p>
<p>A net worth dominated by primary residence is what I call STUCK wealth. It does nothing for your cashflow (you can't withdraw from it without selling). It depreciates in real terms (maintenance, taxes, insurance eat 1% to 2% per year). It doesn't move when you do.</p>
<p>A net worth dominated by financial securities is what I call MOBILE wealth. It generates cashflow. It compounds productively. You can liquidate or relocate it without changing your physical address.</p>
<p>The wealthy aren't smarter than you. They've structured their assets for optionality. You can do the same thing at any net worth tier.</p>

<h2 class="relative group">The expat overlay
    <div id="the-expat-overlay" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-expat-overlay" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>If there's any cohort that should pay attention to this distinction, it's expats.</p>
<p>If you live and work in the UAE, the GCC, Singapore, Hong Kong, or anywhere else with significant resident-versus-citizen distinctions, the assumption that you'll spend your retirement years in the country you currently live in is shaky. Visa rules change. End-of-service benefits don't compound. The math that says &quot;buy property in Dubai&quot; assumes you'll always be a Dubai resident.</p>
<p>The same AED 2M put into broad-market global ETFs held at IBKR or another broker gives you a portfolio you can manage from Manila, Bali, or Lisbon. The Dubai property doesn't move.</p>
<p>This isn't an argument against property. It's an argument against OVERWEIGHTING property when your residency itself is the variable.</p>

<h2 class="relative group">What to actually do
    <div id="what-to-actually-do" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-to-actually-do" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p><strong>Calculate your own net worth allocation.</strong> Add up everything. Then break it into the same categories: primary residence, other real estate, retirement accounts, taxable brokerage, business equity, vehicles, other.</p>
<p><strong>Look at the percentages.</strong> If primary residence is over 40% of your net worth, you're in middle-class allocation territory. That's fine if you're early in the wealth-building journey. It's not fine if you're past 50 and still building toward FI.</p>
<p><strong>Tilt the marginal dollar.</strong> New money goes into mobile, productive assets. Don't trade your house. Just stop adding to the housing pile and start adding to the portfolio pile. Over time the percentages flip.</p>
<p>The top-1% allocation isn't an accident. It's a recipe. You can follow it at any scale.</p>
<p>Chris</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/what-assets-make-up-wealth.webp" medium="image"/></item><item><title>Do You Need A Budget (YNAB) - My Review</title><link>https://libreleo.com/posts/do-you-need-a-budget-ynab-my-review/</link><pubDate>Thu, 20 Feb 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/do-you-need-a-budget-ynab-my-review/</guid><description>Having a budget system is essential for gaining control of your finances and making sure that your expenses stay below your income.</description><content:encoded><![CDATA[
<h2 class="relative group">Why a budget?
    <div id="why-a-budget" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-a-budget" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Having a budget system is essential for gaining control of your finances and making sure that your expenses stay below your income. By having a clear understanding of your income and expenses, you can ensure that your money is managed effectively and that you remain financially stable.</p>
<p><em><strong>“Do not save what is left after spending; instead spend what is left after saving.” – Warren Buffett</strong></em></p>
<p>After trying a variety of budgeting tools such as Quicken, Banktivity, and Excel sheets, I recently discovered YNAB. At first, I was skeptical of yet another budgeting tool, but I’m glad to say that YNAB has exceeded my expectations.</p>
<p>As a non-US resident or citizen, I found it difficult to find a budgeting tool that I could use which fulfills all my needs. YNAB solved this problem for me, and I’m really pleased with the results.</p>
<p>It has a user-friendly interface that makes it easy to understand and navigate. You can easily categorize and track your expenses, and set up budgets with detailed insight. There are also a number of helpful resources, tips, and tutorials available to help you get started.</p>
<p>Overall, I’m very impressed with YNAB and would highly recommend it for budgeting. It’s a great tool for anyone.</p>

<h2 class="relative group">What are the benefits of Budgeting
    <div id="what-are-the-benefits-of-budgeting" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-are-the-benefits-of-budgeting" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Budgeting not only helps you manage your finances and understand your cash flow, but it also has several additional benefits. Some of these benefits include:</p>
<ol>
<li>Increased savings and investment opportunities</li>
<li>The ability to prioritize spending on what truly matters to you</li>
<li>Reduced stress and anxiety related to money</li>
<li>Improved overall financial well-being</li>
<li>Better control over impulse spending</li>
<li>More clarity on where your money is going</li>
<li>Helps in reaching financial goals faster.</li>
</ol>

<h2 class="relative group">You Need a Budget!
    <div id="you-need-a-budget" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#you-need-a-budget" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>You Need a Budget (YNAB) is so far my favorite budgeting tool. At first, I found it challenging to figure out how to use the credit card expenses feature. However, after watching the tutorials and videos, I was able to quickly set it up and get the hang of it in just a few minutes.</p>
<p>It offers an impressive array of features, including secure syncing with all your bank accounts, real-time updates so you can track and manage your finances even when you’re on the go, debt paydown and goal-tracking tools, and helpful analytics and reports on your income and expenses.</p>
<figure><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="low"
    alt="Image Description"
    src="/images/Pasted%20image%2020251201211814.png"
    ></figure>

<h2 class="relative group">YNAB follows 4 simple rules:
    <div id="ynab-follows-4-simple-rules" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ynab-follows-4-simple-rules" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>YNAB follows 4 simple rules:</p>
<p><strong>==1. Give Every Dollar a Job==</strong>: Every dollar you earn should have a purpose. When you assign a job to each dollar you can make sure you’re spending, saving, and investing your money in a way that aligns with your financial goals.</p>
<p><strong>==2. Embrace Your True Expenses==</strong>: Financial success isn’t just about cutting back on buying a latte every day. To truly succeed you need to plan for the big expenses that come up throughout the year, like car maintenance, vacations, and holidays.</p>
<p><strong>==3. Roll With the Punches==</strong>: Life happens and sometimes you have to adjust your budget. YNAB encourages you to adjust your budget when expenses change and to be flexible when life throws you a curveball.</p>
<p><strong>==4. Age Your Money==</strong>: YNAB encourages you to save up for larger expenses and build an emergency fund so you’re not living paycheck to paycheck. This will help you reduce debt and increase your financial security. This is one of the great features of YNAB.</p>

<h2 class="relative group">What else does it offer?
    <div id="what-else-does-it-offer" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-else-does-it-offer" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>YNAB also offers features and services that can help you stay on track with your budget and reach your financial goals.</p>
<p>These include:</p>
<p>– Automated budgeting: YNAB automatically updates your budget based on your transactions, so you don’t have to manually enter them. This feature is primarily for US customers. Personally, I like to have full manual control over it. On top of that, the less you spend the less transactions.</p>
<p>– Goal tracking: Set specific goals and track your progress towards them. A great feature.</p>
<p>– Multi Currency Accounts: This might not be necessary for most people, but as an expat, this is a must have.</p>
<p>– Debt repayment plans: Create a plan to pay off debt and get out of the red.</p>
<p>– Investment tracking: Monitor your investment accounts and get a better understanding of your financial health.</p>
<p>– Reports and insights: Get a detailed view of your spending and saving habits with YNAB’s reports and insights. This one could be better. Reporting is very basic.</p>
<p>– Live support: Get help with budgeting questions or technical issues from YNAB’s live customer support team.</p>

<h3 class="relative group">Conclusion
    <div id="conclusion" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#conclusion" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Creating a budget may seem daunting, but the effort is worthwhile. With patience and persistence, you’ll gain confidence in managing your finances and gain insight into your cash flow. This balance between income and expenses will enable you to save, invest, and spend on what truly matters to you.</p>
<p>When starting to use YNAB or any other budgeting tool, it’s important to be forgiving with yourself. Input numbers as accurately as possible. It’s likely that you will need to make adjustments for the first few months as you discover the difference between what you think you spend and what you actually spend.</p>
<p>If you’re interested in trying out YNAB, you can get a free month by clicking on my referral link. As a bonus, I will also get a free month!</p>
<p>==<strong><a href="https://ynab.com/"  target="_blank" rel="noreferrer">Signup YNAB</a></strong>==</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/do-you-need-a-budget-ynab-my-review.webp" medium="image"/></item><item><title>Trinity Study - Adjusted for 2025 and beyond</title><link>https://libreleo.com/posts/trinity-study-adjusted-for-2025-and-beyond/</link><pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/trinity-study-adjusted-for-2025-and-beyond/</guid><description>In 1998, three professors from Trinity University in San Antonio, Texas published a research paper known as the Trinity Study. This study is regarded as a major work on the topic of safe withdrawal rates for retirees. The authors used historical data to determine the amount of money that retirees can withdraw from their investment portfolios each year without running out of money.</description><content:encoded><![CDATA[<span class="flex cursor-pointer">
  
  
  
  
    <span
      class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400">
  
    
Updated: 17/11/2025

  </span>
</span>


<p>In 1998, three professors from Trinity University in San Antonio, Texas published a research paper known as the Trinity Study. This study is regarded as a major work on the topic of safe withdrawal rates for retirees. The authors used historical data to determine the amount of money that retirees can withdraw from their investment portfolios each year without running out of money. The study found that a withdrawal rate of 4% is safe for a balanced portfolio of stocks and bonds over a 30-year retirement period. The results of the study had a significant impact on the development of retirement planning strategies.</p>
<p>In the matrix below, having a portfolio split of 75% stocks/25% bonds, would give you a 77% success rate with a withdrawal of 6% of your initial portfolio.</p>
<figure><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="low"
    alt="Image Description"
    src="/images/Pasted%20image%2020251124200225.png"
    ></figure>
<p>Portfolio Success Rate with Inflation Adjusted Monthly Withdrawals: 1926 to 1997 (Percent of all past payout periods supported by the portfolio) Annualized Withdrawal Rate as a % of Initial Portfolio Value</p>

<h2 class="relative group">Adjusted Matrix for 2025
    <div id="adjusted-matrix-for-2025" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#adjusted-matrix-for-2025" aria-label="Anchor">#</a>
    </span>
    
</h2>
<figure><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="low"
    alt="Image Description"
    src="/images/Pasted%20image%2020251124200246.png"
    ></figure>
<p><strong>A few points to take into account:</strong></p>
<ol>
<li>A 4% withdrawal rate is safe for a balanced portfolio of stocks and bonds over a 30-year retirement period. It’s consistent with success rates for a 30-year horizon. However, for longer horizons, success probabilities deteriorate and a higher equity share is needed to maintain high success rates.</li>
<li>For example, while a 50-100% equity share and withdrawal rate of 4% or lower may provide consistently high success rates for a 30-year horizon, a 100% equity share is necessary to maintain high success rates over a 60-year horizon.</li>
<li>Withdrawal rates higher than 4% are not recommended</li>
<li>==Highest success probability is using 75-100% equity shares with a withdrawal strategy of 3.5% and under==</li>
</ol>
<p><strong>Additional reading.</strong></p>
<p>Cooley, Philip L., Hubbard, Carl M., and Walz, Daniel T. <a href="https://www.researchgate.net/publication/228707593_Sustainable_withdrawal_rates_from_your_retirement_portfolio"  target="_blank" rel="noreferrer">“Sustainable withdrawal rates from your retirement portfolio”</a><br>
Cooley, Philip L., Hubbard, Carl M., and Walz, Daniel T. <a href="https://www.onefpa.org/journal/Pages/Portfolio%20Success%20Rates%20Where%20to%20Draw%20the%20Line.aspx"  target="_blank" rel="noreferrer">“Portfolio success rates: where to draw the line.”</a></p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/trinity-study-adjusted-for-2025-and-beyond.webp" medium="image"/></item><item><title>DCA Dollar Cost Averaging - The Pros and Cons</title><link>https://libreleo.com/posts/dca-dollar-cost-averaging-pros-cons/</link><pubDate>Sun, 17 Nov 2024 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/dca-dollar-cost-averaging-pros-cons/</guid><description>Dollar cost averaging (DCA) is a strategy in which an investor invests a fixed amount of money at regular intervals. Learn the pros, cons, and variations.</description><content:encoded><![CDATA[<div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl">
  Dollar-cost averaging (DCA) is a strategy where you invest a fixed amount of money at regular intervals, regardless of the price. This helps smooth out volatility and can reduce the impact of market fluctuations on your overall return.
</div>

<p>Whether or not you should use dollar-cost averaging depends on your individual circumstances and financial goals.</p>
<hr>

<h2 class="relative group">How Dollar Cost Averaging Works in Practice
    <div id="how-dollar-cost-averaging-works-in-practice" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-dollar-cost-averaging-works-in-practice" aria-label="Anchor">#</a>
    </span>
    
</h2>

<h3 class="relative group">Different Variations of DCA
    <div id="different-variations-of-dca" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#different-variations-of-dca" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>There are several variations of dollar cost averaging that investors may consider:</p>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Time-Weighted">
          <span class="flex items-center gap-1">
            
            Time-Weighted
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Value-Weighted">
          <span class="flex items-center gap-1">
            
            Value-Weighted
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="2"
          data-tab-label="Risk-Adjusted">
          <span class="flex items-center gap-1">
            
            Risk-Adjusted
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="3"
          data-tab-label="Tactical">
          <span class="flex items-center gap-1">
            
            Tactical
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        
<h3 class="relative group">Time-Weighted DCA
    <div id="time-weighted-dca" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#time-weighted-dca" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Invest a fixed amount of money at regular intervals, regardless of the price of the asset.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Best For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Investors who want a simple &quot;set it and forget it&quot; approach that reduces the impact of market fluctuations on the overall purchase price.</p></div></div>
      </div><div class="tab__panel " data-tab-index="1">
        
<h3 class="relative group">Value-Weighted DCA
    <div id="value-weighted-dca" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#value-weighted-dca" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Invest a fixed dollar amount based on the value of the asset at the time of purchase.</p>
<ul>
<li><strong>High price?</strong> Invest a smaller amount</li>
<li><strong>Low price?</strong> Invest a larger amount</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Best For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Investors who want to buy more when prices are low and less when prices are high. See my article on <a href="/posts/value-averaging-deep-dive/" >Value Averaging</a> for a deeper dive.</p></div></div>
      </div><div class="tab__panel " data-tab-index="2">
        
<h3 class="relative group">Risk-Adjusted DCA
    <div id="risk-adjusted-dca" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#risk-adjusted-dca" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Adjust the amount invested based on the perceived risk of the asset.</p>
<ul>
<li><strong>Less risky asset?</strong> Invest a larger amount</li>
<li><strong>More risky asset?</strong> Invest a smaller amount</li>
</ul>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Best For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Investors with diversified portfolios who want to weight their investments by risk tolerance.</p></div></div>
      </div><div class="tab__panel " data-tab-index="3">
        
<h3 class="relative group">Tactical DCA
    <div id="tactical-dca" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tactical-dca" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Incorporate market trends and economic indicators into decisions about when and how much to invest.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="info">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span></div>
        <div class="grow">
          My Approach
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>I use different S&amp;P 500 levels as triggers. Use Fibonacci. For example:</p>
<ul>
<li>Invest 1/3 when S&amp;P 500 hits 3600</li>
<li>Another 1/3 at 3200</li>
<li>Final 1/3 at 2800</li>
</ul></div></div><div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Best For
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>More experienced investors who want to take advantage of market conditions while still maintaining discipline.</p></div></div>
      </div></div>
</div>

<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Important
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>These variations of DCA involve more complexity and require more time and effort to implement than a simple DCA strategy. Carefully consider your goals, risk tolerance, and available resources before deciding which variation is right for you.</p></div></div><hr>

<h3 class="relative group">Rebalancing Your Portfolio
    <div id="rebalancing-your-portfolio" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#rebalancing-your-portfolio" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Because asset prices fluctuate over time, the proportion of each asset in your portfolio may change as a result of DCA.</p>
<p><strong>Example:</strong> If one asset increases significantly in price, it may make up a larger portion of your portfolio, while other assets shrink. This can make your portfolio unbalanced and potentially riskier than intended.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          Best Practice
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Periodically review and rebalance your portfolio to ensure it stays aligned with your risk tolerance and financial goals.</p></div></div><div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Watch Out
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><p>Rebalancing involves transaction costs (fees for buying and selling) which may impact your overall return.</p></div></div><hr>

<h2 class="relative group">The Pros and Cons of DCA
    <div id="the-pros-and-cons-of-dca" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-pros-and-cons-of-dca" aria-label="Anchor">#</a>
    </span>
    
</h2>
<div
  class="tab__container w-full"
  
  >
  <div class="tab__nav" role="tablist">
    <div class="flex flex-wrap gap-1"><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 tab--active"
          role="tab"
          aria-selected="true"
          data-tab-index="0"
          data-tab-label="Pros">
          <span class="flex items-center gap-1">
            
            Pros
          </span>
        </button><button
          class="tab__button px-3 py-2 text-sm font-semibold border-b-2 border-transparent rounded-t-md hover:bg-neutral-200 dark:hover:bg-neutral-700 "
          role="tab"
          aria-selected="false"
          data-tab-index="1"
          data-tab-label="Cons">
          <span class="flex items-center gap-1">
            
            Cons
          </span>
        </button></div>
  </div>
  <div class="tab__content mt-4"><div class="tab__panel tab--active" data-tab-index="0">
        <div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="success">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"/></svg>
</span></div>
        <div class="grow">
          Benefits of Dollar Cost Averaging
        </div>
      </div></div><p><strong>1. Risk Reduction</strong></p>
<p>By buying an asset in smaller increments over time, you reduce the impact of short-term price fluctuations on the overall purchase price. This helps reduce the overall risk of the investment.</p>
<p><strong>2. Emotional Detachment</strong></p>
<p>DCA helps you avoid impulsive investment decisions based on short-term market movements or emotions. By following a predetermined plan, you make more rational, long-term decisions.</p>
<p><strong>3. Simplicity</strong></p>
<p>DCA is a relatively simple strategy that's easy to implement and manage. It requires minimal time and effort to set up and maintain. Great for investors who don't have time to actively manage their investments.</p>
<p><strong>4. Potential for Better Returns</strong></p>
<p>By investing a fixed amount at regular intervals, you may be able to buy an asset at an average price lower than the overall market price. This can potentially lead to better returns over the long term.</p>

      </div><div class="tab__panel " data-tab-index="1">
        <div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          Drawbacks of Dollar Cost Averaging
        </div>
      </div></div><p><strong>1. Opportunity Cost</strong></p>
<p>By investing a fixed amount at regular intervals, you may miss the opportunity to buy an asset when it's trading at a lower price. This can result in a higher overall purchase price, reducing potential returns.</p>
<p><strong>2. Market Timing Risk</strong></p>
<p>DCA relies on the assumption that the price will eventually go up, but there's no guarantee. If the price declines instead of increasing, you may end up with a lower return or even a loss.</p>
<p><strong>3. Transaction Costs</strong></p>
<p>DCA involves making multiple purchases over time, which can result in higher transaction costs due to fees for buying and selling. This can eat into your overall return.</p>
<p><strong>4. Limited Flexibility</strong></p>
<p>DCA requires committing to a fixed amount at regular intervals, regardless of market conditions. This limits your ability to adjust your strategy in response to market changes or your own financial circumstances.</p>

      </div></div>
</div>

<hr>

<h2 class="relative group">Quick Summary
    <div id="quick-summary" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#quick-summary" aria-label="Anchor">#</a>
    </span>
    
</h2>
<table>
	<thead>
			<tr>
					<th>Aspect</th>
					<th>DCA Advantage</th>
					<th>DCA Disadvantage</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Risk</strong></td>
					<td>Reduces impact of volatility</td>
					<td>Assumes prices will rise</td>
			</tr>
			<tr>
					<td><strong>Emotion</strong></td>
					<td>Removes impulsive decisions</td>
					<td>Can feel frustrating in dips</td>
			</tr>
			<tr>
					<td><strong>Effort</strong></td>
					<td>Simple and automated</td>
					<td>Multiple transactions = fees</td>
			</tr>
			<tr>
					<td><strong>Flexibility</strong></td>
					<td>Disciplined approach</td>
					<td>Can't easily adjust</td>
			</tr>
	</tbody>
</table>
<hr>

<h2 class="relative group">Conclusion: Should You Use DCA?
    <div id="conclusion-should-you-use-dca" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#conclusion-should-you-use-dca" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Whether or not to use dollar-cost averaging is a decision based on your individual financial goals and risk tolerance.</p>
<div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="tip">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>
</span></div>
        <div class="grow">
          DCA Works Well If...
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li>You want a simple, hands-off investment approach</li>
<li>You're investing for the long term</li>
<li>You want to remove emotion from investing</li>
<li>You have a regular income to invest consistently</li>
</ul></div></div><div class="admonition relative overflow-hidden rounded-lg border-l-4 my-3 px-4 py-3 shadow-sm" data-type="warning">
      <div class="flex items-center gap-2 font-semibold text-inherit">
        <div class="flex shrink-0 h-5 w-5 items-center justify-center text-lg"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/></svg>
</span></div>
        <div class="grow">
          DCA May Not Be Ideal If...
        </div>
      </div><div class="admonition-content mt-3 text-base leading-relaxed text-inherit"><ul>
<li>You have a lump sum to invest and believe the market will rise</li>
<li>You want maximum flexibility to time the market</li>
<li>Transaction fees are high relative to your investment amount</li>
</ul></div></div><p>It can be a useful strategy for many investors, but it may not be the best option for everyone. Carefully consider the potential benefits and drawbacks before deciding.</p>
<hr>
<p><strong>Related:</strong> For a more active alternative to DCA, check out my article on <a href="/posts/value-averaging-deep-dive/" >Value Averaging</a>, a strategy that forces you to buy low and sell high automatically.</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/dca-dollar-cost-averaging-pros-cons.webp" medium="image"/></item><item><title>Are You Saving Enough? Why Income-Multiple Rules Get FI Wrong</title><link>https://libreleo.com/posts/are-you-saving-enough/</link><pubDate>Mon, 11 Nov 2024 00:00:00 +0000</pubDate><guid>https://libreleo.com/posts/are-you-saving-enough/</guid><description>The JP Morgan savings multiplier is a popular sanity check. It's also the wrong question. Here's a sharper one: not 'how much have I saved?' but 'how high is my savings rate?'</description><content:encoded><![CDATA[<p>&quot;Am I saving enough? I'm 45, I make X, I have Y in savings. Am I on track?&quot;</p>
<p>The honest answer is: it depends on too many things to tell you in a one-line reply. But the rules-of-thumb that get thrown around (the JP Morgan savings multiplier matrix, the Fidelity &quot;10 times income at 67&quot; guideline, the Vanguard percentages) are all wrong for the same reason. They answer the wrong question.</p>

<h2 class="relative group">What the multipliers say
    <div id="what-the-multipliers-say" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-the-multipliers-say" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>JP Morgan Asset Management publishes a savings-by-income-multiple matrix that's widely circulated:</p>
<table>
	<thead>
			<tr>
					<th>Age</th>
					<th>$50,000</th>
					<th>$100,000</th>
					<th>$200,000</th>
					<th>$300,000</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>35</td>
					<td>0.9x</td>
					<td>2.0x</td>
					<td>3.0x</td>
					<td>3.5x</td>
			</tr>
			<tr>
					<td>40</td>
					<td>1.6x</td>
					<td>2.9x</td>
					<td>4.2x</td>
					<td>4.8x</td>
			</tr>
			<tr>
					<td>45</td>
					<td>2.5x</td>
					<td>4.0x</td>
					<td>5.5x</td>
					<td>6.2x</td>
			</tr>
			<tr>
					<td>50</td>
					<td>3.5x</td>
					<td>5.3x</td>
					<td>7.1x</td>
					<td>8.0x</td>
			</tr>
			<tr>
					<td>55</td>
					<td>4.7x</td>
					<td>6.9x</td>
					<td>9.1x</td>
					<td>10.1x</td>
			</tr>
			<tr>
					<td>60</td>
					<td>6.2x</td>
					<td>8.8x</td>
					<td>11.4x</td>
					<td>12.6x</td>
			</tr>
			<tr>
					<td>65</td>
					<td>8.1x</td>
					<td>11.3x</td>
					<td>14.5x</td>
					<td>16.0x</td>
			</tr>
	</tbody>
</table>
<p>Source: J.P. Morgan Asset Management.</p>
<p>The bottom-right corner is your target at retirement: roughly 16x your final income for high earners, 8x for lower earners.</p>
<p>So a 45-year-old earning $150,000 should have around 4.8x income saved, or $720,000. That's a useful sanity check. It tells you whether you're in the rough neighbourhood of &quot;on track&quot; versus &quot;way behind.&quot;</p>
<p>But it doesn't answer the question you actually need to answer.</p>

<h2 class="relative group">Why income multiples get FI wrong
    <div id="why-income-multiples-get-fi-wrong" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-income-multiples-get-fi-wrong" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Three structural problems.</p>
<p><strong>The denominator is wrong.</strong> Income multiples assume you spend a fixed percentage of your income, scaling proportionally. If you earn $200,000 and spend $180,000, you need a much bigger nest egg than someone who earns $200,000 and spends $80,000. The matrix can't tell the difference. The frugal high earner retires a decade before the high-spending high earner.</p>
<p><strong>The geography is wrong.</strong> These matrices assume US-based retirement: US tax brackets, US life expectancy, US Social Security expectations, US cost of living. If you're an expat in Dubai, the math is completely different. If you plan to retire in the Philippines, even more different. A $720,000 portfolio funds 30 years in Cebu with margin to spare. The same $720,000 funds 12 years in Manhattan.</p>
<p><strong>The timeline is wrong.</strong> The multipliers are built around traditional retirement at 65. Most FI people target a much earlier exit. The income multiple at 45 that &quot;puts you on track&quot; for a 65-year-old retirement is wildly short of what you'd need to retire at 50.</p>
<p>So the matrix is a sanity check, not a target. Treat it that way.</p>

<h2 class="relative group">A better question
    <div id="a-better-question" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-better-question" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The right question isn't &quot;how much have I saved?&quot; It's &quot;what's my savings rate, and how long until that rate compounds into my FI number?&quot;</p>
<p>This pivot changes everything because the savings rate is the only variable you fully control. You can't easily change your income overnight. You can't move the market. You absolutely can adjust how much of your paycheck stays.</p>
<p>The math, approximately (using 7% real returns on a 4% withdrawal rate):</p>
<table>
	<thead>
			<tr>
					<th>Savings rate</th>
					<th>Years to FI</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>10%</td>
					<td>51</td>
			</tr>
			<tr>
					<td>20%</td>
					<td>37</td>
			</tr>
			<tr>
					<td>30%</td>
					<td>28</td>
			</tr>
			<tr>
					<td>40%</td>
					<td>22</td>
			</tr>
			<tr>
					<td>50%</td>
					<td>17</td>
			</tr>
			<tr>
					<td>60%</td>
					<td>12</td>
			</tr>
			<tr>
					<td>70%</td>
					<td>8.5</td>
			</tr>
	</tbody>
</table>
<p>Notice what this table doesn't depend on: your income. Doesn't matter if you earn $50,000 or $500,000. If you save 50% of it, you hit FI in roughly 17 years. The percentage is what matters.</p>
<p>Every percentage point you push your savings rate up shaves roughly a year off the FI timeline at the high end, and several months at the low end. There's no other lever in personal finance with that kind of leverage.</p>
<p>For the full mechanics, see <a href="/posts/savings-rate-fire-guide/" >the Savings Rate FIRE Guide</a> and <a href="/calculators/how-to-use-savings-rate-calculator/" >the Savings Rate Calculator</a>.</p>

<h2 class="relative group">The expat overlay
    <div id="the-expat-overlay" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-expat-overlay" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>If you're in the GCC, this calculation gets a tailwind. 0% income tax means a 50% savings rate is a real 50% savings rate, not a 50% post-tax savings rate that's actually 35% of gross.</p>
<p>If you're earning AED 30,000 a month and saving AED 15,000, you're banking AED 180,000 a year. An American counterpart earning the rough equivalent ($96,000 gross) and saving 50% post-tax is banking about $35,000 after federal and state taxes wipe out a third of gross.</p>
<p>Same effort, very different speed.</p>

<h2 class="relative group">What to actually do
    <div id="what-to-actually-do" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-to-actually-do" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Three steps, in order.</p>
<p><strong>Calculate your current savings rate.</strong> Take everything you saved last year. 401k matches, brokerage deposits, the mortgage principal portion, everything. Divide by your gross income. That's your real number. Most people are surprised when they see it. It's almost always lower than they'd estimated.</p>
<p><strong>Figure out your FI number.</strong> Use <a href="/calculators/interactive_calculator_to_your_fire_number/" >the FIRE calculator</a>. Plug in your annual spending (not income, spending), your withdrawal rate, and any other income sources. The output is your target portfolio.</p>
<p><strong>Use the savings rate table to estimate your timeline.</strong> Then ask the hard question: are you comfortable with that timeline? If yes, keep going. If no, the only honest answer is to push the savings rate up. There's no other lever.</p>
<p>The JP Morgan matrix is a sanity check. Your savings rate is the actual answer.</p>
<p>Start with the rate.</p>
<p>Chris</p>

  
  
  
  



<div
  
    class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"
  
  >
  <span
    
      class="text-primary-400 pe-3 flex items-center"
    
    >
    <span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"/></svg>
</span>
  </span>

  <span
    
      class="dark:text-neutral-300"
    
    ><strong>Disclaimer:</strong> This post reflects my personal views and is for educational purposes only. It is not financial advice. Every situation is different. Always check your country's specific tax and investment rules before acting. See the full <a href="/disclaimer/" >Disclaimer</a> and <a href="/privacy/" >Privacy Policy</a> for the long version.</span>
</div>

]]></content:encoded><media:content url="https://libreleo.com/img/featured/are-you-saving-enough.webp" medium="image"/></item></channel></rss>