add expense / income ratio and savings rate to value metric in insights explorer

This commit is contained in:
MaysWind
2026-04-15 22:32:45 +08:00
parent c64c60c6a0
commit 02d8b132f5
21 changed files with 49 additions and 3 deletions
+5 -1
View File
@@ -301,10 +301,12 @@ export class TransactionExplorerDataDimension implements NameValue {
export enum TransactionExplorerValueMetricType { export enum TransactionExplorerValueMetricType {
TransactionCount = 'transactionCount', TransactionCount = 'transactionCount',
SourceAmountSum = 'sourceAmountSum',
SourceIncomeAmountSum = 'sourceIncomeAmountSum', SourceIncomeAmountSum = 'sourceIncomeAmountSum',
SourceExpenseAmountSum = 'sourceExpenseAmountSum', SourceExpenseAmountSum = 'sourceExpenseAmountSum',
SourceNetIncomeAmountSum = 'sourceNetIncomeAmountSum', SourceNetIncomeAmountSum = 'sourceNetIncomeAmountSum',
SrouceAmountExpenseIncomeRatio = 'sourceExpenseIncomeRatio',
SourceAmountSavingsRate = 'sourceAmountSavingsRate',
SourceAmountSum = 'sourceAmountSum',
SourceAmountAverage = 'sourceAmountAverage', SourceAmountAverage = 'sourceAmountAverage',
SourceAmountMedian = 'sourceAmountMedian', SourceAmountMedian = 'sourceAmountMedian',
SourceAmountQ1Amount = 'sourceQ1Amount', 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 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 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 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 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 SourceAmountAverage = new TransactionExplorerValueMetric('Average Amount', TransactionExplorerValueMetricType.SourceAmountAverage, true, false, true);
public static readonly SourceAmountMedian = new TransactionExplorerValueMetric('Median Amount', TransactionExplorerValueMetricType.SourceAmountMedian, true, false, true); public static readonly SourceAmountMedian = new TransactionExplorerValueMetric('Median Amount', TransactionExplorerValueMetricType.SourceAmountMedian, true, false, true);
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Zielkonto-Währung", "Destination Account Currency": "Zielkonto-Währung",
"Value Metric": "Wertmetrik", "Value Metric": "Wertmetrik",
"Transaction Count": "Transaktionsanzahl", "Transaction Count": "Transaktionsanzahl",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Durchschnittsbetrag", "Average Amount": "Durchschnittsbetrag",
"Median Amount": "Medianbetrag", "Median Amount": "Medianbetrag",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Moneda de la cuenta de destino", "Destination Account Currency": "Moneda de la cuenta de destino",
"Value Metric": "Métrica de valor", "Value Metric": "Métrica de valor",
"Transaction Count": "Recuento de transacciones", "Transaction Count": "Recuento de transacciones",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Importe Medio", "Average Amount": "Importe Medio",
"Median Amount": "Importe Mediano", "Median Amount": "Importe Mediano",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -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)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Moeda da Conta de Destino", "Destination Account Currency": "Moeda da Conta de Destino",
"Value Metric": "Métrica de Valor", "Value Metric": "Métrica de Valor",
"Transaction Count": "Quantidade de Transações", "Transaction Count": "Quantidade de Transações",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Valor Médio", "Average Amount": "Valor Médio",
"Median Amount": "Valor Mediano", "Median Amount": "Valor Mediano",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -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)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Valuta ciljnega računa", "Destination Account Currency": "Valuta ciljnega računa",
"Value Metric": "Metrika vrednosti", "Value Metric": "Metrika vrednosti",
"Transaction Count": "Število transakcij", "Transaction Count": "Število transakcij",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Povprečni znesek", "Average Amount": "Povprečni znesek",
"Median Amount": "Mediana zneska", "Median Amount": "Mediana zneska",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -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)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "Destination Account Currency", "Destination Account Currency": "Destination Account Currency",
"Value Metric": "Value Metric", "Value Metric": "Value Metric",
"Transaction Count": "Transaction Count", "Transaction Count": "Transaction Count",
"Expense / Income Ratio": "Expense / Income Ratio",
"Savings Rate": "Savings Rate",
"Average Amount": "Average Amount", "Average Amount": "Average Amount",
"Median Amount": "Median Amount", "Median Amount": "Median Amount",
"Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)", "Q1 Amount (First Quartile)": "Q1 Amount (First Quartile)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "目标账户货币", "Destination Account Currency": "目标账户货币",
"Value Metric": "值类型", "Value Metric": "值类型",
"Transaction Count": "交易数量", "Transaction Count": "交易数量",
"Expense / Income Ratio": "支出/收入比",
"Savings Rate": "储蓄率",
"Average Amount": "平均金额", "Average Amount": "平均金额",
"Median Amount": "中位数金额", "Median Amount": "中位数金额",
"Q1 Amount (First Quartile)": "Q1 金额(第一四分位数)", "Q1 Amount (First Quartile)": "Q1 金额(第一四分位数)",
+2
View File
@@ -1806,6 +1806,8 @@
"Destination Account Currency": "目標帳戶貨幣", "Destination Account Currency": "目標帳戶貨幣",
"Value Metric": "值類型", "Value Metric": "值類型",
"Transaction Count": "交易數量", "Transaction Count": "交易數量",
"Expense / Income Ratio": "支出/收入比率",
"Savings Rate": "儲蓄率",
"Average Amount": "平均金額", "Average Amount": "平均金額",
"Median Amount": "中位數金額", "Median Amount": "中位數金額",
"Q1 Amount (First Quartile)": "Q1 金額 (第一四分位數)", "Q1 Amount (First Quartile)": "Q1 金額 (第一四分位數)",
+6 -2
View File
@@ -871,14 +871,18 @@ export const useExplorersStore = defineStore('explorers', () => {
if (valueMetric === TransactionExplorerValueMetric.TransactionCount) { if (valueMetric === TransactionExplorerValueMetric.TransactionCount) {
value = allSourceAmountsInDefaultCurrency.length; value = allSourceAmountsInDefaultCurrency.length;
} else if (valueMetric === TransactionExplorerValueMetric.SourceAmountSum) {
value = totalSourceAmountSumInDefaultCurrency;
} else if (valueMetric === TransactionExplorerValueMetric.SourceIncomeAmountSum) { } else if (valueMetric === TransactionExplorerValueMetric.SourceIncomeAmountSum) {
value = totalSourceIncomeAmountSumInDefaultCurrency; value = totalSourceIncomeAmountSumInDefaultCurrency;
} else if (valueMetric === TransactionExplorerValueMetric.SourceExpenseAmountSum) { } else if (valueMetric === TransactionExplorerValueMetric.SourceExpenseAmountSum) {
value = totalSourceExpenseAmountSumInDefaultCurrency; value = totalSourceExpenseAmountSumInDefaultCurrency;
} else if (valueMetric === TransactionExplorerValueMetric.SourceNetIncomeAmountSum) { } else if (valueMetric === TransactionExplorerValueMetric.SourceNetIncomeAmountSum) {
value = totalSourceIncomeAmountSumInDefaultCurrency - totalSourceExpenseAmountSumInDefaultCurrency; 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) { } else if (valueMetric === TransactionExplorerValueMetric.SourceAmountAverage) {
value = allSourceAmountsInDefaultCurrency.length > 0 ? Math.trunc(totalSourceAmountSumInDefaultCurrency / allSourceAmountsInDefaultCurrency.length) : 0; value = allSourceAmountsInDefaultCurrency.length > 0 ? Math.trunc(totalSourceAmountSumInDefaultCurrency / allSourceAmountsInDefaultCurrency.length) : 0;
} else if (valueMetric === TransactionExplorerValueMetric.SourceAmountMedian) { } else if (valueMetric === TransactionExplorerValueMetric.SourceAmountMedian) {