<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Backtest guides</title><link>https://lifolio.io/en/guide</link><description>How to read backtest results, why results change with the period, KRW vs USD returns, daily vs month-end MDD, and what metrics such as CAGR and Sharpe mean.</description><language>en</language><atom:link href="https://lifolio.io/en/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Fri, 06 Nov 2026 00:00:00 GMT</lastBuildDate><item><title>The limits of backtesting: why the date range you pick changes the result</title><link>https://lifolio.io/en/guide/backtest-limits</link><guid isPermaLink="true">https://lifolio.io/en/guide/backtest-limits</guid><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><description>Ending three years later cut an SPY/TLT portfolio&apos;s annualized return from 11.26% to 7.63%. See how the date range, holding period and crises shift backtests.</description><content:encoded><![CDATA[<article class="guide-article svelte-fndm5u"><header class="guide-head svelte-fndm5u"><nav class="crumbs svelte-fndm5u" aria-label="Breadcrumb"><a href="https://lifolio.io/en" class="svelte-fndm5u">Lifolio</a><span aria-hidden="true">/</span><a href="https://lifolio.io/en/guide" class="svelte-fndm5u">Backtest Guides</a></nav> <h1 class="svelte-fndm5u">The limits of backtesting: why the date range you pick changes the result</h1> <p class="description svelte-fndm5u">Ending three years later cut an SPY/TLT portfolio's annualized return from 11.26% to 7.63%. See how the date range, holding period and crises shift backtests.</p> <div class="meta svelte-fndm5u"><!--[0--><span class="position svelte-fndm5u">Guide 2 of 5</span><!--]--> <!--[0--><span class="reading svelte-fndm5u">9 min read</span><!--]--> <div class="byline svelte-1fmmslr"><a href="https://lifolio.io/en/about" class="svelte-1fmmslr">Written by Lifolio</a> <span>Published <time datetime="2026-11-03" class="svelte-1fmmslr">2026-11-03</time></span> <!--[0--><span>Updated <time datetime="2026-11-06" class="svelte-1fmmslr">2026-11-06</time></span><!--]--> <span>Screen reference date <time datetime="2026-11-06" class="svelte-1fmmslr">2026-11-06</time></span></div><!----></div> <!--[0--><img class="cover svelte-fndm5u" src="https://lifolio.io/guides/covers/backtest-limits-en.webp" alt="" width="1600" height="840" fetchpriority="high" decoding="async"/><!--]--></header> <div class="guide-layout svelte-fndm5u"><div class="guide-main svelte-fndm5u"><!--[0--><details class="toc-mobile svelte-fndm5u"><summary class="svelte-fndm5u">In this guide <span class="svelte-fndm5u">7</span></summary> <ol class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/backtest-limits#section-1" class="svelte-fndm5u">What changes when you add three more years?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-2" class="svelte-fndm5u">Does sliding the start date give a better answer?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-3" class="svelte-fndm5u">Is the loss share a probability of future losses?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-4" class="svelte-fndm5u">Don't bonds cushion the fall in a crisis?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-5" class="svelte-fndm5u">What assumptions sit behind the numbers?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-6" class="svelte-fndm5u">What should you check in your own results?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-7" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol></details><!--]--> <div class="guide-body svelte-fndm5u"><!----><p>Suppose you put $10,000 into 60% SPY and 40% TLT, rebalanced monthly, and held it from the first trading day of 2015 through the end of 2021. Lifolio&#39;s results screen hands you a pretty impressive report card: an annualized return of 11.26% and a Sharpe ratio of 1.18. Keep the assets and rules exactly the same, push only the end date out to the end of 2024, and the same portfolio&#39;s numbers change like this.</p>
<div class="guide-table"><table>
<thead>
<tr>
<th>Backtest period</th>
<th>Annualized return</th>
<th>Max drawdown (daily)</th>
<th>Sharpe ratio</th>
</tr>
</thead>
<tbody><tr>
<td>2015-01-02 to 2021-12-31</td>
<td>11.26%</td>
<td>−18.5%</td>
<td>1.18</td>
</tr>
<tr>
<td>2015-01-02 to 2024-12-31</td>
<td>7.63%</td>
<td>−27.65%</td>
<td>0.55</td>
</tr>
</tbody></table></div>
<p class="guide-try"><a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000&amp;monthly=0&amp;currency=USD&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2021-12-31&amp;benchmark=SPY">Open the version that ends in 2021</a></p>
<p>The table values come from the All metrics window on the results screen; the summary cards show only one decimal place. Judged by the first row alone, this mix offers decent returns and a tolerable drawdown. In the second row, the <a href="https://lifolio.io/en/guide/metrics#sharpe">Sharpe ratio</a>, which measures return per unit of risk, is cut by more than half. Just three more years of data, and the verdict changes. A backtest doesn&#39;t answer &quot;Is this portfolio good?&quot; It answers &quot;How did this portfolio do over this period?&quot; The full settings, including dividend reinvestment and the benchmark, are in <a href="https://lifolio.io/en/guide/how-to-read-backtest-results">How to read backtest results</a>.</p>
<aside class="guide-summary" aria-label="Three-line summary"><p class="guide-summary-title">Three-line summary</p><ul>
<li>The same 60% SPY · 40% TLT returns 11.26% a year if the backtest ends at the end of 2021, and 7.63% a year if it runs through the end of 2024.</li>
<li>18 of 109 one-year holding periods lost money and none of five years or longer did, but both figures come from overlapping slices of a single stretch of history, 2015–2024.</li>
<li>The 40% in bonds held losses to about half of SPY&#39;s in the 2018 and 2020 sell-offs, but in 2022, when TLT returned −31.24%, the portfolio lost more than SPY.</li>
</ul></aside>
<h2 id="section-1">What changes when you add three more years?</h2>
<p>The portfolio returned −23.31% in 2022, +16.43% in 2023 and +10.68% in 2024. The last two were good years, but not good enough to make up for everything lost in 2022, so a balance of about $21,100 at the end of 2021 stood at $20,852 at the end of 2024, slightly lower than three years earlier.</p>
<p>The max drawdown deepened because the 2022 decline was bigger than the 2020 COVID-19 crash. The dates of that decline and how long it took to recover are covered separately in <a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end">MDD on a daily vs month-end basis, and recovery time</a>. Volatility rose from 8.68% to 11.35% while returns fell, so a sharp drop in the Sharpe ratio was all but inevitable.</p>
<h2 id="section-2">Does sliding the start date give a better answer?</h2>
<p>To depend less on any single period, look at Holding-period outcomes in the Performance section. It slides an N-year window forward one month at a time and records the annualized return of each window, a calculation known as <a href="https://lifolio.io/en/guide/metrics#rolling-returns">rolling returns</a>. For a 1-year holding period, the windows run January–December 2015, February 2015–January 2016 and so on, 109 windows in all.</p>
<figure><img src="https://lifolio.io/guides/backtest-limits/rolling-en.webp" alt="Holding-period outcomes. For 1-, 3-, 5- and 7-year holds, a bar runs from the worst to the best annualized return, with the loss share on the right: 17% (18/109), 6% (5/85), 0% (0/61) and 0% (0/37). The return spread and the worst · average · best table are folded underneath" width="1416" height="924" loading="lazy" decoding="async"><figcaption>Holding-period outcomes (SPY 60% · TLT 40%, 2015-01-02 to 2024-12-31)</figcaption></figure>
<p class="guide-try"><a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000&amp;monthly=0&amp;currency=USD&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2024-12-31&amp;benchmark=SPY">Open this example in Lifolio</a></p>
<p>Each bar joins the worst and best windows for that holding period, and any part left of 0% is colored red. Expand &quot;Worst · average · best by holding period (table)&quot; underneath to get the numbers, averages included, or expand &quot;Return spread for one holding period&quot; for a bar chart of how the 1-year returns were spread out (in the example, the medians are +10.1% for the portfolio and +15.3% for SPY). The screen shows these to one decimal place.</p>
<div class="guide-table"><table>
<thead>
<tr>
<th>Holding period</th>
<th>Windows</th>
<th>Worst</th>
<th>Average</th>
<th>Best</th>
</tr>
</thead>
<tbody><tr>
<td>1 year</td>
<td>109</td>
<td>−23.31%</td>
<td>8.49%</td>
<td>28.40%</td>
</tr>
<tr>
<td>3 years</td>
<td>85</td>
<td>−1.36%</td>
<td>7.94%</td>
<td>19.71%</td>
</tr>
<tr>
<td>5 years</td>
<td>61</td>
<td>+5.01%</td>
<td>9.07%</td>
<td>14.19%</td>
</tr>
<tr>
<td>7 years</td>
<td>37</td>
<td>+5.87%</td>
<td>7.90%</td>
<td>11.26%</td>
</tr>
</tbody></table></div>
<p>The best 7-year figure, 11.26%, is the same number this article opened with. January 2015 through December 2021 was the best of the 37 seven-year windows, and the worst returned 5.87% a year. Pick an end date by hand and you can land on the best or the worst window like this without meaning to.</p>
<figure><img src="https://lifolio.io/guides/backtest-limits/holding-loss-en.webp" alt="Bar chart of the share of windows that ended in a loss for each holding period: 1 year 16.5% (18/109), 3 years 5.9% (5/85), 5 years 0% (0/61), 7 years 0% (0/37)" width="1560" height="806" loading="lazy" decoding="async"><figcaption>Share of windows that ended in a loss · N-year windows moved forward one month at a time (SPY 60% · TLT 40%, 2015-01-02 to 2024-12-31)</figcaption></figure>
<p>Held for just one year, the portfolio lost money 16.5% of the time (18 of 109 windows). The worst of those windows ran from January to December 2022, in other words calendar year 2022. The longer the holding period, the better the worst result, and from five years on there are no losing windows at all. The sentence at the top of Holding-period outcomes says the same thing, that no five-year holding period lost money no matter when you bought, and both that sentence and summary card ④ round the 1-year loss share to 17%.</p>
<h2 id="section-3">Is the loss share a probability of future losses?</h2>
<p>No. Two neighboring 1-year windows share 11 of their 12 months, so one big decline like 2022 turns window after window that overlaps it into a loss. In fact, 14 of the 18 losing windows include part of 2022. The result is closer to one event counted many times than to 109 independent trials.</p>
<p>The same goes for the 0% at five years. The 61 windows are overlapping slices of one stretch of history, 2015–2024. They show that no five-year stretch within these ten years lost money. They don&#39;t prove that holding for five years protects you from losses. The 10-year holding period has only one window (7.63% a year), so it hardly counts as a distribution. That is why the distribution chart carries a note saying these are historical holding-period results, not the probability of future returns. To see when the losing windows clustered, expand &quot;Return spread for one holding period&quot; and switch it to the Over time view, which lays them out in chronological order.</p>
<h2 id="section-4">Don&#39;t bonds cushion the fall in a crisis?</h2>
<p>Cumulative returns during crisis windows, in the Risk &amp; recovery section, finds the predefined market crises that overlap your backtest period and calculates the cumulative return over each one from daily prices. This example covers three of them.</p>
<figure><img src="https://lifolio.io/guides/backtest-limits/crisis-en.webp" alt="The Cumulative returns during crisis windows card, comparing the portfolio's and SPY's declines with horizontal bars across three windows: Q4 2018 Selloff, COVID-19 Crash and 2022 Rate Hike Bear Market" width="940" height="518" loading="lazy" decoding="async"><figcaption>Cumulative returns during crisis windows (SPY 60% · TLT 40% vs SPY, 2015-01-02 to 2024-12-31)</figcaption></figure>
<p>In the first two, the 40% in bonds did its job. In the fourth quarter of 2018, and again in spring 2020 when SPY lost more than a third of its value, the portfolio&#39;s decline was held to roughly half of SPY&#39;s. 2022 was different. As interest rates rose rapidly, long-term Treasuries fell along with stocks, and the 60/40 portfolio lost more than SPY both in the crisis window and for the full year. For 2022 as a whole, TLT returned −31.24%, SPY −18.17% and the portfolio −23.31%. The asset added as a cushion fell the most of the three.</p>
<p>The expectation that stocks and bonds move differently rests on how they behaved in the past, and even within these ten years it held twice and failed once. A backtest can&#39;t tell you whether the next crisis will look like 2020 or like 2022. The crisis list also includes the dot-com crash and the global financial crisis, but they don&#39;t appear in this result because the example starts in 2015.</p>
<h2 id="section-5">What assumptions sit behind the numbers?</h2>
<p>Beyond the period and the crises, every result rests on a few assumptions. Most are documented in <a href="https://lifolio.io/en/methodology">Methodology</a>, and they are where a backtest and a real account tend to part ways.</p>
<ul>
<li><strong>Common data period</strong>: The backtest covers only the period for which every selected asset has price data. Add an ETF that launched later and the start date shifts to match it, with a warning, and the crisis windows discussed above may drop out entirely. This example&#39;s start date was entered as Jan 1, 2015, but because that was a market holiday, the calculation began on the first trading day, Jan 2.</li>
<li><strong>Trade timing and costs</strong>: Monthly rebalancing assumes trades execute immediately at the closing price on the last trading day of each month; bid-ask spreads and execution delays are not modeled. The backtest screen has no field for transaction costs, so trading commissions and taxes are not deducted, and a real account can come out lower by that amount.</li>
<li><strong>Dividends</strong>: With dividend reinvestment on, distributions are reinvested in the same asset. With it off, they accumulate as cash. If a dividend record is missing or arrives late, that part of the return may be missing from the result too.</li>
<li><strong>Price data</strong>: ETF prices come primarily from Yahoo Finance daily closing prices and dividend data, and confirmed gaps or errors are filled in from fund company disclosures or other data providers. Because this is third-party data, errors and later corrections are possible. How they are handled is described in <a href="https://lifolio.io/en/data-sources">Data Sources</a>.</li>
<li><strong>Currency</strong>: The example is in US dollars. Choose KRW (Korean won) instead and the results pick up exchange-rate moves and use a different risk-free rate, so every number changes. The rules are in <a href="https://lifolio.io/en/guide/krw-vs-usd-results">Why KRW returns differ from USD returns</a>.</li>
</ul>
<h2 id="section-6">What should you check in your own results?</h2>
<p>Before drawing a conclusion from any one result, check three more things on the same screen: how much the numbers move when you rerun with the end date a few years earlier, how low the worst result goes in Holding-period outcomes, and which crises Cumulative returns during crisis windows includes and which it leaves out. None of these will tell you future returns, but they show how much the numbers in front of you depend on the period you chose.</p>
<section class="guide-faq"><h2 id="section-7">Frequently asked questions</h2>
<h3>Can I trust backtest results?</h3>
<p>You can trust the arithmetic, because it can be checked. The numbers in this article were verified by entering the same settings again and confirming that the same values came out. But those numbers only tell you what would have happened &quot;if you had held these assets over this period with these rules,&quot; and the execution assumptions and possible data errors described above still apply. No backtest can tell you future returns or the probability of a loss.</p>
<h3>How many years of data do you need for a backtest?</h3>
<p>This result doesn&#39;t point to a number of years that is enough. What it does show is that the shorter the window, the more widely the results were scattered. Returns over 1-year windows ranged from −23.31% to 28.40%, the worst 3-year window was still −1.36%, and losing windows disappeared only at five years and longer. On the other hand, 10 years of data contain only one 10-year window, so to compare several windows of a long holding period, you need a data history much longer than the period itself.</p>
<h3>What is survivorship bias?</h3>
<p>Survivorship bias is the distortion that comes from looking only at what has survived to the present. In a backtest, it creeps in because you pick the assets today. The list of assets you choose from in Lifolio is also current, so the assets in a result tend to be ones you know by name today and that are still around. The result doesn&#39;t show what became of other candidates you might have picked for the same purpose in 2015, so part of a good result may come from choosing with hindsight.</p>
</section>
<p class="guide-verify">The numbers in this article were verified by rerunning the same settings on Nov 6, 2026. If you spot an error, please let us know using the Send Feedback button at the bottom right of the screen.</p>
<!----></div> <!--[0--><aside class="related svelte-fndm5u" aria-labelledby="guide-related-heading"><h2 id="guide-related-heading" class="svelte-fndm5u">Related tools</h2> <ul class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/backtest" class="svelte-fndm5u">Backtest <span aria-hidden="true">→</span></a></li><!--]--></ul></aside><!--]--> <!--[0--><nav class="series svelte-fndm5u" aria-label="Guide order"><!--[0--><a class="previous svelte-fndm5u" href="https://lifolio.io/en/guide/how-to-read-backtest-results"><span class="svelte-fndm5u">← Previous</span>How to read backtest results: the four summary cards and the charts</a><!--]--> <!--[0--><a class="next svelte-fndm5u" href="https://lifolio.io/en/guide/krw-vs-usd-results"><span class="svelte-fndm5u">Next →</span>Why KRW returns differ from USD returns</a><!--]--></nav><!--]--></div> <aside class="guide-side svelte-fndm5u" aria-label="In this guide"><!--[0--><p class="side-title svelte-fndm5u">In this guide</p> <ol class="toc svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/backtest-limits#section-1" class="svelte-fndm5u">What changes when you add three more years?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-2" class="svelte-fndm5u">Does sliding the start date give a better answer?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-3" class="svelte-fndm5u">Is the loss share a probability of future losses?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-4" class="svelte-fndm5u">Don't bonds cushion the fall in a crisis?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-5" class="svelte-fndm5u">What assumptions sit behind the numbers?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-6" class="svelte-fndm5u">What should you check in your own results?</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits#section-7" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol><!--]--> <!--[0--><p class="side-title svelte-fndm5u">All guides</p> <ol class="series-list svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results" class="svelte-fndm5u"><span class="num svelte-fndm5u">1</span>How to read backtest results: the four summary cards and the charts</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits" aria-current="page" class="svelte-fndm5u"><span class="num svelte-fndm5u">2</span>The limits of backtesting: why the date range you pick changes the result</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results" class="svelte-fndm5u"><span class="num svelte-fndm5u">3</span>Why KRW returns differ from USD returns</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end" class="svelte-fndm5u"><span class="num svelte-fndm5u">4</span>Maximum drawdown (MDD) explained: daily vs month-end MDD and recovery time</a></li><li><a href="https://lifolio.io/en/guide/metrics" class="svelte-fndm5u"><span class="num svelte-fndm5u">5</span>Backtest metrics glossary: CAGR, MDD, Sharpe and Calmar ratios explained</a></li><!--]--></ol><!--]--></aside></div></article>]]></content:encoded></item>
<item><title>How to read backtest results: the four summary cards and the charts</title><link>https://lifolio.io/en/guide/how-to-read-backtest-results</link><guid isPermaLink="true">https://lifolio.io/en/guide/how-to-read-backtest-results</guid><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><description>Read the Final Balance, CAGR, max drawdown and Loss after a 1-year hold cards and the charts below them, using a 10-year SPY/TLT backtest as the example.</description><content:encoded><![CDATA[<article class="guide-article svelte-fndm5u"><header class="guide-head svelte-fndm5u"><nav class="crumbs svelte-fndm5u" aria-label="Breadcrumb"><a href="https://lifolio.io/en" class="svelte-fndm5u">Lifolio</a><span aria-hidden="true">/</span><a href="https://lifolio.io/en/guide" class="svelte-fndm5u">Backtest Guides</a></nav> <h1 class="svelte-fndm5u">How to read backtest results: the four summary cards and the charts</h1> <p class="description svelte-fndm5u">Read the Final Balance, CAGR, max drawdown and Loss after a 1-year hold cards and the charts below them, using a 10-year SPY/TLT backtest as the example.</p> <div class="meta svelte-fndm5u"><!--[0--><span class="position svelte-fndm5u">Guide 1 of 5</span><!--]--> <!--[0--><span class="reading svelte-fndm5u">10 min read</span><!--]--> <div class="byline svelte-1fmmslr"><a href="https://lifolio.io/en/about" class="svelte-1fmmslr">Written by Lifolio</a> <span>Published <time datetime="2026-11-03" class="svelte-1fmmslr">2026-11-03</time></span> <!--[0--><span>Updated <time datetime="2026-11-06" class="svelte-1fmmslr">2026-11-06</time></span><!--]--> <span>Screen reference date <time datetime="2026-11-06" class="svelte-1fmmslr">2026-11-06</time></span></div><!----></div> <!--[0--><img class="cover svelte-fndm5u" src="https://lifolio.io/guides/covers/how-to-read-backtest-results-en.webp" alt="" width="1600" height="840" fetchpriority="high" decoding="async"/><!--]--></header> <div class="guide-layout svelte-fndm5u"><div class="guide-main svelte-fndm5u"><!--[0--><details class="toc-mobile svelte-fndm5u"><summary class="svelte-fndm5u">In this guide <span class="svelte-fndm5u">7</span></summary> <ol class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-1" class="svelte-fndm5u">What the four cards tell you, and what they hide</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-2" class="svelte-fndm5u">Example settings</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-3" class="svelte-fndm5u">The growth chart: look at how wide the dips are, not just how deep</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-4" class="svelte-fndm5u">Annual returns: year by year against SPY</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-5" class="svelte-fndm5u">Three takeaways from this result</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-6" class="svelte-fndm5u">Four checks to run on your own results</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-7" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol></details><!--]--> <div class="guide-body svelte-fndm5u"><!----><p>Run a backtest and four summary cards appear at the top of the results screen. For a portfolio split 60/40 between SPY and TLT over 10 years, they read $20,852, +7.6%, −27.6% and 17%. In plain terms: the starting $10,000 a little more than doubled, that growth works out to 7.6% a year compounded, at one point the portfolio was down more than a quarter from its peak, and if you had bought in any month and held for just one year, you would have ended with a loss about one time in six.</p>
<p>What none of the four numbers tells you is whether the portfolio actually held up better than SPY alone in down markets, or whether the bonds cushioned every fall. Those answers are in the charts and annual return bars below the cards, so we&#39;ll start at the top and work down.</p>
<aside class="guide-summary" aria-label="Three-line summary"><p class="guide-summary-title">Three-line summary</p><ul>
<li>Each card answers one question: where you ended up ($20,852), how fast the money grew each year (+7.6%), how deep the worst fall was (−27.6%) and how often a 1-year hold ended in a loss (17%).</li>
<li>The same mix lost less than half as much as SPY in the 2020 COVID crash (−16.2% vs −33.7%), but in 2022, when TLT returned −31.24%, it lost more than SPY.</li>
<li>Simply moving the end date back to the end of 2021 cuts the share of 1-year holds that lost money from 17% to 5%. The card numbers depend heavily on the period you pick.</li>
</ul></aside>
<figure><img src="https://lifolio.io/guides/how-to-read-backtest-results/kpis-annotated-en.webp" alt="The four summary cards, numbered: ① Final Balance $20,852, ② Annualized return +7.6%, ③ Max drawdown · daily −27.6%, ④ Loss after a 1-year hold 17%" width="1461" height="257" loading="lazy" decoding="async"><figcaption>SPY 60% · TLT 40%, 2015-01-02 to 2024-12-31, in USD. Screenshot taken Nov 6, 2026</figcaption></figure>
<p class="guide-try"><a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000&amp;monthly=0&amp;currency=USD&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2024-12-31&amp;benchmark=SPY">Open this example in Lifolio</a></p>
<h2 id="section-1">What the four cards tell you, and what they hide</h2>
<p>Click the info icon next to a card&#39;s name for a short note on how it is calculated.</p>
<h3>① Final Balance $20,852</h3>
<p>This is the portfolio&#39;s value on the last day of the period. The line below it, Invested $10,000, is the total amount you put in (including any contributions you set up), and Gain +$10,852 is the difference, with no taxes or trading costs deducted.</p>
<p>This card shows only where you ended up, not how you got there. In the example, the balance at the end of 2021 was already higher than on the final day. It fell sharply in 2022, climbed past its previous high in September 2024, then slipped back by year-end, so the period finished roughly where it had been three years earlier.</p>
<h3>② Annualized return +7.6%</h3>
<p>For $10,000 to grow to $20,852 in 10 years, it has to compound at about 7.6% a year. That single yearly compound rate for the whole period is the annualized return, also called CAGR (compound annual growth rate), and it excludes the effect of contributions and withdrawals. In the line underneath, &quot;2.1× in 10 yr&quot; expresses the same growth as a multiple, and &quot;5.4pp behind SPY&quot; means the portfolio&#39;s annualized return trailed SPY&#39;s by 5.4 percentage points (pp) over the same period.</p>
<p>What an average hides is how uneven the individual years were. The annual return bars further down show just how wide that range was. For the definition and formula, see <a href="https://lifolio.io/en/guide/metrics#cagr">Annualized return</a>.</p>
<h3>③ Max drawdown · daily −27.6%</h3>
<p>This is the deepest decline from a previous high, measured using the portfolio&#39;s value on every trading day. The figure based only on month-end balances, −26.21%, appears separately in the All metrics window. The line below, &quot;Peak $21,200 → low $15,338&quot;, gives the same decline in dollars. The line under that, 23 months from trough to recovery, is counted from the trough, so it measures a different span from the 990 days the portfolio spent below its high, which are counted from the peak. Why the two bases differ, along with the dates of the whole decline, is covered in <a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end">MDD on a daily vs month-end basis, and recovery time</a>.</p>
<h3>④ Loss after a 1-year hold 17%</h3>
<p>Take every 12-month window in the period, sliding forward one month at a time, and this is the share of them that ended in a loss. In the example, 18 of the 109 one-year windows (16.5%) lost money, which the card rounds to 17%. &quot;None when held 5+ years&quot; means that no window of five years or longer ended in a loss, and &quot;SPY 15%&quot; is the same share for SPY, counted the same way.</p>
<p>This share is a record of overlapping slices of a single history, the past 10 years, not a probability of future losses. <a href="https://lifolio.io/en/guide/backtest-limits">The limits of backtesting</a> explains why. The Sharpe ratio, which measures risk-adjusted return (0.55, SPY 0.76), is still available: expand &quot;Metric comparison &amp; market regimes&quot; in the vs SPY section further down, or open the All metrics window. For the calculation, see <a href="https://lifolio.io/en/guide/metrics#sharpe">Sharpe ratio</a>.</p>
<h2 id="section-2">Example settings</h2>
<p>The cards above and the charts below all come from a single run with these settings.</p>
<div class="guide-table"><table>
<thead>
<tr>
<th>Setting</th>
<th>Value</th>
</tr>
</thead>
<tbody><tr>
<td>Allocation</td>
<td>SPY 60% · TLT 40%</td>
</tr>
<tr>
<td>Period</td>
<td>2015-01-02 to 2024-12-31</td>
</tr>
<tr>
<td>Initial investment · contributions</td>
<td>$10,000 · none</td>
</tr>
<tr>
<td>Rebalancing · dividends</td>
<td>Monthly · reinvested</td>
</tr>
<tr>
<td>Benchmark · transaction cost</td>
<td>SPY · 0</td>
</tr>
<tr>
<td>Reporting currency</td>
<td>USD</td>
</tr>
</tbody></table></div>
<p>Run it in Korean won with ₩10,000,000 instead and every number changes. <a href="https://lifolio.io/en/guide/krw-vs-usd-results">Why KRW returns differ from USD returns</a> explains why.</p>
<h2 id="section-3">The growth chart: look at how wide the dips are, not just how deep</h2>
<p>Below the cards, the results run down a single page in this order: Performance, Risk &amp; recovery, vs SPY, Assets &amp; diversification, Scenarios, and Data &amp; export. Click a name in the section list at the top to jump straight to that section. The first chart in Performance, the top section, is the growth chart. Drawdown dates and crisis periods are in the next section down, Risk &amp; recovery.</p>
<figure><img src="https://lifolio.io/guides/how-to-read-backtest-results/growth-en.webp" alt="The results section list with Performance highlighted. Below it are growth lines for the portfolio and SPY, followed by the drop-from-peak chart" width="1479" height="1059" loading="lazy" decoding="async"><figcaption>Growth chart and drop-from-peak chart in the Performance section. SPY 60% · TLT 40%, 2015–2024, in USD</figcaption></figure>
<p>The solid green line is this portfolio, the dashed gray line is SPY, and the shaded bands are labeled COVID-19 (Feb–Mar 2020) and Bear Market (2022). In the 2020 band, the green line dips far less than the gray one and is back to its earlier level by early June. In the 2022 band, the two lines fall together, and the green line doesn&#39;t regain its earlier level until September 2024.</p>
<p>The Drawdown (same period) chart underneath plots how far below its previous high the portfolio was on each day. The deepest point is −27.6% in October 2022, matching card ③. The more telling detail is the width of each trough: the 2020 one is narrow and sharp, while the one that began at the end of 2021 stretches all the way to September 2024.</p>
<h2 id="section-4">Annual returns: year by year against SPY</h2>
<figure><img src="https://lifolio.io/guides/how-to-read-backtest-results/yearly-en.webp" alt="Bar chart showing the portfolio's and the benchmark's annual returns side by side from 2015 to 2024. The portfolio bars for 2018 and 2022 are red" width="1416" height="791" loading="lazy" decoding="async"><figcaption>The Annual Returns view of Annual &amp; monthly returns in the Performance section. 2015–2024, complete months only</figcaption></figure>
<p>Annual &amp; monthly returns opens on the annual bars. Click Heatmap to switch to a month-by-month grid. The summary line above the chart, &quot;Up in 8 of 10 years · best 2019 +24.9% · worst 2022 −23.3%&quot;, counts only years with all twelve months of data.</p>
<p>Green bars are the portfolio (red in losing years) and gray bars are the benchmark. Go through the ten years one by one and green comes out ahead only twice, in 2018 and 2020. And 2022 is the only year in which the portfolio lost more than SPY.</p>
<h2 id="section-5">Three takeaways from this result</h2>
<p><strong>First, it earned less than SPY but came through the 2020 crash with a much smaller loss.</strong> In Cumulative returns during crisis windows in the Risk &amp; recovery section, the COVID-19 Crash (2020-02 to 2020-03) shows −16.2% for the portfolio and −33.7% for SPY. If the 60% in SPY had fallen that much and nothing else had moved, the portfolio would still have lost more than 20%, so the other 40%, in TLT, must have offset part of the loss.</p>
<p><strong>Second, in 2022 that cushion disappeared.</strong> The portfolio returned −23.31% for 2022, a bigger loss than SPY&#39;s −18.17%. The reason a portfolio with 60% in SPY lost more than SPY itself is TLT: expand Asset performance details in the Assets &amp; diversification section, and Annual Returns per Asset shows TLT returned −31.24% that year, far worse than SPY.</p>
<div class="guide-table"><table>
<thead>
<tr>
<th>Window</th>
<th>Portfolio</th>
<th>SPY</th>
</tr>
</thead>
<tbody><tr>
<td>2020 full year</td>
<td>+19.82%</td>
<td>+18.37%</td>
</tr>
<tr>
<td>COVID-19 Crash (2020-02 to 2020-03)</td>
<td>−16.2%</td>
<td>−33.7%</td>
</tr>
<tr>
<td>2022 full year</td>
<td>−23.31%</td>
<td>−18.17%</td>
</tr>
<tr>
<td>2022 Rate Hike Bear Market (2022-01 to 2022-10)</td>
<td>−26.3%</td>
<td>−24.5%</td>
</tr>
</tbody></table></div>
<p>The same 60/40 mix beat SPY in 2020, both in the crisis window and for the full year, and trailed it on both counts in 2022. The comparison across all three crisis windows, and what to make of it, is in <a href="https://lifolio.io/en/guide/backtest-limits">The limits of backtesting</a>.</p>
<p><strong>Third, over the full 10 years its risk-adjusted return was also lower than SPY&#39;s.</strong> The Sharpe ratios in the vs SPY section&#39;s metric comparison, 0.55 versus 0.76, mean it earned less excess return over the risk-free rate for the volatility it took on. Keep in mind that this conclusion holds for this particular period, which includes 2022–2024.</p>
<h2 id="section-6">Four checks to run on your own results</h2>
<p>These aren&#39;t rules for deciding what to buy. They are ways to read a result you ran yourself without leaning on any single card.</p>
<ol>
<li><strong>Rerun with the end date 1–3 years earlier.</strong> This shows how much the result depends on where the period ends. End this example at the end of 2021 and the cards change to an annualized return of +11.3%, a max drawdown of −18.5% and a loss after a 1-year hold of 5%, 4 of 73 windows (<a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000&amp;monthly=0&amp;currency=USD&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2021-12-31&amp;benchmark=SPY">open the version that ends in 2021</a>). Why a single date can move the numbers this much is explained in <a href="https://lifolio.io/en/guide/backtest-limits">The limits of backtesting</a>.</li>
<li><strong>Compare against a benchmark run on the same settings.</strong> An annualized return on its own doesn&#39;t tell you whether it&#39;s high or low. The &quot;5.4pp behind SPY&quot; on card ②, the &quot;SPY 15%&quot; on card ④ and the first line of the vs SPY section, &quot;The same money in SPY would have grown to $33,969&quot;, are all calculated over the same period and in the same currency, so they make a fairer comparison than numbers you&#39;ve seen on another site or for a different period.</li>
<li><strong>Read the daily MDD alongside the peak-to-recovery time.</strong> A drop that recovers within a few months is not the same as one that takes years. In this example, the 2020 drop (−18.5%) was two-thirds as deep as the 2022 one, but the Recovery Timeline in the Risk &amp; recovery section shows it took just 103 days from peak to recovery, a little over a tenth as long as 2022&#39;s 990 days.</li>
<li><strong>Check the loss share over longer holding periods.</strong> Card ④ covers only 1-year holds. Holding-period outcomes in the Performance section slides 1-, 3-, 5-, 7- and 10-year windows forward one month at a time and, for each holding period, shows the worst and best annualized return and the share of windows that ended in a loss. Only holding periods with two or more windows appear, so this example shows 1, 3, 5 and 7 years. In this example, 16.5% of 1-year holding periods (18 of 109 windows) and 5.9% of 3-year holding periods (5 of 85) lost money, and none did from five years on. Why that share isn&#39;t a probability of loss is also covered in <a href="https://lifolio.io/en/guide/backtest-limits">The limits of backtesting</a>.</li>
</ol>
<p>If you add contributions and the two returns diverge, an extra line such as &quot;Counting when you added money: +7.5%&quot; appears under card ②. This money-weighted return also reflects when and how much you invested. For how it differs from the annualized return, see <a href="https://lifolio.io/en/guide/metrics#twrr-mwrr">TWRR and MWRR</a>.</p>
<p>None of these checks predicts what happens next. The formulas are in <a href="https://lifolio.io/en/methodology">Methodology</a>, and the price, dividend and interest-rate data are described in <a href="https://lifolio.io/en/data-sources">Data Sources</a>.</p>
<section class="guide-faq"><h2 id="section-7">Frequently asked questions</h2>
<h3>What&#39;s the difference between annualized return and cumulative return?</h3>
<p>Cumulative return is how much the money grew over the whole period. Annualized return is the constant yearly rate that would produce the same growth. In the All metrics window, the example&#39;s cumulative return is +108.52%, which works out to 7.63% a year compounded over 10 years. If the period is shorter than a year, card ② shows the cumulative return without annualizing it, because stretching three months of performance into a full year produces a number that never actually happened.</p>
<h3>Why is SPY the default benchmark?</h3>
<p>SPY is the default because it is an ETF that tracks the S&amp;P 500, which makes it a convenient yardstick for the US stock market. You don&#39;t have to compare against it, though. Expand Advanced settings and, under Benchmark, pick QQQ, BND, GLD, VT or EWY, or type in a ticker of your own. Choose None to turn the comparison off. Change it and rerun, and the comparison line on card ②, the benchmark share on card ④ and the vs SPY section all switch to the new benchmark.</p>
<h3>Will I get the same results every time I run a backtest?</h3>
<p>The same settings give the same results. Nothing in the summary cards or the chart calculations is random. The exception is the Scenarios section, which builds possible outcomes by randomly resampling and stitching together past monthly returns, so it comes out slightly different on each run. Also, if price or dividend data arrives late or is corrected, the numbers for any period that includes those dates can change, especially for the most recent stretch.</p>
</section>
<p class="guide-verify">The numbers in this article were verified by rerunning the same settings on Nov 6, 2026. If you spot an error, please let us know using the Send Feedback button at the bottom right of the screen.</p>
<!----></div> <!--[0--><aside class="related svelte-fndm5u" aria-labelledby="guide-related-heading"><h2 id="guide-related-heading" class="svelte-fndm5u">Related tools</h2> <ul class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/backtest" class="svelte-fndm5u">Backtest <span aria-hidden="true">→</span></a></li><!--]--></ul></aside><!--]--> <!--[0--><nav class="series svelte-fndm5u" aria-label="Guide order"><!--[-1--><!--]--> <!--[0--><a class="next svelte-fndm5u" href="https://lifolio.io/en/guide/backtest-limits"><span class="svelte-fndm5u">Next →</span>The limits of backtesting: why the date range you pick changes the result</a><!--]--></nav><!--]--></div> <aside class="guide-side svelte-fndm5u" aria-label="In this guide"><!--[0--><p class="side-title svelte-fndm5u">In this guide</p> <ol class="toc svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-1" class="svelte-fndm5u">What the four cards tell you, and what they hide</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-2" class="svelte-fndm5u">Example settings</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-3" class="svelte-fndm5u">The growth chart: look at how wide the dips are, not just how deep</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-4" class="svelte-fndm5u">Annual returns: year by year against SPY</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-5" class="svelte-fndm5u">Three takeaways from this result</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-6" class="svelte-fndm5u">Four checks to run on your own results</a></li><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results#section-7" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol><!--]--> <!--[0--><p class="side-title svelte-fndm5u">All guides</p> <ol class="series-list svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results" aria-current="page" class="svelte-fndm5u"><span class="num svelte-fndm5u">1</span>How to read backtest results: the four summary cards and the charts</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits" class="svelte-fndm5u"><span class="num svelte-fndm5u">2</span>The limits of backtesting: why the date range you pick changes the result</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results" class="svelte-fndm5u"><span class="num svelte-fndm5u">3</span>Why KRW returns differ from USD returns</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end" class="svelte-fndm5u"><span class="num svelte-fndm5u">4</span>Maximum drawdown (MDD) explained: daily vs month-end MDD and recovery time</a></li><li><a href="https://lifolio.io/en/guide/metrics" class="svelte-fndm5u"><span class="num svelte-fndm5u">5</span>Backtest metrics glossary: CAGR, MDD, Sharpe and Calmar ratios explained</a></li><!--]--></ol><!--]--></aside></div></article>]]></content:encoded></item>
<item><title>Why KRW returns differ from USD returns</title><link>https://lifolio.io/en/guide/krw-vs-usd-results</link><guid isPermaLink="true">https://lifolio.io/en/guide/krw-vs-usd-results</guid><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><description>An SPY 60%/TLT 40% portfolio returned 7.6% a year in dollars but 10.8% in won. Actual 2015–2024 exchange rates show why returns and drawdowns diverged.</description><content:encoded><![CDATA[<article class="guide-article svelte-fndm5u"><header class="guide-head svelte-fndm5u"><nav class="crumbs svelte-fndm5u" aria-label="Breadcrumb"><a href="https://lifolio.io/en" class="svelte-fndm5u">Lifolio</a><span aria-hidden="true">/</span><a href="https://lifolio.io/en/guide" class="svelte-fndm5u">Backtest Guides</a></nav> <h1 class="svelte-fndm5u">Why KRW returns differ from USD returns</h1> <p class="description svelte-fndm5u">An SPY 60%/TLT 40% portfolio returned 7.6% a year in dollars but 10.8% in won. Actual 2015–2024 exchange rates show why returns and drawdowns diverged.</p> <div class="meta svelte-fndm5u"><!--[0--><span class="position svelte-fndm5u">Guide 3 of 5</span><!--]--> <!--[0--><span class="reading svelte-fndm5u">9 min read</span><!--]--> <div class="byline svelte-1fmmslr"><a href="https://lifolio.io/en/about" class="svelte-1fmmslr">Written by Lifolio</a> <span>Published <time datetime="2026-11-03" class="svelte-1fmmslr">2026-11-03</time></span> <!--[0--><span>Updated <time datetime="2026-11-06" class="svelte-1fmmslr">2026-11-06</time></span><!--]--> <span>Screen reference date <time datetime="2026-11-06" class="svelte-1fmmslr">2026-11-06</time></span></div><!----></div> <!--[0--><img class="cover svelte-fndm5u" src="https://lifolio.io/guides/covers/krw-vs-usd-results-en.webp" alt="" width="1600" height="840" fetchpriority="high" decoding="async"/><!--]--></header> <div class="guide-layout svelte-fndm5u"><div class="guide-main svelte-fndm5u"><!--[0--><details class="toc-mobile svelte-fndm5u"><summary class="svelte-fndm5u">In this guide <span class="svelte-fndm5u">6</span></summary> <ol class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-1" class="svelte-fndm5u">The dollar rose 34% against the won in 10 years</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-2" class="svelte-fndm5u">2022: −27.6% in dollars, −19.0% in won</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-3" class="svelte-fndm5u">The gap to the benchmark barely moves</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-4" class="svelte-fndm5u">Don't compare Sharpe ratios across currencies</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-5" class="svelte-fndm5u">How Lifolio converts results to won</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-6" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol></details><!--]--> <div class="guide-body svelte-fndm5u"><!----><p>Hold 60% SPY and 40% TLT for 10 years and, measured in US dollars, the result is an annualized return of +7.6% and a max drawdown of −27.6%. Change only the reporting currency to KRW in the settings and the same portfolio returns +10.8% a year with a max drawdown of −19.0%. The assets, the period and the rebalancing are all unchanged, yet the return is more than 3 percentage points higher and the worst decline more than 8 points shallower.</p>
<p>Neither result is wrong. The dollar result measures your portfolio in dollars. The won result measures the same portfolio in Korean won, converted each day at that day&#39;s exchange rate. Lifolio reports results in either US dollars or won, so the choice matters most to anyone who buys US ETFs with won. If you buy them with won and track them in won, the second number is closer to what your own account shows. It still won&#39;t match exactly, because the bank&#39;s exchange-rate spread and conversion fees are left out. The won result blends the assets&#39; performance with exchange-rate movements, so below we use actual exchange rates to pull the two apart.</p>
<aside class="guide-summary" aria-label="Three-line summary"><p class="guide-summary-title">Three-line summary</p><ul>
<li>Almost all of the gap between +7.6% a year in dollars and +10.8% a year in won came from the USD/KRW exchange rate rising 34.2%, from ₩1,093.6 to ₩1,467.4 per dollar.</li>
<li>During the 2022 decline the exchange rate jumped 21%, so the max drawdown came out at −27.6% in dollars but only −19.0% in won.</li>
<li>The gap to the SPY benchmark was nearly identical (−5.4 vs −5.5 percentage points). The Sharpe ratios of 0.55 and 0.83, however, subtract different risk-free rates to begin with, so they can&#39;t be compared with each other.</li>
</ul></aside>
<figure><img src="https://lifolio.io/guides/krw-vs-usd-results/kpis-usd-krw-en.webp" alt="Summary cards in USD on top and in KRW below. USD: Final Balance $20,852, Annualized return +7.6%, Max drawdown −27.6%, Loss after a 1-year hold 17%. KRW: Final Balance ₩28M, Annualized return +10.8%, Max drawdown −19.0%, Loss after a 1-year hold 9%" width="1542" height="719" loading="lazy" decoding="async"><figcaption>SPY 60% · TLT 40%, 2015-01-02 to 2024-12-31, monthly rebalancing, dividends reinvested, initial investment $10,000 or ₩10,000,000. Two results that differ only in reporting currency</figcaption></figure>
<p><a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000000&amp;monthly=0&amp;currency=KRW&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2024-12-31&amp;benchmark=SPY">Open this example in KRW in Lifolio</a> to reproduce the bottom row of cards, or <a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000&amp;monthly=0&amp;currency=USD&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2024-12-31&amp;benchmark=SPY">open it in USD</a> for the top row exactly as shown. The remaining settings are listed in <a href="https://lifolio.io/en/guide/how-to-read-backtest-results">How to read backtest results</a>.</p>
<p>Because the initial investment was entered separately in each currency, the final balances can&#39;t be compared directly. Compare the growth multiples instead. $10,000 became $20,852, so the dollar result grew 2.09×. ₩10,000,000 became ₩27,940,000, so the won result grew 2.79×.</p>
<h2 id="section-1">The dollar rose 34% against the won in 10 years</h2>
<p>According to the exchange rates stored in Lifolio, one dollar bought ₩1,093.6 on Jan 2, 2015 and ₩1,467.4 on Dec 31, 2024. That is a 34.2% rise over 10 years, or about 2.98% a year at a steady pace. It didn&#39;t climb in a straight line: on Apr 4, 2018 it stood at ₩1,053.7, below where it started.</p>
<figure><img src="https://lifolio.io/guides/krw-vs-usd-results/usdkrw-en.webp" alt="Line chart of the USD/KRW exchange rate from 2015 to 2024, with 2022 shaded and labels for the start (₩1,093.6), the end (₩1,467.4) and the 2022 high (₩1,444.0)" width="1560" height="806" loading="lazy" decoding="async"><figcaption>USD/KRW daily close, 2015-01-02 to 2024-12-31, Yahoo Finance USDKRW=X</figcaption></figure>
<p>The portfolio&#39;s value in won is simply its value in dollars multiplied by that day&#39;s exchange rate, so the two results can be reconciled with a single multiplication.</p>
<ul>
<li>Growth multiple: 2.09× × 1.34× ≈ 2.8×. The calculation actually starts from the close just before the first trading day, Dec 31, 2014 (₩1,095.3). Redo the multiplication with that rate and you get 2.0852 × 1.3397 = 2.7936, exactly the ₩27.94 million on the won card.</li>
<li>Annualized: (1 + 7.63%) × (1 + 2.98%) − 1 ≈ 10.8%, matching the +10.8% on the won card.</li>
</ul>
<p>In other words, the won return was higher not because measuring in won is inherently favorable, but because the won weakened against the dollar over these 10 years. That currency gain added roughly 3 percentage points a year.</p>
<h2 id="section-2">2022: −27.6% in dollars, −19.0% in won</h2>
<p>Drawdowns are more complicated. Even the dates of the peak and the trough differ by currency.</p>
<div class="guide-table"><table>
<thead>
<tr>
<th>Measure</th>
<th>In USD</th>
<th>In KRW</th>
</tr>
</thead>
<tbody><tr>
<td>Peak</td>
<td>2021-12-27</td>
<td>2021-11-09</td>
</tr>
<tr>
<td>Trough</td>
<td>2022-10-20</td>
<td>2022-12-30</td>
</tr>
<tr>
<td>Recovery</td>
<td>2024-09-12</td>
<td>2024-01-29</td>
</tr>
<tr>
<td>Max drawdown (daily)</td>
<td>−27.6%</td>
<td>−19.0%</td>
</tr>
<tr>
<td>Trough to recovery (card)</td>
<td>23 months</td>
<td>13 months</td>
</tr>
</tbody></table></div>
<p>In 2022, while stocks and long-term bonds fell together, the exchange rate moved sharply the other way. It was ₩1,185.9 on Dec 27, 2021, the peak in dollar terms, and ₩1,435.0 on Oct 20, 2022, the trough in dollar terms, a rise of 21%. Convert a portfolio that had shrunk 27.6% in dollars at a rate 21% higher, and in won it was only about 12% below its value on that same peak day. The stronger dollar absorbed more than half of the loss.</p>
<p>So why is the max drawdown in won −19.0% rather than −12%? Because the won series has its own peak and its own trough.</p>
<p>The won peak came a month and a half earlier. On Nov 9, 2021 the rate was ₩1,199.9, higher than at the end of December, so the portfolio&#39;s value in won was at its highest that day. The won trough came a little over two months later. After Oct 20 the portfolio started climbing again in dollars, but the exchange rate fell quickly from its October high and was down to ₩1,260.3 by Dec 30. The currency took away more than the dollar gains brought back, so the won value kept shrinking until year-end. Within a single decline, the exchange rate first softened the loss and then deepened it.</p>
<figure><img src="https://lifolio.io/guides/krw-vs-usd-results/drawdown-usd-krw-en.webp" alt="Two-line chart of the drawdown from peak in USD and KRW terms, 2015 to 2024. The USD line reaches its low of −27.6% on 2022-10-20 and the KRW line its low of −19.0% on 2022-12-30" width="1560" height="806" loading="lazy" decoding="async"><figcaption>Drawdown from peak, daily, 2015–2024, USD vs KRW</figcaption></figure>
<p>Recovery was faster in won. In won terms, the portfolio regained its peak on Jan 29, 2024, 13 months after the trough. In dollar terms it took 23 months, until Sep 12, 2024. The exchange rate on the won recovery day was about 6% higher than on the won trough day, which also helped bring the recovery forward. And because the won trough happened to fall on the last trading day of December, the month-end figure (−18.77%) is almost the same. The two bases, and how recovery time is counted, are covered in <a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end">MDD on a daily vs month-end basis, and recovery time</a>.</p>
<p>Summary card ④, Loss after a 1-year hold, splits as well. The 1-year windows that ended in a loss were 18 of 109 (17%) in dollars and 10 of 109 (9%) in won.</p>
<p>All of this is simply what happened in 2015–2024. There is no rule that the dollar strengthens every time stocks fall, and if the won strengthens during a decline, the drawdown in won can end up deeper. November–December 2022 briefly showed that pattern.</p>
<h2 id="section-3">The gap to the benchmark barely moves</h2>
<p>Even with returns and drawdowns shifting this much, the annualized gap to the benchmark is nearly the same: −5.4 percentage points in USD and −5.5 in KRW. The SPY benchmark is converted on the same days at the same rates, so the portfolio and SPY are both multiplied by the same exchange-rate factor. The gap neither disappears nor flips. It only widens slightly by that factor. Multiply the dollar gap of −5.38 points by 1.0298 and you get about −5.54 points, the −5.5pp shown on screen.</p>
<p>When the portfolio and the benchmark are both dollar assets, switching currency leaves &quot;how far did it trail SPY?&quot; almost unchanged. What moves a lot is the absolute level of returns, drawdowns and recovery time.</p>
<h2 id="section-4">Don&#39;t compare Sharpe ratios across currencies</h2>
<p>The Sharpe ratio rose too, from 0.55 to 0.83. That doesn&#39;t mean the portfolio was more efficient in won. Switching currency changes all three inputs to the Sharpe ratio at once: return, volatility and the risk-free rate. The return picks up the currency effect, volatility, which now includes exchange-rate swings, goes from 11.35% to 10.78%, and the rate being subtracted becomes another country&#39;s rate altogether. The formula is in the <a href="https://lifolio.io/en/guide/metrics#sharpe">Sharpe ratio</a> entry.</p>
<ul>
<li>In USD: the US 3-month Treasury bill rate, <a href="https://fred.stlouisfed.org/series/TB3MS">TB3MS from FRED</a></li>
<li>In KRW: the 91-day CD rate, CD91 from the <a href="https://ecos.bok.or.kr/">Bank of Korea&#39;s ECOS</a></li>
</ul>
<p>CD91 is a stand-in for a short-term won rate. It is not the return you would actually earn by holding a risk-free asset. For both rates, each month uses the previous month&#39;s reading. That is also why Lifolio advises comparing Sharpe ratios only under the same settings. Compare within a single currency: in dollars it is the portfolio&#39;s 0.55 against SPY&#39;s 0.76, and in won 0.83 against 1.01. Either way, this portfolio&#39;s Sharpe ratio was lower than SPY&#39;s.</p>
<h2 id="section-5">How Lifolio converts results to won</h2>
<p>When you choose KRW as the reporting currency, the settings screen shows the note &quot;Inputs, returns, and risk metrics are all calculated in KRW using historical exchange rates.&quot; The rules work like this.</p>
<ul>
<li>Exchange rates are daily closes from <a href="https://finance.yahoo.com/quote/USDKRW=X/history/">Yahoo Finance&#39;s USDKRW=X</a>. The prices and dividends of dollar assets, and the SPY benchmark, are all converted at that day&#39;s rate, so investing in won works the same as buying the dollar assets at that day&#39;s rate.</li>
<li>On days with no exchange rate, such as weekends or foreign-exchange market holidays, the most recent confirmed rate is carried forward, for up to 7 calendar days.</li>
<li>If the rate is missing for more than 7 days, the gap is not filled with a fixed rate or a future rate. Instead, the analysis period is shortened to the stretch with continuous rates, or the calculation stops.</li>
<li>Exchange-rate data begins on Dec 1, 2003, so a KRW backtest can&#39;t start earlier than that.</li>
</ul>
<p>The data sources are listed in <a href="https://lifolio.io/en/data-sources">Data Sources</a>, and the order of calculation in <a href="https://lifolio.io/en/methodology">Methodology</a>.</p>
<section class="guide-faq"><h2 id="section-6">Frequently asked questions</h2>
<h3>I invest in won. Which result should I look at?</h3>
<p>If you convert won to buy US ETFs and track them in won, the won result is closer to what you&#39;ll see in your account. The dollar result shows what the assets themselves earned, and the difference between the two is what the exchange rate added or took away. When comparing with other sources that report in dollars, use the dollar result so you&#39;re comparing like with like.</p>
<h3>Does a rising dollar always mean a higher return in won?</h3>
<p>No. The won return depends not on whether the rate rose along the way but on the rates at the start and end dates. Move this example&#39;s end date to Apr 4, 2018, when the rate hit its low for the period, and the exchange-rate factor is 1,053.7 ÷ 1,095.3 (the starting rate), about 0.96×. By the conversion formula, the won growth multiple then shrinks to 0.96 times the dollar multiple. Drawdowns, on the other hand, follow the path in between: while the rate falls quickly, as it did in November–December 2022, the won value can keep shrinking even as the dollar value recovers. You can change the end date in <a href="https://lifolio.io/en/backtest">Backtest</a>.</p>
<h3>Are currency conversion fees included?</h3>
<p>No. The exchange rate is the raw USDKRW=X daily close, and neither the spread between it and the rates banks quote nor conversion fees are included. The won result is not the amount you would actually have received after converting to won. It is the value of the dollar assets at each day&#39;s closing exchange rate. In a real account, where every conversion has a cost, the result will be lower than the on-screen number by that amount.</p>
</section>
<p class="guide-verify">The numbers in this article were verified by rerunning the same settings on Nov 6, 2026. If you spot an error, please let us know using the Send Feedback button at the bottom right of the screen.</p>
<!----></div> <!--[0--><aside class="related svelte-fndm5u" aria-labelledby="guide-related-heading"><h2 id="guide-related-heading" class="svelte-fndm5u">Related tools</h2> <ul class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/backtest" class="svelte-fndm5u">Backtest <span aria-hidden="true">→</span></a></li><!--]--></ul></aside><!--]--> <!--[0--><nav class="series svelte-fndm5u" aria-label="Guide order"><!--[0--><a class="previous svelte-fndm5u" href="https://lifolio.io/en/guide/backtest-limits"><span class="svelte-fndm5u">← Previous</span>The limits of backtesting: why the date range you pick changes the result</a><!--]--> <!--[0--><a class="next svelte-fndm5u" href="https://lifolio.io/en/guide/mdd-daily-vs-month-end"><span class="svelte-fndm5u">Next →</span>Maximum drawdown (MDD) explained: daily vs month-end MDD and recovery time</a><!--]--></nav><!--]--></div> <aside class="guide-side svelte-fndm5u" aria-label="In this guide"><!--[0--><p class="side-title svelte-fndm5u">In this guide</p> <ol class="toc svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-1" class="svelte-fndm5u">The dollar rose 34% against the won in 10 years</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-2" class="svelte-fndm5u">2022: −27.6% in dollars, −19.0% in won</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-3" class="svelte-fndm5u">The gap to the benchmark barely moves</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-4" class="svelte-fndm5u">Don't compare Sharpe ratios across currencies</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-5" class="svelte-fndm5u">How Lifolio converts results to won</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results#section-6" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol><!--]--> <!--[0--><p class="side-title svelte-fndm5u">All guides</p> <ol class="series-list svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results" class="svelte-fndm5u"><span class="num svelte-fndm5u">1</span>How to read backtest results: the four summary cards and the charts</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits" class="svelte-fndm5u"><span class="num svelte-fndm5u">2</span>The limits of backtesting: why the date range you pick changes the result</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results" aria-current="page" class="svelte-fndm5u"><span class="num svelte-fndm5u">3</span>Why KRW returns differ from USD returns</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end" class="svelte-fndm5u"><span class="num svelte-fndm5u">4</span>Maximum drawdown (MDD) explained: daily vs month-end MDD and recovery time</a></li><li><a href="https://lifolio.io/en/guide/metrics" class="svelte-fndm5u"><span class="num svelte-fndm5u">5</span>Backtest metrics glossary: CAGR, MDD, Sharpe and Calmar ratios explained</a></li><!--]--></ol><!--]--></aside></div></article>]]></content:encoded></item>
<item><title>Maximum drawdown (MDD) explained: daily vs month-end MDD and recovery time</title><link>https://lifolio.io/en/guide/mdd-daily-vs-month-end</link><guid isPermaLink="true">https://lifolio.io/en/guide/mdd-daily-vs-month-end</guid><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><description>MDD is the largest drop from a peak. Real numbers show why daily and month-end MDD differ for the same portfolio, and what 23 months and 990 days each measure.</description><content:encoded><![CDATA[<article class="guide-article svelte-fndm5u"><header class="guide-head svelte-fndm5u"><nav class="crumbs svelte-fndm5u" aria-label="Breadcrumb"><a href="https://lifolio.io/en" class="svelte-fndm5u">Lifolio</a><span aria-hidden="true">/</span><a href="https://lifolio.io/en/guide" class="svelte-fndm5u">Backtest Guides</a></nav> <h1 class="svelte-fndm5u">Maximum drawdown (MDD) explained: daily vs month-end MDD and recovery time</h1> <p class="description svelte-fndm5u">MDD is the largest drop from a peak. Real numbers show why daily and month-end MDD differ for the same portfolio, and what 23 months and 990 days each measure.</p> <div class="meta svelte-fndm5u"><!--[0--><span class="position svelte-fndm5u">Guide 4 of 5</span><!--]--> <!--[0--><span class="reading svelte-fndm5u">8 min read</span><!--]--> <div class="byline svelte-1fmmslr"><a href="https://lifolio.io/en/about" class="svelte-1fmmslr">Written by Lifolio</a> <span>Published <time datetime="2026-11-03" class="svelte-1fmmslr">2026-11-03</time></span> <!--[0--><span>Updated <time datetime="2026-11-06" class="svelte-1fmmslr">2026-11-06</time></span><!--]--> <span>Screen reference date <time datetime="2026-10-31" class="svelte-1fmmslr">2026-10-31</time></span></div><!----></div> <!--[0--><img class="cover svelte-fndm5u" src="https://lifolio.io/guides/covers/mdd-daily-vs-month-end-en.webp" alt="" width="1600" height="840" fetchpriority="high" decoding="async"/><!--]--></header> <div class="guide-layout svelte-fndm5u"><div class="guide-main svelte-fndm5u"><!--[0--><details class="toc-mobile svelte-fndm5u"><summary class="svelte-fndm5u">In this guide <span class="svelte-fndm5u">6</span></summary> <ol class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-1" class="svelte-fndm5u">The same drop, checked at different intervals</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-2" class="svelte-fndm5u">When a drop recovers within the month</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-3" class="svelte-fndm5u">Before comparing MDD across sites</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-4" class="svelte-fndm5u">Three ways to measure recovery time</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-5" class="svelte-fndm5u">Median or average recovery time?</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-6" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol></details><!--]--> <div class="guide-body svelte-fndm5u"><!----><p>Backtest an SPY 60% · TLT 40% portfolio from 2015 to 2024 and the summary card shows a max drawdown of −27.6%. Open the All metrics window, though, and there is a second max drawdown: Max drawdown · month-end, −26.21%. Same portfolio, same period, different number. Which one is right?</p>
<p>Maximum drawdown (MDD) is the largest percentage drop from a previous high. Both values follow that definition. They differ only in how often the portfolio&#39;s value was checked. Recovery time works much the same way: the month count on the summary card and the day counts in the Recovery Timeline measure different stretches of time.</p>
<aside class="guide-summary" aria-label="Three-line summary"><p class="guide-summary-title">Three-line summary</p><ul>
<li>Daily MDD uses the value on every trading day and month-end MDD uses the value on the last trading day of each month, so the daily figure is always as deep or deeper. In this example the gap is 1.4 percentage points.</li>
<li>A drop that recovers within a month barely shows up in month-end values, so the same example ending at the end of 2021 shows −18.5% daily but −7.16% month-end, a gap of more than 11 points.</li>
<li>The summary card&#39;s &quot;23 months from trough to recovery&quot; counts from the trough. Measured from the peak, getting back to that peak took 990 days.</li>
</ul></aside>
<h2 id="section-1">The same drop, checked at different intervals</h2>
<p>The formula is the same for both. For each day, work out how far that day&#39;s value is below the highest value up to that point, then take the lowest figure over the whole period. The only difference is which days go into the calculation. Both are calculated from a return series with the effect of contributions removed, so adding $500 a month to the same example leaves both values unchanged.</p>
<p>Here is the 2022 decline measured both ways.</p>
<div class="guide-table"><table>
<thead>
<tr>
<th>Basis</th>
<th>Peak</th>
<th>Trough</th>
<th>Drawdown</th>
</tr>
</thead>
<tbody><tr>
<td>Daily</td>
<td>2021-12-27 $21,200.37</td>
<td>2022-10-20 $15,337.55</td>
<td>−27.65%</td>
</tr>
<tr>
<td>Month-end</td>
<td>2021-12-31 $21,099.70</td>
<td>2022-09-30 $15,568.91</td>
<td>−26.21%</td>
</tr>
</tbody></table></div>
<p>Both the peak and the trough shift. The value slipped a little in the four days after the daily high, so the month-end peak is the year&#39;s last trading day.</p>
<p>The difference at the trough is bigger. The lowest day wasn&#39;t a month-end, and eleven days later, at the end of October, the value had climbed back to $15,956. October 2022 was actually an up month, gaining 2.49%. So the month-end trough lands a month earlier.</p>
<figure><img src="https://lifolio.io/guides/mdd-daily-vs-month-end/daily-vs-monthend-2022-en.webp" alt="Chart overlaying the drawdown from peak as a daily line and month-end dots, November 2021 to January 2023. The daily line falls to −27.65% on Oct 20, 2022, and the lowest month-end dot is −26.21% on Sep 30, 2022" width="1560" height="806" loading="lazy" decoding="async"><figcaption>Daily and month-end drawdown, 2021-11 to 2023-01. Example: SPY 60% · TLT 40%, 2015-01-02 to 2024-12-31, initial investment $10,000, no contributions, monthly rebalancing, dividends reinvested, in USD</figcaption></figure>
<p>Every month-end value is also one of the daily values. That is why daily MDD can never come out shallower than month-end MDD.</p>
<h2 id="section-2">When a drop recovers within the month</h2>
<p>The 2022 gap was small because the decline built up slowly over nearly ten months, and a decline that runs for months is mostly captured by month-end values too. Short, sharp drops are a different story. Run the same portfolio for 2015-01-02 to 2021-12-31 and daily MDD is −18.5%, while month-end MDD is just −7.16%.</p>
<p>The daily figure comes from the 2020 COVID crash. The portfolio fell from $16,331 on Feb 20 to $13,309 on Mar 18, in only 27 days, but it rebounded just as quickly. Connect only the month-end values and it went from $15,837 at the end of January to $14,741 at the end of March (−6.92%), then topped the January month-end value at $15,936 at the end of April. Viewed month by month, most of the crash hides between two month-ends.</p>
<p>It even changes which decline looks like the worst. For this period, the month-end MDD comes not from 2020 but from the fourth quarter of 2018, the decline from the end of August to the end of December, which measured −10.71% on a daily basis. Someone looking only at month-end values wouldn&#39;t see the March 2020 crash as this portfolio&#39;s worst moment.</p>
<p class="guide-try"><a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000&amp;monthly=0&amp;currency=USD&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2021-12-31&amp;benchmark=SPY">Open the same example ending in 2021</a></p>
<h2 id="section-3">Before comparing MDD across sites</h2>
<p>Backtesting tools don&#39;t all measure MDD at the same interval. Portfolio Visualizer says in its <a href="https://www.portfoliovisualizer.com/faq">FAQ</a> that maximum drawdown is calculated from monthly portfolio balances. The Portfolio Charts <a href="https://portfoliocharts.com/charts/drawdowns/">drawdowns chart</a> uses inflation-adjusted year-end values and notes that deeper losses may have occurred during the year.</p>
<p>The longer the interval between observations, the shallower the MDD can get; it never gets deeper. When comparing with a source that uses monthly balances, Lifolio&#39;s month-end figure is the right match. Inflation-adjusted year-end values don&#39;t line up with either of Lifolio&#39;s figures.</p>
<p>Which figure to use within Lifolio depends on your question. The daily value is closer to the worst number you would actually have seen in your account while holding, and it&#39;s the one the summary card shows. Click the card&#39;s info icon and both values appear, the daily one described as &quot;includes intra-month lows, more conservative&quot; and the month-end one as &quot;for monthly performance comparison.&quot; Even the daily value is based on closing values, so an intraday drop that recovered before the close is not in either figure.</p>
<h2 id="section-4">Three ways to measure recovery time</h2>
<p>Back to the 2022 decline. On a daily basis, the peak was Dec 27, 2021, the trough Oct 20, 2022, and the recovery Sep 12, 2024. Recovery is the first day the value gets back to its previous high. Any rebounds before then count as part of the same decline.</p>
<figure><img src="https://lifolio.io/guides/mdd-daily-vs-month-end/peak-trough-recovery-en.webp" alt="Chart of the portfolio's daily value from mid-2021 to late 2024, with the peak, trough and recovery dates marked. Brackets underneath mark three spans, the decline, the recovery and peak to recovery, and show which one the summary card's bottom-to-recovery figure refers to" width="1560" height="832" loading="lazy" decoding="async"><figcaption>Three spans in the deepest drawdown. SPY 60% · TLT 40%, 2015-01-02 to 2024-12-31, in USD</figcaption></figure>
<p class="guide-try"><a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000&amp;monthly=0&amp;currency=USD&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2024-12-31&amp;benchmark=SPY">Open this example in Lifolio</a></p>
<p>Pair up the three dates and you get three spans. All are counted in calendar days, so weekends and market holidays are included.</p>
<ul>
<li>Down, 297 days: from peak to trough</li>
<li>Recovery, 693 days: from trough to recovery</li>
<li>Peak→recovery, 990 days: from peak to recovery, the two spans above added together</li>
</ul>
<p>The summary card&#39;s &quot;23 months from trough to recovery&quot; is the second span divided by an average month length of 30.44 days (22.8), rounded. MDD Recovery in the All metrics window shows the same value.</p>
<p>Go by the card alone and you would underestimate the time spent below the peak by about ten months. Someone who invested at the late-2021 peak spent a little over two years and eight months underwater, below that previous high, once the way down is included. That full length is the Peak→recovery day count in the Recovery Timeline. Short definitions are under <a href="https://lifolio.io/en/guide/metrics#mdd">Maximum drawdown</a> and <a href="https://lifolio.io/en/guide/metrics#recovery">Recovery time</a> in the metrics glossary.</p>
<h2 id="section-5">Median or average recovery time?</h2>
<p>The Risk &amp; recovery section opens with a line giving the peak-to-recovery time of the deepest drawdown, as in &quot;990 days from peak to recovery,&quot; and below it the Recovery Timeline shows up to five drawdown episodes that exceeded the chosen threshold, deepest first. The Episode Analysis group in the same section gives the median and average recovery time for the episodes that exceeded that threshold. Unlike the summary card, both measure from peak to recovery.</p>
<figure><img src="https://lifolio.io/guides/mdd-daily-vs-month-end/recovery-en.webp" alt="The Recovery Timeline screen. At a 5% drawdown threshold, bars show the peak, trough and recovery dates of the five deepest episodes, with their down, recovery and peak-to-recovery day counts" width="940" height="700" loading="lazy" decoding="async"><figcaption>Recovery Timeline in the Risk &amp; recovery section, Drawdown threshold (from peak) 5%</figcaption></figure>
<p>At the default 5% threshold, eight episodes qualify. All of them regained their previous high, so the screen shows &quot;8 completed · 0 unrecovered.&quot; The median is 191 days, the average of the two middle episodes (184 and 198 days) when the eight are sorted by length. In other words, during this period a drop of more than 5% typically got back to its high in a little over half a year.</p>
<p>The average is 275 days, almost three months longer, because the single 990-day episode from 2022 pulls it up. Leave that one out and the average drops to about 173 days, while the median barely moves, to 184 days. The median tells you how long a typical decline took, and the gap between the two tells you how much one long decline skewed the result. If the gap is large, start with the top episode in the timeline.</p>
<p>Change the threshold and the episodes being counted change too. At 10% there are 3, at 20% only 2022 remains, and at 30% there are none. Episodes that hadn&#39;t regained their peak by the last day of the period are left out of the median and average and counted only as unrecovered, so while a long decline is still under way, the median can look shorter than it really is. In this example the last decline ended at −4.80%, so it doesn&#39;t meet the 5% threshold. Either figure comes from a single historical path and can&#39;t tell you how long the next recovery will take. These limits are summarized in <a href="https://lifolio.io/en/guide/backtest-limits">The limits of backtesting</a>.</p>
<section class="guide-faq"><h2 id="section-6">Frequently asked questions</h2>
<h3>What is an acceptable max drawdown?</h3>
<p>There is no threshold that works for every portfolio. What you can do is gauge relative depth by putting it next to a benchmark figure calculated on the same basis. In the Key Performance Comparison group of the All metrics window, the SPY benchmark&#39;s max drawdown is −23.93% on a month-end basis, against −26.21% for this example on the same month-end basis. Even with 40% in bonds, the portfolio fell further than SPY over this period.</p>
<h3>What&#39;s the difference between max drawdown and volatility?</h3>
<p>Volatility measures how widely monthly returns were spread around their average, converted to an annual figure, so it counts the swings in up months too. MDD looks only at the single deepest decline. This example&#39;s volatility is 11.35%, and even when month-to-month swings are modest, MDD can be deep if a decline keeps grinding in one direction for a long time. The calculation is under <a href="https://lifolio.io/en/guide/metrics#volatility">Volatility</a> in the metrics glossary.</p>
<h3>Why is my max drawdown different from another site&#39;s?</h3>
<p>Start by matching three things: the observation interval, the period and how dividends are treated. The interval is whether daily, monthly or year-end values were used. The period matters a lot: just moving the end date three years earlier makes this example&#39;s daily MDD more than 9 points shallower. And whether the calculation uses total return with dividends reinvested or price return alone can also change the size of the drop. This article&#39;s example reinvests dividends.</p>
</section>
<p class="guide-verify">The numbers in this article were verified by running the same settings on lifolio.io on Oct 31, 2026. If you spot an error, please let us know using the Send Feedback button at the bottom right of the screen.</p>
<!----></div> <!--[0--><aside class="related svelte-fndm5u" aria-labelledby="guide-related-heading"><h2 id="guide-related-heading" class="svelte-fndm5u">Related tools</h2> <ul class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/backtest" class="svelte-fndm5u">Backtest <span aria-hidden="true">→</span></a></li><!--]--></ul></aside><!--]--> <!--[0--><nav class="series svelte-fndm5u" aria-label="Guide order"><!--[0--><a class="previous svelte-fndm5u" href="https://lifolio.io/en/guide/krw-vs-usd-results"><span class="svelte-fndm5u">← Previous</span>Why KRW returns differ from USD returns</a><!--]--> <!--[0--><a class="next svelte-fndm5u" href="https://lifolio.io/en/guide/metrics"><span class="svelte-fndm5u">Next →</span>Backtest metrics glossary: CAGR, MDD, Sharpe and Calmar ratios explained</a><!--]--></nav><!--]--></div> <aside class="guide-side svelte-fndm5u" aria-label="In this guide"><!--[0--><p class="side-title svelte-fndm5u">In this guide</p> <ol class="toc svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-1" class="svelte-fndm5u">The same drop, checked at different intervals</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-2" class="svelte-fndm5u">When a drop recovers within the month</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-3" class="svelte-fndm5u">Before comparing MDD across sites</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-4" class="svelte-fndm5u">Three ways to measure recovery time</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-5" class="svelte-fndm5u">Median or average recovery time?</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end#section-6" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol><!--]--> <!--[0--><p class="side-title svelte-fndm5u">All guides</p> <ol class="series-list svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results" class="svelte-fndm5u"><span class="num svelte-fndm5u">1</span>How to read backtest results: the four summary cards and the charts</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits" class="svelte-fndm5u"><span class="num svelte-fndm5u">2</span>The limits of backtesting: why the date range you pick changes the result</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results" class="svelte-fndm5u"><span class="num svelte-fndm5u">3</span>Why KRW returns differ from USD returns</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end" aria-current="page" class="svelte-fndm5u"><span class="num svelte-fndm5u">4</span>Maximum drawdown (MDD) explained: daily vs month-end MDD and recovery time</a></li><li><a href="https://lifolio.io/en/guide/metrics" class="svelte-fndm5u"><span class="num svelte-fndm5u">5</span>Backtest metrics glossary: CAGR, MDD, Sharpe and Calmar ratios explained</a></li><!--]--></ol><!--]--></aside></div></article>]]></content:encoded></item>
<item><title>Backtest metrics glossary: CAGR, MDD, Sharpe and Calmar ratios explained</title><link>https://lifolio.io/en/guide/metrics</link><guid isPermaLink="true">https://lifolio.io/en/guide/metrics</guid><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><description>What CAGR, real return, MDD, volatility, Sharpe, Sortino, Calmar and TWRR/MWRR measure, with example values, how Lifolio calculates them and common pitfalls.</description><content:encoded><![CDATA[<article class="guide-article svelte-fndm5u"><header class="guide-head svelte-fndm5u"><nav class="crumbs svelte-fndm5u" aria-label="Breadcrumb"><a href="https://lifolio.io/en" class="svelte-fndm5u">Lifolio</a><span aria-hidden="true">/</span><a href="https://lifolio.io/en/guide" class="svelte-fndm5u">Backtest Guides</a></nav> <h1 class="svelte-fndm5u">Backtest metrics glossary: CAGR, MDD, Sharpe and Calmar ratios explained</h1> <p class="description svelte-fndm5u">What CAGR, real return, MDD, volatility, Sharpe, Sortino, Calmar and TWRR/MWRR measure, with example values, how Lifolio calculates them and common pitfalls.</p> <div class="meta svelte-fndm5u"><!--[0--><span class="position svelte-fndm5u">Guide 5 of 5</span><!--]--> <!--[0--><span class="reading svelte-fndm5u">12 min read</span><!--]--> <div class="byline svelte-1fmmslr"><a href="https://lifolio.io/en/about" class="svelte-1fmmslr">Written by Lifolio</a> <span>Published <time datetime="2026-11-03" class="svelte-1fmmslr">2026-11-03</time></span> <!--[0--><span>Updated <time datetime="2026-11-06" class="svelte-1fmmslr">2026-11-06</time></span><!--]--> <span>Screen reference date <time datetime="2026-11-06" class="svelte-1fmmslr">2026-11-06</time></span></div><!----></div> <!--[0--><img class="cover svelte-fndm5u" src="https://lifolio.io/guides/covers/metrics-en.webp" alt="" width="1600" height="840" fetchpriority="high" decoding="async"/><!--]--></header> <div class="guide-layout svelte-fndm5u"><div class="guide-main svelte-fndm5u"><!--[0--><details class="toc-mobile svelte-fndm5u"><summary class="svelte-fndm5u">In this guide <span class="svelte-fndm5u">11</span></summary> <ol class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/metrics#cagr" class="svelte-fndm5u">Annualized return (CAGR)</a></li><li><a href="https://lifolio.io/en/guide/metrics#real-return" class="svelte-fndm5u">Real return</a></li><li><a href="https://lifolio.io/en/guide/metrics#mdd" class="svelte-fndm5u">Maximum drawdown (MDD)</a></li><li><a href="https://lifolio.io/en/guide/metrics#recovery" class="svelte-fndm5u">Recovery time</a></li><li><a href="https://lifolio.io/en/guide/metrics#volatility" class="svelte-fndm5u">Volatility (standard deviation)</a></li><li><a href="https://lifolio.io/en/guide/metrics#sharpe" class="svelte-fndm5u">Sharpe ratio</a></li><li><a href="https://lifolio.io/en/guide/metrics#sortino" class="svelte-fndm5u">Sortino ratio</a></li><li><a href="https://lifolio.io/en/guide/metrics#calmar" class="svelte-fndm5u">Calmar ratio</a></li><li><a href="https://lifolio.io/en/guide/metrics#rolling-returns" class="svelte-fndm5u">Rolling returns (holding-period outcomes)</a></li><li><a href="https://lifolio.io/en/guide/metrics#twrr-mwrr" class="svelte-fndm5u">TWRR and MWRR (time-weighted and money-weighted returns)</a></li><li><a href="https://lifolio.io/en/guide/metrics#faq" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol></details><!--]--> <div class="guide-body svelte-fndm5u"><!----><p>The same results screen shows an annualized return of +7.63% alongside a Calmar ratio of −0.01. The mismatch comes from the first number covering all 10 years and the second only the last 3. This glossary walks through the ten metrics in <a href="https://lifolio.io/en/backtest">Backtest</a> results one by one: what each measures, how Lifolio calculates it, what it came to in the example, and where it&#39;s easy to misread.</p>
<p>The example is a US-dollar result for $10,000 in SPY 60% · TLT 40% from 2015-01-02 to 2024-12-31, rebalanced monthly. The full settings are in <a href="https://lifolio.io/en/guide/how-to-read-backtest-results">How to read backtest results</a>.</p>
<aside class="guide-summary" aria-label="Three-line summary"><p class="guide-summary-title">Three-line summary</p><ul>
<li>The 7.63% annualized return condenses the 10 years in which $10,000 grew to $20,852 into a single compound rate, which is why it is lower than the simple average of the annual returns, 8.54%.</li>
<li>Unlike the other metrics, the Calmar ratio of −0.01 is calculated from the last 36 months only (−0.39% a year).</li>
<li>Add $500 a month to the same mix and the time-weighted return (TWRR) stays at 7.63%, while the money-weighted return (MWRR), which tracks your own money, is almost the same at 7.55%.</li>
</ul></aside>
<div class="guide-table"><table>
<thead>
<tr>
<th>Metric</th>
<th>In one line</th>
<th>Example value</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://lifolio.io/en/guide/metrics#cagr">Annualized return (CAGR)</a></td>
<td>Total growth expressed as a constant yearly compound rate</td>
<td>+7.63%</td>
</tr>
<tr>
<td><a href="https://lifolio.io/en/guide/metrics#real-return">Real return</a></td>
<td>Return after an assumed 2.5% annual inflation</td>
<td>+5.00% a year</td>
</tr>
<tr>
<td><a href="https://lifolio.io/en/guide/metrics#mdd">Maximum drawdown (MDD)</a></td>
<td>Deepest drop from a peak</td>
<td>−27.65% daily · −26.21% month-end</td>
</tr>
<tr>
<td><a href="https://lifolio.io/en/guide/metrics#recovery">Recovery time</a></td>
<td>From the bottom of the max drawdown back to the previous peak</td>
<td>23 months</td>
</tr>
<tr>
<td><a href="https://lifolio.io/en/guide/metrics#volatility">Volatility</a></td>
<td>How widely monthly returns swung (annualized)</td>
<td>11.35%</td>
</tr>
<tr>
<td><a href="https://lifolio.io/en/guide/metrics#sharpe">Sharpe ratio</a></td>
<td>Excess return per unit of volatility</td>
<td>0.55</td>
</tr>
<tr>
<td><a href="https://lifolio.io/en/guide/metrics#sortino">Sortino ratio</a></td>
<td>Excess return per unit of downside volatility</td>
<td>0.83</td>
</tr>
<tr>
<td><a href="https://lifolio.io/en/guide/metrics#calmar">Calmar ratio</a></td>
<td>Trailing 36-month return ÷ max drawdown over the same window</td>
<td>−0.01</td>
</tr>
<tr>
<td><a href="https://lifolio.io/en/guide/metrics#rolling-returns">Rolling returns</a></td>
<td>Same-length windows with different start dates</td>
<td>Worst 1-year holding period −23.31%</td>
</tr>
<tr>
<td><a href="https://lifolio.io/en/guide/metrics#twrr-mwrr">TWRR and MWRR</a></td>
<td>Performance of the investment vs performance of your money</td>
<td>7.63% · 7.55% with $500 a month</td>
</tr>
</tbody></table></div>
<p>Open the All metrics window from the results screen and most of these metrics appear, grouped into four sections: Returns &amp; Performance, Risk &amp; Recovery, Risk Efficiency and Investment Outcome. The screenshots below show the first two sections, then the last two.</p>
<figure><img src="https://lifolio.io/guides/metrics/metrics-dialog-1-en.webp" alt="The Returns &amp; Performance and Risk &amp; Recovery sections of the All metrics window, showing Annualized return +7.63%, the daily and month-end max drawdowns, Volatility 11.35% and MDD Recovery 23 months" width="1440" height="1229" loading="lazy" decoding="async"><figcaption>All metrics window ① Returns &amp; Performance · Risk &amp; Recovery, as of 2026-11-06</figcaption></figure>
<figure><img src="https://lifolio.io/guides/metrics/metrics-dialog-2-en.webp" alt="The Risk Efficiency and Investment Outcome sections of the All metrics window, showing Sharpe Ratio 0.55, Sortino ratio 0.83 and Calmar −0.01" width="1440" height="1175" loading="lazy" decoding="async"><figcaption>All metrics window ② Risk Efficiency · Investment Outcome, as of 2026-11-06</figcaption></figure>
<p class="guide-try"><a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000&amp;monthly=0&amp;currency=USD&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2024-12-31&amp;benchmark=SPY">Open this example in Lifolio</a></p>
<h2 id="cagr">Annualized return (CAGR)</h2>
<p>Over 10 years, $10,000 became $20,852. If it had grown at exactly the same rate every year, that rate would be 7.63%. That is the annualized return, or CAGR (compound annual growth rate). The summary card shows it as +7.6%.</p>
<p>Lifolio calculates it in two steps. First, for each day, it takes that day&#39;s value, subtracts any contribution made that day, and compares the result with the previous day&#39;s value to get a daily return. These daily returns are compounded through the end of the period to get the cumulative return. It then annualizes that with (1 + cumulative return)^(1 ÷ years) − 1. Chaining returns with contributions stripped out like this is the <a href="https://lifolio.io/en/guide/metrics#twrr-mwrr">TWRR</a> method described further down. If the period is shorter than a year, the cumulative return is shown as is, without annualizing.</p>
<p>The most common misconception is treating this figure as the average return you earned each year. A simple average of the example&#39;s ten annual returns is 8.54%, about 0.9 percentage points higher than the annualized figure. The more returns vary from year to year, the further the compound rate falls below the simple average.</p>
<h2 id="real-return">Real return</h2>
<p>Expand Purchasing power near the bottom of the Performance section and it turns a nominal annualized return of 7.63% into a real 5.00%, and a nominal cumulative return of 108.52% into a real 62.89%. Even while it is folded, its summary line reads &quot;+5.0% a year after inflation · +7.6% before.&quot; The inflation removed here is not the actual consumer price index (CPI). It is a flat assumption that prices rise 2.5% every year, which is what &quot;assuming 2.5% annual inflation&quot; in the title refers to. The same 2.5% is used for won results.</p>
<p>The calculation divides rather than subtracts. The annualized figure is (1 + nominal annualized return) ÷ 1.025 − 1, and the cumulative figure is (1 + nominal cumulative return) ÷ 1.025^years − 1. That is why the result is 5.00%, slightly lower than the 5.13% you would get by simply subtracting 2.5 points from 7.63%.</p>
<p>It&#39;s easy to read this as adjusted for the actual inflation of those 10 years, but high-inflation and low-inflation years alike are calculated at 2.5%. Treat it as a reference figure that changes whenever the assumption does.</p>
<h2 id="mdd">Maximum drawdown (MDD)</h2>
<p>This is the largest percentage drop from the highest value reached so far. At each point in time, the value is divided by the highest value up to then, 1 is subtracted, and the lowest of those numbers is the MDD. Here too, the values have the effect of contributions removed. The −27.6% on the summary card is the daily figure, measured on every trading day. The All metrics window also shows the month-end figure, which uses only each month&#39;s last trading day.</p>
<p>MDD is the single largest drop that actually happened in this period, not a cap on the losses you might face in the future. When the two figures diverge sharply, and how to compare them with MDD from other services, are covered in <a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end">MDD on a daily vs month-end basis, and recovery time</a>.</p>
<h2 id="recovery">Recovery time</h2>
<p>This is how long it took to get from the bottom of the max drawdown back to the previous peak. In the example, the summary card shows it as &quot;23 months from trough to recovery.&quot; Because it starts from the bottom rather than the peak, the total time spent below the peak is longer. If the peak hasn&#39;t been regained by the end of the period, &quot;Recovering&quot; appears instead of a number. How to read the down days and the recovery days separately is explained in <a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end">MDD on a daily vs month-end basis, and recovery time</a>.</p>
<h2 id="volatility">Volatility (standard deviation)</h2>
<p>This is how widely monthly returns were spread around their average, converted to an annual figure. Monthly returns are calculated from month-end values with the effect of contributions removed, excluding any partial month at the start or end of the period. The sample standard deviation of those returns is then multiplied by √12. The example comes to 11.35%.</p>
<p>This number ignores direction: a month with a big gain raises volatility just as much as a month with a big loss. A bigger caveat is that it captures only month-to-month swings. A decline that grinds lower a little at a time over several months barely registers, which is how this example, with volatility of 11.35%, still fell as much as −27.65% from its peak. There&#39;s a big gap between the intuition that &quot;it moves about 11% a year&quot; and the decline investors actually lived through.</p>
<h2 id="sharpe">Sharpe ratio</h2>
<p>This measures how much return above the risk-free rate was earned per unit of volatility. For the definition, see <a href="https://web.stanford.edu/~wfsharpe/art/sr/sr.htm">The Sharpe Ratio</a>, written by William F. Sharpe himself. Lifolio subtracts each month&#39;s risk-free rate from that month&#39;s return to get the excess return, divides the average excess return by its sample standard deviation, and multiplies by √12.</p>
<p>The risk-free rate depends on the reporting currency. Dollar results use the US 3-month Treasury bill rate, <a href="https://fred.stlouisfed.org/series/TB3MS">TB3MS (FRED)</a>, and won results use the 91-day CD rate from the Bank of Korea&#39;s <a href="https://ecos.bok.or.kr/">ECOS</a>. Each month uses the previous month&#39;s reading. The limits of using the CD rate as a risk-free rate are discussed in <a href="https://lifolio.io/en/guide/krw-vs-usd-results">Why KRW returns differ from USD returns</a>. If the required rate data is missing, metrics that depend on interest rates, such as the Sharpe ratio, are shown as N/A.</p>
<p>The example&#39;s Sharpe ratio is 0.55, and SPY&#39;s on the same settings is 0.76. When comparing with a Sharpe ratio from another source, check the inputs first. Whether it was calculated from daily or monthly returns, and what was used as the risk-free rate, can give the same portfolio different values.</p>
<h2 id="sortino">Sortino ratio</h2>
<p>The numerator is the same excess return as in the Sharpe ratio. Only the denominator changes, to downside deviation. Downside deviation squares only the negative parts of monthly excess returns, averages them, takes the square root and multiplies by √12. Every month counts in the average, with months at or above the threshold counted as a shortfall of zero.</p>
<p>The example comes to 0.83, higher than the Sharpe ratio of 0.55. Since the numerator is the same, this means swings on the downside were smaller than swings overall.</p>
<p>A common mistake is trying to recalculate the Sortino ratio from the Downside deviation (monthly) figure of 2.08% in the All metrics window. That figure uses 0%, not the risk-free rate, as its threshold, and it is a monthly value that hasn&#39;t been annualized. The formulas are different, so the numbers can&#39;t match.</p>
<h2 id="calmar">Calmar ratio</h2>
<p>This is the annualized return over the trailing 36 months divided by the month-end max drawdown (as an absolute value) over the same 36 months. Unlike the other metrics, which use the full period, it looks only at the latest 3 years. Yet the All metrics window labels it simply Calmar, and the 36-month detail appears only when you click the info icon next to the name, so it&#39;s easy to assume that, like the other numbers in the same table, it covers all 10 years.</p>
<p>In the example, the calculation window runs from January 2022 to December 2024, 36 monthly returns.</p>
<ul>
<li>Numerator: a balance of about $21,100 at the end of 2021 became $20,852 three years later. Annualized, that is −0.39%, the same as the 3-year value in the Trailing returns table in the Performance section.</li>
<li>Denominator: the month-end max drawdown over the same window is −26.21%. The largest decline of the 10 years falls inside these 3 years, so the value is the same as the full period&#39;s month-end MDD.</li>
<li>Ratio: −0.39 ÷ 26.21 ≈ −0.015, which the screen displays to two decimal places as −0.01.</li>
</ul>
<figure><img src="https://lifolio.io/guides/metrics/calmar-window-en.webp" alt="Portfolio growth line for 2015–2024, with the last 36 months, January 2022 to December 2024, shaded, and labels for 7.63% a year over the full period and −0.39% a year over the last 36 months" width="1560" height="806" loading="lazy" decoding="async"><figcaption>Calmar ratio calculation window. In USD, calculated 2026-10-31</figcaption></figure>
<p>Divide the full period&#39;s annualized return by the full period&#39;s month-end MDD and you get about 0.29 (7.63 ÷ 26.21), so −0.01 is a number from an entirely different window. Because the window is always the last 3 years, moving the end date can swing the value a lot. End the same portfolio at the end of 2021 and the window shifts to 2019–2021, giving a Calmar ratio of 2.85. If there are fewer than 36 monthly returns, or no drawdown in that window, the ratio isn&#39;t calculated, and the full-period value isn&#39;t substituted either.</p>
<h2 id="rolling-returns">Rolling returns (holding-period outcomes)</h2>
<p>Rolling returns measure many windows of the same length, changing only the start date. Holding-period outcomes in the Performance section slides an N-year window forward one month at a time, calculates the annualized return of each window, and for each holding period draws a bar from the worst result to the best, with the share of windows that ended in a loss beside it. Expand the table underneath to see the averages too. In the example there were 109 one-year windows, and the worst was January–December 2022, at −23.31%.</p>
<p>The windows overlap heavily, so the 109 can&#39;t be treated as 109 independent outcomes. The share of losing windows by holding period, and its limits, are covered in <a href="https://lifolio.io/en/guide/backtest-limits">The limits of backtesting</a>.</p>
<h2 id="twrr-mwrr">TWRR and MWRR (time-weighted and money-weighted returns)</h2>
<p>Once you add or withdraw money along the way, there are two different ways to measure return. The time-weighted return (TWRR), as described under <a href="https://lifolio.io/en/guide/metrics#cagr">annualized return</a>, chains returns with the effect of contributions stripped out, so it is the same no matter when or how much you put in. It shows the performance of the investment itself. The money-weighted return (MWRR) places the initial investment, each contribution and the final value on their actual dates and finds the discount rate at which their present values sum to zero: in other words, the internal rate of return (IRR). Periods when more money was invested carry more weight, so it comes closer to how your own money actually did. Lifolio groups cash flows by month for this calculation and reports the result as an annual rate.</p>
<p>MWRR is calculated only when the total invested is more than 1.01 times the initial investment, and in that case a Personal Return (MWRR) row appears in the All metrics window. If it differs from the summary card&#39;s annualized return by 0.05 percentage points or more, a &quot;Counting when you added money&quot; line is also added under the card. The default example, with no contributions, has no such line, and its 7.63% is the TWRR.</p>
<p>Put $10,000 into the same mix at the start and add $500 every month for 10 years, and the cards change like this.</p>
<figure><img src="https://lifolio.io/guides/metrics/kpis-contribution-en.webp" alt="The four summary cards for the example with $500 monthly contributions: Final Balance $108,684 (Invested $70,000, Gain +$38,684), Annualized return +7.6% with &quot;Counting when you added money: +7.5%&quot; below it, Max drawdown · daily −27.6% and Loss after a 1-year hold 17%" width="1461" height="257" loading="lazy" decoding="async"><figcaption>Initial $10,000 plus $500 a month, other settings the same as the default example. Screenshot taken Nov 6, 2026</figcaption></figure>
<p class="guide-try"><a href="https://lifolio.io/en/backtest?tickers=SPY,TLT&amp;weights=60,40&amp;capital=10000&amp;monthly=500&amp;currency=USD&amp;contribfreq=monthly&amp;rebalance=monthly&amp;reinvest=1&amp;start=2015-01-01&amp;end=2024-12-31&amp;benchmark=SPY">Open the $500-a-month example in Lifolio</a></p>
<p>You put in $70,000 in total, and the final value is $108,684. The annualized return (TWRR) is 7.63%, exactly the same as without contributions, so the card still shows +7.6%. The MWRR, based on your own money, is 7.55%, shown on the card as &quot;Counting when you added money: +7.5%&quot;. The max drawdown of −27.6%, the loss after a 1-year hold of 17% and the Sharpe ratio of 0.55 are also unchanged, because returns and risk metrics are all calculated with the effect of contributions removed.</p>
<p>The two differ by only 0.08 points because the same amount went in automatically every month. Money went in evenly in up and down months alike, so the luck of any single moment couldn&#39;t pull the result far. MWRR is very slightly lower, which can be read as the effect of having more money invested in the later years as contributions built up, while those last 3 years were weak at −0.39% a year.</p>
<p>The two diverge widely when a large sum goes in at one point in time. Invest a lump sum just before a downturn and that money takes the full hit, pushing MWRR below TWRR. Invest it just before a rebound and the opposite happens. TWRR stays the same either way, so the gap between the two numbers reflects when the money went in, not how the investment performed.</p>
<p>The full formulas and data-handling rules are in <a href="https://lifolio.io/en/methodology">Methodology</a>, and the sources of the interest-rate and exchange-rate data are in <a href="https://lifolio.io/en/data-sources">Data Sources</a>. All values are calculated from historical data and do not predict future returns.</p>
<section class="guide-faq"><h2 id="faq">Frequently asked questions</h2>
<h3>What is a good Sharpe ratio?</h3>
<p>There is no cutoff that holds in every case. Sharpe ratios are comparable only when the results share the same period, the same return frequency and the same risk-free rate. The example portfolio came to 0.55 for 2015–2024, but 1.18 when the backtest ended at the end of 2021. Rather than holding a single number up against a threshold, put it next to a benchmark calculated on the same settings (SPY&#39;s 0.76 in the example).</p>
<h3>Is a negative Calmar ratio bad?</h3>
<p>A negative value means the annualized return over the last 36 months was below zero. The example&#39;s −0.01 simply signals that a portfolio that returned 7.63% a year over the full 10 years went nowhere in the last 3. It isn&#39;t a verdict on the whole period. Be careful when comparing negative values, though. When the return is negative, a larger drawdown pushes the ratio closer to zero, so the portfolio that fell further can actually look better.</p>
<h3>TWRR vs MWRR: which one should I use?</h3>
<p>It depends on what you want to know. When comparing portfolios or strategies, TWRR, which strips out the effect of contribution amounts and timing, gives you a common yardstick. If you want to know what annual return the money you put in under your own contribution plan actually earned, look at MWRR. MWRR changes when contribution amounts and timing change, so to compare two portfolios&#39; MWRR, you first need to give them identical contribution settings.</p>
</section>
<p class="guide-verify">The numbers in this article were verified by rerunning the same settings on Nov 6, 2026. If you spot an error, please let us know using the Send Feedback button at the bottom right of the screen.</p>
<!----></div> <!--[0--><aside class="related svelte-fndm5u" aria-labelledby="guide-related-heading"><h2 id="guide-related-heading" class="svelte-fndm5u">Related tools</h2> <ul class="svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/backtest" class="svelte-fndm5u">Backtest <span aria-hidden="true">→</span></a></li><!--]--></ul></aside><!--]--> <!--[0--><nav class="series svelte-fndm5u" aria-label="Guide order"><!--[0--><a class="previous svelte-fndm5u" href="https://lifolio.io/en/guide/mdd-daily-vs-month-end"><span class="svelte-fndm5u">← Previous</span>Maximum drawdown (MDD) explained: daily vs month-end MDD and recovery time</a><!--]--> <!--[-1--><!--]--></nav><!--]--></div> <aside class="guide-side svelte-fndm5u" aria-label="In this guide"><!--[0--><p class="side-title svelte-fndm5u">In this guide</p> <ol class="toc svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/metrics#cagr" class="svelte-fndm5u">Annualized return (CAGR)</a></li><li><a href="https://lifolio.io/en/guide/metrics#real-return" class="svelte-fndm5u">Real return</a></li><li><a href="https://lifolio.io/en/guide/metrics#mdd" class="svelte-fndm5u">Maximum drawdown (MDD)</a></li><li><a href="https://lifolio.io/en/guide/metrics#recovery" class="svelte-fndm5u">Recovery time</a></li><li><a href="https://lifolio.io/en/guide/metrics#volatility" class="svelte-fndm5u">Volatility (standard deviation)</a></li><li><a href="https://lifolio.io/en/guide/metrics#sharpe" class="svelte-fndm5u">Sharpe ratio</a></li><li><a href="https://lifolio.io/en/guide/metrics#sortino" class="svelte-fndm5u">Sortino ratio</a></li><li><a href="https://lifolio.io/en/guide/metrics#calmar" class="svelte-fndm5u">Calmar ratio</a></li><li><a href="https://lifolio.io/en/guide/metrics#rolling-returns" class="svelte-fndm5u">Rolling returns (holding-period outcomes)</a></li><li><a href="https://lifolio.io/en/guide/metrics#twrr-mwrr" class="svelte-fndm5u">TWRR and MWRR (time-weighted and money-weighted returns)</a></li><li><a href="https://lifolio.io/en/guide/metrics#faq" class="svelte-fndm5u">Frequently asked questions</a></li><!--]--></ol><!--]--> <!--[0--><p class="side-title svelte-fndm5u">All guides</p> <ol class="series-list svelte-fndm5u"><!--[--><li><a href="https://lifolio.io/en/guide/how-to-read-backtest-results" class="svelte-fndm5u"><span class="num svelte-fndm5u">1</span>How to read backtest results: the four summary cards and the charts</a></li><li><a href="https://lifolio.io/en/guide/backtest-limits" class="svelte-fndm5u"><span class="num svelte-fndm5u">2</span>The limits of backtesting: why the date range you pick changes the result</a></li><li><a href="https://lifolio.io/en/guide/krw-vs-usd-results" class="svelte-fndm5u"><span class="num svelte-fndm5u">3</span>Why KRW returns differ from USD returns</a></li><li><a href="https://lifolio.io/en/guide/mdd-daily-vs-month-end" class="svelte-fndm5u"><span class="num svelte-fndm5u">4</span>Maximum drawdown (MDD) explained: daily vs month-end MDD and recovery time</a></li><li><a href="https://lifolio.io/en/guide/metrics" aria-current="page" class="svelte-fndm5u"><span class="num svelte-fndm5u">5</span>Backtest metrics glossary: CAGR, MDD, Sharpe and Calmar ratios explained</a></li><!--]--></ol><!--]--></aside></div></article>]]></content:encoded></item></channel></rss>
