From 31d1755122c45facaf6e9f33dec65cdee0ad11d4 Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Mon, 9 Mar 2026 11:07:54 +0100 Subject: [PATCH] fix: use detailLevelBSR in BSR vs Units chart with topLevel fallback Detail category BSR is more granular and relevant per ASIN. Falls back to topLevelBSR if detailLevelBSR is null for a record. Co-Authored-By: Claude Sonnet 4.6 --- components/BSRUnitsCorrelationChart.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/components/BSRUnitsCorrelationChart.tsx b/components/BSRUnitsCorrelationChart.tsx index 397d0f7..ddcc643 100644 --- a/components/BSRUnitsCorrelationChart.tsx +++ b/components/BSRUnitsCorrelationChart.tsx @@ -76,13 +76,14 @@ export const BSRUnitsCorrelationChart: React.FC = ({ bsrData, combinedSal // Per-market chart data: BSR avg + units sum aligned by week const { chartData, pearsonCorrelation } = useMemo(() => { - // BSR: average topLevelBSR per week + // BSR: average detailLevelBSR per week (falls back to topLevelBSR if detail is unavailable) const bsrByWeek = new Map(); bsrData - .filter(r => r.market === resolvedMarket && r.topLevelBSR != null) + .filter(r => r.market === resolvedMarket && (r.detailLevelBSR != null || r.topLevelBSR != null)) .forEach(r => { + const bsr = r.detailLevelBSR ?? r.topLevelBSR!; const e = bsrByWeek.get(r.week) ?? { sum: 0, count: 0 }; - bsrByWeek.set(r.week, { sum: e.sum + r.topLevelBSR!, count: e.count + 1 }); + bsrByWeek.set(r.week, { sum: e.sum + bsr, count: e.count + 1 }); }); // Units: sum unitsTotal per week for current year @@ -136,7 +137,7 @@ export const BSRUnitsCorrelationChart: React.FC = ({ bsrData, combinedSal }, [pearsonCorrelation]); const tooltipFormatter = (value: unknown, name: string) => { - if (name === 'BSR') return [typeof value === 'number' ? value.toLocaleString('de-DE') : '–', 'BSR Rank']; + if (name === 'BSR') return [typeof value === 'number' ? value.toLocaleString('de-DE') : '–', 'Detail BSR']; if (name === 'Units') return [typeof value === 'number' ? value.toLocaleString('de-DE') : '–', 'Units Sold']; return [value, name]; }; @@ -149,7 +150,7 @@ export const BSRUnitsCorrelationChart: React.FC = ({ bsrData, combinedSal

BSR vs Units Sold

- Weekly correlation · {currentYear} · Top-level category BSR + Weekly correlation · {currentYear} · Detail category BSR