I'm trying to understand how year-over-year and YTD performance values are calculated. I thought it was obvious and straightforward, but I can't replicate the values my bank shows for even a simple example.

I looked at the performance of SPY and tried to perform the calculation myself. My bank provided the following data for SPY on Jan 1 of each year since 2020 (manually typed, did my best to avoid an error):

Date Open Low High Close
01/01/2020 323.51 320.36 332.95 321.73
01/01/2021 373.31 364.82 385.85 370.07
01/01/2022 476.30 420.76 479.98 449.91
01/01/2023 384.37 377.83 408.16 406.48

I'm not sure if I should be using the open, low, high, or close numbers, so I calculated the YoY percent gain as 100*(value at end of year - value at start of year)/value at start of year.

Date Open Low High Close
2020 16.00 13.88 15.89 15.03
2021 26.91 15.33 24.40 21.57
2022 -19.30 -10.20 -14.96 -9.65

Comparing this to the Calendar year % returns reported by my bank, none of the numbers are even close:

Date YoY % (Market Value) YoY % (NAV)
2020 18.37 18.40
2021 28.75 28.59
2022 -18.17 -18.14

What am I doing wrong?

1 Answer 1


Year over year: Compare the current value (today's close, or today's open if the market hasn't yet closed) to last year's close value at the same date.

Year to date: Compare the current value (as above) to the value on December 31st of last year.

Remember that gain is calculated relative to the start. If you begin with 500 and end with 600, you gained 20% of 500. The other way round, from 600 to 500, you lost 16.66...% of 600.

gain or loss in % = 100 * ((current value / original value) - 1)

where the -1 is subtracting out what you started with to leave only the change.

Low and high are irrelevant to this. They're of interest only if you think they might tell you meaningful something about volatility. I'm not convinced they're actually particularly useful as single data points.

  • Ok, so I'll use the close values. But using your formula yields exactly the same results I already posted. So why the difference with the banks posted Calendar year % returns? eg. 2020 value from the bank is 18.37%, your formula and mine both yield 15.03%.
    – rothloup
    Jul 23, 2023 at 0:01
  • Reinvested dividends, if any would be reflected in total returns.
    – keshlam
    Jul 23, 2023 at 1:13
  • ok - so how do I apply that? Surely there must be some way I can reproduce the numbers that my bank displays for the performance of the SP500.
    – rothloup
    Jul 23, 2023 at 3:18
  • 1
    Do you know what the dividends are, when, and what share prices were when dividends were reinvested? If so, add the cost of the dividend shares plus the growth in the dividend shares to your final value before calculating growth. Yes, it has to be done separately for each of those purchases. Yes, it's a pain; that's part of why most of us don't bother manually calculating it or use personal finance software which does that for us.
    – keshlam
    Jul 23, 2023 at 3:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .