Portfolio performance YTD calculation is not correct for some stocks

Propnex in my portfolio is showing -10.39% return ytd 2023.
Opening price 2023: 0.765 (bonus adjusted)
Closing price 2023: 0.93
I sold half of my shares at bonus adjusted $1.21 and buy back some at $1.00. Overall should be positive return.


SGX:C38U - CapitaLand Integrated Commercial Trust in my portfolio is showing +1.06% return.
The average purchase price is around $1.76 on Oct 2023 only, closing price is 2.06, no holding prior to Oct 2023, no dividend received, return should be around +17%. (2.06-1.76)/1.76

Hi there,

We are basically using different base price for the computations.

This page is meant to see how a stock have changed over time relative to itself.

It is not considering the average price that you paid for.

e.g. For PropNex, on 3 Jan 2023, price is 1.53 and it is 0.93 now hence a drop of >30%.

Basically, what this page aims to tells us is what if we hold this set of stocks in the given period from the start, what would be the performance.

Cheers,
Evan

ps: However, I can see the argument why we might want to use average buy especially when we only started owning the stock after the start period. I remember the reason we chose to do it this way is because it is simpler and easier to understand.

e.g. What if I hold some shares of stock A and started adding during the selected period? We would then have to adjust part of it to price of start of the period and the rest based on the buy price. This would only make it confusing to users.

Hi Evan,

Thanks for your updates.

Just to confirm if this scenario was considered. Propnex has 1:1 bonus issued during 2023. Hence, actual price on 3 Jan 2023 after bonus adjusted should be 0.765, closing price is 0.93. Assuming we hold the same amount of stocks from beginning of 2023 and accept bonus issue, return should be positive.

Noted on the use of different base price for the computations. This explains the SGX:C38U - CICT base price used was 2.03 at 3 Jan 2023 and 2.06 at 31 Dec 2023, returns is 1%+. However, since this page was meant for portfolio return, possible to have an option to allow us to use paid price VS closing price for portfolio return calculation?
Thank you!

Thank you for highlighting this. I just made changes to reflect this. Somehow it works for US stocks but not SG stocks :frowning:

I agree that it should be an option for that. However, there are some details to agree upon.

Assume we are chose period to be Year To Date (i.e. First trading day of the year till last trading day of the year):

  1. What if we just start owning the stock somewhere during the year? Should we weigh the returns accordingly? e.g. if we start owning the stock say last second day of the trading year (i.e. 28 Dec 2023) vs start owning it from second day of the trading year (i.e. 4 Jan 2023). How should we handle the differently or should we handle them the same?

  2. Also, what if say I already own 100 shares of the stock in the year before? Should it be still the paid price or close price of first trading day? I would personally argue that it should be close price of first trading day since it should reflect the change/return during the period.

  3. To make it even more complex, what if say I already own 100 shares of the stock in the year before and somewhere during the year, I buy another 100 shares? What should be the base price? I think there are arguments for different scenarios here.

I think the answers to all 3 questions need some consistency in logic to make it simple for everyone to understand.

Hi Evan

I think there is no need to weigh the return. Bought on the first day or last day of the period should be considered same. The reason of this decision is because we might already park the money somewhere before the buy, we should not simply base on the buy date to decide the capital committed date, also make our life easier. :slight_smile:

I’m actually have an idea to calculate the ytd return with all 3 scenarios handled. I’m also using this formula to calculate my yearly return.

Basic

  1. No need to weigh the invested capital by date
  2. Return are based on how much money we paid VS how much money we get during the year.

Variables

  1. Inital Invested Capital = @A
    scenario 1) We own shares in previous year/period, @A=TotalSharesValue (based on closing price of last trading day)
    scenario 2) We does not own shares in previous year/period, @A=TotalSharesValue of the first trade (during the year)

  2. Trade Balance = @B
    scenario 1) We own shares in previous year/period, @B=sum of all Traded shares value during the year
    scenario 2) We does not own shares in previous year/period, @B=sum of all Traded shares value (except the first trade) during the year

    For Buy trade, TradedSharesValue is negative. For sell trade, TradedSharesValue is positive. I guess can use the Cash Balance.

    If Trade Balance @B is positive value, mean overall divestment during the year
    If Trade Balance @B is negative value, mean overall additional investment during the year

  3. Year End Shares Value = @C
    TotalSharesValue owned at the end of the year. This value might be zero if we sold off all shares during the year.
    = No. Of Share x closing price of the last trading day.

Return Calculation

If @B Trade Balance value is Positive (divestment)
Total Return = ((@B+@C)-@A) / @A

If @B Trade Balance value is Negative (additional investment), make the @B value positive, then
Total Return = (@C - (@A+@B)) / (@A+@B)

Let me have your feedback! Thanks!

Hmm… Either it is too complex or I am just too tired to get it.

Anyway, this is basically different from the original aim of Performance page. Need to rethink it completely.

