From ecda9a7d1bcb579692b7ecc3c383516f94ed2925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Fri, 28 Mar 2025 22:36:08 +0100 Subject: [PATCH] fix(dashboard,api): show correct percentage on retention --- .../src/components/report-chart/retention/chart.tsx | 9 +++++---- .../src/components/report-chart/retention/tooltip.tsx | 2 +- packages/trpc/src/routers/chart.ts | 4 +--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/apps/dashboard/src/components/report-chart/retention/chart.tsx b/apps/dashboard/src/components/report-chart/retention/chart.tsx index 3ffd7604..bd22c4ce 100644 --- a/apps/dashboard/src/components/report-chart/retention/chart.tsx +++ b/apps/dashboard/src/components/report-chart/retention/chart.tsx @@ -36,11 +36,12 @@ export function Chart({ data }: Props) { tickFormatter: (value) => `${value}%`, }); const averageRow = data[0]; - const averageRetentionRate = average(averageRow?.percentages || [], true); - const rechartData = averageRow?.percentages.map((item, index, list) => ({ + const averageRetentionRate = + average(averageRow?.percentages || [], true) * 100; + const rechartData = averageRow?.percentages.map((item, index) => ({ days: index, - percentage: item, - value: averageRow.values[index], + percentage: item * 100, + value: averageRow.values?.[index], sum: averageRow.sum, })); diff --git a/apps/dashboard/src/components/report-chart/retention/tooltip.tsx b/apps/dashboard/src/components/report-chart/retention/tooltip.tsx index 00175877..7015eab8 100644 --- a/apps/dashboard/src/components/report-chart/retention/tooltip.tsx +++ b/apps/dashboard/src/components/report-chart/retention/tooltip.tsx @@ -31,7 +31,7 @@ export function RetentionTooltip({ active, payload }: Props) {
Retention Rate: - {number.formatWithUnit(percentage, '%')} + {number.formatWithUnit(percentage / 100, '%')}
diff --git a/packages/trpc/src/routers/chart.ts b/packages/trpc/src/routers/chart.ts index ffacb976..a8ae244a 100644 --- a/packages/trpc/src/routers/chart.ts +++ b/packages/trpc/src/routers/chart.ts @@ -402,9 +402,7 @@ function processCohortData( cohort_interval: row.cohort_interval, sum, values: values, - percentages: values.map((value) => - sum > 0 ? round((value / sum) * 100, 2) : 0, - ), + percentages: values.map((value) => (sum > 0 ? round(value / sum, 2) : 0)), }; });