diff --git a/src/core/explorer.ts b/src/core/explorer.ts index 990969e8..2a626a42 100644 --- a/src/core/explorer.ts +++ b/src/core/explorer.ts @@ -301,10 +301,12 @@ export class TransactionExplorerDataDimension implements NameValue { export enum TransactionExplorerValueMetricType { TransactionCount = 'transactionCount', - SourceAmountSum = 'sourceAmountSum', SourceIncomeAmountSum = 'sourceIncomeAmountSum', SourceExpenseAmountSum = 'sourceExpenseAmountSum', SourceNetIncomeAmountSum = 'sourceNetIncomeAmountSum', + SrouceAmountExpenseIncomeRatio = 'sourceExpenseIncomeRatio', + SourceAmountSavingsRate = 'sourceAmountSavingsRate', + SourceAmountSum = 'sourceAmountSum', SourceAmountAverage = 'sourceAmountAverage', SourceAmountMedian = 'sourceAmountMedian', SourceAmountQ1Amount = 'sourceQ1Amount', @@ -333,6 +335,8 @@ export class TransactionExplorerValueMetric implements NameValue { public static readonly SourceIncomeAmountSum = new TransactionExplorerValueMetric('Total Income', TransactionExplorerValueMetricType.SourceIncomeAmountSum, true, false, true); public static readonly SourceExpenseAmountSum = new TransactionExplorerValueMetric('Total Expense', TransactionExplorerValueMetricType.SourceExpenseAmountSum, true, false, true); public static readonly SourceNetIncomeAmountSum = new TransactionExplorerValueMetric('Net Income', TransactionExplorerValueMetricType.SourceNetIncomeAmountSum, true, false, true); + public static readonly SrouceAmountExpenseIncomeRatio = new TransactionExplorerValueMetric('Expense / Income Ratio', TransactionExplorerValueMetricType.SrouceAmountExpenseIncomeRatio, false, true, false); + public static readonly SourceAmountSavingsRate = new TransactionExplorerValueMetric('Savings Rate', TransactionExplorerValueMetricType.SourceAmountSavingsRate, false, true, false); public static readonly SourceAmountSum = new TransactionExplorerValueMetric('Total Amount', TransactionExplorerValueMetricType.SourceAmountSum, true, false, true); public static readonly SourceAmountAverage = new TransactionExplorerValueMetric('Average Amount', TransactionExplorerValueMetricType.SourceAmountAverage, true, false, true); public static readonly SourceAmountMedian = new TransactionExplorerValueMetric('Median Amount', TransactionExplorerValueMetricType.SourceAmountMedian, true, false, true); diff --git a/src/locales/de.json b/src/locales/de.json index 72af12e3..ddc29d21 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Zielkonto-Währung", "Value Metric": "Wertmetrik", "Transaction Count": "Transaktionsanzahl", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Durchschnittsbetrag", "Median Amount": "Medianbetrag", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/en.json b/src/locales/en.json index f28e648d..93970672 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/es.json b/src/locales/es.json index bbd874bc..7426e849 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Moneda de la cuenta de destino", "Value Metric": "Métrica de valor", "Transaction Count": "Recuento de transacciones", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Importe Medio", "Median Amount": "Importe Mediano", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/fr.json b/src/locales/fr.json index 5d71d558..747e2046 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/it.json b/src/locales/it.json index e2d49e4a..14508ff2 100644 --- a/src/locales/it.json +++ b/src/locales/it.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/ja.json b/src/locales/ja.json index 634f4646..80149bad 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/kn.json b/src/locales/kn.json index 56548ca6..4d11d53d 100644 --- a/src/locales/kn.json +++ b/src/locales/kn.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/ko.json b/src/locales/ko.json index 326abc33..5f897101 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "목적지 계좌 통화", "Value Metric": "값 메트릭", "Transaction Count": "거래 수", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "평균 금액", "Median Amount": "중간 금액", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/nl.json b/src/locales/nl.json index 4ea39dd5..b6be2054 100644 --- a/src/locales/nl.json +++ b/src/locales/nl.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/pt_BR.json b/src/locales/pt_BR.json index e1dce5bd..ea62525f 100644 --- a/src/locales/pt_BR.json +++ b/src/locales/pt_BR.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Moeda da Conta de Destino", "Value Metric": "Métrica de Valor", "Transaction Count": "Quantidade de Transações", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Valor Médio", "Median Amount": "Valor Mediano", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/ru.json b/src/locales/ru.json index 15feff46..d9f28be8 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Валюта целевого счёта", "Value Metric": "Метрика значения", "Transaction Count": "Количество транзакций", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Средняя сумма", "Median Amount": "Медиана сумм", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/sl.json b/src/locales/sl.json index 2081010b..6c8e5212 100644 --- a/src/locales/sl.json +++ b/src/locales/sl.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Valuta ciljnega računa", "Value Metric": "Metrika vrednosti", "Transaction Count": "Število transakcij", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Povprečni znesek", "Median Amount": "Mediana zneska", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/ta.json b/src/locales/ta.json index a196e6ff..b1030ba9 100644 --- a/src/locales/ta.json +++ b/src/locales/ta.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "இலக்கு கணக்கு நாணயம்", "Value Metric": "மதிப்பு அளவீடு", "Transaction Count": "பரிவர்த்தனை எண்ணிக்கை", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "சராசரி தொகை", "Median Amount": "நடுநிலை தொகை", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/th.json b/src/locales/th.json index 2c0d8cf9..5af33daa 100644 --- a/src/locales/th.json +++ b/src/locales/th.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/tr.json b/src/locales/tr.json index c6793f8f..0554632e 100644 --- a/src/locales/tr.json +++ b/src/locales/tr.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/uk.json b/src/locales/uk.json index 96f0d034..2ec381e2 100644 --- a/src/locales/uk.json +++ b/src/locales/uk.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/vi.json b/src/locales/vi.json index 661b9835..f131cd47 100644 --- a/src/locales/vi.json +++ b/src/locales/vi.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "Destination Account Currency", "Value Metric": "Value Metric", "Transaction Count": "Transaction Count", + "Expense / Income Ratio": "Expense / Income Ratio", + "Savings Rate": "Savings Rate", "Average Amount": "Average Amount", "Median Amount": "Median Amount", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", diff --git a/src/locales/zh_Hans.json b/src/locales/zh_Hans.json index 6e24096b..69785e59 100644 --- a/src/locales/zh_Hans.json +++ b/src/locales/zh_Hans.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "目标账户货币", "Value Metric": "值类型", "Transaction Count": "交易数量", + "Expense / Income Ratio": "支出/收入比", + "Savings Rate": "储蓄率", "Average Amount": "平均金额", "Median Amount": "中位数金额", "Q1 Amount (First Quartile)": "Q1 金额(第一四分位数)", diff --git a/src/locales/zh_Hant.json b/src/locales/zh_Hant.json index 1c5e933b..3d1a57bc 100644 --- a/src/locales/zh_Hant.json +++ b/src/locales/zh_Hant.json @@ -1806,6 +1806,8 @@ "Destination Account Currency": "目標帳戶貨幣", "Value Metric": "值類型", "Transaction Count": "交易數量", + "Expense / Income Ratio": "支出/收入比率", + "Savings Rate": "儲蓄率", "Average Amount": "平均金額", "Median Amount": "中位數金額", "Q1 Amount (First Quartile)": "Q1 金額 (第一四分位數)", diff --git a/src/stores/explorer.ts b/src/stores/explorer.ts index 96e92434..26f9fa1e 100644 --- a/src/stores/explorer.ts +++ b/src/stores/explorer.ts @@ -871,14 +871,18 @@ export const useExplorersStore = defineStore('explorers', () => { if (valueMetric === TransactionExplorerValueMetric.TransactionCount) { value = allSourceAmountsInDefaultCurrency.length; - } else if (valueMetric === TransactionExplorerValueMetric.SourceAmountSum) { - value = totalSourceAmountSumInDefaultCurrency; } else if (valueMetric === TransactionExplorerValueMetric.SourceIncomeAmountSum) { value = totalSourceIncomeAmountSumInDefaultCurrency; } else if (valueMetric === TransactionExplorerValueMetric.SourceExpenseAmountSum) { value = totalSourceExpenseAmountSumInDefaultCurrency; } else if (valueMetric === TransactionExplorerValueMetric.SourceNetIncomeAmountSum) { value = totalSourceIncomeAmountSumInDefaultCurrency - totalSourceExpenseAmountSumInDefaultCurrency; + } else if (valueMetric === TransactionExplorerValueMetric.SrouceAmountExpenseIncomeRatio) { + value = totalSourceIncomeAmountSumInDefaultCurrency !== 0 ? 100.0 * totalSourceExpenseAmountSumInDefaultCurrency / totalSourceIncomeAmountSumInDefaultCurrency : 0; + } else if (valueMetric === TransactionExplorerValueMetric.SourceAmountSavingsRate) { + value = totalSourceIncomeAmountSumInDefaultCurrency !== 0 ? 100.0 * (totalSourceIncomeAmountSumInDefaultCurrency - totalSourceExpenseAmountSumInDefaultCurrency) / totalSourceIncomeAmountSumInDefaultCurrency : 0; + } else if (valueMetric === TransactionExplorerValueMetric.SourceAmountSum) { + value = totalSourceAmountSumInDefaultCurrency; } else if (valueMetric === TransactionExplorerValueMetric.SourceAmountAverage) { value = allSourceAmountsInDefaultCurrency.length > 0 ? Math.trunc(totalSourceAmountSumInDefaultCurrency / allSourceAmountsInDefaultCurrency.length) : 0; } else if (valueMetric === TransactionExplorerValueMetric.SourceAmountMedian) {