I personally think this formula is the most simplest and comprehensive. Maybe the way I explain make it difficult to understand.

It’s ok, I can still make use of the transactions to calculate return

Thank you

What do you mean?

If you do not mind, can you try to explain with example?

Hi Evan

Sorry for late reply.

I mean this platform allow me to key in all transaction so that I can calculate trade balance at the end of the year.

I’m happy to share my current formula to calculate YTD return with a few key scenarios. It did not cover all scenarios but however, the logic/formula is same.

Scenario 1: Own shares in previous year (2022), additional investment (net BUY) in current year (2023).

Stock Date Shares Own Closing Price Value Remarks
Stock A 31-Dec-22 10,000 1.00 10,000.00 Init invested capital
Stock Transaction Date Shares Price Value Cash balance
Stock A BUY 1-Jul-23 5,000 1.20 6,000 -6,000
Stock A SELL 1-Oct-23 3,000 1.30 3,900 3,900
Stock Date Shares Own Closing Price Value Remarks
Stock A 31-Dec-23 12,000 1.25 15,000 Year end shares value
  1. Initial Invested Capital, @A = $10,000
  2. Trade Balance, @B = {sum of cash balance} = Sum(-6,000, 3,900) = -$2,100
  3. Year End Shares Value, @C = $15,000

Return Calculation:
@B Trade Balance value is Negative (net buy) => [Condition 2], make the @B value positive, then
Total Return = (@C - (@A+@B)) / (@A+@B)
= (15,000 - (10,000+2,100)) / (10,000+2,100) = 2,900 / 12,100 = +24%


Scenario 2: Own shares in previous year (2022), net SELL in current year (2023).

Stock Date Shares Own Closing Price Value Remarks
Stock A 31-Dec-22 10,000 1.00 10,000.00 Init invested capital
Stock Transaction Date Shares Price Value Cash balance
Stock A BUY 1-Jul-23 3,000 1.30 3,900 -3,900
Stock A SELL 1-Oct-23 5,000 1.20 6,000 6,000
Stock Date Shares Own Closing Price Value Remarks
Stock A 31-Dec-23 8,000 1.10 8,800 Year end shares value
  1. Initial Invested Capital, @A = $10,000
  2. Trade Balance, @B = {sum of cash balance} = Sum(6,000, -3,900) = $2,100
  3. Year End Shares Value, @C = $8,800

Return Calculation:
@B Trade Balance value is Positive (net sell) => [Condition 1]
Total Return = ((@B+@C)-@A) / @A
= ((2,100+8,800)-10,000) / 10,000 = 900 / 10,000 = +9%


Scenario 3: Does not own shares in previous year (2022), net BUY in current year (2023).

Stock Transaction Date Shares Price Value Cash balance Remarks
Stock A BUY 1-Feb-23 10,000 1.00 10,000 - 1st trade as initial invested capital
Stock A BUY 1-Oct-23 5,000 1.20 6,000 -6,000
Stock A SELL 1-Dec-23 3,000 1.30 3,900 3,900
Stock Date Shares Own Closing Price Value Remarks
Stock A 31-Dec-23 12,000 1.25 15,000 Year end shares value
  1. Initial Invested Capital, @A = $10,000 (first buy trade, always positive)
  2. Trade Balance, @B = {sum of cash balance EXCEPT first trade} = Sum(-6,000, 3,900) = -$2,100
  3. Year End Shares Value, @C = $15,000

Return Calculation:
@B Trade Balance value is Negative (net buy) => [Condition 2], make the @B value positive, then
Total Return = (@C - (@A+@B)) / (@A+@B)
= (15,000 - (10,000+2,100)) / (10,000+2,100) = 2,900 / 12,100 = +24%
*the return is same as scenario 1


Scenario 4: Does not own shares in previous year (2022), buy and sell off in current year (2023).

Stock Transaction Date Shares Price Value Cash balance Remarks
Stock A BUY 1-Feb-23 10,000 1.00 10,000 - 1st trade as initial invested capital
Stock A SELL 1-Oct-23 5,000 1.20 6,000 6,000
Stock A SELL 1-Dec-23 5,000 1.30 6,500 6,500
Stock Date Shares Own Closing Price Value Remarks
Stock A 31-Dec-23 0 1.25 0 Year end shares value
  1. Initial Invested Capital, @A = $10,000
  2. Trade Balance, @B = {sum of cash balance EXCEPT first trade} = Sum(6,000, 6,500) = $12,500
  3. Year End Shares Value, @C = $0

Return Calculation:
@B Trade Balance value is Positive (net sell) => [Condition 1]
Total Return = ((@B+@C)-@A) / @A
= ((12,500+0)-10,000) / 10,000 = 2,500/ 10,000 = +25%

Thank you for the very neat explanation. Since you put in so much effort to do so, I should reciprocate :slight_smile:

Will queue this up.

Hi Evan

I’m glad for being able to contribute to this platform. Appreciated for your effort.

Thank you.

1 Like