diff --git a/apps/api/src/app/portfolio/portfolio.service.spec.ts b/apps/api/src/app/portfolio/portfolio.service.spec.ts index 7654b7df3..92970f547 100644 --- a/apps/api/src/app/portfolio/portfolio.service.spec.ts +++ b/apps/api/src/app/portfolio/portfolio.service.spec.ts @@ -27,7 +27,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: NaN, // differenceInDays of date-fns returns NaN for the same day - netPerformancePercent: new Big(0) + netPerformancePercentage: new Big(0) }) .toNumber() ).toEqual(0); @@ -36,7 +36,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: 0, - netPerformancePercent: new Big(0) + netPerformancePercentage: new Big(0) }) .toNumber() ).toEqual(0); @@ -48,7 +48,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: 65, // < 1 year - netPerformancePercent: new Big(0.1025) + netPerformancePercentage: new Big(0.1025) }) .toNumber() ).toBeCloseTo(0.729705); @@ -57,7 +57,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: 365, // 1 year - netPerformancePercent: new Big(0.05) + netPerformancePercentage: new Big(0.05) }) .toNumber() ).toBeCloseTo(0.05); @@ -69,7 +69,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: 575, // > 1 year - netPerformancePercent: new Big(0.2374) + netPerformancePercentage: new Big(0.2374) }) .toNumber() ).toBeCloseTo(0.145); diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index bd2c001fa..a98887ca9 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -208,16 +208,16 @@ export class PortfolioService { public getAnnualizedPerformancePercent({ daysInMarket, - netPerformancePercent + netPerformancePercentage }: { daysInMarket: number; - netPerformancePercent: Big; + netPerformancePercentage: Big; }): Big { if (isNumber(daysInMarket) && daysInMarket > 0) { const exponent = new Big(365).div(daysInMarket).toNumber(); return new Big( - Math.pow(netPerformancePercent.plus(1).toNumber(), exponent) + Math.pow(netPerformancePercentage.plus(1).toNumber(), exponent) ).minus(1); } @@ -704,7 +704,7 @@ export class PortfolioService { const dividendYieldPercent = this.getAnnualizedPerformancePercent({ daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)), - netPerformancePercent: timeWeightedInvestment.eq(0) + netPerformancePercentage: timeWeightedInvestment.eq(0) ? new Big(0) : dividendInBaseCurrency.div(timeWeightedInvestment) }); @@ -712,7 +712,9 @@ export class PortfolioService { const dividendYieldPercentWithCurrencyEffect = this.getAnnualizedPerformancePercent({ daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)), - netPerformancePercent: timeWeightedInvestmentWithCurrencyEffect.eq(0) + netPerformancePercentage: timeWeightedInvestmentWithCurrencyEffect.eq( + 0 + ) ? new Big(0) : dividendInBaseCurrency.div( timeWeightedInvestmentWithCurrencyEffect @@ -1712,13 +1714,13 @@ export class PortfolioService { const annualizedPerformancePercent = this.getAnnualizedPerformancePercent({ daysInMarket, - netPerformancePercent: new Big(netPerformancePercentage) + netPerformancePercentage: new Big(netPerformancePercentage) })?.toNumber(); const annualizedPerformancePercentWithCurrencyEffect = this.getAnnualizedPerformancePercent({ daysInMarket, - netPerformancePercent: new Big( + netPerformancePercentage: new Big( netPerformancePercentageWithCurrencyEffect ) })?.toNumber();