Christian Vidal Wolf
243c44c7f7
feat: replace Vendor tab with BSR tracker
2026-03-02 15:22:12 +01:00
Christian Vidal Wolf
fa588a6444
fix(dataProcessor): improve regex parsing for week number in Ads and Traffic CSV/Excel import
2026-02-26 10:37:50 +01:00
Christian Vidal Wolf
21ec5b63ab
fix(parser): align ad sales and units regexes to capture standard Amazon header 'Sales within X days'
2026-02-26 08:30:23 +01:00
Christian Vidal Wolf and Claude Opus 4.6
5dfcdd71c0
fix(parser): prevent regex collision where /sale/i matched ACOS column instead of attributed sales
...
The generic regex /sale/i in ads column detection was matching "Advertising Cost
of Sales" (the ACOS % column) before reaching "7 day total sales" (the actual
attributed sales amount). This caused attributedSales30d to receive the ACOS
percentage instead of the real sales value, making experiment ACOS = 0 or 100%.
- Replace /sale/i with specific regexes: /\d+\s*day.*sale/i, /total\s+sale/i, etc.
- Replace /cost/i with regexes that exclude "cost of sales" columns
- Replace /unit/i with specific regexes for unit columns
- Add diagnostic logging for ads Excel column headers and first-row values
- Revert ACOS 100% fallback (root cause now fixed)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 16:54:56 +01:00
Christian Vidal Wolf and Claude Opus 4.6
8b774ae7ba
fix(experiments): prevent NaN propagation and ACOS zero-value bug in experiment analysis
...
- Change ?? to || for salesAds/units/revenue in weekly aggregation to guard against NaN
- Add || 0 fallback to ads-only records in mergeSalesAndAdsData
- Fix parseCurrency to check isNaN on all EU-format return paths
- Handle ACOS edge case: cost > 0 with adRevenue = 0 now returns 100% instead of 0%
- Add diagnostic console logging to computeDiD for data flow tracing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 16:34:55 +01:00
Christian Vidal Wolf
79641b793a
fix(parser): implement regex matching for headers to catch prefixed metric titles like '7 day total sales'
2026-02-25 14:56:15 +01:00
Christian Vidal Wolf
13dd4b62c2
fix(parser): add alphanumeric sanitizer to excel header mapping to support characters like % and parenthesis
2026-02-25 14:22:58 +01:00
Christian Vidal Wolf and Claude Opus 4.6
487b8e105e
feat: bulk ASIN selection via space-separated paste in filters
...
Allow pasting multiple ASINs separated by spaces in any MultiSelectDropdown
search field and pressing Enter to auto-select all matching options.
Also switch ads CSV/Excel parsing to header-based column mapping for
robustness across different file formats.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 14:01:11 +01:00
Christian Vidal Wolf
aa745b4d5e
feat(data): map product line from column R
2026-02-25 12:38:58 +01:00
Christian Vidal Wolf
ce2241a5ec
feat(data): update sell-out parser mapping and validation for new structure
2026-02-25 11:46:02 +01:00
Christian Vidal Wolf
69f4456942
feat: force ASIN and SKU columns in Grid exports
2026-02-23 18:18:02 +01:00
Christian Vidal Wolf
85c789bf52
fix: resolve vendor data upload error by implementing client-side parsing and sequential batching
2026-02-20 13:32:26 +01:00
Christian Vidal Wolf
2b9399e7e0
fix: correct revenue metric mapping in Weekly Sales grid (pivot revenue vs ads cost)
2026-02-19 16:22:19 +01:00
Christian Vidal Wolf
079e4130f7
feat: add units/revenue toggle to Weekly Sales and improve traffic data parsing
2026-02-19 16:03:16 +01:00
Christian Vidal Wolf and Claude Opus 4.6
31ad7fda21
fix: read all sheets in Traffic Weekly Excel for complete GV data
...
processTrafficExcel was only reading the first sheet, missing data from
year-based sheets (e.g., "2025", "2026"). Now iterates all sheets with
auto-detection of column layout, matching the processAdsExcel pattern.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 15:34:00 +01:00
Christian Vidal Wolf
d5bcbeda1a
Fix GRID tab empty table regression by correcting filter logic and prop passing
2026-02-09 12:05:03 +01:00
Christian Vidal Wolf
ac791b5265
Implement Excel-style filters (SKU, ASIN, Title, Line) across GRID, WEEKLY SALES, and FC26 tabs
2026-02-09 12:00:39 +01:00
Christian Vidal Wolf
827135a517
fix: force ASIN column B and Reason column N for BB_DE
2026-02-06 10:57:03 +01:00
Christian Vidal Wolf
bd8f86007c
fix: force Column J for BB_UK reason column
2026-02-06 10:54:06 +01:00
Christian Vidal Wolf
76193fb9bf
fix: force Column S for BB_FR reason column
2026-02-06 10:50:18 +01:00
Christian Vidal Wolf
62d4903566
feat: implement bulk search for ASINs/SKUs in DataGrid
2026-02-06 09:22:24 +01:00
Christian Vidal Wolf
3a4410c3b5
Fix Buy Box warning detection for Spain (B0D3874WSD) and update Vite proxies
2026-02-05 10:48:37 +01:00
Christian Vidal Wolf
9f9556af2a
debug: Add Spain-specific sheet fallbacks and expose Buy Box data to window.debugBuyBox
2026-02-05 08:52:49 +01:00
Christian Vidal Wolf
aeefd76496
feat: Make Buy Box sheet matching even more aggressive
2026-02-05 08:48:27 +01:00
Christian Vidal Wolf
4ead042534
debug: Expand logging for Buy Box parsing to see why Spain rows are skipped
2026-02-05 08:48:17 +01:00
Christian Vidal Wolf
299d2032bc
feat: Improve Buy Box header detection and add Spanish aliases
2026-02-05 08:44:33 +01:00
Christian Vidal Wolf
9a042c6478
debug: Add diagnostics for Buy Box warning issue
2026-02-05 08:43:58 +01:00
Christian Vidal Wolf
09e06bad16
feat: Automate Buy Box tracker sync from Dropbox and improve parsing robustness
2026-02-05 08:39:39 +01:00
Christian Vidal Wolf
e1e6f127be
feat: Add UK inventory sync from Dropbox
...
- Create new API endpoint api/fetch-uk-inventory.ts
- Add processUKInventoryExcel function in dataProcessor.ts
- Update handleVendorStockFetch to load PANEU + UK in parallel
- Configure Vite proxy for UK inventory endpoint
- UK stock correctly populates 'uk' field in vendorStockMap
2026-02-02 09:24:49 +01:00
Christian Vidal Wolf
ab9ac4f47e
fix: Correct stock column detection for PANEU-Stock.xlsx
...
- Prioritize 'Sellable On Hand Units' column (was selecting 'Net Received Units')
- Add 'Store code' recognition for marketplace detection
- Improved column search strategy with priority levels
2026-02-02 09:18:32 +01:00
christian.vidal
74f6fa2278
fix: Improve Vendor Stock column detection to prioritize units over cost
2026-02-01 16:00:01 +01:00
christian.vidal
f3e13769d7
fix: implement product line seasonality for forecast fallback
2026-02-01 15:47:33 +01:00
christian.vidal
2a199d397e
Implement Custom Numeric Filtering (>10, 5-10) for Stock/WOC columns in Weekly Sales
2026-01-30 19:28:53 +01:00
Christian Vidal Wolf
c691d4e9ba
fix: restrict actual units to forecast region scope in ForecastView
2026-01-30 09:23:07 +01:00
Christian Vidal Wolf
a678880112
fix: improve forecast seasonality logic and catalog data integrity
2026-01-30 09:10:02 +01:00
christian.vidal
9200c554e1
Fix Forecast Seasonality: Process weights using global data even when filtered
2026-01-29 20:56:19 +01:00
christian.vidal
37fa2acf40
Optimize data processing performance with memoization
2026-01-29 20:09:28 +01:00
Christian Vidal Wolf
b54f6f8030
Fix Buy Box badge visibility in Grid tab by preserving metadata in pivot; add row z-index
2026-01-29 15:43:18 +01:00
Christian Vidal Wolf
3e3df60bf2
Ignore Buy Box warnings with 'Fixed' status
2026-01-29 13:18:09 +01:00
Christian Vidal Wolf
02aa95d39d
Fix Buy Box parsing: only include ASINs with Issue Type/Reason specified
2026-01-29 09:51:34 +01:00
Christian Vidal Wolf
04b208969d
Add Buy Box Lost detection feature with visual warning badges
2026-01-29 09:42:39 +01:00
Christian Vidal Wolf
0ea94aefd1
Implement Smart Seasonality blending for products with sparse history (fixes 0-forecast issue)
2026-01-28 15:17:58 +01:00
Christian Vidal Wolf
9d732eeba3
Restore ForecastView UI, Fix default YTD logic, and Refine Seasonality (Specific > Global fallback)
2026-01-28 14:55:35 +01:00
Christian Vidal Wolf
cfff95bff2
Fix Global Weights: Fallback to flat distribution if reference data is sparse (<4 months)
2026-01-28 13:24:29 +01:00
Christian Vidal Wolf
894271b549
Fix Seasonality: Use Global Catalog curve as fallback for sparse ASIN history
2026-01-28 13:17:04 +01:00
Christian Vidal Wolf
cfce00cd63
Fix seasonality bias: Default to flat weighting if history is sparse (<4 months)
2026-01-28 13:11:08 +01:00
Christian Vidal Wolf
b3b8c4f967
Revert week logic and add debug tooltip to VendorStockBadge
2026-01-28 11:50:59 +01:00
Christian Vidal Wolf
090d06b78e
Fix Weeks of Coverage: Exclude partial current week from calculation
2026-01-28 11:44:47 +01:00
Christian Vidal Wolf
57f1d66622
Fix Weeks of Coverage: use unfiltered velocity map for robust calculation
2026-01-28 11:01:05 +01:00
Christian Vidal Wolf
22f4a639c0
Implement Weeks of Coverage indicator for Vendor Stock
2026-01-28 10:34:46 +01:00