From f323e2a96ef272c3f907d14c3a4f4adea97c9766 Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Wed, 11 Mar 2026 09:31:39 +0100 Subject: [PATCH] feat: split Incentives into Deals and Promos in MKT tab --- components/mkt/MasterTable.tsx | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/components/mkt/MasterTable.tsx b/components/mkt/MasterTable.tsx index 1da211a..3b5c072 100644 --- a/components/mkt/MasterTable.tsx +++ b/components/mkt/MasterTable.tsx @@ -9,7 +9,7 @@ interface MasterTableProps { onProductClick: (product: Product) => void; } -type SortKey = 'name' | 'grossSales' | 'ppcSpend' | 'incentives' | 'chargebacks' | 'netMargin' | 'marginPercent'; +type SortKey = 'name' | 'grossSales' | 'ppcSpend' | 'deals' | 'promos' | 'chargebacks' | 'netMargin' | 'marginPercent'; type SortOrder = 'asc' | 'desc'; export const MasterTable: React.FC = ({ products, includeCOGS, onProductClick }) => { @@ -30,11 +30,12 @@ export const MasterTable: React.FC = ({ products, includeCOGS, const metrics = calculateProductMetrics(product, includeCOGS); acc.grossSales += product.grossSales; acc.ppcSpend += product.ppcSpend; - acc.incentives += metrics.incentives; + acc.deals += product.deals; + acc.promos += product.promos; acc.chargebacks += product.chargebacks; acc.netMargin += metrics.netMargin; return acc; - }, { grossSales: 0, ppcSpend: 0, incentives: 0, chargebacks: 0, netMargin: 0 }); + }, { grossSales: 0, ppcSpend: 0, deals: 0, promos: 0, chargebacks: 0, netMargin: 0 }); }, [products, includeCOGS]); const totalMarginPercent = totals.grossSales > 0 ? totals.netMargin / totals.grossSales : 0; @@ -61,9 +62,13 @@ export const MasterTable: React.FC = ({ products, includeCOGS, valA = a.ppcSpend; valB = b.ppcSpend; break; - case 'incentives': - valA = metricsA.incentives; - valB = metricsB.incentives; + case 'deals': + valA = a.deals; + valB = b.deals; + break; + case 'promos': + valA = a.promos; + valB = b.promos; break; case 'chargebacks': valA = a.chargebacks; @@ -110,8 +115,11 @@ export const MasterTable: React.FC = ({ products, includeCOGS, handleSort('ppcSpend')}> PPC Spend (ACOS) - handleSort('incentives')}> - Incentives + handleSort('deals')}> + Deals + + handleSort('promos')}> + Promos handleSort('chargebacks')}> Op. Chargebacks @@ -133,7 +141,8 @@ export const MasterTable: React.FC = ({ products, includeCOGS, {formatCurrency(totals.ppcSpend)}
ACOS: {formatPercent(totalAcos)}
- {formatCurrency(totals.incentives)} + {formatCurrency(totals.deals)} + {formatCurrency(totals.promos)} {formatCurrency(totals.chargebacks)} {formatCurrency(totals.netMargin)} @@ -179,8 +188,10 @@ export const MasterTable: React.FC = ({ products, includeCOGS,
ACOS: {formatPercent(metrics.acos)}
-
{formatCurrency(metrics.incentives)}
-
D: {formatCurrency(product.deals)} | P: {formatCurrency(product.promos)}
+
{formatCurrency(product.deals)}
+ + +
{formatCurrency(product.promos)}