{"version":3,"file":"ImpactTable.BLmL2FPC.mjs","names":["useState","useRef","useMemo"],"sources":["https:/framerusercontent.com/modules/WtucFEiE2MQ2W2MJn5C3/wfdOSwwn8NvhVGhVh64J/ImpactTable.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useMemo,useRef,useEffect}from\"react\";// Data pulled directly from the 14 live case study pages on booleanmaths.com.\n// Any field the source page didn't state explicitly is marked \"N/A\" for manual completion.\n// NOTE: This is the single source of truth for both ImpactTable and ImpactTableMini.\n// Add new case studies here and both tables update automatically.\nexport const DATA=[{title:\"Feeding Google Ads cleaner conversions with server-side tracking\",experiment:\"We measured BooleanMaths Google conversions import against GA4, Google's native Shopify App and Triple Whale. \",capability:\"CAPI\",impact:\"+82% tracking visibility vs GA4, +5.6% vs Triple Whale\",date:\"Aug 2026\",sector:\"All\",link:\"/case-study/google-ads-server-side-tracking\"},{title:\"60 Day Marketing impact with an MMM + MTA approach\",experiment:\"How a wellness D2C brand used a media-mix model to set ad strategy - and click-based attribution to run the day-to-day tactics\",capability:\"All\",impact:\"+67% revenue on +50% Ad spend\",date:\"Aug 2026\",sector:\"Wellness\",link:\"/case-study/ad-scaling-with-mmm\"},{title:\"60 Day Marketing Objectives for a BooleanMaths cohort\",experiment:\"A study of 35 D2C brands spanning 6 retail categories. Each brand is measured against Scaling, Optimisation & Health objectives\",capability:\"All\",impact:\"80% meet objectives\",date:\"Jul 2026\",sector:\"All\",link:\"/case-study/60day-cohort-whitepaper\"},{title:\"Meta CAPI Whitepaper\",experiment:\"Benchmarked Meta ROAS across 58 D2C brands with vs. without CAPI active\",capability:\"CAPI\",impact:\"+23% higher Meta ROAS for CAPI-active brands\",date:\"Jun 2026\",sector:\"All\",link:\"/case-study/meta-capi-whitepaper\"},{title:\"Audiences for WhatsApp\",experiment:\"Ran BooleanMaths-built audiences vs. standard RFM audiences in parallel WhatsApp broadcast campaigns\",capability:\"Audience Segmentation\",impact:\"2.33x better ROI on WhatsApp broadcasts\",date:\"Jun 2026\",sector:\"Fashion\",link:\"/case-study/audiences-for-whatsapp\"},{title:\"Privacy-Compliant Tracking for a Health & Wellness Brand\",experiment:\"Rebuilt privacy-compliant server-side tracking after Meta blocked pixel data for a health brand\",capability:\"CAPI\",impact:\"Blended ROAS recovered from 1.1x to 2.0x after Meta's pixel block\",date:\"Jun 2026\",sector:\"Health & Wellness\",link:\"/case-study/privacy-compliant-tracking-health-wellness-brand\"},{title:\"DTC Beauty Brand — Post-Purchase Survey\",experiment:\"Ran a post-purchase survey for a beauty brand and segmented respondents into 4 customer personas\",capability:\"Post-Purchase Survey\",impact:\"4 customer personas identified from 2,853 responses\",date:\"Apr 2026\",sector:\"Beauty\",link:\"/case-study/dtc-beauty-brand-post-purchase-survey\"},{title:\"Enhanced CAPI Improves Marketing Efficiency for Menswear\",experiment:\"Deployed Enhanced CAPI with RTO exclusion and new-customer targeting for a menswear brand\",capability:\"CAPI\",impact:\"+32.4% net profit growth\",date:\"Apr 2026\",sector:\"Fashion\",link:\"/case-study/enhanced-capi-improves-marketing-efficiency-for-menswear\"},{title:\"Solving Google Bias in Last Click\",experiment:\"Diagnosed and corrected Google last-click bias using an enriched first-click attribution model\",capability:\"Attribution\",impact:\"Meta's true demand share revealed at 47% (vs 36% reported)\",date:\"Mar 2026\",sector:\"Footwear\",link:\"/case-study/how-does-booleanmaths-attribution-solve-for-google-bias-in-last-click\"},{title:\"GA4 vs BooleanMaths (F&B Brand)\",experiment:\"Benchmarked GA4 vs BooleanMaths attribution accuracy for a food & beverage brand\",capability:\"Attribution\",impact:\"96.1% attribution rate vs GA4's 79.4%\",date:\"Mar 2026\",sector:\"Food & Beverage\",link:\"/case-study/ga4-vs-booleanmaths-for-f-b-brand\"},{title:\"GA4 vs BooleanMaths (Fashion Brand)\",experiment:\"Benchmarked GA4 vs BooleanMaths attribution accuracy for a fashion brand\",capability:\"Attribution\",impact:\"98.06% attribution rate vs GA4's 57.52%\",date:\"Mar 2026\",sector:\"Fashion\",link:\"/case-study/ga4-vs-booleanmaths-for-fashion-brand\"},{title:\"First-Touch Attribution Validation\",experiment:\"Compared standard vs. enriched first-touch attribution models for a lifestyle brand\",capability:\"Attribution\",impact:\"~1,460 orders corrected from wrongly-attributed organic\",date:\"Feb 2026\",sector:\"Home & Living\",link:\"/case-study/how-to-check-if-your-first-touch-attribution-works\"},{title:\"Scaling Revenue & Profit with BooleanMaths\",experiment:\"Enabled multi-touch attribution and live P&L tracking for a lifestyle brand to scale ad spend profitably\",capability:\"Attribution\",impact:\"Revenue/day nearly doubled (₹10.9L → ₹22.5L)\",date:\"Jan 2026\",sector:\"Home & Living\",link:\"/case-study/scaling-revenue-profit-with-booleanmaths\"},{title:\"Fixing Meta Attribution with BooleanMaths CAPI\",experiment:\"Rebuilt the tracking pipeline for an accessories brand after Meta over-reported conversions by 65%\",capability:\"CAPI\",impact:\"+16% true ROAS (over-reporting cut from 65% to 11%)\",date:\"Dec 2025\",sector:\"Accessories\",link:\"/case-study/fixing-meta-attribution-with-booleanmaths-capi\"},{title:\"Optimise Meta Ads for a Shopify Brand with CAPI\",experiment:\"Boosted Meta ad performance for a lifestyle brand's full Shopify journey using server-side CAPI\",capability:\"CAPI\",impact:\"+31% ROAS improvement (+74% revenue)\",date:\"May 2025\",sector:\"Home & Living\",link:\"/case-study/optimise-meta-ads-for-a-shopify-brand-with-capi\"},{title:\"Fixing Meta's Data Flows with BooleanMaths CAPI\",experiment:\"Restored broken Shopify-to-Meta data flows and improved Event Match Quality for a D2C brand\",capability:\"CAPI\",impact:\"+28% additional conversions captured\",date:\"May 2025\",sector:\"Beauty\",link:\"/case-study/fixing-meta’s-data-flows-with-booleanmaths-capi\"},{title:\"Smarter Ads for a Shopify Brand with Attribution + CAPI\",experiment:\"Tracked a full Shopify journey and optimized Meta ad performance for an apparel brand using attribution + CAPI\",capability:\"Attribution + CAPI\",impact:\"+9.2% ROAS improvement\",date:\"Apr 2025\",sector:\"Fashion\",link:\"/case-study/smarter-ads-for-a-shopify-brand-with-attribution-capi\"}];export const CAPABILITY_STYLES={Attribution:{bg:\"rgba(99,102,241,0.14)\",text:\"#4338ca\"},CAPI:{bg:\"rgba(245,158,11,0.16)\",text:\"#b45309\"},\"Attribution + CAPI\":{bg:\"rgba(20,184,166,0.16)\",text:\"#0f766e\"},\"Post-Purchase Survey\":{bg:\"rgba(236,72,153,0.14)\",text:\"#be185d\"},\"Audience Segmentation\":{bg:\"rgba(59,130,246,0.14)\",text:\"#1d4ed8\"}};const MONTH_ORDER={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11};export function dateSortValue(date){if(date===\"N/A\")return-1;const[month,year]=date.split(\" \");const y=parseInt(year,10)||0;const m=MONTH_ORDER[month]??0;return y*12+m;}const COLUMNS=[{key:\"sector\",label:\"Sector\"},{key:\"experiment\",label:\"Experiment\"},{key:\"capability\",label:\"Capability\"},{key:\"impact\",label:\"Impact\"},{key:\"date\",label:\"Date\"}];export default function ImpactTable(){const[search,setSearch]=useState(\"\");const[sector,setSector]=useState(\"All sectors\");const[sortKey,setSortKey]=useState(null);const[sortDir,setSortDir]=useState(1);const[layout,setLayout]=useState(\"desktop\");const containerRef=useRef(null);// Measure our OWN rendered width instead of relying on viewport @media queries,\n// since Framer's breakpoint frames don't always give this component a box width\n// that matches the real device viewport.\nuseEffect(()=>{const el=containerRef.current;if(!el)return;const observer=new ResizeObserver(entries=>{const width=entries[0]?.contentRect.width??el.clientWidth;if(width<=640)setLayout(\"mobile\");else if(width<=900)setLayout(\"tablet\");else setLayout(\"desktop\");});observer.observe(el);return()=>observer.disconnect();},[]);const sectors=useMemo(()=>{const unique=Array.from(new Set(DATA.map(d=>d.sector))).sort();return[\"All sectors\",...unique];},[]);const filtered=useMemo(()=>{let rows=DATA;if(sector!==\"All sectors\"){rows=rows.filter(r=>r.sector===sector);}if(search.trim()){const q=search.trim().toLowerCase();rows=rows.filter(r=>[r.title,r.experiment,r.capability,r.impact,r.date,r.sector].join(\" \").toLowerCase().includes(q));}if(sortKey){rows=[...rows].sort((a,b)=>{if(sortKey===\"date\"){return(dateSortValue(a.date)-dateSortValue(b.date))*sortDir;}return a[sortKey].localeCompare(b[sortKey])*sortDir;});}return rows;},[search,sector,sortKey,sortDir]);function toggleSort(key){if(sortKey===key){setSortDir(d=>d===1?-1:1);}else{setSortKey(key);setSortDir(1);}}function arrow(key){if(sortKey!==key)return\"\";return sortDir===1?\" ↑\":\" ↓\";}const isMobile=layout===\"mobile\";return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,className:`it-wrapper it-${layout}`,style:{width:\"100%\",boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .it-wrapper { width: 100%; max-width: 100%; font-family: inherit; box-sizing: border-box; overflow: hidden; }\n                .it-wrapper * { box-sizing: border-box; }\n                .it-controls {\n                    display: flex; gap: 12px; padding: 16px 20px; flex-wrap: wrap;\n                    align-items: center; border-bottom: 1px solid #e5e7eb;\n                }\n                .it-search {\n                    flex: 1 1 220px; padding: 8px 14px; border-radius: 8px;\n                    border: 1px solid #e5e7eb; font-size: 13px; outline: none; background: #fff; min-width: 0;\n                }\n                .it-select {\n                    padding: 8px 14px; border-radius: 8px; border: 1px solid #e5e7eb;\n                    font-size: 13px; background: #fff; color: #111827; cursor: pointer;\n                }\n                .it-count { font-size: 12px; color: #6b7280; margin-left: auto; }\n\n                /* Same 5-column grid at every non-mobile width — widths just tighten up\n                   at tablet size, and text wraps instead of forcing columns wider. */\n                .it-grid {\n                    display: grid;\n                    grid-template-columns: 0.8fr 1.9fr 0.95fr 1.15fr 0.7fr;\n                    width: 100%;\n                }\n                .it-header-cell {\n                    font-size: 12px; font-weight: 600; color: #374151; cursor: pointer;\n                    user-select: none; text-align: center; padding: 10px 16px;\n                    background-color: rgba(99,102,241,0.07); border-bottom: 1px solid #e5e7eb;\n                    min-width: 0; overflow-wrap: break-word;\n                }\n                .it-row { display: contents; text-decoration: none; color: inherit; cursor: pointer; }\n                .it-cell {\n                    padding: 10px 16px; border-bottom: 1px solid #e5e7eb; font-size: 12px;\n                    text-align: center; color: #374151; transition: background-color 0.15s ease;\n                    min-width: 0; overflow-wrap: break-word; word-break: break-word; hyphens: auto;\n                }\n                .it-cell-even { background-color: #ffffff; }\n                .it-cell-odd { background-color: rgba(0,0,0,0.015); }\n                .it-row:hover .it-cell { background-color: rgba(99,102,241,0.06) !important; }\n                .it-pill-wrap { display: flex; justify-content: center; align-items: center; min-width: 0; }\n                .it-pill {\n                    display: inline-flex; align-items: center; justify-content: center; text-align: center;\n                    font-size: 12px; padding: 5px 12px; border-radius: 8px;\n                    white-space: normal; overflow-wrap: break-word; word-break: break-word;\n                    line-height: 1.35; min-width: 0; max-width: 100%;\n                }\n                .it-empty { grid-column: 1 / -1; padding: 32px 20px; text-align: center; font-size: 13px; color: #6b7280; }\n\n                /* ---------- Tablet: tighter columns and type, but same 5-col structure ---------- */\n                .it-tablet .it-grid { grid-template-columns: 0.75fr 1.7fr 0.95fr 1.15fr 0.65fr; }\n                .it-tablet .it-header-cell, .it-tablet .it-cell { padding: 8px 8px; font-size: 10.5px; }\n                .it-tablet .it-pill { font-size: 10px; padding: 4px 9px; border-radius: 7px; }\n\n                /* ---------- Mobile: stacked cards, label above value, everything left-aligned ---------- */\n                .it-mobile .it-controls { flex-direction: column; align-items: stretch; padding: 10px 14px; gap: 8px; }\n                .it-mobile .it-search { padding: 6px 10px; font-size: 12px; flex: none; }\n                .it-mobile .it-select { padding: 6px 10px; font-size: 12px; }\n                .it-mobile .it-count { margin-left: 0; text-align: right; font-size: 10px; }\n                .it-mobile .it-header-cell { display: none; }\n                .it-mobile .it-grid { display: block; }\n                .it-mobile .it-row { display: block; border-bottom: 6px solid #f3f4f6; }\n                .it-mobile .it-cell {\n                    display: flex; flex-direction: column; align-items: flex-start;\n                    gap: 4px; text-align: left; padding: 10px 16px;\n                    border-bottom: 1px solid #f3f4f6; background: transparent !important;\n                }\n                .it-mobile .it-cell::before {\n                    content: attr(data-label); font-weight: 600; color: #6b7280;\n                    font-size: 10px; text-transform: uppercase; letter-spacing: 0.03em;\n                }\n                .it-mobile .it-pill-wrap { justify-content: flex-start; align-items: flex-start; }\n                .it-mobile .it-row:hover .it-cell { background: transparent !important; }\n            `}),/*#__PURE__*/_jsxs(\"div\",{className:\"it-controls\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",className:\"it-search\",value:search,onChange:e=>setSearch(e.target.value),placeholder:\"Search case studies...\"}),/*#__PURE__*/_jsx(\"select\",{className:\"it-select\",value:sector,onChange:e=>setSector(e.target.value),children:sectors.map(s=>/*#__PURE__*/_jsx(\"option\",{value:s,children:s},s))}),/*#__PURE__*/_jsxs(\"span\",{className:\"it-count\",children:[filtered.length,\" of \",DATA.length,\" case studies\"]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"it-grid\",children:[!isMobile&&COLUMNS.map(col=>/*#__PURE__*/_jsxs(\"div\",{className:\"it-header-cell\",onClick:()=>toggleSort(col.key),children:[col.label,arrow(col.key)]},col.key)),filtered.length===0&&/*#__PURE__*/_jsx(\"div\",{className:\"it-empty\",children:\"No case studies match your search.\"}),filtered.map((row,i)=>{const capStyle=CAPABILITY_STYLES[row.capability]||{bg:\"rgba(99,102,241,0.14)\",text:\"#4338ca\"};const isExternal=row.link.startsWith(\"http\");const stripe=i%2===0?\"it-cell-even\":\"it-cell-odd\";return /*#__PURE__*/_jsxs(\"a\",{className:\"it-row\",href:row.link,target:isExternal?\"_blank\":undefined,rel:isExternal?\"noopener noreferrer\":undefined,title:row.title,children:[/*#__PURE__*/_jsx(\"div\",{className:`it-cell ${stripe}`,\"data-label\":\"Sector\",children:row.sector}),/*#__PURE__*/_jsx(\"div\",{className:`it-cell ${stripe}`,\"data-label\":\"Experiment\",children:row.experiment}),/*#__PURE__*/_jsx(\"div\",{className:`it-cell ${stripe} it-pill-wrap`,\"data-label\":\"Capability\",children:/*#__PURE__*/_jsx(\"span\",{className:\"it-pill\",style:{backgroundColor:capStyle.bg,color:capStyle.text},children:row.capability})}),/*#__PURE__*/_jsx(\"div\",{className:`it-cell ${stripe} it-pill-wrap`,\"data-label\":\"Impact\",children:/*#__PURE__*/_jsx(\"span\",{className:\"it-pill\",style:{backgroundColor:\"rgba(34,197,94,0.14)\",color:\"#15803d\"},children:row.impact})}),/*#__PURE__*/_jsx(\"div\",{className:`it-cell ${stripe}`,\"data-label\":\"Date\",children:row.date})]},row.title+i);})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"DATA\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"ImpactTable\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"dateSortValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CAPABILITY_STYLES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CaseStudyRow\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ImpactTable.map"],"mappings":"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"}