diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts index 18738373e..70f27fe7b 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts @@ -10,11 +10,11 @@ import { Injectable } from '@nestjs/common'; import { MWRPortfolioCalculator } from './mwr/portfolio-calculator'; import { PortfolioCalculator } from './portfolio-calculator'; -import { TWRPortfolioCalculator } from './twr/portfolio-calculator'; +import { RoaiPortfolioCalculator } from './roai/portfolio-calculator'; export enum PerformanceCalculationType { MWR = 'MWR', // Money-Weighted Rate of Return - TWR = 'TWR' // Time-Weighted Rate of Return + ROAI = 'ROAI' // Return on Average Investment } @Injectable() @@ -56,8 +56,8 @@ export class PortfolioCalculatorFactory { portfolioSnapshotService: this.portfolioSnapshotService, redisCacheService: this.redisCacheService }); - case PerformanceCalculationType.TWR: - return new TWRPortfolioCalculator({ + case PerformanceCalculationType.ROAI: + return new RoaiPortfolioCalculator({ accountBalanceItems, activities, currency, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts similarity index 96% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts index deb3cd72f..e157e2d26 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts @@ -137,7 +137,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'CHF', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell.spec.ts similarity index 99% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell.spec.ts index 7b4d53b2f..a1650ea82 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell.spec.ts @@ -122,7 +122,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'CHF', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy.spec.ts similarity index 99% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy.spec.ts index 002cbd5e9..63a4d77b4 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy.spec.ts @@ -107,7 +107,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'CHF', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts similarity index 99% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts index 640de3985..2853e3d87 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts @@ -136,7 +136,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'CHF', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-fee.spec.ts similarity index 99% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-fee.spec.ts index 6f030a73d..b96e4f540 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-fee.spec.ts @@ -107,7 +107,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'USD', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy.spec.ts similarity index 99% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy.spec.ts index 4e25c17f7..b3793a5b4 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy.spec.ts @@ -120,7 +120,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'CHF', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-item.spec.ts similarity index 99% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-item.spec.ts index 7fc5c526d..d226fe6f8 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-item.spec.ts @@ -107,7 +107,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'USD', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-liability.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-liability.spec.ts similarity index 98% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-liability.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-liability.spec.ts index 5fa90e94c..569212b9a 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-liability.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-liability.spec.ts @@ -107,7 +107,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'USD', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts similarity index 99% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts index 543985424..4c54ba7aa 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts @@ -135,7 +135,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'USD', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-no-orders.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-no-orders.spec.ts similarity index 98% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-no-orders.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-no-orders.spec.ts index 84898490f..77e3f6157 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-no-orders.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-no-orders.spec.ts @@ -84,7 +84,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities: [], - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'CHF', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts similarity index 99% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts index 37f22e2f6..84bcc5bc1 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts @@ -116,7 +116,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'CHF', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts similarity index 96% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts index caf196f54..937fd8b48 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts @@ -116,7 +116,7 @@ describe('PortfolioCalculator', () => { const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: 'CHF', userId: userDummyData.id }); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.spec.ts similarity index 100% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.spec.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.spec.ts diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts similarity index 99% rename from apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts rename to apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts index 059b85441..5b918fa03 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts @@ -15,7 +15,7 @@ import { Big } from 'big.js'; import { addMilliseconds, differenceInDays, format, isBefore } from 'date-fns'; import { cloneDeep, sortBy } from 'lodash'; -export class TWRPortfolioCalculator extends PortfolioCalculator { +export class RoaiPortfolioCalculator extends PortfolioCalculator { private chartDates: string[]; protected calculateOverallPerformance( diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index ce03c8024..e90ebd4ae 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -295,7 +295,7 @@ export class PortfolioService { activities, filters, userId, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: this.request.user.Settings.settings.baseCurrency }); @@ -372,7 +372,7 @@ export class PortfolioService { activities, filters, userId, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: userCurrency }); @@ -680,7 +680,7 @@ export class PortfolioService { const portfolioCalculator = this.calculatorFactory.createCalculator({ activities, userId, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: userCurrency }); @@ -950,7 +950,7 @@ export class PortfolioService { activities, filters, userId, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: this.request.user.Settings.settings.baseCurrency }); @@ -1116,7 +1116,7 @@ export class PortfolioService { activities, filters, userId, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: userCurrency }); diff --git a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts index 93b34cbdf..60c3cf695 100644 --- a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts +++ b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.processor.ts @@ -68,7 +68,7 @@ export class PortfolioSnapshotProcessor { const portfolioCalculator = this.calculatorFactory.createCalculator({ accountBalanceItems, activities, - calculationType: PerformanceCalculationType.TWR, + calculationType: PerformanceCalculationType.ROAI, currency: job.data.userCurrency, filters: job.data.filters, userId: job.data.userId diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html index 2a8880225..1a52bd646 100644 --- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html +++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -117,8 +117,8 @@ Net Performance (TWR)(ROAI)