- App.tsx: Always calculate both EU and UK Top 50 maps.
- WeeklyGrid.tsx: Added top50Mode state and EU/UK toggle.
- WeeklyGrid.tsx: Updated filtering and sorting to respect the selected Top 50 mode.
- WeeklyGrid.tsx: Enhanced product badges to show selected group rank.
- Updated WeeklyPivotRow interface and pivotWeeklySalesData to aggregate GV data per week.
- Modified WeeklyGrid.tsx to display GV next to Spend in total header and individual rows.
- Added GV sorting support in the Weekly Sales grid.
- types.ts: Added TrafficRecord interface and glanceViews field to CombinedKPIs
- dataProcessor.ts: Added processTrafficExcel parser for Traffic Weekly.xlsx
- dataProcessor.ts: Updated mergeSalesAndAdsData to accept and merge traffic data
- App.tsx: Added trafficData state and handleTrafficUpload handler
- FileUpload.tsx: Added Traffic file upload section for GV data
- AdsPerformance.tsx: Added GV and CVR(GV) summary cards
- AdsPerformance.tsx: Added GV column to product table
- DataGrid.tsx: Enhanced filteredTotalsByYear to aggregate advertising metrics
- DataGrid.tsx: Updated header row to include Ad Spend and TACOS cells per year
- DataGrid.tsx: Integrated YoY growth for Ad Spend
- DataGrid.tsx: Integrated aggregated totals into a new sticky header row
- DataGrid.tsx: Aligned Sell Out and Units totals directly above their respective columns
- DataGrid.tsx: Added YoY growth indicators to the header totals
- DataGrid.tsx: Improved performance with memoized total calculations
- DataGrid.tsx: Fixed syntax errors and TypeScript warnings
- WeeklyGrid.tsx: Corrected visibility condition for top50Ranking object structure
- WeeklyGrid.tsx: Verified and improved Top 50 filtering and sorting logic
- AdsPerformance.tsx: Updated 'Prev:' labels and figures to indigo-300 for higher contrast
- AdsPerformance.tsx: Brightened secondary labels and product titles across the dashboard
- Ensures clear readability on dark backgrounds as requested by the user
- Use de-DE locale (dots for thousands, commas for decimals)
- Round Sales and Spend to integers
- Fix growth calculation to handle locale-specific formatting
- AdsPerformance.tsx: Automatically activate comparison view when 2 periods are selected
- AdsPerformance.tsx: Add growth percentages and trend indicators to table and summary
- AdsPerformance.tsx: Implement chronological sorting for previous vs current periods
- App.tsx: Pass filters to AdsPerformance component
- types.ts: Add conversions field to CombinedKPIs
- dataProcessor.ts: Populate conversions in mergeSalesAndAdsData
- AdsPerformance.tsx: New component with aggregated advertising metrics and detailed product table
- App.tsx: Add Ads view to switcher and render AdsPerformance component
- Icons.tsx: Added icon support for the new Ads tab
- App.tsx: Update top50Ranking2025 to calculate ranks based on active country filters
- App.tsx: Add split Pan-EU vs UK ranking when no filters are active
- WeeklyGrid.tsx: Add support for multiple ranking badges (EU/UK)
- WeeklyGrid.tsx: Enhance Top50Badge with labels and color themes
- WeeklyGrid.tsx: Update sorting and filtering logic for new ranking structure
- New toggle button in Weekly Sales toolbar to show only Top 50 products
- Button displays with trophy icon and golden gradient when active
- Resets pagination when toggled
- Works in combination with other filters (search, growth)
- Calculate static Top 50 ranking based on 2025 Sell Out (independent of filters)
- Display trophy badge with position number for Top 50 ASINs
- Badge shows 🏆 followed by rank (1-50)
- Ranking stays static regardless of date/country filters applied
- Pre-computed ranking based on cumulative 2025 data
- Limit visible weeks to 8 (configurable MAX_VISIBLE_WEEKS)
- Add debounced search (300ms delay) to reduce re-renders
- Calculate weekTotals in single pass O(rows) instead of O(weeks × rows)
- Memoize callbacks with useCallback (handleSort, renderGrowth, handleExportExcel)
- Export still includes ALL weeks for complete data