From 3837c9239e10e8b3b8d95b8297730988057dfb0f Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Fri, 21 Aug 2026 16:54:50 +0530 Subject: [PATCH] refactor(reports): drop txns_per_month and Count card Group strip is now Sum/Avg/Min/Max/Cadence-Frequency; count already shown in the accordion header, per-month rate derivable from monthly buckets. --- src/Reports/ReportViewer.tsx | 1 - src/Reports/types.ts | 6 ------ src/common/components/TransactionList.tsx | 11 ----------- src/common/utils/transactions.ts | 1 - 4 files changed, 19 deletions(-) diff --git a/src/Reports/ReportViewer.tsx b/src/Reports/ReportViewer.tsx index a294eff..f744dba 100644 --- a/src/Reports/ReportViewer.tsx +++ b/src/Reports/ReportViewer.tsx @@ -162,7 +162,6 @@ export function ReportViewer({ id, version, fields, onClose, onRegenerated }: Re max: g.metrics.max, cadence: g.metrics.cadence, frequency: g.metrics.frequency, - txnsPerMonth: g.metrics.txnsPerMonth, }, })), [periodGroups], diff --git a/src/Reports/types.ts b/src/Reports/types.ts index fbda26d..8056f3f 100644 --- a/src/Reports/types.ts +++ b/src/Reports/types.ts @@ -12,7 +12,6 @@ export interface PeriodMetricsVM { lastDate: string | null; cadence: number | null; frequency: number | null; - txnsPerMonth: number | null; } export interface ReportPeriodGroup { @@ -109,7 +108,6 @@ export function buildPeriodGroups(buckets: any[], filter: SliceFilter): ReportPe sources: number; apiCadence: number | null; apiFrequency: number | null; - apiTxnsPerMonth: number | null; } const byPeriod = new Map(); const seenTxnIds = new Set(); @@ -135,13 +133,11 @@ export function buildPeriodGroups(buckets: any[], filter: SliceFilter): ReportPe lastDate: null, cadence: null, frequency: null, - txnsPerMonth: null, }, txns: [], sources: 0, apiCadence: num(m.cadence), apiFrequency: num(m.frequency), - apiTxnsPerMonth: num(m.txns_per_month), }; byPeriod.set(period.period_id, acc); } @@ -192,11 +188,9 @@ export function buildPeriodGroups(buckets: any[], filter: SliceFilter): ReportPe vm.cadence = null; vm.frequency = null; } - vm.txnsPerMonth = null; } else { vm.cadence = acc.apiCadence; vm.frequency = acc.apiFrequency; - vm.txnsPerMonth = acc.apiTxnsPerMonth; } return { key, metrics: vm, txns: acc.txns, currency }; }) diff --git a/src/common/components/TransactionList.tsx b/src/common/components/TransactionList.tsx index 072c867..b242c11 100644 --- a/src/common/components/TransactionList.tsx +++ b/src/common/components/TransactionList.tsx @@ -48,7 +48,6 @@ function txnFallbackMetrics(items: ExpenseItem[]): ListGroupMetrics { max: t.max, cadence: t.cadenceDays, frequency: t.frequency, - txnsPerMonth: null, }; } @@ -67,18 +66,8 @@ function GroupMetrics({ { label: "Avg", value: m.avg == null ? "—" : formatCurrency(m.avg, currency) }, { label: "Min", value: m.min == null ? "—" : formatCurrency(m.min, currency) }, { label: "Max", value: m.max == null ? "—" : formatCurrency(m.max, currency) }, - { - label: "Count", - value: - typeof m.count === "number" - ? m.count.toLocaleString("en-IN") - : String(items.length), - }, cadenceRow(m.cadence, m.frequency), ]; - if (m.txnsPerMonth != null) { - rows.push({ label: "Per Month", value: Number.isInteger(m.txnsPerMonth) ? String(m.txnsPerMonth) : m.txnsPerMonth.toFixed(2) }); - } return ( {rows.map((row) => ( diff --git a/src/common/utils/transactions.ts b/src/common/utils/transactions.ts index 1ff40da..2488f0d 100644 --- a/src/common/utils/transactions.ts +++ b/src/common/utils/transactions.ts @@ -49,7 +49,6 @@ export interface ListGroupMetrics { max: number | null; cadence: number | null; frequency: number | null; - txnsPerMonth: number | null; } export interface ListPeriodGroup extends PeriodGroup {