diff --git a/components/ForecastView.tsx b/components/ForecastView.tsx index 61a545b..fbf2858 100644 --- a/components/ForecastView.tsx +++ b/components/ForecastView.tsx @@ -49,7 +49,13 @@ const ForecastRow: React.FC<{ } // Calculations for new columns - const forecastPeriod = item.forecastUnits || 0; + // Forecast Period: Sum of forecast units for active months (YTD) + const forecastPeriod = useMemo(() => { + return activeMonths.reduce((sum, month) => { + return sum + (item.monthlyData?.[month]?.forecastUnits || 0); + }, 0); + }, [item, activeMonths]); + const actualUnits = item.actualUnits || 0; const annualForecast = item.annualForecast || 0; @@ -180,12 +186,19 @@ const ForecastView: React.FC = ({ }, [data, filters.line, filters.asin, filters.sku]); const globalSummary = useMemo(() => { - return baseFilteredData.reduce((acc, curr) => ({ - actualUnits: acc.actualUnits + (curr.actualUnits || 0), - forecastUnits: acc.forecastUnits + (curr.forecastUnits || 0), - annualForecast: acc.annualForecast + (curr.annualForecast || 0), - }), { actualUnits: 0, forecastUnits: 0, annualForecast: 0 }); - }, [baseFilteredData]); + return baseFilteredData.reduce((acc, curr) => { + // Calculate Forecast Period (YTD) for this item + const itemPeriodForecast = activeMonths.reduce((sum, month) => { + return sum + (curr.monthlyData?.[month]?.forecastUnits || 0); + }, 0); + + return { + actualUnits: acc.actualUnits + (curr.actualUnits || 0), + forecastUnits: acc.forecastUnits + itemPeriodForecast, + annualForecast: acc.annualForecast + (curr.annualForecast || 0), + }; + }, { actualUnits: 0, forecastUnits: 0, annualForecast: 0 }); + }, [baseFilteredData, activeMonths]); const chartData = useMemo(() => { const dataMap = new Map();