diff --git a/components/BSRUnitsCorrelationChart.tsx b/components/BSRUnitsCorrelationChart.tsx index ddcc643..d047e25 100644 --- a/components/BSRUnitsCorrelationChart.tsx +++ b/components/BSRUnitsCorrelationChart.tsx @@ -75,15 +75,18 @@ export const BSRUnitsCorrelationChart: React.FC = ({ bsrData, combinedSal }, [combinedSalesData]); // Per-market chart data: BSR avg + units sum aligned by week - const { chartData, pearsonCorrelation } = useMemo(() => { + const { chartData, pearsonCorrelation, debugInfo } = useMemo(() => { // BSR: average detailLevelBSR per week (falls back to topLevelBSR if detail is unavailable) + // Coerce week to number to guard against string values at runtime const bsrByWeek = new Map(); - bsrData - .filter(r => r.market === resolvedMarket && (r.detailLevelBSR != null || r.topLevelBSR != null)) + const bsrRecordsForMarket = bsrData.filter(r => r.market === resolvedMarket); + bsrRecordsForMarket + .filter(r => 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 + bsr, count: e.count + 1 }); + const week = Number(r.week); + const e = bsrByWeek.get(week) ?? { sum: 0, count: 0 }; + bsrByWeek.set(week, { sum: e.sum + bsr, count: e.count + 1 }); }); // Units: sum unitsTotal per week for current year @@ -91,9 +94,18 @@ export const BSRUnitsCorrelationChart: React.FC = ({ bsrData, combinedSal combinedSalesData .filter(r => r.customer === resolvedMarket && r.year === currentYear && r.week) .forEach(r => { - unitsByWeek.set(r.week, (unitsByWeek.get(r.week) ?? 0) + r.unitsTotal); + const week = Number(r.week); + unitsByWeek.set(week, (unitsByWeek.get(week) ?? 0) + r.unitsTotal); }); + const debugInfo = { + bsrTotal: bsrData.length, + bsrForMarket: bsrRecordsForMarket.length, + bsrWithValues: bsrByWeek.size, + unitsWeeks: unitsByWeek.size, + uniqueMarkets: Array.from(new Set(bsrData.map(r => r.market))).join(', '), + }; + const allWeeks = Array.from( new Set([...bsrByWeek.keys(), ...unitsByWeek.keys()]) ).sort((a, b) => a - b); @@ -115,7 +127,7 @@ export const BSRUnitsCorrelationChart: React.FC = ({ bsrData, combinedSal paired.map(d => d.units as number) ); - return { chartData, pearsonCorrelation: r }; + return { chartData, pearsonCorrelation: r, debugInfo }; }, [resolvedMarket, bsrData, combinedSalesData, currentYear]); const config = MARKET_CONFIG[resolvedMarket] ?? { label: '?', color: '#94a3b8', flag: '🌍' }; @@ -324,6 +336,13 @@ export const BSRUnitsCorrelationChart: React.FC = ({ bsrData, combinedSal + {/* Temporary debug strip — remove once BSR line is confirmed working */} +
+
BSR records total: {debugInfo.bsrTotal} · for {resolvedMarket}: {debugInfo.bsrForMarket} · with values: {debugInfo.bsrWithValues} weeks
+
Units weeks found: {debugInfo.unitsWeeks} · year: {currentYear}
+
Markets in BSR data: {debugInfo.uniqueMarkets || '(none)'}
+
+ ); };