{"version":3,"file":"CustomerPaybackCheck.yO2FP70g.mjs","names":["CURRENCIES","CURRENCY_CODES","_Fragment","React.useState","React.useRef","React.useId","React.useId","React.useState","c","p","React.useRef","_Fragment","CustomerPaybackV2"],"sources":["https:/framerusercontent.com/modules/5dpPCReGmVLniimyhdEU/9LWTYUeaPThiBuVceOpu/CACPaybackModel.js","https:/framerusercontent.com/modules/Chb7YRXuvlwj1K9zs9dP/8k4sjKRFdLRw0xIG9gNs/CalculatorDesignSystem.js","https:/framerusercontent.com/modules/b0uqxKeQgNM5HOyfQ9Yb/gmNBQ1jYMb7CnxqeTwJp/CustomerPaybackV2.js","https:/framerusercontent.com/modules/pm59zn6GATmskWN1A2Bw/1Adbr6WD0mztmzUh2Ks0/CustomerPaybackCheck.js"],"sourcesContent":["// Shared by the Framer client and the Supabase function. No browser dependencies.\nexport const CALCULATION_VERSION=\"customer_payback_calc_v4\";export const FLOW_VERSION=\"customer_payback_v4\";export const PLATFORM_NAMES={meta:\"Meta Ads\",google:\"Google Ads\",tiktok:\"TikTok Ads\",amazon:\"Amazon Ads\",pinterest:\"Pinterest Ads\",microsoft:\"Microsoft Advertising\",snapchat:\"Snapchat Ads\",reddit:\"Reddit Ads\",criteo:\"Criteo\",linkedin:\"LinkedIn Ads\",blended:\"Blended / Overall\",other:\"Other\"};export const PLATFORM_REPORTS={meta:{url:\"https://adsmanager.facebook.com/adsmanager/manage/campaigns\",metric:\"Cost per Purchase for the Purchase event\"},google:{url:\"https://ads.google.com/aw/campaigns\",metric:\"Cost / conv. with Purchase selected as the conversion action\"},tiktok:{url:\"https://ads.tiktok.com/i18n/perf/campaign\",metric:\"Cost per Complete Payment, or total cost divided by Complete Payment events\"},amazon:{url:\"https://advertising.amazon.com/cm/campaigns\",metric:\"Spend and new-to-brand orders, where available\"},pinterest:{url:\"https://ads.pinterest.com/\",metric:\"Cost per Checkout, or Cost per conversion for Checkout\"},microsoft:{url:\"https://ui.ads.microsoft.com/campaign\",metric:\"Cost per acquisition, or Cost per conversion for the Purchase goal\"},snapchat:{url:\"https://ads.snapchat.com/\",metric:\"Cost per Purchase for the Pixel Purchase event\"},reddit:{url:\"https://ads.reddit.com/\",metric:\"Cost per conversion for the Purchase event\"},criteo:{url:\"https://marketing.criteo.com/\",metric:\"CPA, or Cost per order for purchases\"},linkedin:{url:\"https://www.linkedin.com/campaignmanager/\",metric:\"Cost per conversion for Purchase\"}};export const EXAMPLE_SHARED={currency:\"USD\",tab:\"orders\",report_period:\"Last 90 days\",report_start:\"\",report_end:\"\",report_preset:\"Last 90 days\",compare_orders:\"1\",compare_months:\"6\",cost_mode:\"direct\",aov:\"100\",units_per_order:\"2\",avg_product_cost_item:\"25\",shipping_mode:\"amount\",shipping_amount:\"8\",shipping_pct:\"8\",processing_pct:\"3\",processing_fixed:\"0\",commission_pct:\"0\",commission_fixed:\"0\",other_order_cost:\"0\",cm2_pct:\"39\",monthly_mode:\"entered\",monthly_contribution:\"15\",cohort_contribution:\"9000\",cohort_customers:\"100\",cohort_months:\"6\"};export const EXAMPLE_PLATFORM={platform_code:\"meta\",platform_label:\"\",cac_source_type:\"native_metric\",cac_amount:\"90\",ad_spend:\"9000\",new_customers:\"100\"};const obj=v=>v&&typeof v===\"object\"&&!Array.isArray(v)?v:{};const txt=(v,length=80)=>typeof v===\"string\"?v.trim().slice(0,length):\"\";export function numberInput(v,min=0,max=1e8){if(v===\"\"||v==null||typeof v===\"boolean\"||typeof v===\"object\"||String(v).trim()===\"\")return null;const n=Number(v);return Number.isFinite(n)&&n>=min&&n<=max?n:null;}export function normalizeShared(raw){const source=obj(raw);const result={};// Missing legacy costs stay missing; only newly added optional costs default to zero.\nfor(const key of Object.keys(EXAMPLE_SHARED))result[key]=source[key]==null?\"\":String(source[key]).slice(0,100);result.currency=txt(source.currency,3).toUpperCase()||\"USD\";result.tab=source.tab===\"months\"?\"months\":\"orders\";result.cost_mode=source.cost_mode===\"margin\"?\"margin\":\"direct\";result.shipping_mode=source.shipping_mode===\"amount\"?\"amount\":\"percent\";result.monthly_mode=source.monthly_mode===\"cohort\"?\"cohort\":\"entered\";for(const key of[\"processing_fixed\",\"commission_pct\",\"commission_fixed\",\"other_order_cost\"])if(source[key]==null||String(source[key]).trim()===\"\")result[key]=\"0\";for(const key of[\"compare_orders\",\"compare_months\"])if(source[key]==null)result[key]=EXAMPLE_SHARED[key];result.report_preset=txt(source.report_preset)||(REPORT_PRESETS.includes(result.report_period)?result.report_period:\"Saved period\");return result;}export const REPORT_PRESETS=[\"Last 7 days\",\"Last 30 days\",\"Last 90 days\",\"Last 12 months\",\"This month\",\"Last month\",\"Custom dates\"];export function reportingRange(preset,now=new Date){const end=new Date(now.getFullYear(),now.getMonth(),now.getDate());end.setDate(end.getDate()-1);const start=new Date(end);if(preset===\"This month\"){start.setFullYear(now.getFullYear(),now.getMonth(),1);end.setFullYear(now.getFullYear(),now.getMonth(),now.getDate());}else if(preset===\"Last month\"){start.setFullYear(now.getFullYear(),now.getMonth()-1,1);end.setFullYear(now.getFullYear(),now.getMonth(),0);}else if(preset===\"Last 12 months\"){start.setFullYear(end.getFullYear()-1);start.setDate(start.getDate()+1);}else{const days=preset===\"Last 7 days\"?7:preset===\"Last 30 days\"?30:90;start.setDate(start.getDate()-days+1);}const iso=d=>`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,\"0\")}-${String(d.getDate()).padStart(2,\"0\")}`;return{report_start:iso(start),report_end:iso(end)};}export function validDate(value){return/^\\d{4}-\\d{2}-\\d{2}$/.test(value)&&Number.isFinite(Date.parse(value+\"T00:00:00Z\"))&&new Date(value+\"T00:00:00Z\").toISOString().slice(0,10)===value;}export function recoveryProgress(contribution,cac,units){const earned=contribution*units,percent=cac>0?earned/cac*100:null;const tone=percent===null?\"neutral\":percent>=100?\"positive\":percent>=50?\"warning\":\"negative\";return{earned,percent,tone,remaining:Math.max(0,cac-earned)};}export function calculatePayback(rawShared,rawPlatforms,isExample=false){const s=normalizeShared(rawShared),errors=[],values={};const read=(key,label,min=0,max=1e8)=>{const n=numberInput(s[key],min,max);if(n===null)errors.push({path:key,message:`Enter ${label}.`});else values[key]=n;return n??0;};if(!CURRENCY_CODES.has(s.currency))errors.push({path:\"currency\",message:\"Choose a current currency from the list.\"});const comparisonUnits=read(s.tab===\"months\"?\"compare_months\":\"compare_orders\",s.tab===\"months\"?\"a comparison period above zero months\":\"a whole comparison order count above zero\",1,1200);if(s.tab===\"orders\"&&!Number.isInteger(comparisonUnits))errors.push({path:\"compare_orders\",message:\"Enter a whole number of orders.\"});if(s.report_preset===\"Custom dates\"||s.report_start||s.report_end){if(!validDate(s.report_start))errors.push({path:\"report_start\",message:\"Choose a valid start date.\"});if(!validDate(s.report_end))errors.push({path:\"report_end\",message:\"Choose a valid end date.\"});if(validDate(s.report_start)&&validDate(s.report_end)&&s.report_start>s.report_end)errors.push({path:\"report_end\",message:\"Choose an end date on or after the start date.\"});s.report_period=`${s.report_preset}: ${s.report_start} to ${s.report_end}`;}let aov=null,contribution=null,monthly=null,margin=null;const costs=[];if(s.tab===\"orders\"){aov=read(\"aov\",\"an order value above zero\",.01);if(s.cost_mode===\"margin\"){margin=read(\"cm2_pct\",\"a contribution margin from −100% to 100%\",-100,100);contribution=aov*margin/100;costs.push({label:\"Order costs included in your margin\",amount:aov-contribution});}else{const units=read(\"units_per_order\",\"an average item count above zero\",.01,1e5);const product=read(\"avg_product_cost_item\",\"a product cost of zero or more\")*units;const shipping=s.shipping_mode===\"amount\"?read(\"shipping_amount\",\"shipping and fulfilment cost of zero or more\"):aov*read(\"shipping_pct\",\"a shipping percentage from 0% to 100%\",0,100)/100;const processing=aov*read(\"processing_pct\",\"a payment fee percentage from 0% to 100%\",0,100)/100+read(\"processing_fixed\",\"a fixed payment fee of zero or more\");const commissions=aov*read(\"commission_pct\",\"a commission percentage from 0% to 100%\",0,100)/100+read(\"commission_fixed\",\"a fixed commission of zero or more\");const other=read(\"other_order_cost\",\"other order costs of zero or more\");costs.push({label:\"Products\",amount:product},{label:\"Shipping and fulfilment\",amount:shipping},{label:\"Payment fees\",amount:processing},{label:\"Sales and affiliate commissions\",amount:commissions},{label:\"Other order costs\",amount:other});contribution=aov-costs.reduce((sum,c)=>sum+c.amount,0);margin=contribution/aov*100;}}else if(s.monthly_mode===\"cohort\"){const total=read(\"cohort_contribution\",\"total contribution for this customer group\",-1e8);const customers=read(\"cohort_customers\",\"the number of new customers in the group\",1);if(customers&&!Number.isInteger(customers))errors.push({path:\"cohort_customers\",message:\"Enter a whole number of customers.\"});const months=read(\"cohort_months\",\"a period above zero months\",.01,1200);monthly=months&&customers?total/customers/months:0;}else monthly=read(\"monthly_contribution\",\"average monthly contribution per customer\",-1e8);const raw=Array.isArray(rawPlatforms)?rawPlatforms:[];if(raw.length<1||raw.length>10)errors.push({path:\"platforms\",message:\"Add between one and ten advertising platforms.\"});const seen=new Set,rows=[];const inputs=[];for(const[index,value]of raw.slice(0,10).entries()){const p=obj(value),code=txt(p.platform_code,30);const label=code===\"other\"?txt(p.platform_label):PLATFORM_NAMES[code];const duplicateKey=code===\"other\"?`other:${(label||\"\").toLowerCase()}`:code;const path=`platforms.${index}`;if(!PLATFORM_NAMES[code]||!label||seen.has(duplicateKey))errors.push({path:`${path}.platform_code`,message:`Choose a different platform or name for platform ${index+1}.`});seen.add(duplicateKey);const source=txt(p.cac_source_type,30);let spend=null,customers=null,cac=null;if(source===\"calculated\"){spend=numberInput(p.ad_spend);customers=numberInput(p.new_customers,1);if(spend===null)errors.push({path:`${path}.ad_spend`,message:`Enter ad spend of zero or more for platform ${index+1}.`});if(customers===null||!Number.isInteger(customers))errors.push({path:`${path}.new_customers`,message:`Enter a whole number of new customers above zero for platform ${index+1}.`});if(spend!==null&&customers!==null&&Number.isInteger(customers))cac=spend/customers;}else if(source===\"native_metric\"||source===\"entered\"){cac=numberInput(p.cac_amount);if(cac===null)errors.push({path:`${path}.cac_amount`,message:`Enter CAC of zero or more for platform ${index+1}.`});}else errors.push({path:`${path}.cac_source_type`,message:`Choose how to enter CAC for platform ${index+1}.`});const money=s.tab===\"months\"?monthly:contribution;const ratio=cac===0?0:cac!==null&&money!==null&&money>0?cac/money:null;const count=ratio===null?null:Math.max(0,Math.ceil(ratio-Number.EPSILON*Math.max(1,Math.abs(ratio))));rows.push({scenario_index:index+1,platform_code:code,platform_label:label||\"Platform\",cac_source_type:source,cac_amount:cac??0,ad_spend:spend,new_customers:customers,payback_orders_exact:s.tab===\"orders\"?ratio:null,payback_orders_rounded_up:s.tab===\"orders\"?count:null,additional_orders:s.tab===\"orders\"&&count!==null?Math.max(0,count-1):null,payback_months:s.tab===\"months\"?ratio:null,first_order_after_cac:s.tab===\"orders\"&&cac!==null&&contribution!==null?contribution-cac:null,result_state:cac===0?\"no_acquisition_cost\":ratio===null?\"not_recoverable\":s.tab===\"months\"?\"monthly_estimate\":ratio<=1?\"paid_back_first_order\":\"multiple_orders\"});inputs.push({platform_code:code,platform_label:code===\"other\"?label||\"\":\"\",cac_source_type:source,cac_amount:source===\"calculated\"?null:cac,ad_spend:spend,new_customers:customers});}const input={shared:{...s,is_example:isExample},scenarios:inputs};const assumptions=s.tab===\"orders\"?[\"Each order has the same average value and costs. The first order is included in the order count.\",\"Contribution is the money left from a sale after its costs. Use it to cover CAC and regular bills.\",\"The order count does not predict whether or when a customer will buy again.\"]:[\"Estimated months = CAC divided by average monthly contribution per customer.\",\"The monthly average includes every customer in the new-customer group, including those who never buy again.\",\"Assumes the same amount is earned each month. It does not show when your customer group actually covered CAC.\",\"Monthly contribution is what sales leave after their costs. Subtract product, shipping, payment and sales commission costs. Leave out CAC and regular bills.\"];assumptions.push(\"Use the same dates and currency for ad spend and new customers. Keep the way you count new customers the same.\",\"Two ad platforms may count the same customer. For blended CAC, count each new customer once.\",\"Regular business bills, tax and interest are left out. Do not count the same ad cost or commission twice.\",\"Changing the currency changes the unit shown. It does not convert your amounts.\");return{errors,input,result:errors.length?null:{calculation_version:CALCULATION_VERSION,currency:s.currency,tab:s.tab,report_period:txt(s.report_period),comparison_units:comparisonUnits,aov,first_order_contribution:contribution,monthly_contribution:monthly,contribution_margin:margin,cost_breakdown:costs,scenarios:rows,assumptions,is_example:isExample}};}export function money(value,currency,locale=\"en-US\"){const minor=CURRENCIES.find(c=>c.code===currency)?.minor??2;try{return new Intl.NumberFormat(locale,{style:\"currency\",currency,currencyDisplay:\"code\",minimumFractionDigits:minor,maximumFractionDigits:minor}).format(value);}catch{return`${currency} ${value.toFixed(minor)}`;}}export function conciseNumber(value){return value.toLocaleString(\"en-US\",{maximumFractionDigits:4});}export function snapshotText(result,input,ai=false){const s=obj(input.shared),lines=[\"CAC Payback Calculator for Ecommerce\",\"https://brandworldsstudio.com/customer-payback-check\",`Calculation: ${result.tab===\"months\"?\"Payback period (months) — steady monthly estimate\":\"Payback in orders\"}`,`Currency: ${result.currency}`,`Figures: ${result.is_example?\"Example inputs, not visitor business data\":\"Visitor-entered scenario, not independently verified\"}`,`Reporting period: ${result.report_period||\"Not specified\"}`,\"\",\"INPUTS\"];const fields=result.tab===\"months\"?s.monthly_mode===\"cohort\"?[\"monthly_mode\",\"cohort_contribution\",\"cohort_customers\",\"cohort_months\"]:[\"monthly_mode\",\"monthly_contribution\"]:s.cost_mode===\"margin\"?[\"aov\",\"cost_mode\",\"cm2_pct\"]:[\"aov\",\"cost_mode\",\"units_per_order\",\"avg_product_cost_item\",\"shipping_mode\",s.shipping_mode===\"amount\"?\"shipping_amount\":\"shipping_pct\",\"processing_pct\",\"processing_fixed\",\"commission_pct\",\"commission_fixed\",\"other_order_cost\"];const fieldNames={aov:\"Average order value (currency per order)\",cost_mode:\"Cost entry method\",cm2_pct:\"Contribution margin (%)\",units_per_order:\"Average items per order\",avg_product_cost_item:\"Product cost per item (currency)\",shipping_mode:\"Shipping cost entry\",shipping_amount:\"Shipping and fulfilment (currency per order)\",shipping_pct:\"Shipping and fulfilment (% of order value)\",processing_pct:\"Payment fees (% of order value)\",processing_fixed:\"Fixed payment fee (currency per order)\",commission_pct:\"Sales/affiliate commission (% of order value)\",commission_fixed:\"Fixed sales/affiliate commission (currency per order)\",other_order_cost:\"Other variable costs (currency per order)\",monthly_mode:\"Monthly contribution entry\",monthly_contribution:\"Average monthly contribution per customer (currency/customer/month)\",cohort_contribution:\"Total contribution from new-customer group (currency)\",cohort_customers:\"All new customers in group, including non-repeat buyers\",cohort_months:\"Months covered after acquisition\"};for(const f of fields)lines.push(`${fieldNames[f]||f}: ${s[f]??\"Not entered\"}`);lines.push(\"\",\"RESULTS\");if(result.tab===\"orders\"){lines.push(`Contribution per order: ${money(result.first_order_contribution||0,result.currency)}`,`Contribution margin: ${conciseNumber(result.contribution_margin||0)}%`);result.cost_breakdown.forEach(c=>lines.push(`${c.label}: ${money(c.amount,result.currency)} per order`));}else lines.push(`Average monthly contribution per customer: ${money(result.monthly_contribution||0,result.currency)}`);for(const p of result.scenarios){lines.push(\"\",p.platform_label,`CAC source: ${p.cac_source_type===\"calculated\"?\"Ad spend / new customers\":\"Known CAC entered by visitor\"}`,`CAC: ${money(p.cac_amount,result.currency)} per new customer`);if(p.cac_source_type===\"calculated\")lines.push(`Ad spend: ${money(p.ad_spend||0,result.currency)}`,`Unique new paying customers: ${p.new_customers}`);if(p.result_state===\"not_recoverable\")lines.push(\"CAC cannot be recovered at the entered contribution.\");else if(result.tab===\"months\")lines.push(`Estimated payback: ${conciseNumber(p.payback_months||0)} months`);else lines.push(`Equivalent orders: ${conciseNumber(p.payback_orders_exact||0)}`,`Whole orders to cover CAC, including first order: ${p.payback_orders_rounded_up}`,`Additional orders after first: ${p.additional_orders}`,`Money after CAC on first order: ${money(p.first_order_after_cac||0,result.currency)}`);}lines.push(\"\",\"CAC RECOVERY COMPARISON\",`Comparison window: ${result.comparison_units} ${result.tab===\"months\"?\"months\":\"orders, including first order\"}`,\"Goal: cover 100% of each platform’s CAC. Colours describe coverage, not industry benchmarks: red below 50%, amber 50% to below 100%, green 100% or more.\");for(const p of result.scenarios){const progress=recoveryProgress((result.tab===\"months\"?result.monthly_contribution:result.first_order_contribution)||0,p.cac_amount,result.comparison_units);lines.push(`${p.platform_label}: contribution ${money(progress.earned,result.currency)}; CAC ${money(p.cac_amount,result.currency)}; ${progress.percent===null?\"no CAC to recover\":`${conciseNumber(progress.percent)}% of CAC covered`}; ${money(progress.remaining,result.currency)} still to recover.`);}lines.push(\"Comparison contribution = contribution per order or customer/month \\xd7 comparison window. Coverage (%) = comparison contribution / CAC \\xd7 100. Bars stop at 100%; percentages above 100% remain shown. Negative contribution means a loss; it is not CAC recovery.\");lines.push(\"\",\"FORMULAS\",result.tab===\"orders\"?\"Contribution per order = order value − product cost per item \\xd7 average items per order − shipping/fulfilment − payment fees − commissions − other order costs. Margin method: order value \\xd7 contribution margin / 100. Payback orders = CAC / contribution per order; whole orders round up.\":\"Estimated payback months = CAC / average monthly contribution per customer. Cohort-entry monthly average = total group contribution / all customers in the new-customer group / months covered.\",\"CAC from spend = ad spend / unique new paying customers.\",\"\",\"ASSUMPTIONS AND EXCLUSIONS\",...result.assumptions.map(a=>`• ${a}`));if(ai)lines.push(\"\",\"Please explain these results in plain language. Identify the main tradeoffs and the assumptions that need checking. Explain which entered costs matter most, and compare changes only when I supply the changed values. Treat these figures as an example or an unverified scenario as labelled. Do not invent industry benchmarks, claim a forecast, or promise a business result.\");return lines.join(\"\\n\");}// ISO 4217 List One, SIX publication 2026-09-17. All current codes, including funds.\nexport const CURRENCIES=[{code:\"XUA\",name:\"ADB Unit of Account\",minor:2},{code:\"AFN\",name:\"Afghani\",minor:2},{code:\"DZD\",name:\"Algerian Dinar\",minor:2},{code:\"XAD\",name:\"Arab Accounting Dinar\",minor:2},{code:\"ARS\",name:\"Argentine Peso\",minor:2},{code:\"AMD\",name:\"Armenian Dram\",minor:2},{code:\"AWG\",name:\"Aruban Florin\",minor:2},{code:\"AUD\",name:\"Australian Dollar\",minor:2},{code:\"AZN\",name:\"Azerbaijan Manat\",minor:2},{code:\"BSD\",name:\"Bahamian Dollar\",minor:2},{code:\"BHD\",name:\"Bahraini Dinar\",minor:3},{code:\"THB\",name:\"Baht\",minor:2},{code:\"PAB\",name:\"Balboa\",minor:2},{code:\"BBD\",name:\"Barbados Dollar\",minor:2},{code:\"BYN\",name:\"Belarusian Ruble\",minor:2},{code:\"BZD\",name:\"Belize Dollar\",minor:2},{code:\"BMD\",name:\"Bermudian Dollar\",minor:2},{code:\"BOB\",name:\"Boliviano\",minor:2},{code:\"VES\",name:\"Bol\\xedvar Soberano\",minor:2},{code:\"VED\",name:\"Bol\\xedvar Soberano\",minor:2},{code:\"XBA\",name:\"Bond Markets Unit European Composite Unit (EURCO)\",minor:2},{code:\"XBB\",name:\"Bond Markets Unit European Monetary Unit (E.M.U.-6)\",minor:2},{code:\"XBD\",name:\"Bond Markets Unit European Unit of Account 17 (E.U.A.-17)\",minor:2},{code:\"XBC\",name:\"Bond Markets Unit European Unit of Account 9 (E.U.A.-9)\",minor:2},{code:\"BRL\",name:\"Brazilian Real\",minor:2},{code:\"BND\",name:\"Brunei Dollar\",minor:2},{code:\"BIF\",name:\"Burundi Franc\",minor:0},{code:\"XOF\",name:\"CFA Franc BCEAO\",minor:0},{code:\"XAF\",name:\"CFA Franc BEAC\",minor:0},{code:\"XPF\",name:\"CFP Franc\",minor:0},{code:\"CVE\",name:\"Cabo Verde Escudo\",minor:2},{code:\"CAD\",name:\"Canadian Dollar\",minor:2},{code:\"XCG\",name:\"Caribbean Guilder\",minor:2},{code:\"KYD\",name:\"Cayman Islands Dollar\",minor:2},{code:\"CLP\",name:\"Chilean Peso\",minor:0},{code:\"XTS\",name:\"Codes specifically reserved for testing purposes\",minor:2},{code:\"COP\",name:\"Colombian Peso\",minor:2},{code:\"KMF\",name:\"Comorian Franc \",minor:0},{code:\"CDF\",name:\"Congolese Franc\",minor:2},{code:\"BAM\",name:\"Convertible Mark\",minor:2},{code:\"NIO\",name:\"Cordoba Oro\",minor:2},{code:\"CRC\",name:\"Costa Rican Colon\",minor:2},{code:\"CUP\",name:\"Cuban Peso\",minor:2},{code:\"CZK\",name:\"Czech Koruna\",minor:2},{code:\"GMD\",name:\"Dalasi\",minor:2},{code:\"DKK\",name:\"Danish Krone\",minor:2},{code:\"MKD\",name:\"Denar\",minor:2},{code:\"DJF\",name:\"Djibouti Franc\",minor:0},{code:\"STN\",name:\"Dobra\",minor:2},{code:\"DOP\",name:\"Dominican Peso\",minor:2},{code:\"VND\",name:\"Dong\",minor:0},{code:\"XCD\",name:\"East Caribbean Dollar\",minor:2},{code:\"EGP\",name:\"Egyptian Pound\",minor:2},{code:\"SVC\",name:\"El Salvador Colon\",minor:2},{code:\"ETB\",name:\"Ethiopian Birr\",minor:2},{code:\"EUR\",name:\"Euro\",minor:2},{code:\"FKP\",name:\"Falkland Islands Pound\",minor:2},{code:\"FJD\",name:\"Fiji Dollar\",minor:2},{code:\"HUF\",name:\"Forint\",minor:2},{code:\"GHS\",name:\"Ghana Cedi\",minor:2},{code:\"GIP\",name:\"Gibraltar Pound\",minor:2},{code:\"XAU\",name:\"Gold\",minor:2},{code:\"HTG\",name:\"Gourde\",minor:2},{code:\"PYG\",name:\"Guarani\",minor:0},{code:\"GNF\",name:\"Guinean Franc\",minor:0},{code:\"GYD\",name:\"Guyana Dollar\",minor:2},{code:\"HKD\",name:\"Hong Kong Dollar\",minor:2},{code:\"UAH\",name:\"Hryvnia\",minor:2},{code:\"ISK\",name:\"Iceland Krona\",minor:0},{code:\"INR\",name:\"Indian Rupee\",minor:2},{code:\"IRR\",name:\"Iranian Rial\",minor:2},{code:\"IQD\",name:\"Iraqi Dinar\",minor:3},{code:\"JMD\",name:\"Jamaican Dollar\",minor:2},{code:\"JOD\",name:\"Jordanian Dinar\",minor:3},{code:\"KES\",name:\"Kenyan Shilling\",minor:2},{code:\"PGK\",name:\"Kina\",minor:2},{code:\"KWD\",name:\"Kuwaiti Dinar\",minor:3},{code:\"AOA\",name:\"Kwanza\",minor:2},{code:\"MMK\",name:\"Kyat\",minor:2},{code:\"LAK\",name:\"Lao Kip\",minor:2},{code:\"GEL\",name:\"Lari\",minor:2},{code:\"LBP\",name:\"Lebanese Pound\",minor:2},{code:\"ALL\",name:\"Lek\",minor:2},{code:\"HNL\",name:\"Lempira\",minor:2},{code:\"SLE\",name:\"Leone\",minor:2},{code:\"LRD\",name:\"Liberian Dollar\",minor:2},{code:\"LYD\",name:\"Libyan Dinar\",minor:3},{code:\"SZL\",name:\"Lilangeni\",minor:2},{code:\"LSL\",name:\"Loti\",minor:2},{code:\"MGA\",name:\"Malagasy Ariary\",minor:2},{code:\"MWK\",name:\"Malawi Kwacha\",minor:2},{code:\"MYR\",name:\"Malaysian Ringgit\",minor:2},{code:\"MUR\",name:\"Mauritius Rupee\",minor:2},{code:\"MXN\",name:\"Mexican Peso\",minor:2},{code:\"MXV\",name:\"Mexican Unidad de Inversion (UDI)\",minor:2},{code:\"MDL\",name:\"Moldovan Leu\",minor:2},{code:\"MAD\",name:\"Moroccan Dirham\",minor:2},{code:\"MZN\",name:\"Mozambique Metical\",minor:2},{code:\"BOV\",name:\"Mvdol\",minor:2},{code:\"NGN\",name:\"Naira\",minor:2},{code:\"ERN\",name:\"Nakfa\",minor:2},{code:\"NAD\",name:\"Namibia Dollar\",minor:2},{code:\"NPR\",name:\"Nepalese Rupee\",minor:2},{code:\"ILS\",name:\"New Israeli Sheqel\",minor:2},{code:\"TWD\",name:\"New Taiwan Dollar\",minor:2},{code:\"NZD\",name:\"New Zealand Dollar\",minor:2},{code:\"BTN\",name:\"Ngultrum\",minor:2},{code:\"KPW\",name:\"North Korean Won\",minor:2},{code:\"NOK\",name:\"Norwegian Krone\",minor:2},{code:\"MRU\",name:\"Ouguiya\",minor:2},{code:\"PKR\",name:\"Pakistan Rupee\",minor:2},{code:\"XPD\",name:\"Palladium\",minor:2},{code:\"MOP\",name:\"Pataca\",minor:2},{code:\"TOP\",name:\"Pa’anga\",minor:2},{code:\"UYU\",name:\"Peso Uruguayo\",minor:2},{code:\"PHP\",name:\"Philippine Peso\",minor:2},{code:\"XPT\",name:\"Platinum\",minor:2},{code:\"GBP\",name:\"Pound Sterling\",minor:2},{code:\"BWP\",name:\"Pula\",minor:2},{code:\"QAR\",name:\"Qatari Rial\",minor:2},{code:\"GTQ\",name:\"Quetzal\",minor:2},{code:\"ZAR\",name:\"Rand\",minor:2},{code:\"OMR\",name:\"Rial Omani\",minor:3},{code:\"KHR\",name:\"Riel\",minor:2},{code:\"RON\",name:\"Romanian Leu\",minor:2},{code:\"MVR\",name:\"Rufiyaa\",minor:2},{code:\"IDR\",name:\"Rupiah\",minor:2},{code:\"RUB\",name:\"Russian Ruble\",minor:2},{code:\"RWF\",name:\"Rwanda Franc\",minor:0},{code:\"XDR\",name:\"SDR (Special Drawing Right)\",minor:2},{code:\"SHP\",name:\"Saint Helena Pound\",minor:2},{code:\"SAR\",name:\"Saudi Riyal\",minor:2},{code:\"RSD\",name:\"Serbian Dinar\",minor:2},{code:\"SCR\",name:\"Seychelles Rupee\",minor:2},{code:\"XAG\",name:\"Silver\",minor:2},{code:\"SGD\",name:\"Singapore Dollar\",minor:2},{code:\"PEN\",name:\"Sol\",minor:2},{code:\"SBD\",name:\"Solomon Islands Dollar\",minor:2},{code:\"KGS\",name:\"Som\",minor:2},{code:\"SOS\",name:\"Somali Shilling\",minor:2},{code:\"TJS\",name:\"Somoni\",minor:2},{code:\"SSP\",name:\"South Sudanese Pound\",minor:2},{code:\"LKR\",name:\"Sri Lanka Rupee\",minor:2},{code:\"XSU\",name:\"Sucre\",minor:2},{code:\"SDG\",name:\"Sudanese Pound\",minor:2},{code:\"SRD\",name:\"Surinam Dollar\",minor:2},{code:\"SEK\",name:\"Swedish Krona\",minor:2},{code:\"CHF\",name:\"Swiss Franc\",minor:2},{code:\"SYP\",name:\"Syrian Pound\",minor:2},{code:\"BDT\",name:\"Taka\",minor:2},{code:\"WST\",name:\"Tala\",minor:2},{code:\"TZS\",name:\"Tanzanian Shilling\",minor:2},{code:\"KZT\",name:\"Tenge\",minor:2},{code:\"XXX\",name:\"The codes assigned for transactions where no currency is involved\",minor:2},{code:\"TTD\",name:\"Trinidad and Tobago Dollar\",minor:2},{code:\"MNT\",name:\"Tugrik\",minor:2},{code:\"TND\",name:\"Tunisian Dinar\",minor:3},{code:\"TRY\",name:\"Turkish Lira\",minor:2},{code:\"TMT\",name:\"Turkmenistan New Manat\",minor:2},{code:\"AED\",name:\"UAE Dirham\",minor:2},{code:\"USD\",name:\"US Dollar\",minor:2},{code:\"USN\",name:\"US Dollar (Next day)\",minor:2},{code:\"UGX\",name:\"Uganda Shilling\",minor:0},{code:\"UYW\",name:\"Unidad Previsional\",minor:4},{code:\"CLF\",name:\"Unidad de Fomento\",minor:4},{code:\"COU\",name:\"Unidad de Valor Real\",minor:2},{code:\"UYI\",name:\"Uruguay Peso en Unidades Indexadas (UI)\",minor:0},{code:\"UZS\",name:\"Uzbekistan Sum\",minor:2},{code:\"VUV\",name:\"Vatu\",minor:0},{code:\"CHE\",name:\"WIR Euro\",minor:2},{code:\"CHW\",name:\"WIR Franc\",minor:2},{code:\"KRW\",name:\"Won\",minor:0},{code:\"YER\",name:\"Yemeni Rial\",minor:2},{code:\"JPY\",name:\"Yen\",minor:0},{code:\"CNY\",name:\"Yuan Renminbi\",minor:2},{code:\"ZMW\",name:\"Zambian Kwacha\",minor:2},{code:\"ZWG\",name:\"Zimbabwe Gold\",minor:2},{code:\"PLN\",name:\"Zloty\",minor:2}];export const CURRENCY_CODES=new Set(CURRENCIES.map(c=>c.code));// Unicode CLDR territory mapping; filtered to SIX current codes; checked 2026-10-01.\nexport const COUNTRY_CURRENCY={AC:\"SHP\",AD:\"EUR\",AE:\"AED\",AF:\"AFN\",AG:\"XCD\",AI:\"XCD\",AL:\"ALL\",AM:\"AMD\",AO:\"AOA\",AR:\"ARS\",AS:\"USD\",AT:\"EUR\",AU:\"AUD\",AW:\"AWG\",AX:\"EUR\",AZ:\"AZN\",BA:\"BAM\",BB:\"BBD\",BD:\"BDT\",BE:\"EUR\",BF:\"XOF\",BG:\"EUR\",BH:\"BHD\",BI:\"BIF\",BJ:\"XOF\",BL:\"EUR\",BM:\"BMD\",BN:\"BND\",BO:\"BOB\",BQ:\"USD\",BR:\"BRL\",BS:\"BSD\",BT:\"BTN\",BV:\"NOK\",BW:\"BWP\",BY:\"BYN\",BZ:\"BZD\",CA:\"CAD\",CC:\"AUD\",CD:\"CDF\",CF:\"XAF\",CG:\"XAF\",CH:\"CHF\",CI:\"XOF\",CK:\"NZD\",CL:\"CLP\",CM:\"XAF\",CN:\"CNY\",CO:\"COP\",CR:\"CRC\",CU:\"CUP\",CV:\"CVE\",CW:\"XCG\",CX:\"AUD\",CY:\"EUR\",CZ:\"CZK\",DE:\"EUR\",DG:\"USD\",DJ:\"DJF\",DK:\"DKK\",DM:\"XCD\",DO:\"DOP\",DZ:\"DZD\",EA:\"EUR\",EC:\"USD\",EE:\"EUR\",EG:\"EGP\",EH:\"MAD\",ER:\"ERN\",ES:\"EUR\",ET:\"ETB\",EU:\"EUR\",FI:\"EUR\",FJ:\"FJD\",FK:\"FKP\",FM:\"USD\",FO:\"DKK\",FR:\"EUR\",GA:\"XAF\",GB:\"GBP\",GD:\"XCD\",GE:\"GEL\",GF:\"EUR\",GG:\"GBP\",GH:\"GHS\",GI:\"GIP\",GL:\"DKK\",GM:\"GMD\",GN:\"GNF\",GP:\"EUR\",GQ:\"XAF\",GR:\"EUR\",GS:\"GBP\",GT:\"GTQ\",GU:\"USD\",GW:\"XOF\",GY:\"GYD\",HK:\"HKD\",HM:\"AUD\",HN:\"HNL\",HR:\"EUR\",HT:\"HTG\",HU:\"HUF\",IC:\"EUR\",ID:\"IDR\",IE:\"EUR\",IL:\"ILS\",IM:\"GBP\",IN:\"INR\",IO:\"USD\",IQ:\"IQD\",IR:\"IRR\",IS:\"ISK\",IT:\"EUR\",JE:\"GBP\",JM:\"JMD\",JO:\"JOD\",JP:\"JPY\",KE:\"KES\",KG:\"KGS\",KH:\"KHR\",KI:\"AUD\",KM:\"KMF\",KN:\"XCD\",KP:\"KPW\",KR:\"KRW\",KW:\"KWD\",KY:\"KYD\",KZ:\"KZT\",LA:\"LAK\",LB:\"LBP\",LC:\"XCD\",LI:\"CHF\",LK:\"LKR\",LR:\"LRD\",LS:\"ZAR\",LT:\"EUR\",LU:\"EUR\",LV:\"EUR\",LY:\"LYD\",MA:\"MAD\",MC:\"EUR\",MD:\"MDL\",ME:\"EUR\",MF:\"EUR\",MG:\"MGA\",MH:\"USD\",MK:\"MKD\",ML:\"XOF\",MM:\"MMK\",MN:\"MNT\",MO:\"MOP\",MP:\"USD\",MQ:\"EUR\",MR:\"MRU\",MS:\"XCD\",MT:\"EUR\",MU:\"MUR\",MV:\"MVR\",MW:\"MWK\",MX:\"MXN\",MY:\"MYR\",MZ:\"MZN\",NA:\"NAD\",NC:\"XPF\",NE:\"XOF\",NF:\"AUD\",NG:\"NGN\",NI:\"NIO\",NL:\"EUR\",NO:\"NOK\",NP:\"NPR\",NR:\"AUD\",NU:\"NZD\",NZ:\"NZD\",OM:\"OMR\",PA:\"PAB\",PE:\"PEN\",PF:\"XPF\",PG:\"PGK\",PH:\"PHP\",PK:\"PKR\",PL:\"PLN\",PM:\"EUR\",PN:\"NZD\",PR:\"USD\",PS:\"ILS\",PT:\"EUR\",PW:\"USD\",PY:\"PYG\",QA:\"QAR\",RE:\"EUR\",RO:\"RON\",RS:\"RSD\",RU:\"RUB\",RW:\"RWF\",SA:\"SAR\",SB:\"SBD\",SC:\"SCR\",SD:\"SDG\",SE:\"SEK\",SG:\"SGD\",SH:\"SHP\",SI:\"EUR\",SJ:\"NOK\",SK:\"EUR\",SL:\"SLE\",SM:\"EUR\",SN:\"XOF\",SO:\"SOS\",SR:\"SRD\",SS:\"SSP\",ST:\"STN\",SV:\"USD\",SX:\"XCG\",SY:\"SYP\",SZ:\"SZL\",TA:\"GBP\",TC:\"USD\",TD:\"XAF\",TF:\"EUR\",TG:\"XOF\",TH:\"THB\",TJ:\"TJS\",TK:\"NZD\",TL:\"USD\",TM:\"TMT\",TN:\"TND\",TO:\"TOP\",TR:\"TRY\",TT:\"TTD\",TV:\"AUD\",TW:\"TWD\",TZ:\"TZS\",UA:\"UAH\",UG:\"UGX\",UM:\"USD\",US:\"USD\",UY:\"UYU\",UZ:\"UZS\",VA:\"EUR\",VC:\"XCD\",VE:\"VES\",VG:\"USD\",VI:\"USD\",VN:\"VND\",VU:\"VUV\",WF:\"XPF\",WS:\"WST\",XK:\"EUR\",YE:\"YER\",YT:\"EUR\",ZA:\"ZAR\",ZM:\"ZMW\",ZW:\"ZWG\"};\nexport const __FramerMetadata__ = {\"exports\":{\"EXAMPLE_SHARED\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"validDate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snapshotText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PlatformInput\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CALCULATION_VERSION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"conciseNumber\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PlatformResult\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"money\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"REPORT_PRESETS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaybackResult\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"numberInput\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CURRENCY_CODES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FLOW_VERSION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"normalizeShared\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"recoveryProgress\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"COUNTRY_CURRENCY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EXAMPLE_PLATFORM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputError\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PLATFORM_NAMES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CURRENCIES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculatePayback\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"reportingRange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PLATFORM_REPORTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CACPaybackModel.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{CURRENCIES,CURRENCY_CODES}from\"https://framerusercontent.com/modules/5dpPCReGmVLniimyhdEU/9LWTYUeaPThiBuVceOpu/CACPaybackModel.js\";export const DESIGN_VERSION=\"bws-calculator-standard-2026-10-01\";export const TOKENS={text:\"#000000\",muted:\"#666666\",surface:\"#F4F2EE\",positive:\"#137333\",negative:\"#B42318\",content:1120,title:900,intro:768,gap:16,inputHeight:36,reviewGap:56};export const calculatorCSS=`\n.bws-calculator{--bw-text:#000;--bw-muted:#666;--bw-surface:#F4F2EE;--bw-positive:#137333;--bw-negative:#B42318;width:100%;min-width:0;background:#fff;color:var(--bw-text);font-family:\"Suisse Int’l\",\"Suisse Intl\",Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.5;box-sizing:border-box}\n.bws-calculator *{box-sizing:border-box}.bws-calculator ::selection{background:#dedbd5;color:#000}.bws-calculator input{caret-color:#000}.bws-calculator button,.bws-calculator input,.bws-calculator select,.bws-calculator textarea{font:inherit;font-size:16px;font-weight:400;border-radius:0;color:#000}.bws-calculator button{cursor:pointer}.bws-calculator button:disabled{cursor:not-allowed;opacity:.55}.bws-calculator :where(button,input,select,textarea,a,summary):focus-visible{outline:2px solid #000;outline-offset:3px}.bws-calculator a{color:inherit;text-underline-offset:3px}.bws-calculator p{margin:0 0 12px}.bws-calculator h1,.bws-calculator h2,.bws-calculator h3{font-weight:400;line-height:1.15;margin:0}.bws-calculator h1{font-size:48px;max-width:900px;letter-spacing:-.025em;margin:10px 0 22px;overflow-wrap:break-word}.bws-calculator h2{font-size:32px}.bws-calculator h3{font-size:20px}.bws-calculator .bw-wrap{width:100%;max-width:1168px;padding:56px 24px 64px;margin:auto}.bws-calculator .bw-eyebrow{font-size:14px;letter-spacing:.08em;color:#666;margin-bottom:10px}.bws-calculator .bw-intro{max-width:768px;color:#666}.bws-calculator .bw-intro .bw-opening{font-size:18px;font-weight:600;margin-bottom:12px}.bws-calculator .bw-intro p{font-size:16px}.bws-calculator .bw-tool{margin-top:48px}.bws-calculator .bw-tabs{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;border:1px solid #000;margin-bottom:16px}.bws-calculator .bw-tab{min-height:44px;border:0;border-right:1px solid #000;background:#fff;padding:10px 12px}.bws-calculator .bw-tab:last-child{border-right:0}.bws-calculator .bw-tab[aria-selected=true]{background:#000;color:#fff}.bws-calculator .bw-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:16px;align-items:start}.bws-calculator .bw-input-panel{border:1px solid #000;padding:24px;min-width:0;background:#fff}.bws-calculator .bw-input-panel h2{font-size:20px;margin-bottom:12px}.bws-calculator .bw-group{margin-top:20px;padding-top:20px;border-top:1px solid #666}.bws-calculator .bw-group>h3{margin-bottom:8px}.bws-calculator .bw-support{font-size:14px;color:#666;line-height:1.45}.bws-calculator .bw-field{display:grid;grid-template-columns:minmax(0,1fr) 144px;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #666;position:relative}.bws-calculator .bw-field:last-child{border-bottom:0}.bws-calculator .bw-field-label{display:flex;align-items:center;gap:4px;font-size:16px;font-weight:400;min-width:0}.bws-calculator .bw-field label{font-size:16px;font-weight:400}.bws-calculator .bw-hint{display:block;color:#666;font-size:14px;line-height:1.4;margin-top:4px}.bws-calculator .bw-input{display:flex;align-items:center;width:100%;height:36px;border:1px solid #000;background:#fff;min-width:0}.bws-calculator .bw-input input{height:34px;border:0;outline-offset:3px;width:100%;min-width:0;background:transparent;padding:6px 8px;line-height:20px;font-variant-numeric:tabular-nums}.bws-calculator .bw-unit{flex:none;padding:0 8px 0 0;color:#666;font-size:14px}.bws-calculator .bw-select{height:36px;min-width:0;width:100%;border:1px solid #000;background:#FFFFFF;padding:4px 6px;appearance:none;-webkit-appearance:none;background-color:#FFFFFF;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23151515' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 13px center;background-size:16px 16px;padding-right:40px;}.bws-calculator .bw-field-error{grid-column:1/-1;color:#B42318;font-size:14px}.bws-calculator [aria-invalid=true]{border-color:#B42318}.bws-calculator .bw-help{position:static;display:inline-flex;flex:none}.bws-calculator .bw-help-button{border:0;background:transparent;padding:2px;min-width:28px;min-height:28px;line-height:1;color:#666}.bws-calculator .bw-help-text{position:absolute;top:54px;left:0;width:min(320px,calc(100vw - 64px));font-size:14px;line-height:1.5;padding:14px;border:1px solid #000;background:#fff;color:#000;z-index:10;box-shadow:0 5px 14px #00000012}.bws-calculator .bw-help-text[hidden]{display:none}.bws-calculator .bw-inline-help .bw-field-label{display:block}.bws-calculator .bw-inline-help .bw-help{position:static;display:block;max-width:100%}.bws-calculator .bw-inline-help .bw-help-text{position:static;display:block;width:100%;margin-top:8px;box-shadow:none}.bws-calculator .bw-inline-help .bw-help-text[hidden]{display:none}.bws-calculator .bw-disclosure{margin-top:12px;border-top:1px solid #666}.bws-calculator .bw-disclosure>summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;font-size:14px}.bws-calculator summary::-webkit-details-marker{display:none}.bws-calculator summary .bw-toggle:after{content:\"+\"}.bws-calculator details[open]>summary .bw-toggle:after{content:\"−\"}.bws-calculator .bw-disclosure-body{padding:0 0 12px;font-size:14px}.bws-calculator .bw-disclosure-body p{margin-bottom:10px}.bws-calculator .bw-prompt{display:block;width:100%;min-height:140px;resize:vertical;border:1px solid #000;padding:12px;background:#F4F2EE;line-height:1.5;font-size:16px}.bws-calculator .bw-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.bws-calculator .bw-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;text-decoration:none;border:1px solid #000;background:#fff;color:#000;font-size:16px;font-weight:400;text-align:center}.bws-calculator .bw-button:hover{background:#F4F2EE}.bws-calculator .bw-button-primary{background:#000;color:#fff}.bws-calculator .bw-button-primary:hover{background:#333}.bws-calculator .bw-text-button{border:0;background:transparent;padding:4px 0;min-height:36px;font-size:14px;text-decoration:underline;text-underline-offset:3px}.bws-calculator .bw-platform{margin-top:16px;padding-top:16px;border-top:1px solid #666}.bws-calculator .bw-platform-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.bws-calculator .bw-platform-head h4{font-size:16px;font-weight:400;margin:0}.bws-calculator .bw-platform-head button{font-size:14px}.bws-calculator .bw-panel{padding:24px;border:1px solid #000;background:#F4F2EE;min-width:0}.bws-calculator .bw-results{display:grid;gap:16px;min-width:0}.bws-calculator .bw-panel h2{font-size:20px;margin-bottom:12px}.bws-calculator .bw-main-result{font-size:48px;font-weight:400;line-height:1.05;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-bottom:8px}.bws-calculator .bw-main-result small{font-size:20px}.bws-calculator .bw-summary-note{font-size:16px}.bws-calculator .bw-status{font-size:14px;margin-top:8px;color:#666}.bws-calculator .bw-status-positive{color:#137333}.bws-calculator .bw-status-negative{color:#B42318}.bws-calculator .bw-metrics{margin:12px 0 0}.bws-calculator .bw-metric{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:9px 0;border-top:1px solid #666;font-size:16px}.bws-calculator .bw-metric dt,.bws-calculator .bw-metric dd{margin:0}.bws-calculator .bw-metric dd{text-align:right;font-variant-numeric:tabular-nums;max-width:240px;overflow-wrap:anywhere}.bws-calculator .bw-metric-positive{color:#137333}.bws-calculator .bw-metric-negative{color:#B42318}.bws-calculator .bw-subheading{font-size:16px;font-weight:400;margin:20px 0 6px}.bws-calculator .bw-platform-result+.bw-platform-result{margin-top:22px;padding-top:16px;border-top:1px solid #000}.bws-calculator .bw-chart{display:block;width:100%;height:auto;margin-top:12px;overflow:visible}.bws-calculator .bw-chart text{font-family:inherit;fill:#666;font-size:13px}.bws-calculator .bw-chart-key{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;color:#666;margin-top:10px}.bws-calculator .bw-key-line{display:inline-block;width:20px;border-top:2px solid #000;margin-right:6px;vertical-align:middle}.bws-calculator .bw-key-line-contribution{border-color:#137333}.bws-calculator .bw-action-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.bws-calculator .bw-ai-picker{display:inline-flex;gap:4px;align-items:center;font-size:14px}.bws-calculator .bw-ai-button{width:44px;height:44px;padding:10px;border:1px solid #000;background:#fff;display:flex;align-items:center;justify-content:center}.bws-calculator .bw-ai-button:hover{background:#e7e3dc}.bws-calculator .bw-ai-button svg{width:23px;height:23px;fill:currentColor}.bws-calculator .bw-notice{font-size:14px;border:1px solid #666;background:#fff;padding:12px;margin-top:12px}.bws-calculator .bw-notice-error{color:#B42318;border-color:#B42318}.bws-calculator .bw-notice-success{color:#137333}.bws-calculator .bw-review{margin:56px 0;padding:24px;border:1px solid #000;background:#F4F2EE}.bws-calculator .bw-review h2{font-size:32px;margin-bottom:12px}.bws-calculator .bw-review p{max-width:768px}.bws-calculator .bw-review-actions{border-top:1px solid #666;padding-top:16px;margin-top:16px}.bws-calculator .bw-review .bw-button{margin-bottom:10px}.bws-calculator .bw-method{margin-top:56px}.bws-calculator .bw-method h2{font-size:32px;margin-bottom:24px}.bws-calculator .bw-method-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.bws-calculator .bw-method-group{border-top:1px solid #666;padding-top:16px;min-width:0}.bws-calculator .bw-method-group h3{font-size:20px;margin-bottom:12px}.bws-calculator .bw-formula{background:#F4F2EE;border:1px solid #666;padding:16px;margin:12px 0}.bws-calculator .bw-questions{margin-top:56px;width:100%}.bws-calculator .bw-questions h2{font-size:36px;margin-bottom:24px}.bws-calculator .bw-question{border-top:1px solid #666}.bws-calculator .bw-question:last-child{border-bottom:1px solid #666}.bws-calculator .bw-question>summary{list-style:none;cursor:pointer;font-size:16px;display:flex;justify-content:space-between;gap:16px;padding:18px 0}.bws-calculator .bw-answer{padding:0 36px 18px 0;max-width:850px;font-size:16px;color:#666}.bws-calculator .bw-mobile-summary{display:none}.bws-calculator .bw-email-input{width:100%;height:36px;border:1px solid #000;padding:5px 8px;background:#fff}.bws-calculator .bw-email-form{display:grid;gap:12px}.bws-calculator .bw-email-form .bw-button{justify-self:start}.bws-calculator .bw-plot-table{margin-top:12px;width:100%;border-collapse:collapse;font-size:14px}.bws-calculator .bw-plot-table th,.bws-calculator .bw-plot-table td{text-align:left;border-bottom:1px solid #666;padding:6px 0;font-weight:400}.bws-calculator .bw-plot-table td:last-child,.bws-calculator .bw-plot-table th:last-child{text-align:right}.bws-calculator .bw-row-wide{grid-template-columns:minmax(0,1fr)}.bws-calculator .bw-row-wide .bw-input{max-width:none}\n@media(max-width:1000px){.bws-calculator h1{font-size:36px}.bws-calculator .bw-field{grid-template-columns:minmax(0,1fr) 128px;gap:8px}}\n@media(max-width:760px){.bws-calculator .bw-chart text{font-size:36px}.bws-calculator .bw-wrap{padding:32px 20px 48px;max-width:1160px}.bws-calculator h1{font-size:30px;line-height:1.15;margin:10px 0 18px}.bws-calculator .bw-intro .bw-opening{font-size:16px}.bws-calculator .bw-tool{margin-top:32px}.bws-calculator .bw-grid{grid-template-columns:minmax(0,1fr)}.bws-calculator .bw-field{grid-template-columns:minmax(0,1fr);gap:8px}.bws-calculator .bw-input-panel,.bws-calculator .bw-panel,.bws-calculator .bw-review{padding:20px}.bws-calculator .bw-main-result{font-size:36px}.bws-calculator .bw-mobile-summary{display:block;margin-bottom:16px}.bws-calculator .bw-mobile-summary .bw-panel{padding:16px 20px}.bws-calculator .bw-mobile-summary .bw-main-result{font-size:32px}.bws-calculator .bw-help-text{left:0;width:min(300px,calc(100vw - 70px))}.bws-calculator .bw-method-grid{grid-template-columns:minmax(0,1fr)}.bws-calculator .bw-metric{gap:10px}.bws-calculator .bw-metric dd{max-width:155px}.bws-calculator .bw-help-button{min-height:36px;min-width:36px}.bws-calculator .bw-tab{padding:10px 8px;font-size:16px}.bws-calculator .bw-review h2{font-size:28px}}\n@media(prefers-reduced-motion:reduce){.bws-calculator *{scroll-behavior:auto!important;transition:none!important}}\n`;export const cacRefinementCSS=`\n.bws-calculator.bw-cac .bw-input-panel label,.bws-calculator.bw-cac .bw-input-panel h2,.bws-calculator.bw-cac .bw-input-panel h3{font-weight:500}\n.bws-calculator.bw-cac .bw-main-result{font-size:32px}\n.bws-calculator.bw-cac .bw-platform-result{background:#fff;border:1px solid #666;padding:16px;margin-top:12px}\n.bws-calculator.bw-cac .bw-platform-result+.bw-platform-result{margin-top:12px;padding-top:16px;border-top:1px solid #666}\n.bws-calculator.bw-cac .bw-platform-result h3{font-size:16px}\n.bws-calculator.bw-cac .bw-platform-result .bw-metric{padding:7px 0}\n.bws-calculator.bw-cac .bw-recovery{margin-top:20px;padding-top:20px;border-top:1px solid #666}\n.bws-calculator.bw-cac .bw-recovery h3{font-size:20px;margin-bottom:10px}\n.bws-calculator.bw-cac .bw-recovery-row{margin-top:18px}\n.bws-calculator.bw-cac .bw-recovery-label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:16px;margin-bottom:7px}\n.bws-calculator.bw-cac .bw-recovery-label strong{font-weight:500;white-space:nowrap}\n.bws-calculator.bw-cac .bw-recovery-track{height:18px;border:1px solid #666;background:#fff;position:relative}\n.bws-calculator.bw-cac .bw-recovery-fill{display:block;height:100%;max-width:100%}\n.bws-calculator.bw-cac .bw-recovery-caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;color:#666;font-size:14px;margin-top:6px}\n.bws-calculator.bw-cac .bw-recovery-legend{display:flex;gap:8px 16px;flex-wrap:wrap;font-size:14px;margin-top:18px}\n.bws-calculator.bw-cac .bw-recovery-legend span{display:flex;align-items:center;gap:6px}\n.bws-calculator.bw-cac .bw-recovery-legend i{width:12px;height:12px;display:inline-block}\n.bws-calculator.bw-cac .bw-date-range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid #666}\n.bws-calculator.bw-cac .bw-date-range label{display:block;font-size:14px;margin-bottom:6px}\n.bws-calculator.bw-cac .bw-date-range input{height:36px;width:100%;min-width:0;border:1px solid #000;background:#fff;padding:4px 6px;font-size:16px;color:#000}\n@media(max-width:760px){.bws-calculator.bw-cac .bw-main-result{font-size:32px}.bws-calculator.bw-cac .bw-platform-result{padding:12px}.bws-calculator.bw-cac .bw-recovery-label{align-items:flex-start}.bws-calculator.bw-cac .bw-recovery-label span{overflow-wrap:anywhere}.bws-calculator.bw-cac .bw-date-range{grid-template-columns:minmax(0,1fr)}}\n`;export function Shell({children,style,className=\"\"}){return /*#__PURE__*/_jsxs(\"section\",{className:`bws-calculator ${className}`,style:style,\"data-design-version\":DESIGN_VERSION,children:[/*#__PURE__*/_jsxs(\"style\",{children:[calculatorCSS,cacRefinementCSS]}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-wrap\",children:children})]});}export function Hero({title,opening,support}){return /*#__PURE__*/_jsxs(\"header\",{children:[/*#__PURE__*/_jsx(\"p\",{className:\"bw-eyebrow\",children:\"FREE TOOL\"}),/*#__PURE__*/_jsx(\"h1\",{children:title}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-intro\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"bw-opening\",children:opening}),support]})]});}export function Help({label,children,showAll=false,id:externalId}){const generatedId=React.useId(),id=externalId||generatedId,[hover,setHover]=React.useState(false),[focus,setFocus]=React.useState(false),[pinned,setPinned]=React.useState(false);const open=showAll||hover||focus||pinned;return /*#__PURE__*/_jsxs(\"span\",{className:\"bw-help\",onMouseEnter:()=>setHover(true),onMouseLeave:()=>setHover(false),onFocus:()=>setFocus(true),onBlur:e=>{if(!e.currentTarget.contains(e.relatedTarget)){setFocus(false);setPinned(false);}},onKeyDown:e=>{if(e.key===\"Escape\"){setPinned(false);setHover(false);setFocus(false);e.stopPropagation();}},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-help-button\",\"aria-label\":`Help: ${label}`,\"aria-expanded\":open,\"aria-controls\":id,onClick:()=>setPinned(v=>!v),children:\"ⓘ\"}),/*#__PURE__*/_jsx(\"span\",{id:id,className:\"bw-help-text\",role:\"note\",hidden:!open,children:children})]});}export function Field({label,value,onChange,unit,hint,help,showAll,error,integer=false,wide=false}){const id=React.useId();return /*#__PURE__*/_jsxs(\"div\",{className:`bw-field ${wide?\"bw-row-wide\":\"\"} ${showAll?\"bw-inline-help\":\"\"}`,children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-field-label\",children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:id,children:label}),help&&/*#__PURE__*/_jsx(Help,{label:label,showAll:showAll,id:id+\"-help\",children:help})]}),/*#__PURE__*/_jsx(\"span\",{className:\"bw-hint\",id:id+\"-hint\",children:hint})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-input\",children:[/*#__PURE__*/_jsx(\"input\",{id:id,type:\"text\",inputMode:integer?\"numeric\":\"decimal\",value:value,onChange:e=>onChange(e.target.value),\"aria-invalid\":!!error,\"aria-describedby\":id+\"-hint\"+(help?\" \"+id+\"-help\":\"\")+(error?\" \"+id+\"-error\":\"\"),autoComplete:\"off\",spellCheck:false}),unit&&/*#__PURE__*/_jsx(\"span\",{className:\"bw-unit\",children:unit})]}),error&&/*#__PURE__*/_jsx(\"span\",{id:id+\"-error\",className:\"bw-field-error\",children:error})]});}export function SelectField({label,value,onChange,hint,children}){const id=React.useId();return /*#__PURE__*/_jsxs(\"div\",{className:\"bw-field\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:id,children:label}),hint&&/*#__PURE__*/_jsx(\"span\",{id:id+\"-hint\",className:\"bw-hint\",children:hint})]}),/*#__PURE__*/_jsx(\"select\",{id:id,className:\"bw-select\",value:value,onChange:e=>onChange(e.target.value),\"aria-describedby\":hint?id+\"-hint\":undefined,children:children})]});}export function CurrencyPicker({value,onChange,note}){const id=React.useId(),[search,setSearch]=React.useState(value),[invalid,setInvalid]=React.useState(false);React.useEffect(()=>setSearch(value),[value]);const update=v=>{setSearch(v);const code=v.trim().toUpperCase().match(/(?:^|\\()([A-Z]{3})\\)?$/)?.[1];if(code&&CURRENCY_CODES.has(code)){onChange(code);setSearch(code);setInvalid(false);}};const name=CURRENCIES.find(c=>c.code===value)?.name||value;return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-field\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:id,children:\"Currency\"}),/*#__PURE__*/_jsx(\"span\",{className:\"bw-hint\",id:id+\"-hint\",children:\"Search by name or code.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-input\",children:[/*#__PURE__*/_jsx(\"input\",{id:id,type:\"search\",list:id+\"-currencies\",value:search,onChange:e=>update(e.target.value),onBlur:()=>{if(search!==value){setSearch(value);setInvalid(true);}},\"aria-describedby\":id+\"-hint\",\"aria-label\":\"Currency — search by name or code\",autoComplete:\"off\"}),/*#__PURE__*/_jsx(\"datalist\",{id:id+\"-currencies\",children:CURRENCIES.map(c=>/*#__PURE__*/_jsx(\"option\",{value:`${c.name} (${c.code})`,children:c.code},c.code))})]})]}),/*#__PURE__*/_jsxs(\"p\",{className:\"bw-support\",children:[name,\" (\",value,\"). \",note]}),invalid&&/*#__PURE__*/_jsxs(\"p\",{className:\"bw-support\",role:\"status\",children:[\"Choose a currency from the list. Your selection is still\",\" \",value,\".\"]})]});}export function Disclosure({title,children}){return /*#__PURE__*/_jsxs(\"details\",{className:\"bw-disclosure\",children:[/*#__PURE__*/_jsxs(\"summary\",{children:[/*#__PURE__*/_jsx(\"span\",{children:title}),/*#__PURE__*/_jsx(\"span\",{className:\"bw-toggle\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-disclosure-body\",children:children})]});}export async function copyText(text){if(!navigator.clipboard?.writeText)throw Error(\"copy_unavailable\");await navigator.clipboard.writeText(text);}export function SidekickOpenButton({onClick}){return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`.bw-sidekick-open.bw-sidekick-open{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;max-width:100%;padding:10px 14px;border:1px solid #151515;border-radius:0;background:#FFFFFF;color:#151515;font:inherit;font-size:14px;font-weight:400;line-height:1.4;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer}.bw-sidekick-open.bw-sidekick-open:hover{background:#F2F2F2}.bw-sidekick-open.bw-sidekick-open:focus-visible{outline:2px solid #151515;outline-offset:3px}.bw-sidekick-open.bw-sidekick-open svg{display:block;width:22px;height:22px;fill:currentColor;flex:none}@media(max-width:620px){.input-help .input-help-actions,.bw-sidekick-actions{flex-direction:column;align-items:stretch;width:100%}.input-help .input-help-actions>button,.input-help .input-help-actions>.bw-sidekick-open,.bw-sidekick-actions>button,.bw-sidekick-actions>.bw-sidekick-open{width:100%;min-width:0;max-width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}}@container(max-width:620px){.input-help .input-help-actions,.bw-sidekick-actions{flex-direction:column;align-items:stretch;width:100%}.input-help .input-help-actions>button,.input-help .input-help-actions>.bw-sidekick-open,.bw-sidekick-actions>button,.bw-sidekick-actions>.bw-sidekick-open{width:100%;min-width:0;max-width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}}`}}),/*#__PURE__*/_jsxs(\"a\",{className:\"bw-sidekick-open\",href:\"https://admin.shopify.com/sidekick\",target:\"_blank\",rel:\"noopener noreferrer\",onClick:onClick,children:[/*#__PURE__*/_jsx(AIProviderIcon,{name:\"Shopify Sidekick\"}),/*#__PURE__*/_jsx(\"span\",{children:\"Open Shopify Sidekick\"})]})]});}export function PromptHelp({title,prompt,url}){const[status,setStatus]=React.useState(\"\");return /*#__PURE__*/_jsxs(Disclosure,{title:title,children:[/*#__PURE__*/_jsx(\"p\",{children:\"Ask Sidekick for the figures it can find. Add costs recorded outside Shopify yourself.\"}),/*#__PURE__*/_jsx(\"textarea\",{className:\"bw-prompt\",readOnly:true,\"aria-label\":\"Shopify Sidekick prompt\",value:prompt}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-buttons bw-sidekick-actions\",style:{marginTop:12},children:[/*#__PURE__*/_jsx(\"button\",{className:\"bw-button\",type:\"button\",onClick:()=>copyText(prompt).then(()=>setStatus(\"Prompt copied.\")).catch(()=>setStatus(\"Select the prompt above and copy it.\")),children:\"Copy\"}),/*#__PURE__*/_jsx(SidekickOpenButton,{onClick:()=>{copyText(prompt).then(()=>setStatus(\"Prompt copied — paste it into Sidekick.\")).catch(()=>setStatus(\"Select and copy the prompt above, then paste it into Sidekick.\"));}})]}),/*#__PURE__*/_jsx(\"p\",{style:{fontWeight:500,marginTop:12},children:\"Paste the copied text into Shopify Sidekick.\"}),status&&/*#__PURE__*/_jsx(\"p\",{role:\"status\",className:\"bw-support\",children:status})]});}export function Metrics({rows}){return /*#__PURE__*/_jsx(\"dl\",{className:\"bw-metrics\",children:rows.map((r,i)=>/*#__PURE__*/_jsxs(\"div\",{className:\"bw-metric\",children:[/*#__PURE__*/_jsx(\"dt\",{children:r.label}),/*#__PURE__*/_jsx(\"dd\",{className:r.tone?`bw-metric-${r.tone}`:undefined,children:r.value})]},i))});}export function Review({href,onClick,secondary}){return /*#__PURE__*/_jsxs(\"section\",{className:\"bw-review\",\"aria-labelledby\":\"bw-review-title\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"bw-eyebrow\",children:\"RESULT REVIEW\"}),/*#__PURE__*/_jsx(\"h2\",{id:\"bw-review-title\",children:\"What is making your CAC harder to recover?\"}),/*#__PURE__*/_jsx(\"p\",{children:\"High acquisition costs, low margins and fewer repeat purchases can lead to the same result. In a free 25-minute review, we’ll help you understand what your numbers show and what to look at next.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-review-actions\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"bw-button bw-button-primary\",href:href,onClick:onClick,children:\"Review My Payback Economics\"}),/*#__PURE__*/_jsx(\"p\",{className:\"bw-support\",children:\"Free 25-minute review. You decide what to share.\"}),secondary]})]});}export function Questions({items}){return /*#__PURE__*/_jsxs(\"section\",{className:\"bw-questions\",\"aria-labelledby\":\"bw-questions-title\",children:[/*#__PURE__*/_jsx(\"h2\",{id:\"bw-questions-title\",children:\"Questions & Answers\"}),items.map((q,i)=>/*#__PURE__*/_jsxs(\"details\",{className:\"bw-question\",children:[/*#__PURE__*/_jsxs(\"summary\",{children:[/*#__PURE__*/_jsx(\"span\",{children:q.question}),/*#__PURE__*/_jsx(\"span\",{className:\"bw-toggle\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-answer\",children:q.answer})]},i))]});}export const AI_ICON_PATHS={ChatGPT:\"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z\",Claude:\"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z\",Grok:\"M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815\"};export function ActionBar({valid,onReset,onCopy,onAI}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bw-action-row\",\"aria-label\":\"Result actions\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-button\",onClick:onReset,children:\"Reset\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-button\",disabled:!valid,onClick:onCopy,children:\"Copy\"}),/*#__PURE__*/_jsxs(\"span\",{className:\"bw-ai-picker\",children:[/*#__PURE__*/_jsx(\"span\",{children:\"Share with\"}),[\"ChatGPT\",\"Claude\",\"Grok\"].map(name=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-ai-button\",title:`Share with ${name}`,\"aria-label\":`Share with ${name}`,disabled:!valid,onClick:()=>onAI(name),children:/*#__PURE__*/_jsx(\"svg\",{\"aria-hidden\":\"true\",viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"path\",{d:AI_ICON_PATHS[name]})})},name))]})]});}/** Identical calculator AI actions, using provider home screens without URL payloads. */export const AI_INTRO=\"Help me interpret these Brand Worlds calculator results. Treat all entries as user-supplied assumptions, not verified source data. Explain the denominator, included costs, sensitivity and missing context before suggesting next steps. Do not claim these figures predict future outcomes or diagnose causes.\";export const AI_PROVIDERS=[{name:\"ChatGPT\",url:\"https://chatgpt.com/\"},{name:\"Claude\",url:\"https://claude.ai/new\"},{name:\"Grok\",url:\"https://grok.com/\"},{name:\"Shopify Sidekick\",url:\"https://admin.shopify.com/sidekick\"}];const aiShareCSS=`\n@font-face{font-family:'BWS Suisse Intl';src:url('https://framerusercontent.com/assets/BXaPSCAFlpRNvlZwlQUeoaLJ5hA.woff2') format('woff2');font-style:normal;font-weight:300;font-display:swap}\n@font-face{font-family:'BWS Suisse Intl';src:url('https://framerusercontent.com/assets/VoQd76YSmEkkqaWjy9zCbAcLChk.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}\n@font-face{font-family:'BWS Suisse Intl';src:url('https://framerusercontent.com/assets/uRCrQZ6PRR9GSFFSeKTaZim4nY.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}\n@font-face{font-family:'BWS Suisse Intl';src:url('https://framerusercontent.com/assets/GrgMwmADq08590cmXz2iHYw77WY.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}\n@font-face{font-family:'BWS Suisse Intl';src:url('https://framerusercontent.com/assets/VJcY46jacJRsa1sL96YF9dHcyc.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}\nbody:has(.bw-calculator-actions),body:has(.bw-calculator-actions) *{font-family:'BWS Suisse Intl',sans-serif!important;font-synthesis:none}\n.bw-calculator-actions{width:100%;min-width:0;box-sizing:border-box;margin:24px 0 0;border-top:1px solid #666;padding:24px 0 0;background:#151515;color:#f2f2f2}\n.bw-calculator-actions .bw-result-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(100%,360px);padding:0 0 24px;margin:0;border-bottom:0}\n.bw-calculator-actions .bw-result-buttons button,.bw-calculator-actions .bw-share-buttons button{appearance:none;box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-width:0;width:100%;height:48px;min-height:48px;padding:8px;margin:0;border:1px solid #f2f2f2;border-radius:0;background:#fff!important;color:#151515!important;font-size:14px;font-weight:500;line-height:1.2;box-shadow:none;cursor:pointer;text-transform:none;letter-spacing:0}\n.bw-calculator-actions button:disabled{opacity:.5;cursor:not-allowed}\n.bw-calculator-actions button:hover:not(:disabled){background:#f2f2f2!important}\n.bw-calculator-actions :is(button,a,textarea):focus-visible{outline:2px solid #fff;outline-offset:3px}\n.bw-calculator-actions .bw-ai-share{width:100%;min-width:0;box-sizing:border-box;margin:0;border-top:1px solid #666;padding-top:24px;color:inherit}\n.bw-calculator-actions .bw-share-row{display:block;margin:0;padding:0}\n.bw-calculator-actions .bw-share-label{display:block;margin:0 0 16px;font-size:14px;line-height:1.5;font-weight:500;color:inherit}\n.bw-calculator-actions .bw-share-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:100%;min-width:0;margin:0;padding:0}\n.bw-calculator-actions .bw-share-buttons button{font-weight:400;padding:6px 2px;white-space:nowrap}\n.bw-calculator-actions .bw-share-button svg{display:block;width:24px;height:24px;fill:#151515;flex:none}\n.bw-calculator-actions .bw-share-help{margin:14px 0 0!important;padding:0!important;font-size:14px!important;line-height:1.5!important;color:#aaa!important;font-weight:400!important;opacity:1!important}\n.bw-calculator-actions .bw-share-feedback{margin:12px 0 0;font-size:14px;line-height:1.5;color:#aaa;font-weight:400}\n.bw-calculator-actions .bw-share-open{display:inline-block;color:inherit;text-decoration:underline;text-underline-offset:3px;font-size:14px;line-height:1.5;margin-top:8px;min-height:24px}\n.bw-calculator-actions .bw-share-fallback{display:block;margin-top:12px;width:100%;font-size:14px;line-height:1.5}\n.bw-calculator-actions textarea.bw-share-copy{display:block;box-sizing:border-box;width:100%;max-width:100%;min-height:180px;margin-top:6px;padding:12px;border:1px solid #777;border-radius:0;background:#fff;color:#151515;font-size:14px;line-height:1.5;resize:vertical}\n@media(max-width:600px){.bw-calculator-actions .bw-result-buttons{width:100%}}\n`;export function CalculatorActions({valid,onCopy,onReset,getText,onShare}){const[resetVersion,setResetVersion]=React.useState(0);return /*#__PURE__*/_jsxs(\"div\",{className:\"bw-calculator-actions\",\"data-bws-actions\":\"shared-v1\",children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:aiShareCSS}}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-result-buttons\",role:\"group\",\"aria-label\":\"Result actions\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",disabled:!valid,onClick:onCopy,children:\"Copy results\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>{setResetVersion(v=>v+1);onReset();},children:\"Reset example\"})]}),/*#__PURE__*/_jsx(AIShare,{valid:valid,getText:getText,onShare:onShare},resetVersion)]});}export function AIProviderIcon({name}){return name===\"Shopify Sidekick\"?/*#__PURE__*/_jsxs(\"svg\",{\"aria-hidden\":\"true\",focusable:\"false\",viewBox:\"2 2 16 16\",children:[/*#__PURE__*/_jsx(\"path\",{fillRule:\"evenodd\",d:\"m10.943 14.05-.002.002c-.73.351-1.465.231-2.204-.105-.252-.114-.532-.083-.713.077-.093.082-.158.2-.162.339-.005.138.052.268.146.377.479.552 1.198.91 1.954.923.827.035 1.596-.417 2.027-1.07.077-.116.117-.249.096-.383-.02-.136-.1-.243-.202-.31-.198-.13-.473-.117-.7.02-.08.05-.16.094-.24.13Z\"}),/*#__PURE__*/_jsx(\"path\",{fillRule:\"evenodd\",d:\"M2.893 5.951c-.06.196-.204.817-.204 1.655-.126.729-.078 1.454-.126 2.712l-.06 1.56c-.096 2.547 1.752 5.313 4.276 5.663 1.938.269 3.904.278 5.844.028l.218-.028c.24-.03.383-.049.509-.072 2.335-.424 4.042-3.002 4.074-5.375.002-.127-.003-.271-.012-.513l-.05-1.288c-.027-.722-.048-1.283-.097-1.75l.006-.142c.03-.65.023-.743-.05-1.17-.097-.566-.317-1.16-.506-1.518-.274-.521-.719-1.054-1.407-1.054l-.187-.193c-1.495-1.55-2.192-1.895-5.407-2.209-1.825-.057-2.68.23-3.804.78-1.071.523-2.162 1.245-2.551 1.778-.277.378-.376.838-.466 1.136Zm9.726.323c.711.067 1.364.129 1.883.05 0 0 .283.783.976 1.479.08.08.154.152.224.22.153.15.285.277.392.407.017.123.031.258.044.412-.204-.098-.44-.168-.71-.201-1.064-.076-1.896.336-2.747.758-.818.405-1.654.82-2.73.82-1.075 0-1.911-.415-2.729-.82-.851-.422-1.683-.834-2.746-.758-.26.032-.488.098-.686.189.035-.411.083-.694.165-.943.226-.687.638-1.284 1.178-1.735.071-.03.146-.055.223-.079l.413.015c-.05 1.316.268 2.192.46 2.247.156.044.378-.256.672-.654.105-.142.22-.297.344-.453.147-.186.511-.456 1.002-.738.092.668.28 1.08.408 1.116.157.045.379-.256.672-.653.106-.143.22-.298.344-.454.097-.12.222-.233.379-.334h.089c.275 0 .577.003.893.005.54.004 1.078.055 1.587.104Zm-8.657 7.426c.514 1.351 1.617 2.514 2.975 2.702 1.837.255 3.7.264 5.54.027l.197-.026c.266-.034.47-.065.47-.065 1.27-.23 2.299-1.356 2.8-2.64-.213.124-.463.226-.755.3-.685.17-1.63-.077-2.678-.626-.364-.19-.643-.414-.904-.623-.475-.382-.89-.716-1.655-.716s-1.181.334-1.656.716c-.261.21-.54.433-.904.623-1.048.55-1.992.797-2.678.625-.29-.072-.54-.174-.752-.297Zm1.835-1.137c.687 0 1.244-.557 1.244-1.245 0-.687-.557-1.244-1.244-1.244-.688 0-1.245.557-1.245 1.244 0 .688.557 1.245 1.245 1.245Zm6.9-1.245c0 .688.558 1.245 1.245 1.245s1.244-.557 1.244-1.245c0-.687-.557-1.244-1.244-1.244-.688 0-1.245.557-1.245 1.244Z\"})]}):/*#__PURE__*/_jsx(\"svg\",{\"aria-hidden\":\"true\",focusable:\"false\",viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"path\",{d:AI_ICON_PATHS[name]})});}export function brandWorldsPrompt(text){const lines=text.split(\"\\n\");if(!/Brand Worlds/i.test(lines[0]||\"\"))lines[0]=\"Brand Worlds — \"+(lines[0]||\"Calculator results\");const bodyWithoutUrls=lines.slice(1).join(\"\\n\").replace(/https?:\\/\\/\\S+/g,\"\");if(!/Brand Worlds/i.test(bodyWithoutUrls))lines.push(\"\",\"Review these Brand Worlds calculator figures and assumptions before suggesting a next step.\");return lines.join(\"\\n\");}export function AIShare({valid,getText,onShare}){const[feedback,setFeedback]=React.useState(\"\");const[fallback,setFallback]=React.useState(\"\");const[copiedBrief,setCopiedBrief]=React.useState(\"\");const[selected,setSelected]=React.useState(\"\");const[busy,setBusy]=React.useState(false);const pending=React.useRef(false);const mounted=React.useRef(true);React.useEffect(()=>{mounted.current=true;return()=>{mounted.current=false;};},[]);const payload=valid?brandWorldsPrompt(getText()):\"\";const currentPayload=React.useRef(payload);currentPayload.current=payload;React.useEffect(()=>{setFeedback(\"\");setFallback(\"\");setCopiedBrief(\"\");setSelected(\"\");},[payload,valid]);const share=async name=>{if(!valid||!payload||pending.current)return;pending.current=true;setBusy(true);setSelected(name);setFallback(\"\");const provider=AI_PROVIDERS.find(item=>item.name===name);try{if(!navigator.clipboard?.writeText)throw new Error(\"Clipboard unavailable\");// Copy first. Only the static provider URL is opened; figures stay on the clipboard.\nawait navigator.clipboard.writeText(payload);if(!mounted.current||currentPayload.current!==payload)return;setCopiedBrief(payload);if(provider)window.open(provider.url,\"_blank\",\"noopener,noreferrer\");setFeedback(name===\"Any AI\"?\"Copied. Review the brief, then paste it into any AI assistant.\":name===\"Shopify Sidekick\"?\"Copied. Paste into Shopify Sidekick in your store admin, or use the Shopify app on mobile.\":`Copied. Paste the brief into ${name}.`);}catch{if(!mounted.current||currentPayload.current!==payload)return;setFallback(payload);setFeedback(\"Clipboard unavailable. Select and copy the brief below.\");}finally{pending.current=false;if(mounted.current)setBusy(false);}onShare?.(name);};const provider=AI_PROVIDERS.find(item=>item.name===selected);return /*#__PURE__*/_jsxs(\"div\",{className:\"bw-ai-share\",\"aria-label\":\"Share calculator results with AI\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-share-row\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bw-share-label\",children:\"Share with:\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-share-buttons\",role:\"group\",\"aria-label\":\"AI assistants\",children:[AI_PROVIDERS.map(item=>/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-share-button\",disabled:!valid||busy,title:`Copy and open ${item.name}`,\"aria-label\":`Share with ${item.name}`,onClick:()=>share(item.name),children:/*#__PURE__*/_jsx(AIProviderIcon,{name:item.name})},item.name)),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-share-button bw-share-any\",disabled:!valid||busy,title:\"Copy the full calculator brief for any AI assistant\",\"aria-label\":\"Copy calculator brief for Any AI\",onClick:()=>share(\"Any AI\"),children:\"Any AI\"})]})]}),/*#__PURE__*/_jsx(\"p\",{className:\"bw-share-help\",children:\"Copies inputs, results, formulas, and context. Review before pasting.\"}),feedback&&/*#__PURE__*/_jsx(\"p\",{className:\"bw-share-feedback\",role:\"status\",\"aria-live\":\"polite\",children:feedback}),provider&&feedback&&/*#__PURE__*/_jsxs(\"a\",{className:\"bw-share-open\",href:provider.url,target:\"_blank\",rel:\"noopener noreferrer\",children:[\"Open \",provider.name]}),copiedBrief&&!fallback&&/*#__PURE__*/_jsxs(\"details\",{className:\"bw-share-fallback\",children:[/*#__PURE__*/_jsx(\"summary\",{children:\"Review copied brief\"}),/*#__PURE__*/_jsxs(\"label\",{children:[\"Calculator brief\",/*#__PURE__*/_jsx(\"textarea\",{className:\"bw-share-copy\",readOnly:true,value:copiedBrief,onFocus:event=>event.currentTarget.select()})]})]}),fallback&&/*#__PURE__*/_jsxs(\"label\",{className:\"bw-share-fallback\",children:[\"Calculator brief\",/*#__PURE__*/_jsx(\"textarea\",{className:\"bw-share-copy\",readOnly:true,value:fallback,onFocus:event=>event.currentTarget.select()})]})]});}export const TOOL_COMPARISONS={PromotionMargin:{title:\"What’s different about this calculator\",intro:\"Check how many extra orders a promotion needs to pay for its discount and costs.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Discounted price minus order costs\",adds:\"Separates extra orders from orders that would have happened without the promotion\"},{basic:\"Discount cost alone\",adds:\"Adds acquisition costs, extra returns, selling costs and one-off campaign spending\"},{basic:\"Contribution from extra sales\",adds:\"Shows the extra orders needed to break even, or warns when more orders cannot close the gap\"}]},PaidGrowthBudget:{title:\"What’s different about this calculator\",intro:\"See whether each extra block of ad spending is expected to pay for itself.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"One average acquisition cost\",adds:\"Tests three spending blocks, each with its own expected cost per new customer\"},{basic:\"Contribution from the first order\",adds:\"Adds repeat-order contribution over the number of months you choose\"},{basic:\"Contribution from the total budget\",adds:\"Shows what each spending block adds or loses, including an expensive later block\"}]},CustomerCohortProfit:{title:\"What’s different about this calculator\",intro:\"Compare what two customer groups leave after order costs and acquisition spending.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Revenue per customer\",adds:\"Compares contribution after acquisition costs over matching completed periods\"},{basic:\"One total for each group\",adds:\"Separates one-time and repeat buyers, including their first orders and allocated acquisition costs\"},{basic:\"A 90-day or 180-day comparison\",adds:\"Checks follow-up time and your minimum group size for first-promotion or first-product groups\"}]},InventoryCash:{title:\"What’s different about this calculator\",intro:\"Check whether your stock purchase leaves enough cash for the periods ahead.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Opening cash plus receipts minus payments\",adds:\"Tracks three periods against the minimum cash balance you choose\"},{basic:\"Sales minus stock and selling costs\",adds:\"In purchase mode, separates supplier payments, customer receipts and selling-cost payment timing\"},{basic:\"Cash left at the end\",adds:\"In purchase mode, also shows unsold stock, unpaid bills and sales money still to arrive\"}]},GrossMargin:{title:\"What’s different about this calculator\",intro:\"See the gross profit, margin and markup on the same sale.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Selling price minus product cost\",adds:\"Shows gross profit, gross margin and markup together\"},{basic:\"Price and cost entered as totals\",adds:\"Explains how discounts, refunds, delivery and duties belong in those amounts\"},{basic:\"Gross profit on the item\",adds:\"Makes clear that selling costs and other business expenses still need to be covered\"}]},Markup:{title:\"What’s different about this calculator\",intro:\"Set a price, check an existing markup or convert markup to gross margin.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Cost plus a chosen markup\",adds:\"Also checks markup from an existing price or converts markup to gross margin\"},{basic:\"A markup percentage\",adds:\"Shows gross margin alongside it so you can compare the two\"},{basic:\"A price above cost\",adds:\"Also handles below-cost prices and negative markup\"}]},ContributionMargin:{title:\"What’s different about this calculator\",intro:\"See what one order leaves after selling costs and customer acquisition.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Sale revenue minus product cost\",adds:\"Also subtracts fulfillment, payment fees, shipping, packaging and extra return costs\"},{basic:\"Contribution before acquisition costs\",adds:\"Shows what remains after the acquisition cost you allocate to that order\"},{basic:\"Revenue after discounts and refunds\",adds:\"Explains where refunds and shipping payments belong so you do not subtract them twice\"}]},SellingPrice:{title:\"What’s different about this calculator\",intro:\"Find the selling price needed to reach your chosen margin.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"A price based on gross margin\",adds:\"Also offers a contribution-margin target with other selling costs and flat or percentage fees\"},{basic:\"The exact calculated price\",adds:\"Rounds up to your chosen price step, then recalculates the margins\"},{basic:\"Gross margin at the new price\",adds:\"Also shows what remains after all entered costs\"}]},WholesalePricing:{title:\"What’s different about this calculator\",intro:\"Check whether one wholesale price can meet both your margin target and the retailer’s.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Your margin on a wholesale quote\",adds:\"Also checks the retailer’s gross margin at its selling price\"},{basic:\"Product cost and list price\",adds:\"Includes your extra wholesale costs and the retailer’s price after discounts\"},{basic:\"One proposed wholesale price\",adds:\"Shows the range that meets both targets, or the gap when no price can\"}]},DiscountMargin:{title:\"What’s different about this calculator\",intro:\"See how much more you would need to sell to cover a discount.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Selling price after a discount\",adds:\"Compares contribution before and after it, including per-item costs and percentage fees\"},{basic:\"Contribution from one discounted item\",adds:\"Calculates the extra units needed to keep total contribution unchanged\"},{basic:\"A target for extra unit sales\",adds:\"Warns when zero or negative contribution per discounted item makes recovery impossible\"}]},ROAS:{title:\"What’s different about this calculator\",intro:\"Check the revenue returned for each unit of ad spending.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Attributed revenue divided by ad spend\",adds:\"Guides you to match the campaign and reporting period, after discounts and refunds\"},{basic:\"A revenue multiple\",adds:\"Also shows the result as a percentage\"},{basic:\"Revenue returned by the ads\",adds:\"Explains that product, delivery and other costs must still be deducted to assess profit\"}]},CAC:{title:\"What’s different about this calculator\",intro:\"See what each new paying customer costs, with and without your extra acquisition costs.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Ad spend divided by new customers\",adds:\"Shows ad-only and total entered acquisition cost side by side\"},{basic:\"Advertising costs alone\",adds:\"Lets you add agency, creative or staff costs allocated to acquisition\"},{basic:\"The number of new paying customers\",adds:\"Explains why repeat customers are excluded and the same customer must not be counted twice across ad platforms\"}]},MER:{title:\"What’s different about this calculator\",intro:\"Compare whole-business revenue with the marketing spending you choose to include.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Revenue divided by marketing spend\",adds:\"Uses net revenue across the business, including sales not attributed to an ad\"},{basic:\"Advertising spend alone\",adds:\"Lets you include agency, creative and payroll in a consistent marketing-cost total\"},{basic:\"Revenue per unit of spending\",adds:\"Explains why this ratio does not show profit after all costs\"}]},InventoryDays:{title:\"What’s different about this calculator\",intro:\"See how quickly stock moved during your chosen reporting period.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Average stock divided by cost of goods sold\",adds:\"Guides you to use stock at cost and match products, locations and period\"},{basic:\"A full-year calculation\",adds:\"Uses your reporting dates to calculate the number of days\"},{basic:\"Inventory days alone\",adds:\"Also shows turnover, with guidance on averaging stock when levels change\"}]},WeeksSupply:{title:\"What’s different about this calculator\",intro:\"See how long the stock you can sell today would last.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Stock divided by weekly sales\",adds:\"Separates available stock from stock still on the way\"},{basic:\"Today’s stock cover\",adds:\"Also shows cover if incoming units were ready now, without assuming their arrival date\"},{basic:\"Available stock after reservations\",adds:\"Explains how to use Shopify Available stock without subtracting reserved units twice\"}]},ReorderPoint:{title:\"What’s different about this calculator\",intro:\"Check how your stock position compares with the point at which you need to reorder.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Lead-time demand plus safety stock\",adds:\"Lets you enter the safety buffer as units or days of sales\"},{basic:\"On-hand stock against the reorder point\",adds:\"Also counts confirmed incoming units and subtracts customer commitments\"},{basic:\"The stock gap to the reorder point\",adds:\"Keeps delivery timing separate: incoming stock may still arrive too late\"}]},CustomerPayback:{title:\"What’s different about this calculator\",intro:\"Compare how quickly customer contribution could repay acquisition costs across advertising platforms.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Acquisition cost divided by contribution\",adds:\"Compares several platforms using the same contribution assumptions\"},{basic:\"An acquisition cost entered directly\",adds:\"Also calculates each platform’s cost from ad spend and new customers\"},{basic:\"Orders or months needed for payback\",adds:\"Also shows the share recovered over your chosen comparison period\"}]},AcquisitionProfitability:{title:\"What’s different about this calculator\",intro:\"Check your acquisition cost against the customer contribution and profit target you enter.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Your current acquisition cost\",adds:\"Compares it with a limit based on expected contribution and your profit target\"},{basic:\"First-order break-even ROAS\",adds:\"Keeps it separate from expected repeat-order contribution over your chosen period\"},{basic:\"One set of assumptions\",adds:\"Also tests lower order values and repeat purchasing alongside higher costs\"}]},ReturnsProfit:{title:\"What’s different about this calculator\",intro:\"See how returns change monthly contribution and the margin you can keep.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Refunds paid to customers\",adds:\"Adds return shipping and processing, then subtracts product cost recovered from resalable stock\"},{basic:\"Cost at one return rate\",adds:\"Compares two return rates at the same monthly order volume\"},{basic:\"Margin after returns\",adds:\"Finds the highest return rate that meets your target, or flags when zero returns still cannot\"}]},SellThrough:{title:\"What’s different about this calculator\",intro:\"Check whether your selling pace is enough to reach your target before the window closes.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"The share of stock already sold\",adds:\"Compares current selling pace with the pace needed to reach your target\"},{basic:\"Sales so far\",adds:\"Shows projected leftover units if the average pace continues\"},{basic:\"The value of remaining stock\",adds:\"Lets you test a markdown and see revenue and gross profit at that price\"}]},ProductProfitPricing:{title:\"What’s different about this calculator\",intro:\"Check what a sale leaves, then work back to a price that meets your target.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Selling price minus product cost\",adds:\"Includes discounts, fulfillment, payment, advertising and return-reserve costs\"},{basic:\"Contribution at the current price\",adds:\"Calculates the price needed for a target contribution amount or margin\"},{basic:\"A retail sale calculation\",adds:\"Adds a separate wholesale check for your gross profit and the retailer’s required selling price\"}]},CustomerLifetimeValue:{title:\"What’s different about this calculator\",intro:\"Keep what customers have already contributed separate from what you expect them to contribute later.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Customer revenue over a period\",adds:\"Subtracts product and other order costs to show contribution\"},{basic:\"Results from a completed period\",adds:\"Keeps those results separate from a future customer-value scenario\"},{basic:\"Expected future contribution\",adds:\"Uses your order frequency, years and amount to retain to calculate a maximum acquisition cost\"}]},InventoryPlanning:{title:\"What’s different about this calculator\",intro:\"Check recent stock movement and the stock needed for your next delivery.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Stock turnover and inventory days\",adds:\"Adds a separate forward check using your expected weekly sales\"},{basic:\"Sales during supplier lead time\",adds:\"Adds your chosen buffer to calculate safety stock and a reorder point\"},{basic:\"The calculated reorder point\",adds:\"Compares it with on-hand stock; incoming orders and customer commitments need a separate check\"}]},FreeShipping:{title:\"What’s different about this calculator\",intro:\"Find a minimum basket spend that covers delivery and leaves your chosen margin.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Delivery cost covered by product margin\",adds:\"Also includes other order costs and the margin you want left\"},{basic:\"One suggested free-shipping threshold\",adds:\"Compares paid and free shipping at your average basket, plus an existing threshold if entered\"},{basic:\"Revenue including the customer’s delivery fee\",adds:\"Removes that fee from the free-shipping calculation because you would no longer collect it\"}]},RevenueContribution:{title:\"What’s different about this calculator\",intro:\"See whether changes to conversion, discounts, basket size and returns leave more contribution.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"A change in revenue\",adds:\"Also includes extra product, selling and return costs\"},{basic:\"One change tested alone\",adds:\"Tests all four changes together using one matched set of store figures\"},{basic:\"The total contribution difference\",adds:\"Shows each change’s effect in sequence, with the steps adding up to that total\"}]},InventoryReview:{title:\"What’s different about this tool\",intro:\"Bring sales and stock files together to review product performance and availability.\",columns:[\"Basic calculation\",\"What this adds\"],rows:[{basic:\"Separate sales and stock totals\",adds:\"Matches CSV rows by exact variant ID or SKU and keeps stock states separate\"},{basic:\"Sales and unit rankings\",adds:\"Also flags data problems and observed size or colour availability gaps\"},{basic:\"A combined stock review\",adds:\"Processes the files and exports the review in your browser without sending CSVs to a server\"}]}};const COMPARISON_CSS=\"\\n.bws-comparison.bws-comparison{font-family:inherit;margin-top:56px;padding-top:32px;border-top:1px solid #c7c7c7;color:#151515}\\n.bws-comparison.bws-comparison h2{font-size:28px;font-weight:500;line-height:1.2;letter-spacing:-.02em;margin:0}\\n.bws-comparison.bws-comparison .bws-comparison-intro{font-size:16px;font-weight:400;line-height:1.6;margin:16px 0 24px;max-width:760px}\\n.bws-comparison.bws-comparison .bws-comparison-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:16px;line-height:1.6;border:0;background:#fff;text-align:left}\\n.bws-comparison.bws-comparison .bws-comparison-table th,.bws-comparison.bws-comparison .bws-comparison-table td{padding:20px 24px;text-align:left;vertical-align:top;border:0;border-bottom:1px solid #c7c7c7;font-weight:400;white-space:normal;overflow-wrap:break-word}\\n.bws-comparison.bws-comparison .bws-comparison-table thead th{background:#151515;color:#fff;font-weight:500;border-top:1px solid #c7c7c7;padding-top:16px;padding-bottom:16px}\\n.bws-comparison.bws-comparison .bws-comparison-table th:first-child,.bws-comparison.bws-comparison .bws-comparison-table td:first-child{width:40%}\\n.bws-comparison.bws-comparison .bws-comparison-table tbody td:last-child{background:#f2f2f2}\\n.bws-comparison.bws-comparison .bws-comparison-mobile-label{display:none}\\n@media(max-width:600px){\\n.bws-comparison.bws-comparison h2{font-size:26px}\\n.bws-comparison.bws-comparison .bws-comparison-table,.bws-comparison.bws-comparison .bws-comparison-table tbody,.bws-comparison.bws-comparison .bws-comparison-table tr,.bws-comparison.bws-comparison .bws-comparison-table td{display:block;width:100%}\\n.bws-comparison.bws-comparison .bws-comparison-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}\\n.bws-comparison.bws-comparison .bws-comparison-table tr{border-top:1px solid #c7c7c7}\\n.bws-comparison.bws-comparison .bws-comparison-table tr:last-child{border-bottom:1px solid #c7c7c7}\\n.bws-comparison.bws-comparison .bws-comparison-table td,.bws-comparison.bws-comparison .bws-comparison-table td:first-child{width:100%;border:0;padding:18px 20px}\\n.bws-comparison.bws-comparison .bws-comparison-mobile-label{display:block;font-weight:500;margin:0 0 6px}\\n}\\n\";export function ComparisonSection({tool,id}){const uid=React.useId();const comparison=TOOL_COMPARISONS[tool];if(!comparison)return null;const titleId=(id||uid)+\"-comparison-title\";return /*#__PURE__*/_jsxs(\"section\",{className:\"bws-comparison\",\"aria-labelledby\":titleId,\"data-bws-comparison\":tool,children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:COMPARISON_CSS}}),/*#__PURE__*/_jsx(\"h2\",{id:titleId,children:comparison.title}),/*#__PURE__*/_jsx(\"p\",{className:\"bws-comparison-intro\",children:comparison.intro}),/*#__PURE__*/_jsxs(\"table\",{className:\"bws-comparison-table\",role:\"table\",\"aria-label\":`${comparison.columns[0]} compared with ${comparison.columns[1]}`,children:[/*#__PURE__*/_jsx(\"thead\",{role:\"rowgroup\",children:/*#__PURE__*/_jsx(\"tr\",{role:\"row\",children:comparison.columns.map(column=>/*#__PURE__*/_jsx(\"th\",{scope:\"col\",role:\"columnheader\",children:column},column))})}),/*#__PURE__*/_jsx(\"tbody\",{role:\"rowgroup\",children:comparison.rows.map((row,index)=>/*#__PURE__*/_jsxs(\"tr\",{role:\"row\",children:[/*#__PURE__*/_jsxs(\"td\",{role:\"cell\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bws-comparison-mobile-label\",\"aria-hidden\":\"true\",children:comparison.columns[0]}),row.basic]}),/*#__PURE__*/_jsxs(\"td\",{role:\"cell\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bws-comparison-mobile-label\",\"aria-hidden\":\"true\",children:comparison.columns[1]}),row.adds]})]},index))})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"Review\":{\"type\":\"reactComponent\",\"name\":\"Review\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Hero\":{\"type\":\"reactComponent\",\"name\":\"Hero\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"brandWorldsPrompt\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Shell\":{\"type\":\"reactComponent\",\"name\":\"Shell\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"CalculatorActions\":{\"type\":\"reactComponent\",\"name\":\"CalculatorActions\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Metrics\":{\"type\":\"reactComponent\",\"name\":\"Metrics\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"AIProviderIcon\":{\"type\":\"reactComponent\",\"name\":\"AIProviderIcon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Field\":{\"type\":\"reactComponent\",\"name\":\"Field\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"ComparisonSection\":{\"type\":\"reactComponent\",\"name\":\"ComparisonSection\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"cacRefinementCSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TOKENS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AI_INTRO\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TOOL_COMPARISONS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"copyText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Questions\":{\"type\":\"reactComponent\",\"name\":\"Questions\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculatorCSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AI_PROVIDERS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DESIGN_VERSION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SelectField\":{\"type\":\"reactComponent\",\"name\":\"SelectField\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"PromptHelp\":{\"type\":\"reactComponent\",\"name\":\"PromptHelp\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"ToolComparison\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ActionBar\":{\"type\":\"reactComponent\",\"name\":\"ActionBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"AI_ICON_PATHS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SidekickOpenButton\":{\"type\":\"reactComponent\",\"name\":\"SidekickOpenButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"CurrencyPicker\":{\"type\":\"reactComponent\",\"name\":\"CurrencyPicker\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"AIShare\":{\"type\":\"reactComponent\",\"name\":\"AIShare\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Help\":{\"type\":\"reactComponent\",\"name\":\"Help\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Disclosure\":{\"type\":\"reactComponent\",\"name\":\"Disclosure\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CalculatorDesignSystem.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{AIShare,AI_INTRO,SidekickOpenButton}from\"https://framerusercontent.com/modules/Chb7YRXuvlwj1K9zs9dP/8k4sjKRFdLRw0xIG9gNs/CalculatorDesignSystem.js\";// CAC Payback: Revenue & Contribution editorial presentation.\n// Complete live v4 model and interaction/integration behavior preserved.\n// Shared AI actions only; calculator layout, calculation and persistence remain isolated.\nimport*as React from\"react\";// BEGIN UNCHANGED LIVE V4 MODEL\n// Shared by the Framer client and the Supabase function. No browser dependencies.\nexport const CALCULATION_VERSION=\"customer_payback_calc_v4\";export const FLOW_VERSION=\"customer_payback_v4\";export const PLATFORM_NAMES={meta:\"Meta Ads\",google:\"Google Ads\",tiktok:\"TikTok Ads\",amazon:\"Amazon Ads\",pinterest:\"Pinterest Ads\",microsoft:\"Microsoft Advertising\",snapchat:\"Snapchat Ads\",reddit:\"Reddit Ads\",criteo:\"Criteo\",linkedin:\"LinkedIn Ads\",blended:\"Blended / Overall\",other:\"Other\"};export const PLATFORM_REPORTS={meta:{url:\"https://adsmanager.facebook.com/adsmanager/manage/campaigns\",metric:\"Cost per Purchase for the Purchase event\"},google:{url:\"https://ads.google.com/aw/campaigns\",metric:\"Cost / conv. with Purchase selected as the conversion action\"},tiktok:{url:\"https://ads.tiktok.com/i18n/perf/campaign\",metric:\"Cost per Complete Payment, or total cost divided by Complete Payment events\"},amazon:{url:\"https://advertising.amazon.com/cm/campaigns\",metric:\"Spend and new-to-brand orders, where available\"},pinterest:{url:\"https://ads.pinterest.com/\",metric:\"Cost per Checkout, or Cost per conversion for Checkout\"},microsoft:{url:\"https://ui.ads.microsoft.com/campaign\",metric:\"Cost per acquisition, or Cost per conversion for the Purchase goal\"},snapchat:{url:\"https://ads.snapchat.com/\",metric:\"Cost per Purchase for the Pixel Purchase event\"},reddit:{url:\"https://ads.reddit.com/\",metric:\"Cost per conversion for the Purchase event\"},criteo:{url:\"https://marketing.criteo.com/\",metric:\"CPA, or Cost per order for purchases\"},linkedin:{url:\"https://www.linkedin.com/campaignmanager/\",metric:\"Cost per conversion for Purchase\"}};export const EXAMPLE_SHARED={currency:\"USD\",tab:\"orders\",report_period:\"Last 90 days\",report_start:\"\",report_end:\"\",report_preset:\"Last 90 days\",compare_orders:\"1\",compare_months:\"6\",cost_mode:\"direct\",aov:\"100\",units_per_order:\"2\",avg_product_cost_item:\"25\",shipping_mode:\"amount\",shipping_amount:\"8\",shipping_pct:\"8\",processing_pct:\"3\",processing_fixed:\"0\",commission_pct:\"0\",commission_fixed:\"0\",other_order_cost:\"0\",cm2_pct:\"39\",monthly_mode:\"entered\",monthly_contribution:\"15\",cohort_contribution:\"9000\",cohort_customers:\"100\",cohort_months:\"6\"};export const EXAMPLE_PLATFORM={platform_code:\"meta\",platform_label:\"\",cac_source_type:\"native_metric\",cac_amount:\"90\",ad_spend:\"9000\",new_customers:\"100\"};const obj=v=>v&&typeof v===\"object\"&&!Array.isArray(v)?v:{};const txt=(v,length=80)=>typeof v===\"string\"?v.trim().slice(0,length):\"\";export function numberInput(v,min=0,max=1e8){if(v===\"\"||v==null||typeof v===\"boolean\"||typeof v===\"object\"||String(v).trim()===\"\")return null;const n=Number(v);return Number.isFinite(n)&&n>=min&&n<=max?n:null;}export function normalizeShared(raw){const source=obj(raw);const result={};// Missing legacy costs stay missing; only newly added optional costs default to zero.\nfor(const key of Object.keys(EXAMPLE_SHARED))result[key]=source[key]==null?\"\":String(source[key]).slice(0,100);result.currency=txt(source.currency,3).toUpperCase()||\"USD\";result.tab=source.tab===\"months\"?\"months\":\"orders\";result.cost_mode=source.cost_mode===\"margin\"?\"margin\":\"direct\";result.shipping_mode=source.shipping_mode===\"amount\"?\"amount\":\"percent\";result.monthly_mode=source.monthly_mode===\"cohort\"?\"cohort\":\"entered\";for(const key of[\"processing_fixed\",\"commission_pct\",\"commission_fixed\",\"other_order_cost\"])if(source[key]==null||String(source[key]).trim()===\"\")result[key]=\"0\";for(const key of[\"compare_orders\",\"compare_months\"])if(source[key]==null)result[key]=EXAMPLE_SHARED[key];result.report_preset=txt(source.report_preset)||(REPORT_PRESETS.includes(result.report_period)?result.report_period:\"Saved period\");return result;}export const REPORT_PRESETS=[\"Last 7 days\",\"Last 30 days\",\"Last 90 days\",\"Last 12 months\",\"This month\",\"Last month\",\"Custom dates\"];export function reportingRange(preset,now=new Date){const end=new Date(now.getFullYear(),now.getMonth(),now.getDate());end.setDate(end.getDate()-1);const start=new Date(end);if(preset===\"This month\"){start.setFullYear(now.getFullYear(),now.getMonth(),1);end.setFullYear(now.getFullYear(),now.getMonth(),now.getDate());}else if(preset===\"Last month\"){start.setFullYear(now.getFullYear(),now.getMonth()-1,1);end.setFullYear(now.getFullYear(),now.getMonth(),0);}else if(preset===\"Last 12 months\"){start.setFullYear(end.getFullYear()-1);start.setDate(start.getDate()+1);}else{const days=preset===\"Last 7 days\"?7:preset===\"Last 30 days\"?30:90;start.setDate(start.getDate()-days+1);}const iso=d=>`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,\"0\")}-${String(d.getDate()).padStart(2,\"0\")}`;return{report_start:iso(start),report_end:iso(end)};}export function validDate(value){return/^\\d{4}-\\d{2}-\\d{2}$/.test(value)&&Number.isFinite(Date.parse(value+\"T00:00:00Z\"))&&new Date(value+\"T00:00:00Z\").toISOString().slice(0,10)===value;}export function recoveryProgress(contribution,cac,units){const earned=contribution*units,percent=cac>0?earned/cac*100:null;const tone=percent===null?\"neutral\":percent>=100?\"positive\":percent>=50?\"warning\":\"negative\";return{earned,percent,tone,remaining:Math.max(0,cac-earned)};}export function calculatePayback(rawShared,rawPlatforms,isExample=false){const s=normalizeShared(rawShared),errors=[],values={};const read=(key,label,min=0,max=1e8)=>{const n=numberInput(s[key],min,max);if(n===null)errors.push({path:key,message:`Enter ${label}.`});else values[key]=n;return n??0;};if(!CURRENCY_CODES.has(s.currency))errors.push({path:\"currency\",message:\"Choose a current currency from the list.\"});const comparisonUnits=read(s.tab===\"months\"?\"compare_months\":\"compare_orders\",s.tab===\"months\"?\"a comparison period above zero months\":\"a whole comparison order count above zero\",1,1200);if(s.tab===\"orders\"&&!Number.isInteger(comparisonUnits))errors.push({path:\"compare_orders\",message:\"Enter a whole number of orders.\"});if(s.report_preset===\"Custom dates\"||s.report_start||s.report_end){if(!validDate(s.report_start))errors.push({path:\"report_start\",message:\"Choose a valid start date.\"});if(!validDate(s.report_end))errors.push({path:\"report_end\",message:\"Choose a valid end date.\"});if(validDate(s.report_start)&&validDate(s.report_end)&&s.report_start>s.report_end)errors.push({path:\"report_end\",message:\"Choose an end date on or after the start date.\"});s.report_period=`${s.report_preset}: ${s.report_start} to ${s.report_end}`;}let aov=null,contribution=null,monthly=null,margin=null;const costs=[];if(s.tab===\"orders\"){aov=read(\"aov\",\"an order value above zero\",.01);if(s.cost_mode===\"margin\"){margin=read(\"cm2_pct\",\"a contribution margin from −100% to 100%\",-100,100);contribution=aov*margin/100;costs.push({label:\"Order costs included in your margin\",amount:aov-contribution});}else{const units=read(\"units_per_order\",\"an average item count above zero\",.01,1e5);const product=read(\"avg_product_cost_item\",\"a product cost of zero or more\")*units;const shipping=s.shipping_mode===\"amount\"?read(\"shipping_amount\",\"shipping and fulfilment cost of zero or more\"):aov*read(\"shipping_pct\",\"a shipping percentage from 0% to 100%\",0,100)/100;const processing=aov*read(\"processing_pct\",\"a payment fee percentage from 0% to 100%\",0,100)/100+read(\"processing_fixed\",\"a fixed payment fee of zero or more\");const commissions=aov*read(\"commission_pct\",\"a commission percentage from 0% to 100%\",0,100)/100+read(\"commission_fixed\",\"a fixed commission of zero or more\");const other=read(\"other_order_cost\",\"other order costs of zero or more\");costs.push({label:\"Products\",amount:product},{label:\"Shipping and fulfilment\",amount:shipping},{label:\"Payment fees\",amount:processing},{label:\"Sales and affiliate commissions\",amount:commissions},{label:\"Other order costs\",amount:other});contribution=aov-costs.reduce((sum,c)=>sum+c.amount,0);margin=contribution/aov*100;}}else if(s.monthly_mode===\"cohort\"){const total=read(\"cohort_contribution\",\"total contribution for this customer group\",-1e8);const customers=read(\"cohort_customers\",\"the number of new customers in the group\",1);if(customers&&!Number.isInteger(customers))errors.push({path:\"cohort_customers\",message:\"Enter a whole number of customers.\"});const months=read(\"cohort_months\",\"a period above zero months\",.01,1200);monthly=months&&customers?total/customers/months:0;}else monthly=read(\"monthly_contribution\",\"average monthly contribution per customer\",-1e8);const raw=Array.isArray(rawPlatforms)?rawPlatforms:[];if(raw.length<1||raw.length>10)errors.push({path:\"platforms\",message:\"Add between one and ten advertising platforms.\"});const seen=new Set,rows=[];const inputs=[];for(const[index,value]of raw.slice(0,10).entries()){const p=obj(value),code=txt(p.platform_code,30);const label=code===\"other\"?txt(p.platform_label):PLATFORM_NAMES[code];const duplicateKey=code===\"other\"?`other:${(label||\"\").toLowerCase()}`:code;const path=`platforms.${index}`;if(!PLATFORM_NAMES[code]||!label||seen.has(duplicateKey))errors.push({path:`${path}.platform_code`,message:`Choose a different platform or name for platform ${index+1}.`});seen.add(duplicateKey);const source=txt(p.cac_source_type,30);let spend=null,customers=null,cac=null;if(source===\"calculated\"){spend=numberInput(p.ad_spend);customers=numberInput(p.new_customers,1);if(spend===null)errors.push({path:`${path}.ad_spend`,message:`Enter ad spend of zero or more for platform ${index+1}.`});if(customers===null||!Number.isInteger(customers))errors.push({path:`${path}.new_customers`,message:`Enter a whole number of new customers above zero for platform ${index+1}.`});if(spend!==null&&customers!==null&&Number.isInteger(customers))cac=spend/customers;}else if(source===\"native_metric\"||source===\"entered\"){cac=numberInput(p.cac_amount);if(cac===null)errors.push({path:`${path}.cac_amount`,message:`Enter CAC of zero or more for platform ${index+1}.`});}else errors.push({path:`${path}.cac_source_type`,message:`Choose how to enter CAC for platform ${index+1}.`});const money=s.tab===\"months\"?monthly:contribution;const ratio=cac===0?0:cac!==null&&money!==null&&money>0?cac/money:null;const count=ratio===null?null:Math.max(0,Math.ceil(ratio-Number.EPSILON*Math.max(1,Math.abs(ratio))));rows.push({scenario_index:index+1,platform_code:code,platform_label:label||\"Platform\",cac_source_type:source,cac_amount:cac??0,ad_spend:spend,new_customers:customers,payback_orders_exact:s.tab===\"orders\"?ratio:null,payback_orders_rounded_up:s.tab===\"orders\"?count:null,additional_orders:s.tab===\"orders\"&&count!==null?Math.max(0,count-1):null,payback_months:s.tab===\"months\"?ratio:null,first_order_after_cac:s.tab===\"orders\"&&cac!==null&&contribution!==null?contribution-cac:null,result_state:cac===0?\"no_acquisition_cost\":ratio===null?\"not_recoverable\":s.tab===\"months\"?\"monthly_estimate\":ratio<=1?\"paid_back_first_order\":\"multiple_orders\"});inputs.push({platform_code:code,platform_label:code===\"other\"?label||\"\":\"\",cac_source_type:source,cac_amount:source===\"calculated\"?null:cac,ad_spend:spend,new_customers:customers});}const input={shared:{...s,is_example:isExample},scenarios:inputs};const assumptions=s.tab===\"orders\"?[\"Each order has the same average value and costs. The first order is included in the order count.\",\"Contribution is the money left from a sale after its costs. Use it to cover CAC and regular bills.\",\"The order count does not predict whether or when a customer will buy again.\"]:[\"Estimated months = CAC divided by average monthly contribution per customer.\",\"The monthly average includes every customer in the new-customer group, including those who never buy again.\",\"Assumes the same amount is earned each month. It does not show when your customer group actually covered CAC.\",\"Monthly contribution is what sales leave after their costs. Subtract product, shipping, payment and sales commission costs. Leave out CAC and regular bills.\"];assumptions.push(\"Use the same dates and currency for ad spend and new customers. Keep the way you count new customers the same.\",\"Two ad platforms may count the same customer. For blended CAC, count each new customer once.\",\"Regular business bills, tax and interest are left out. Do not count the same ad cost or commission twice.\",\"Changing the currency changes the unit shown. It does not convert your amounts.\");return{errors,input,result:errors.length?null:{calculation_version:CALCULATION_VERSION,currency:s.currency,tab:s.tab,report_period:txt(s.report_period),comparison_units:comparisonUnits,aov,first_order_contribution:contribution,monthly_contribution:monthly,contribution_margin:margin,cost_breakdown:costs,scenarios:rows,assumptions,is_example:isExample}};}export function money(value,currency,locale=\"en-US\"){const minor=Math.min(1,CURRENCIES.find(c=>c.code===currency)?.minor??2);try{return new Intl.NumberFormat(locale,{style:\"currency\",currency,currencyDisplay:\"code\",minimumFractionDigits:minor,maximumFractionDigits:minor}).format(value);}catch{return`${currency} ${value.toFixed(minor)}`;}}export function conciseNumber(value){return value.toLocaleString(\"en-US\",{maximumFractionDigits:1});}export function snapshotText(result,input,ai=false){const s=obj(input.shared),lines=[...ai?[AI_INTRO,\"\"]:[],\"Brand Worlds — CAC Payback Calculator for Ecommerce\",`Calculation: ${result.tab===\"months\"?\"Payback period (months) — steady monthly estimate\":\"Payback in orders\"}`,`Currency: ${result.currency}`,`Figures: ${result.is_example?\"Example inputs, not visitor business data\":\"Visitor-entered scenario, not independently verified\"}`,`Reporting period: ${result.report_period||\"Not specified\"}`,\"\",\"INPUTS\"];const fields=result.tab===\"months\"?s.monthly_mode===\"cohort\"?[\"monthly_mode\",\"cohort_contribution\",\"cohort_customers\",\"cohort_months\"]:[\"monthly_mode\",\"monthly_contribution\"]:s.cost_mode===\"margin\"?[\"aov\",\"cost_mode\",\"cm2_pct\"]:[\"aov\",\"cost_mode\",\"units_per_order\",\"avg_product_cost_item\",\"shipping_mode\",s.shipping_mode===\"amount\"?\"shipping_amount\":\"shipping_pct\",\"processing_pct\",\"processing_fixed\",\"commission_pct\",\"commission_fixed\",\"other_order_cost\"];const fieldNames={aov:\"Average order value (currency per order)\",cost_mode:\"Cost entry method\",cm2_pct:\"Contribution margin (%)\",units_per_order:\"Average items per order\",avg_product_cost_item:\"Product cost per item (currency)\",shipping_mode:\"Shipping cost entry\",shipping_amount:\"Shipping and fulfilment (currency per order)\",shipping_pct:\"Shipping and fulfilment (% of order value)\",processing_pct:\"Payment fees (% of order value)\",processing_fixed:\"Fixed payment fee (currency per order)\",commission_pct:\"Sales/affiliate commission (% of order value)\",commission_fixed:\"Fixed sales/affiliate commission (currency per order)\",other_order_cost:\"Other variable costs (currency per order)\",monthly_mode:\"Monthly contribution entry\",monthly_contribution:\"Average monthly contribution per customer (currency/customer/month)\",cohort_contribution:\"Total contribution from new-customer group (currency)\",cohort_customers:\"All new customers in group, including non-repeat buyers\",cohort_months:\"Months covered after acquisition\"};for(const f of fields)lines.push(`${fieldNames[f]||f}: ${s[f]??\"Not entered\"}`);lines.push(`Comparison window: ${s[result.tab===\"months\"?\"compare_months\":\"compare_orders\"]} ${result.tab===\"months\"?\"months\":\"orders, including the first order\"}`);for(const[index,entry]of(Array.isArray(input.scenarios)?input.scenarios:[]).entries()){const raw=obj(entry);lines.push(\"\",result.scenarios[index]?.platform_label||`Platform ${index+1}`,`CAC entry: ${raw.cac_source_type===\"calculated\"?\"Ad spend / new customers\":\"Known CAC\"}`);if(raw.cac_source_type===\"calculated\")lines.push(`Ad spend (${result.currency}): ${raw.ad_spend}`,`Unique new paying customers: ${raw.new_customers}`);else lines.push(`Entered CAC (${result.currency} per new customer): ${raw.cac_amount}`);}lines.push(\"\",\"RESULTS\");if(result.tab===\"orders\"){lines.push(`Contribution per order: ${money(result.first_order_contribution||0,result.currency)}`,`Contribution margin: ${conciseNumber(result.contribution_margin||0)}%`);result.cost_breakdown.forEach(c=>lines.push(`${c.label}: ${money(c.amount,result.currency)} per order`));}else lines.push(`Average monthly contribution per customer: ${money(result.monthly_contribution||0,result.currency)}`);for(const p of result.scenarios){lines.push(\"\",p.platform_label,`CAC source: ${p.cac_source_type===\"calculated\"?\"Ad spend / new customers\":\"Known CAC entered by visitor\"}`,`CAC: ${money(p.cac_amount,result.currency)} per new customer`);if(p.cac_source_type===\"calculated\")lines.push(`Ad spend: ${money(p.ad_spend||0,result.currency)}`,`Unique new paying customers: ${p.new_customers}`);if(p.result_state===\"not_recoverable\")lines.push(\"CAC cannot be recovered at the entered contribution.\");else if(result.tab===\"months\")lines.push(`Estimated payback: ${conciseNumber(p.payback_months||0)} months`);else lines.push(`Equivalent orders: ${conciseNumber(p.payback_orders_exact||0)}`,`Whole orders to cover CAC, including first order: ${p.payback_orders_rounded_up}`,`Additional orders after first: ${p.additional_orders}`,`Money after CAC on first order: ${money(p.first_order_after_cac||0,result.currency)}`);}lines.push(\"\",\"CAC RECOVERY COMPARISON\",`Comparison window: ${conciseNumber(result.comparison_units)} ${result.tab===\"months\"?\"months\":\"orders, including first order\"}`,\"Goal: cover 100% of each platform’s CAC. Colours describe coverage, not industry benchmarks: red below 50%, amber 50% to below 100%, green 100% or more.\");for(const p of result.scenarios){const progress=recoveryProgress((result.tab===\"months\"?result.monthly_contribution:result.first_order_contribution)||0,p.cac_amount,result.comparison_units);lines.push(`${p.platform_label}: contribution ${money(progress.earned,result.currency)}; CAC ${money(p.cac_amount,result.currency)}; ${progress.percent===null?\"no CAC to recover\":`${conciseNumber(progress.percent)}% of CAC covered`}; ${money(progress.remaining,result.currency)} still to recover.`);}lines.push(\"Comparison contribution = contribution per order or customer/month \\xd7 comparison window. Coverage (%) = comparison contribution / CAC \\xd7 100. Bars stop at 100%; percentages above 100% remain shown. Negative contribution means a loss; it is not CAC recovery.\");lines.push(\"\",\"FORMULA\",result.tab===\"orders\"?\"Contribution per order = order value − product cost per item \\xd7 average items per order − shipping/fulfilment − payment fees − commissions − other order costs. Margin method: order value \\xd7 contribution margin / 100. Payback orders = CAC / contribution per order; whole orders round up.\":\"Estimated payback months = CAC / average monthly contribution per customer. Cohort-entry monthly average = total group contribution / all customers in the new-customer group / months covered.\",\"CAC from spend = ad spend / unique new paying customers.\",\"\",\"ASSUMPTIONS\",...result.assumptions.map(a=>`• ${a}`));lines.push(\"\",\"https://brandworldsstudio.com/tools/customer-payback-check\");return lines.join(\"\\n\");}// ISO 4217 List One, SIX publication 2026-09-17. All current codes, including funds.\nexport const CURRENCIES=[{code:\"XUA\",name:\"ADB Unit of Account\",minor:2},{code:\"AFN\",name:\"Afghani\",minor:2},{code:\"DZD\",name:\"Algerian Dinar\",minor:2},{code:\"XAD\",name:\"Arab Accounting Dinar\",minor:2},{code:\"ARS\",name:\"Argentine Peso\",minor:2},{code:\"AMD\",name:\"Armenian Dram\",minor:2},{code:\"AWG\",name:\"Aruban Florin\",minor:2},{code:\"AUD\",name:\"Australian Dollar\",minor:2},{code:\"AZN\",name:\"Azerbaijan Manat\",minor:2},{code:\"BSD\",name:\"Bahamian Dollar\",minor:2},{code:\"BHD\",name:\"Bahraini Dinar\",minor:3},{code:\"THB\",name:\"Baht\",minor:2},{code:\"PAB\",name:\"Balboa\",minor:2},{code:\"BBD\",name:\"Barbados Dollar\",minor:2},{code:\"BYN\",name:\"Belarusian Ruble\",minor:2},{code:\"BZD\",name:\"Belize Dollar\",minor:2},{code:\"BMD\",name:\"Bermudian Dollar\",minor:2},{code:\"BOB\",name:\"Boliviano\",minor:2},{code:\"VES\",name:\"Bol\\xedvar Soberano\",minor:2},{code:\"VED\",name:\"Bol\\xedvar Soberano\",minor:2},{code:\"XBA\",name:\"Bond Markets Unit European Composite Unit (EURCO)\",minor:2},{code:\"XBB\",name:\"Bond Markets Unit European Monetary Unit (E.M.U.-6)\",minor:2},{code:\"XBD\",name:\"Bond Markets Unit European Unit of Account 17 (E.U.A.-17)\",minor:2},{code:\"XBC\",name:\"Bond Markets Unit European Unit of Account 9 (E.U.A.-9)\",minor:2},{code:\"BRL\",name:\"Brazilian Real\",minor:2},{code:\"BND\",name:\"Brunei Dollar\",minor:2},{code:\"BIF\",name:\"Burundi Franc\",minor:0},{code:\"XOF\",name:\"CFA Franc BCEAO\",minor:0},{code:\"XAF\",name:\"CFA Franc BEAC\",minor:0},{code:\"XPF\",name:\"CFP Franc\",minor:0},{code:\"CVE\",name:\"Cabo Verde Escudo\",minor:2},{code:\"CAD\",name:\"Canadian Dollar\",minor:2},{code:\"XCG\",name:\"Caribbean Guilder\",minor:2},{code:\"KYD\",name:\"Cayman Islands Dollar\",minor:2},{code:\"CLP\",name:\"Chilean Peso\",minor:0},{code:\"XTS\",name:\"Codes specifically reserved for testing purposes\",minor:2},{code:\"COP\",name:\"Colombian Peso\",minor:2},{code:\"KMF\",name:\"Comorian Franc \",minor:0},{code:\"CDF\",name:\"Congolese Franc\",minor:2},{code:\"BAM\",name:\"Convertible Mark\",minor:2},{code:\"NIO\",name:\"Cordoba Oro\",minor:2},{code:\"CRC\",name:\"Costa Rican Colon\",minor:2},{code:\"CUP\",name:\"Cuban Peso\",minor:2},{code:\"CZK\",name:\"Czech Koruna\",minor:2},{code:\"GMD\",name:\"Dalasi\",minor:2},{code:\"DKK\",name:\"Danish Krone\",minor:2},{code:\"MKD\",name:\"Denar\",minor:2},{code:\"DJF\",name:\"Djibouti Franc\",minor:0},{code:\"STN\",name:\"Dobra\",minor:2},{code:\"DOP\",name:\"Dominican Peso\",minor:2},{code:\"VND\",name:\"Dong\",minor:0},{code:\"XCD\",name:\"East Caribbean Dollar\",minor:2},{code:\"EGP\",name:\"Egyptian Pound\",minor:2},{code:\"SVC\",name:\"El Salvador Colon\",minor:2},{code:\"ETB\",name:\"Ethiopian Birr\",minor:2},{code:\"EUR\",name:\"Euro\",minor:2},{code:\"FKP\",name:\"Falkland Islands Pound\",minor:2},{code:\"FJD\",name:\"Fiji Dollar\",minor:2},{code:\"HUF\",name:\"Forint\",minor:2},{code:\"GHS\",name:\"Ghana Cedi\",minor:2},{code:\"GIP\",name:\"Gibraltar Pound\",minor:2},{code:\"XAU\",name:\"Gold\",minor:2},{code:\"HTG\",name:\"Gourde\",minor:2},{code:\"PYG\",name:\"Guarani\",minor:0},{code:\"GNF\",name:\"Guinean Franc\",minor:0},{code:\"GYD\",name:\"Guyana Dollar\",minor:2},{code:\"HKD\",name:\"Hong Kong Dollar\",minor:2},{code:\"UAH\",name:\"Hryvnia\",minor:2},{code:\"ISK\",name:\"Iceland Krona\",minor:0},{code:\"INR\",name:\"Indian Rupee\",minor:2},{code:\"IRR\",name:\"Iranian Rial\",minor:2},{code:\"IQD\",name:\"Iraqi Dinar\",minor:3},{code:\"JMD\",name:\"Jamaican Dollar\",minor:2},{code:\"JOD\",name:\"Jordanian Dinar\",minor:3},{code:\"KES\",name:\"Kenyan Shilling\",minor:2},{code:\"PGK\",name:\"Kina\",minor:2},{code:\"KWD\",name:\"Kuwaiti Dinar\",minor:3},{code:\"AOA\",name:\"Kwanza\",minor:2},{code:\"MMK\",name:\"Kyat\",minor:2},{code:\"LAK\",name:\"Lao Kip\",minor:2},{code:\"GEL\",name:\"Lari\",minor:2},{code:\"LBP\",name:\"Lebanese Pound\",minor:2},{code:\"ALL\",name:\"Lek\",minor:2},{code:\"HNL\",name:\"Lempira\",minor:2},{code:\"SLE\",name:\"Leone\",minor:2},{code:\"LRD\",name:\"Liberian Dollar\",minor:2},{code:\"LYD\",name:\"Libyan Dinar\",minor:3},{code:\"SZL\",name:\"Lilangeni\",minor:2},{code:\"LSL\",name:\"Loti\",minor:2},{code:\"MGA\",name:\"Malagasy Ariary\",minor:2},{code:\"MWK\",name:\"Malawi Kwacha\",minor:2},{code:\"MYR\",name:\"Malaysian Ringgit\",minor:2},{code:\"MUR\",name:\"Mauritius Rupee\",minor:2},{code:\"MXN\",name:\"Mexican Peso\",minor:2},{code:\"MXV\",name:\"Mexican Unidad de Inversion (UDI)\",minor:2},{code:\"MDL\",name:\"Moldovan Leu\",minor:2},{code:\"MAD\",name:\"Moroccan Dirham\",minor:2},{code:\"MZN\",name:\"Mozambique Metical\",minor:2},{code:\"BOV\",name:\"Mvdol\",minor:2},{code:\"NGN\",name:\"Naira\",minor:2},{code:\"ERN\",name:\"Nakfa\",minor:2},{code:\"NAD\",name:\"Namibia Dollar\",minor:2},{code:\"NPR\",name:\"Nepalese Rupee\",minor:2},{code:\"ILS\",name:\"New Israeli Sheqel\",minor:2},{code:\"TWD\",name:\"New Taiwan Dollar\",minor:2},{code:\"NZD\",name:\"New Zealand Dollar\",minor:2},{code:\"BTN\",name:\"Ngultrum\",minor:2},{code:\"KPW\",name:\"North Korean Won\",minor:2},{code:\"NOK\",name:\"Norwegian Krone\",minor:2},{code:\"MRU\",name:\"Ouguiya\",minor:2},{code:\"PKR\",name:\"Pakistan Rupee\",minor:2},{code:\"XPD\",name:\"Palladium\",minor:2},{code:\"MOP\",name:\"Pataca\",minor:2},{code:\"TOP\",name:\"Pa’anga\",minor:2},{code:\"UYU\",name:\"Peso Uruguayo\",minor:2},{code:\"PHP\",name:\"Philippine Peso\",minor:2},{code:\"XPT\",name:\"Platinum\",minor:2},{code:\"GBP\",name:\"Pound Sterling\",minor:2},{code:\"BWP\",name:\"Pula\",minor:2},{code:\"QAR\",name:\"Qatari Rial\",minor:2},{code:\"GTQ\",name:\"Quetzal\",minor:2},{code:\"ZAR\",name:\"Rand\",minor:2},{code:\"OMR\",name:\"Rial Omani\",minor:3},{code:\"KHR\",name:\"Riel\",minor:2},{code:\"RON\",name:\"Romanian Leu\",minor:2},{code:\"MVR\",name:\"Rufiyaa\",minor:2},{code:\"IDR\",name:\"Rupiah\",minor:2},{code:\"RUB\",name:\"Russian Ruble\",minor:2},{code:\"RWF\",name:\"Rwanda Franc\",minor:0},{code:\"XDR\",name:\"SDR (Special Drawing Right)\",minor:2},{code:\"SHP\",name:\"Saint Helena Pound\",minor:2},{code:\"SAR\",name:\"Saudi Riyal\",minor:2},{code:\"RSD\",name:\"Serbian Dinar\",minor:2},{code:\"SCR\",name:\"Seychelles Rupee\",minor:2},{code:\"XAG\",name:\"Silver\",minor:2},{code:\"SGD\",name:\"Singapore Dollar\",minor:2},{code:\"PEN\",name:\"Sol\",minor:2},{code:\"SBD\",name:\"Solomon Islands Dollar\",minor:2},{code:\"KGS\",name:\"Som\",minor:2},{code:\"SOS\",name:\"Somali Shilling\",minor:2},{code:\"TJS\",name:\"Somoni\",minor:2},{code:\"SSP\",name:\"South Sudanese Pound\",minor:2},{code:\"LKR\",name:\"Sri Lanka Rupee\",minor:2},{code:\"XSU\",name:\"Sucre\",minor:2},{code:\"SDG\",name:\"Sudanese Pound\",minor:2},{code:\"SRD\",name:\"Surinam Dollar\",minor:2},{code:\"SEK\",name:\"Swedish Krona\",minor:2},{code:\"CHF\",name:\"Swiss Franc\",minor:2},{code:\"SYP\",name:\"Syrian Pound\",minor:2},{code:\"BDT\",name:\"Taka\",minor:2},{code:\"WST\",name:\"Tala\",minor:2},{code:\"TZS\",name:\"Tanzanian Shilling\",minor:2},{code:\"KZT\",name:\"Tenge\",minor:2},{code:\"XXX\",name:\"The codes assigned for transactions where no currency is involved\",minor:2},{code:\"TTD\",name:\"Trinidad and Tobago Dollar\",minor:2},{code:\"MNT\",name:\"Tugrik\",minor:2},{code:\"TND\",name:\"Tunisian Dinar\",minor:3},{code:\"TRY\",name:\"Turkish Lira\",minor:2},{code:\"TMT\",name:\"Turkmenistan New Manat\",minor:2},{code:\"AED\",name:\"UAE Dirham\",minor:2},{code:\"USD\",name:\"US Dollar\",minor:2},{code:\"USN\",name:\"US Dollar (Next day)\",minor:2},{code:\"UGX\",name:\"Uganda Shilling\",minor:0},{code:\"UYW\",name:\"Unidad Previsional\",minor:4},{code:\"CLF\",name:\"Unidad de Fomento\",minor:4},{code:\"COU\",name:\"Unidad de Valor Real\",minor:2},{code:\"UYI\",name:\"Uruguay Peso en Unidades Indexadas (UI)\",minor:0},{code:\"UZS\",name:\"Uzbekistan Sum\",minor:2},{code:\"VUV\",name:\"Vatu\",minor:0},{code:\"CHE\",name:\"WIR Euro\",minor:2},{code:\"CHW\",name:\"WIR Franc\",minor:2},{code:\"KRW\",name:\"Won\",minor:0},{code:\"YER\",name:\"Yemeni Rial\",minor:2},{code:\"JPY\",name:\"Yen\",minor:0},{code:\"CNY\",name:\"Yuan Renminbi\",minor:2},{code:\"ZMW\",name:\"Zambian Kwacha\",minor:2},{code:\"ZWG\",name:\"Zimbabwe Gold\",minor:2},{code:\"PLN\",name:\"Zloty\",minor:2}];export const CURRENCY_CODES=new Set(CURRENCIES.map(c=>c.code));// Unicode CLDR territory mapping; filtered to SIX current codes; checked 2026-10-01.\nexport const COUNTRY_CURRENCY={AC:\"SHP\",AD:\"EUR\",AE:\"AED\",AF:\"AFN\",AG:\"XCD\",AI:\"XCD\",AL:\"ALL\",AM:\"AMD\",AO:\"AOA\",AR:\"ARS\",AS:\"USD\",AT:\"EUR\",AU:\"AUD\",AW:\"AWG\",AX:\"EUR\",AZ:\"AZN\",BA:\"BAM\",BB:\"BBD\",BD:\"BDT\",BE:\"EUR\",BF:\"XOF\",BG:\"EUR\",BH:\"BHD\",BI:\"BIF\",BJ:\"XOF\",BL:\"EUR\",BM:\"BMD\",BN:\"BND\",BO:\"BOB\",BQ:\"USD\",BR:\"BRL\",BS:\"BSD\",BT:\"BTN\",BV:\"NOK\",BW:\"BWP\",BY:\"BYN\",BZ:\"BZD\",CA:\"CAD\",CC:\"AUD\",CD:\"CDF\",CF:\"XAF\",CG:\"XAF\",CH:\"CHF\",CI:\"XOF\",CK:\"NZD\",CL:\"CLP\",CM:\"XAF\",CN:\"CNY\",CO:\"COP\",CR:\"CRC\",CU:\"CUP\",CV:\"CVE\",CW:\"XCG\",CX:\"AUD\",CY:\"EUR\",CZ:\"CZK\",DE:\"EUR\",DG:\"USD\",DJ:\"DJF\",DK:\"DKK\",DM:\"XCD\",DO:\"DOP\",DZ:\"DZD\",EA:\"EUR\",EC:\"USD\",EE:\"EUR\",EG:\"EGP\",EH:\"MAD\",ER:\"ERN\",ES:\"EUR\",ET:\"ETB\",EU:\"EUR\",FI:\"EUR\",FJ:\"FJD\",FK:\"FKP\",FM:\"USD\",FO:\"DKK\",FR:\"EUR\",GA:\"XAF\",GB:\"GBP\",GD:\"XCD\",GE:\"GEL\",GF:\"EUR\",GG:\"GBP\",GH:\"GHS\",GI:\"GIP\",GL:\"DKK\",GM:\"GMD\",GN:\"GNF\",GP:\"EUR\",GQ:\"XAF\",GR:\"EUR\",GS:\"GBP\",GT:\"GTQ\",GU:\"USD\",GW:\"XOF\",GY:\"GYD\",HK:\"HKD\",HM:\"AUD\",HN:\"HNL\",HR:\"EUR\",HT:\"HTG\",HU:\"HUF\",IC:\"EUR\",ID:\"IDR\",IE:\"EUR\",IL:\"ILS\",IM:\"GBP\",IN:\"INR\",IO:\"USD\",IQ:\"IQD\",IR:\"IRR\",IS:\"ISK\",IT:\"EUR\",JE:\"GBP\",JM:\"JMD\",JO:\"JOD\",JP:\"JPY\",KE:\"KES\",KG:\"KGS\",KH:\"KHR\",KI:\"AUD\",KM:\"KMF\",KN:\"XCD\",KP:\"KPW\",KR:\"KRW\",KW:\"KWD\",KY:\"KYD\",KZ:\"KZT\",LA:\"LAK\",LB:\"LBP\",LC:\"XCD\",LI:\"CHF\",LK:\"LKR\",LR:\"LRD\",LS:\"ZAR\",LT:\"EUR\",LU:\"EUR\",LV:\"EUR\",LY:\"LYD\",MA:\"MAD\",MC:\"EUR\",MD:\"MDL\",ME:\"EUR\",MF:\"EUR\",MG:\"MGA\",MH:\"USD\",MK:\"MKD\",ML:\"XOF\",MM:\"MMK\",MN:\"MNT\",MO:\"MOP\",MP:\"USD\",MQ:\"EUR\",MR:\"MRU\",MS:\"XCD\",MT:\"EUR\",MU:\"MUR\",MV:\"MVR\",MW:\"MWK\",MX:\"MXN\",MY:\"MYR\",MZ:\"MZN\",NA:\"NAD\",NC:\"XPF\",NE:\"XOF\",NF:\"AUD\",NG:\"NGN\",NI:\"NIO\",NL:\"EUR\",NO:\"NOK\",NP:\"NPR\",NR:\"AUD\",NU:\"NZD\",NZ:\"NZD\",OM:\"OMR\",PA:\"PAB\",PE:\"PEN\",PF:\"XPF\",PG:\"PGK\",PH:\"PHP\",PK:\"PKR\",PL:\"PLN\",PM:\"EUR\",PN:\"NZD\",PR:\"USD\",PS:\"ILS\",PT:\"EUR\",PW:\"USD\",PY:\"PYG\",QA:\"QAR\",RE:\"EUR\",RO:\"RON\",RS:\"RSD\",RU:\"RUB\",RW:\"RWF\",SA:\"SAR\",SB:\"SBD\",SC:\"SCR\",SD:\"SDG\",SE:\"SEK\",SG:\"SGD\",SH:\"SHP\",SI:\"EUR\",SJ:\"NOK\",SK:\"EUR\",SL:\"SLE\",SM:\"EUR\",SN:\"XOF\",SO:\"SOS\",SR:\"SRD\",SS:\"SSP\",ST:\"STN\",SV:\"USD\",SX:\"XCG\",SY:\"SYP\",SZ:\"SZL\",TA:\"GBP\",TC:\"USD\",TD:\"XAF\",TF:\"EUR\",TG:\"XOF\",TH:\"THB\",TJ:\"TJS\",TK:\"NZD\",TL:\"USD\",TM:\"TMT\",TN:\"TND\",TO:\"TOP\",TR:\"TRY\",TT:\"TTD\",TV:\"AUD\",TW:\"TWD\",TZ:\"TZS\",UA:\"UAH\",UG:\"UGX\",UM:\"USD\",US:\"USD\",UY:\"UYU\",UZ:\"UZS\",VA:\"EUR\",VC:\"XCD\",VE:\"VES\",VG:\"USD\",VI:\"USD\",VN:\"VND\",VU:\"VUV\",WF:\"XPF\",WS:\"WST\",XK:\"EUR\",YE:\"YER\",YT:\"EUR\",ZA:\"ZAR\",ZM:\"ZMW\",ZW:\"ZWG\"};// END UNCHANGED LIVE V4 MODEL\nexport const DESIGN_VERSION=\"bws-payback-revenue-editorial-2026-10-01\";export const TOKENS={text:\"#000000\",muted:\"#666666\",surface:\"#F4F2EE\",positive:\"#137333\",negative:\"#B42318\",content:1120,title:900,intro:768,gap:16,inputHeight:36,reviewGap:56};export const calculatorCSS=`/* Presentation-only adaptation of the Revenue & Contribution Scenario Calculator.\n   Every selector is scoped to this dedicated Payback root. */\n.bws-payback-editorial{--bw-text:#151515;--bw-muted:#696969;--bw-surface:#f1f0ec;--bw-positive:#18704a;--bw-negative:#9f352b;--bw-line:#c9c6c5;width:100%;min-width:0;background:#fff;color:var(--bw-text);font-family:Inter,\"Inter Placeholder\",sans-serif,\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.5;box-sizing:border-box;-webkit-font-smoothing:antialiased;font-synthesis:none}\n.bws-payback-editorial *{box-sizing:border-box}\n.bws-payback-editorial ::selection{background:#dce9df;color:#151515}\n.bws-payback-editorial :where(h1,h2,h3,h4,p){margin:0}\n.bws-payback-editorial :where(h1,h2,h3,h4,strong,b){font-weight:400}\n.bws-payback-editorial :where(button,input,select,textarea){font:inherit;font-size:16px;font-weight:400;border-radius:0;color:var(--bw-text);min-width:0}\n.bws-payback-editorial :where(button,a){-webkit-tap-highlight-color:transparent}\n.bws-payback-editorial button{cursor:pointer}\n.bws-payback-editorial button:disabled{cursor:not-allowed;opacity:.55}\n.bws-payback-editorial :where(button,input,select,textarea,a,summary):focus-visible{outline:2px solid #151515;outline-offset:3px}\n.bws-payback-editorial a{color:inherit;text-underline-offset:4px}\n.bws-payback-editorial .bw-wrap{width:min(100% - 40px,1240px);margin:0 auto;padding:76px 0 96px}\n.bws-payback-editorial .bw-hero{max-width:900px;margin-bottom:48px}\n.bws-payback-editorial .bw-eyebrow{font-size:14px;letter-spacing:.12em;line-height:1.2;margin-bottom:18px;text-transform:uppercase}\n.bws-payback-editorial h1{max-width:900px;margin:0;font-size:clamp(39px,5.2vw,48px);line-height:.98;letter-spacing:-.045em;overflow-wrap:break-word}\n.bws-payback-editorial .bw-intro{max-width:800px;color:#505050}\n.bws-payback-editorial .bw-intro .bw-opening{max-width:760px;margin:27px 0 25px;font-size:20px;line-height:1.48;color:#4f4f4f}\n.bws-payback-editorial .bw-intro p{margin:0 0 15px;font-size:17px;line-height:1.58}\n.bws-payback-editorial .bw-intro p:last-child{margin-bottom:0}\n.bws-payback-editorial .bw-tool{margin-top:0}\n.bws-payback-editorial .bw-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:24px;align-items:start}\n.bws-payback-editorial .bw-inputs-column{display:grid;gap:18px;min-width:0}\n.bws-payback-editorial .bw-input-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:0;min-width:0;padding:28px;background:#fafafa;border:1px solid #151515}\n.bws-payback-editorial .bw-input-panel> :not(.bw-field){grid-column:1/-1;min-width:0}\n.bws-payback-editorial .bw-section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:22px;border-bottom:1px solid var(--bw-line);margin-bottom:22px}\n.bws-payback-editorial .bw-section-heading>div{display:flex;gap:13px;align-items:baseline;min-width:0}\n.bws-payback-editorial .bw-section-heading>div>span{font-size:14px;color:var(--bw-muted)}\n.bws-payback-editorial .bw-section-heading h2{margin:0;font-size:25px;line-height:1.08;letter-spacing:-.025em}\n.bws-payback-editorial .bw-section-heading .bw-text-button{color:var(--bw-muted);min-height:24px;text-align:right;flex:none}\n.bws-payback-editorial .bw-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px;border:1px solid #151515}\n.bws-payback-editorial .bw-tab{min-height:48px;padding:10px 12px;border:0;background:#fff;color:#151515;font-size:14px;line-height:1.35}\n.bws-payback-editorial .bw-tab+.bw-tab{border-left:1px solid #151515}\n.bws-payback-editorial .bw-tab[aria-selected=true]{background:#151515;color:#fff}\n.bws-payback-editorial .bw-period-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--bw-line)}\n.bws-payback-editorial .bw-period-settings>*{min-width:0}\n.bws-payback-editorial .bw-field{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 46px auto;align-content:start;gap:8px;min-width:0;position:relative;padding:0;margin:0 0 20px}\n.bws-payback-editorial .bw-field>div:first-child:not(.bw-input){display:contents}\n.bws-payback-editorial .bw-field-label,.bws-payback-editorial .bw-field>label,.bws-payback-editorial .bw-field>div:first-child>label{grid-row:1;min-width:0;min-height:40px;font-size:16px;line-height:1.25}\n.bws-payback-editorial .bw-field-label{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}\n.bws-payback-editorial .bw-field label{font-weight:400;min-width:0}\n.bws-payback-editorial .bw-hint{display:block;grid-row:3;color:var(--bw-muted);font-size:14px;line-height:1.45;margin:0}\n.bws-payback-editorial .bw-input{display:flex;align-items:center;grid-row:2;min-width:0;width:100%;height:46px;border:1px solid #a8a8a4;background:#fff}\n.bws-payback-editorial .bw-input input{width:100%;min-width:0;height:44px;border:0;padding:10px 13px;line-height:1.4;background:#FFFFFF;caret-color:#151515;font-variant-numeric:tabular-nums}\n.bws-payback-editorial .bw-currency-input,.bws-payback-editorial .bw-currency-input input{background:#FFFFFF}\n.bws-payback-editorial .bw-currency-input input{appearance:none;-webkit-appearance:none;background-color:#FFFFFF;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23151515' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 13px center;background-size:16px 16px;padding-right:40px;}\n.bws-payback-editorial .bw-currency-input input::-webkit-calendar-picker-indicator{opacity:0}\n.bws-payback-editorial .bw-unit{flex:none;max-width:50%;padding-right:11px;color:var(--bw-muted);font-size:14px;overflow-wrap:anywhere}\n.bws-payback-editorial .bw-select{grid-row:2;height:46px;width:100%;border:1px solid #a8a8a4;background:#FFFFFF;padding:8px 13px;appearance:none;-webkit-appearance:none;background-color:#FFFFFF;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23151515' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 13px center;background-size:16px 16px;padding-right:40px;}\n.bws-payback-editorial .bw-input:focus-within{border-color:#151515;box-shadow:inset 0 0 0 1px #151515}\n.bws-payback-editorial .bw-field-error{grid-column:1/-1;grid-row:4;font-size:14px;line-height:1.4;color:var(--bw-negative)}\n.bws-payback-editorial [aria-invalid=true],.bws-payback-editorial .bw-input:has([aria-invalid=true]){border-color:var(--bw-negative)}\n.bws-payback-editorial .bw-help{position:static;display:inline-flex;flex:none}\n.bws-payback-editorial .bw-help-button{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;padding:0;min-width:22px;min-height:22px;line-height:1;color:#777;font-size:15px}\n.bws-payback-editorial .bw-help-text{position:absolute;top:27px;left:0;width:min(320px,calc(100vw - 80px));font-size:14px;line-height:1.5;padding:14px;border:1px solid #a8a8a4;background:#fff;color:#151515;z-index:10;box-shadow:0 5px 14px #00000012}\n.bws-payback-editorial .bw-help-text[hidden]{display:none}\n.bws-payback-editorial .bw-inline-help .bw-field-label{display:block}\n.bws-payback-editorial .bw-inline-help .bw-help{display:block;max-width:100%}\n.bws-payback-editorial .bw-inline-help .bw-help-text{position:static;display:block;width:100%;margin-top:8px;box-shadow:none}\n.bws-payback-editorial .bw-inline-help .bw-help-text[hidden]{display:none}\n.bws-payback-editorial .bw-support{font-size:14px;line-height:1.5;color:var(--bw-muted);margin:0 0 12px}\n.bws-payback-editorial .bw-support:last-child{margin-bottom:0}\n.bws-payback-editorial .bw-group{border-top:1px solid var(--bw-line);padding-top:20px;margin-top:0}\n.bws-payback-editorial .bw-group>h3{margin:0 0 16px;font-size:18px;line-height:1.3}\n.bws-payback-editorial .bw-costs-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px}\n.bws-payback-editorial .bw-costs-group>h3{grid-column:1/-1}\n.bws-payback-editorial .bw-input-panel.bw-comparison-panel>.bw-field{grid-column:1/-1;margin-bottom:0}\n.bws-payback-editorial .bw-platform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;padding-top:20px;margin-top:12px;border-top:1px solid var(--bw-line)}\n.bws-payback-editorial .bw-platform> :not(.bw-field){grid-column:1/-1}\n.bws-payback-editorial .bw-platform-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}\n.bws-payback-editorial .bw-platform-head h4{font-size:18px;line-height:1.3;margin:0}\n.bws-payback-editorial .bw-platform .bw-field:has(input[inputmode]){grid-column:1/-1}\n.bws-payback-editorial .bw-disclosure{margin:0 0 18px;border-top:1px solid var(--bw-line);border-bottom:1px solid var(--bw-line)}\n.bws-payback-editorial .bw-disclosure>summary{cursor:pointer;list-style:none;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;font-size:14px}\n.bws-payback-editorial summary::-webkit-details-marker{display:none}\n.bws-payback-editorial summary .bw-toggle:after{content:\"+\";font-size:20px;line-height:1}\n.bws-payback-editorial details[open]>summary .bw-toggle:after{content:\"−\"}\n.bws-payback-editorial .bw-disclosure-body{padding:0 0 16px;font-size:14px;line-height:1.5}\n.bws-payback-editorial .bw-disclosure-body p{margin-bottom:12px}\n.bws-payback-editorial .bw-prompt{display:block;width:100%;min-height:160px;resize:vertical;border:1px solid #a8a8a4;padding:12px;background:#f1f0ec;line-height:1.5;font-size:14px}\n.bws-payback-editorial .bw-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}\n.bws-payback-editorial .bw-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;text-decoration:none;border:1px solid #151515;background:#fff;color:#151515;font-size:14px;font-weight:400;text-align:center;line-height:1.4}\n.bws-payback-editorial .bw-button:hover{background:#f1f0ec}\n.bws-payback-editorial .bw-button-primary{background:#151515;color:#fff}\n.bws-payback-editorial .bw-button-primary:hover{background:#343434}\n.bws-payback-editorial .bw-text-button{border:0;background:transparent;padding:4px 0;min-height:36px;font-size:14px;text-decoration:underline;text-underline-offset:4px}\n.bws-payback-editorial .bw-results-column{min-width:0;background:#151515;color:#fff;padding:30px;border:1px solid #151515}\n.bws-payback-editorial .bw-results{display:grid;gap:28px;min-width:0}\n.bws-payback-editorial .bw-panel{padding:0;border:0;min-width:0;background:transparent;color:inherit}\n.bws-payback-editorial .bw-panel h2{font-size:30px;line-height:1.05;letter-spacing:-.025em;margin:0 0 28px;max-width:380px}\n.bws-payback-editorial .bw-result-topline{font-size:14px;text-transform:uppercase;letter-spacing:.11em;color:#bdbdb9;margin:0 0 24px}\n.bws-payback-editorial .bw-headline{margin:30px 0;padding:28px 0;border-top:1px solid #4d4d4d;border-bottom:1px solid #4d4d4d}\n.bws-payback-editorial .bw-main-result{font-size:32px;font-weight:400;line-height:1.1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0 0 8px;color:#c7f2d9}\n.bws-payback-editorial .bw-main-result small{font-size:20px}\n.bws-payback-editorial .bw-main-result[data-state=\"not_recoverable\"]{color:#ffd0ca}\n.bws-payback-editorial .bw-summary-note{font-size:14px;line-height:1.5;color:#bdbdb9}\n.bws-payback-editorial .bw-results-column .bw-support{color:#bdbdb9}\n.bws-payback-editorial .bw-results-column .bw-panel+.bw-panel{border-top:1px solid #4d4d4d;padding-top:28px}\n.bws-payback-editorial .bw-results-column .bw-panel+.bw-panel h2{font-size:22px;margin-bottom:18px;line-height:1.15}\n.bws-payback-editorial .bw-metrics{margin:0}\n.bws-payback-editorial .bw-metric{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:12px;align-items:baseline;padding:13px 0;border-top:1px solid #3f3f3f;font-size:18px;line-height:1.45}\n.bws-payback-editorial .bw-metric:last-child{border-bottom:1px solid #3f3f3f}\n.bws-payback-editorial .bw-metric dt,.bws-payback-editorial .bw-metric dd{margin:0;min-width:0;overflow-wrap:anywhere}\n.bws-payback-editorial .bw-metric dt{color:#ddd}\n.bws-payback-editorial .bw-metric dd{text-align:right;font-variant-numeric:tabular-nums}\n.bws-payback-editorial .bw-metric-positive,.bws-payback-editorial .bw-status-positive{color:#c7f2d9}\n.bws-payback-editorial .bw-metric-negative,.bws-payback-editorial .bw-status-negative{color:#ffd0ca}\n.bws-payback-editorial .bw-status{font-size:14px;margin:7px 0 16px;color:#bdbdb9}\n.bws-payback-editorial .bw-status.bw-status-positive{color:#c7f2d9}\n.bws-payback-editorial .bw-status.bw-status-negative{color:#ffd0ca}\n.bws-payback-editorial .bw-platform-result{margin-top:20px}\n.bws-payback-editorial .bw-platform-result h3{font-size:18px;line-height:1.3;margin:0}\n.bws-payback-editorial .bw-platform-result+.bw-platform-result{margin-top:26px;padding-top:24px;border-top:1px solid #4d4d4d}\n.bws-payback-editorial .bw-recovery{margin-top:28px;padding-top:24px;border-top:1px solid #4d4d4d}\n.bws-payback-editorial .bw-recovery h3{font-size:18px;line-height:1.3;margin:0 0 12px}\n.bws-payback-editorial .bw-recovery-row{margin-top:20px}\n.bws-payback-editorial .bw-recovery-label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;margin-bottom:8px}\n.bws-payback-editorial .bw-recovery-label span{min-width:0;overflow-wrap:anywhere}\n.bws-payback-editorial .bw-recovery-label strong{flex:none;font-weight:400;font-variant-numeric:tabular-nums}\n.bws-payback-editorial .bw-recovery-track{height:6px;background:#404040;position:relative}\n.bws-payback-editorial .bw-recovery-fill{display:block;height:100%;max-width:100%}\n.bws-payback-editorial .bw-recovery-caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;color:#bdbdb9;font-size:14px;margin-top:8px;font-variant-numeric:tabular-nums}\n.bws-payback-editorial .bw-recovery-legend{display:flex;gap:8px 16px;flex-wrap:wrap;font-size:14px;margin-top:20px;color:#bdbdb9}\n.bws-payback-editorial .bw-recovery-legend span{display:flex;align-items:center;gap:6px}\n.bws-payback-editorial .bw-recovery-legend i{width:8px;height:8px;display:inline-block}\n.bws-payback-editorial .bw-results-column .bw-assumptions{background:#262626!important;padding:17px!important;border:0!important}\n.bws-payback-editorial .bw-results-column .bw-assumptions h2{font-size:18px;margin-bottom:12px}\n.bws-payback-editorial .bw-result-actions{margin-top:24px;padding-top:24px;border-top:1px solid #4d4d4d}\n.bws-payback-editorial .bw-action-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n.bws-payback-editorial .bw-ai-picker{display:inline-flex;gap:5px;align-items:center;font-size:14px;color:#bdbdb9;flex-wrap:wrap}\n.bws-payback-editorial .bw-ai-button{width:42px;height:44px;padding:10px;border:1px solid #777;background:transparent;color:#fff;display:flex;align-items:center;justify-content:center}\n.bws-payback-editorial .bw-ai-button:hover{background:#343434}\n.bws-payback-editorial .bw-ai-button svg{width:21px;height:21px;fill:currentColor}\n.bws-payback-editorial .bw-results-column .bw-button{border-color:#fff;background:#fff;color:#151515}\n.bws-payback-editorial .bw-results-column .bw-button:hover{background:#ecece9}\n.bws-payback-editorial .bw-results-column .bw-text-button{color:#ddd;margin-top:10px}\n.bws-payback-editorial .bw-results-column :where(button,input,select,textarea,a,summary):focus-visible{outline-color:#fff}\n.bws-payback-editorial .bw-notice{font-size:14px;border:1px solid var(--bw-line);padding:12px;margin:12px 0;overflow-wrap:anywhere}\n.bws-payback-editorial .bw-notice-error{color:var(--bw-negative);border-color:var(--bw-negative)}\n.bws-payback-editorial .bw-notice-success{color:var(--bw-positive)}\n.bws-payback-editorial .bw-email-form{display:grid;gap:10px;margin-top:20px;padding-top:22px;border-top:1px solid #4d4d4d}\n.bws-payback-editorial .bw-email-input{width:100%;height:46px;border:1px solid #fff;padding:10px 13px;background:#fff;color:#151515}\n.bws-payback-editorial .bw-email-form .bw-button{justify-self:stretch}\n.bws-payback-editorial .bw-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}\n.bws-payback-editorial .bw-date-range label{display:block;font-size:14px;margin-bottom:6px}\n.bws-payback-editorial .bw-date-range input{height:46px;width:100%;min-width:0;border:1px solid #a8a8a4;background:#fff;padding:8px 13px;font-size:16px;color:#151515}\n.bws-payback-editorial .bw-mobile-summary{display:none}\n.bws-payback-editorial .bw-review{margin:54px 0 0;padding:40px 42px 36px;border:1px solid #151515;background:var(--bw-surface)}\n.bws-payback-editorial .bw-review h2{font-size:clamp(34px,4vw,46px);line-height:1.06;letter-spacing:-.035em;margin:0 0 18px}\n.bws-payback-editorial .bw-review p{max-width:1080px;font-size:18px;line-height:1.5;color:#575757;margin:0 0 14px}\n.bws-payback-editorial .bw-review .bw-support{font-size:14px}\n.bws-payback-editorial .bw-review-actions{margin-top:24px}\n.bws-payback-editorial .bw-review .bw-button{min-height:54px;padding:17px 22px;margin-bottom:13px;font-size:16px}\n.bws-payback-editorial .bw-method{margin-top:74px}\n.bws-payback-editorial .bw-method h2{font-size:32px;line-height:1.12;letter-spacing:-.025em;margin-bottom:28px}\n.bws-payback-editorial .bw-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px}\n.bws-payback-editorial .bw-method-group{border-top:1px solid var(--bw-line);padding-top:20px;min-width:0}\n.bws-payback-editorial .bw-method-group h3{font-size:22px;letter-spacing:-.02em;line-height:1.23;margin:0 0 16px}\n.bws-payback-editorial .bw-method-group p{font-size:16px;line-height:1.56;color:#565656;margin-bottom:15px}\n.bws-payback-editorial .bw-formula{background:#f1f0ec;border:1px solid var(--bw-line);padding:18px;margin:16px 0;font-size:16px;line-height:1.5;overflow-wrap:anywhere}\n.bws-payback-editorial .bw-questions{margin-top:74px;padding-top:32px;border-top:1px solid var(--bw-line);width:100%}\n.bws-payback-editorial .bw-questions h2{font-size:clamp(30px,3vw,39px);line-height:1.12;letter-spacing:-.035em;margin-bottom:26px}\n.bws-payback-editorial .bw-question{border-top:1px solid var(--bw-line);max-width:980px}\n.bws-payback-editorial .bw-question:last-child{border-bottom:1px solid var(--bw-line)}\n.bws-payback-editorial .bw-question>summary{list-style:none;cursor:pointer;font-size:22px;line-height:1.23;letter-spacing:-.02em;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;padding:20px 0}\n.bws-payback-editorial .bw-answer{padding:0 52px 26px 0;max-width:850px;font-size:16px;line-height:1.56;color:#565656}\n.bws-payback-editorial .bw-answer p{margin-bottom:12px}\n.bws-payback-editorial .bw-answer p:last-child{margin-bottom:0}\n@media(max-width:920px){.bws-payback-editorial .bw-grid{grid-template-columns:minmax(0,1fr)}.bws-payback-editorial .bw-input-panel{padding:24px}.bws-payback-editorial .bw-results-column{padding:28px}.bws-payback-editorial .bw-wrap{padding-top:52px}.bws-payback-editorial .bw-hero{margin-bottom:36px}}\n@media(max-width:620px){.bws-payback-editorial .bw-wrap{width:calc(100% - 28px);padding:38px 0 64px}.bws-payback-editorial h1{font-size:39px;line-height:1.02}.bws-payback-editorial .bw-intro .bw-opening{font-size:18px;line-height:1.5;margin-top:24px}.bws-payback-editorial .bw-intro p{font-size:16px;line-height:1.55}.bws-payback-editorial .bw-hero{margin-bottom:34px}.bws-payback-editorial .bw-input-panel{padding:22px;grid-template-columns:minmax(0,1fr)}.bws-payback-editorial .bw-period-settings,.bws-payback-editorial .bw-costs-group,.bws-payback-editorial .bw-platform{grid-template-columns:minmax(0,1fr)}.bws-payback-editorial .bw-section-heading{gap:16px}.bws-payback-editorial .bw-section-heading h2{font-size:24px}.bws-payback-editorial .bw-section-heading>div{gap:10px}.bws-payback-editorial .bw-section-heading .bw-text-button{max-width:78px;line-height:1.35}.bws-payback-editorial .bw-field{margin-bottom:20px}.bws-payback-editorial .bw-results-column{padding:22px}.bws-payback-editorial .bw-main-result{font-size:32px}.bws-payback-editorial .bw-panel h2{font-size:27px}.bws-payback-editorial .bw-review{padding:32px 22px 28px;margin-top:28px}.bws-payback-editorial .bw-review p{font-size:17px}.bws-payback-editorial .bw-review .bw-support{font-size:14px}.bws-payback-editorial .bw-method-grid{grid-template-columns:minmax(0,1fr);gap:24px}.bws-payback-editorial .bw-method,.bws-payback-editorial .bw-questions{margin-top:56px}.bws-payback-editorial .bw-question>summary{font-size:19px;line-height:1.3;min-height:68px;gap:20px}.bws-payback-editorial .bw-answer{padding-right:22px}.bws-payback-editorial .bw-ai-picker{margin-top:2px}.bws-payback-editorial .bw-help-button{min-width:24px;min-height:24px}.bws-payback-editorial .bw-date-range{grid-template-columns:minmax(0,1fr)}}\n@media(prefers-reduced-motion:reduce){.bws-payback-editorial *{scroll-behavior:auto!important;transition:none!important}}\n\n@media(max-width:620px){.bws-payback-editorial .bw-field-label,.bws-payback-editorial .bw-field>label,.bws-payback-editorial .bw-field>div:first-child>label{min-height:24px}.bws-payback-editorial .bw-questions{padding-top:26px}.bws-payback-editorial .bw-questions h2{font-size:32px}.bws-payback-editorial .bw-review h2{font-size:34px}}\n@media(pointer:coarse){.bws-payback-editorial .bw-help-button{min-width:44px;min-height:44px}}\n`;const cacRefinementCSS=\"\";export function Shell({children,style,className=\"\"}){return /*#__PURE__*/_jsxs(\"section\",{className:`bws-payback-editorial ${className}`,style:style,\"data-design-version\":DESIGN_VERSION,children:[/*#__PURE__*/_jsx(\"style\",{children:calculatorCSS+cacRefinementCSS+\"\\n/* Scoped cross-tool consistency; no calculation or integration changes. */\\n.bws-payback-editorial input,.bws-payback-editorial select,.bws-payback-editorial textarea{font-weight:400!important}\\n.bws-payback-editorial label{font-weight:500}\\n.bws-payback-editorial .bw-hint{font-weight:400}\\n.bws-payback-editorial input[list]::-webkit-calendar-picker-indicator{opacity:0}\\n.bws-payback-editorial label input,.bws-payback-editorial label select,.bws-payback-editorial label textarea{font-weight:400!important}\\n.bws-payback-editorial select,.bws-payback-editorial input[list]{appearance:none!important;-webkit-appearance:none!important;padding-right:38px!important;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%)!important;background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%!important;background-size:6px 6px,6px 6px!important;background-repeat:no-repeat!important}\\n.bws-payback-editorial .bws-tool-difference{margin:40px 0 0;padding-top:24px;border-top:1px solid #c9c9c5;color:inherit}\\n.bws-payback-editorial .bws-tool-difference h2{font-size:28px;font-weight:400;line-height:1.15;letter-spacing:-.02em;margin:0 0 12px}\\n.bws-payback-editorial .bws-tool-difference ul{margin:0;padding-left:22px;font-size:16px;line-height:1.55}\\n.bws-payback-editorial .bws-tool-difference li+li{margin-top:12px}\\n@media(max-width:620px){.bws-payback-editorial .bw-action-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.bws-payback-editorial .bw-action-row>button{width:100%!important;min-width:0!important;margin:0!important;min-height:48px;white-space:normal}.bws-payback-editorial .bw-action-row>:not(button){grid-column:1 / -1}}\\n\\n.bws-payback-editorial .bw-sidekick-actions>button,.bws-payback-editorial .bw-sidekick-actions>a{background:#fff!important;color:#151515!important;border:1px solid #151515!important;min-height:48px}\\n\"}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-wrap\",children:children})]});}export function Hero({title,opening,support}){return /*#__PURE__*/_jsxs(\"header\",{className:\"bw-hero\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"bw-eyebrow\",children:\"FREE TOOL\"}),/*#__PURE__*/_jsx(\"h1\",{children:title}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-intro\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"bw-opening\",children:opening}),support]})]});}export function Help({label,children,showAll=false,id:externalId}){const generatedId=React.useId(),id=externalId||generatedId,[hover,setHover]=React.useState(false),[focus,setFocus]=React.useState(false),[pinned,setPinned]=React.useState(false);const open=showAll||hover||focus||pinned;return /*#__PURE__*/_jsxs(\"span\",{className:\"bw-help\",onMouseEnter:()=>setHover(true),onMouseLeave:()=>setHover(false),onFocus:()=>setFocus(true),onBlur:e=>{if(!e.currentTarget.contains(e.relatedTarget)){setFocus(false);setPinned(false);}},onKeyDown:e=>{if(e.key===\"Escape\"){setPinned(false);setHover(false);setFocus(false);e.stopPropagation();}},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-help-button\",\"aria-label\":`Help: ${label}`,\"aria-expanded\":open,\"aria-controls\":id,onClick:()=>setPinned(v=>!v),children:\"ⓘ\"}),/*#__PURE__*/_jsx(\"span\",{id:id,className:\"bw-help-text\",role:\"note\",hidden:!open,children:children})]});}export function Field({label,value,onChange,unit,hint,help,showAll,error,integer=false,wide=false}){const id=React.useId();return /*#__PURE__*/_jsxs(\"div\",{className:`bw-field ${wide?\"bw-row-wide\":\"\"} ${showAll?\"bw-inline-help\":\"\"}`,children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-field-label\",children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:id,children:label}),help&&/*#__PURE__*/_jsx(Help,{label:label,showAll:showAll,id:id+\"-help\",children:help})]}),/*#__PURE__*/_jsx(\"span\",{className:\"bw-hint\",id:id+\"-hint\",children:hint})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-input\",children:[/*#__PURE__*/_jsx(\"input\",{id:id,type:\"text\",inputMode:integer?\"numeric\":\"decimal\",value:value,onChange:e=>onChange(e.target.value),\"aria-invalid\":!!error,\"aria-describedby\":id+\"-hint\"+(help?\" \"+id+\"-help\":\"\")+(error?\" \"+id+\"-error\":\"\"),autoComplete:\"off\",spellCheck:false}),unit&&/*#__PURE__*/_jsx(\"span\",{className:\"bw-unit\",children:unit})]}),error&&/*#__PURE__*/_jsx(\"span\",{id:id+\"-error\",className:\"bw-field-error\",children:error})]});}export function SelectField({label,value,onChange,hint,children}){const id=React.useId();return /*#__PURE__*/_jsxs(\"div\",{className:\"bw-field\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:id,children:label}),hint&&/*#__PURE__*/_jsx(\"span\",{id:id+\"-hint\",className:\"bw-hint\",children:hint})]}),/*#__PURE__*/_jsx(\"select\",{id:id,className:\"bw-select\",value:value,onChange:e=>onChange(e.target.value),\"aria-describedby\":hint?id+\"-hint\":undefined,children:children})]});}export function CurrencyPicker({value,onChange,note}){const id=React.useId(),[search,setSearch]=React.useState(value),[invalid,setInvalid]=React.useState(false);React.useEffect(()=>setSearch(value),[value]);const update=v=>{setSearch(v);const code=v.trim().toUpperCase().match(/(?:^|\\()([A-Z]{3})\\)?$/)?.[1];if(code&&CURRENCY_CODES.has(code)){onChange(code);setSearch(code);setInvalid(false);}};const name=CURRENCIES.find(c=>c.code===value)?.name||value;return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-field\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:id,children:\"Currency\"}),/*#__PURE__*/_jsx(\"span\",{className:\"bw-hint\",id:id+\"-hint\",children:\"Search by name or code.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-input bw-currency-input\",children:[/*#__PURE__*/_jsx(\"input\",{id:id,type:\"search\",list:id+\"-currencies\",value:search,onChange:e=>update(e.target.value),onBlur:()=>{if(search!==value){setSearch(value);setInvalid(true);}},\"aria-describedby\":id+\"-hint\",\"aria-label\":\"Currency — search by name or code\",autoComplete:\"off\"}),/*#__PURE__*/_jsx(\"datalist\",{id:id+\"-currencies\",children:CURRENCIES.map(c=>/*#__PURE__*/_jsx(\"option\",{value:`${c.name} (${c.code})`,children:c.code},c.code))})]})]}),/*#__PURE__*/_jsxs(\"p\",{className:\"bw-support\",children:[name,\" (\",value,\"). \",note]}),invalid&&/*#__PURE__*/_jsxs(\"p\",{className:\"bw-support\",role:\"status\",children:[\"Choose a currency from the list. Your selection is still\",\" \",value,\".\"]})]});}export function Disclosure({title,children}){return /*#__PURE__*/_jsxs(\"details\",{className:\"bw-disclosure\",children:[/*#__PURE__*/_jsxs(\"summary\",{children:[/*#__PURE__*/_jsx(\"span\",{children:title}),/*#__PURE__*/_jsx(\"span\",{className:\"bw-toggle\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-disclosure-body\",children:children})]});}export async function copyText(text){if(!navigator.clipboard?.writeText)throw Error(\"copy_unavailable\");await navigator.clipboard.writeText(text);}export function PromptHelp({title,prompt,url}){const[status,setStatus]=React.useState(\"\");return /*#__PURE__*/_jsxs(Disclosure,{title:title,children:[/*#__PURE__*/_jsx(\"p\",{children:\"Ask Sidekick for the figures it can find. Add costs recorded outside Shopify yourself.\"}),/*#__PURE__*/_jsx(\"textarea\",{className:\"bw-prompt\",readOnly:true,\"aria-label\":\"Shopify Sidekick prompt\",value:prompt}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-buttons bw-sidekick-actions\",style:{marginTop:12},children:[/*#__PURE__*/_jsx(\"button\",{className:\"bw-button\",type:\"button\",onClick:()=>copyText(prompt).then(()=>setStatus(\"Prompt copied.\")).catch(()=>setStatus(\"Select the prompt above and copy it.\")),children:\"Copy\"}),/*#__PURE__*/_jsx(SidekickOpenButton,{onClick:()=>{copyText(prompt).then(()=>setStatus(\"Prompt copied — paste it into Sidekick.\")).catch(()=>setStatus(\"Select and copy the prompt above, then paste it into Sidekick.\"));}})]}),/*#__PURE__*/_jsx(\"p\",{style:{fontWeight:500,marginTop:12},children:\"Paste the copied text into Shopify Sidekick.\"}),status&&/*#__PURE__*/_jsx(\"p\",{role:\"status\",className:\"bw-support\",children:status})]});}export function Metrics({rows}){return /*#__PURE__*/_jsx(\"dl\",{className:\"bw-metrics\",children:rows.map((r,i)=>/*#__PURE__*/_jsxs(\"div\",{className:\"bw-metric\",children:[/*#__PURE__*/_jsx(\"dt\",{children:r.label}),/*#__PURE__*/_jsx(\"dd\",{className:r.tone?`bw-metric-${r.tone}`:undefined,children:r.value})]},i))});}export function Review({href,onClick,secondary}){return /*#__PURE__*/_jsxs(\"section\",{className:\"bw-review\",\"aria-labelledby\":\"bw-review-title\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"bw-eyebrow\",children:\"RESULT REVIEW\"}),/*#__PURE__*/_jsx(\"h2\",{id:\"bw-review-title\",children:\"What is making your CAC harder to recover?\"}),/*#__PURE__*/_jsx(\"p\",{children:\"High acquisition costs, low margins and fewer repeat purchases can lead to the same result. In a free 25-minute review, we’ll help you understand what your numbers show and what to look at next.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-review-actions\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"bw-button bw-button-primary\",href:href,onClick:onClick,children:\"Review My Payback Economics\"}),/*#__PURE__*/_jsx(\"p\",{className:\"bw-support\",children:\"Free 25-minute review. You decide what to share.\"}),secondary]})]});}export function Questions({items}){return /*#__PURE__*/_jsxs(\"section\",{className:\"bw-questions\",\"aria-labelledby\":\"bw-questions-title\",children:[/*#__PURE__*/_jsx(\"h2\",{id:\"bw-questions-title\",children:\"Questions & Answers\"}),items.map((q,i)=>/*#__PURE__*/_jsxs(\"details\",{className:\"bw-question\",children:[/*#__PURE__*/_jsxs(\"summary\",{children:[/*#__PURE__*/_jsx(\"span\",{children:q.question}),/*#__PURE__*/_jsx(\"span\",{className:\"bw-toggle\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-answer\",children:q.answer})]},i))]});}export const AI_ICON_PATHS={ChatGPT:\"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z\",Claude:\"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z\",Grok:\"M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815\"};export function ActionBar({valid,onReset,onCopy,getAIText,onAI}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bw-action-row\",\"aria-label\":\"Result actions\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-button\",disabled:!valid,onClick:onCopy,children:\"Copy results\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-button\",onClick:onReset,children:\"Reset example\"}),/*#__PURE__*/_jsx(AIShare,{valid:valid,getText:getAIText,onShare:onAI})]});}const base=\"https://nsxcwdfcmiujuqjdmfoz.supabase.co/functions/v1/\";const reviewURL=\"https://cal.com/brandworldsstudio/tool-result-review?tool=CAC%20Payback%20Calculator&utm_source=brandworldsstudio&utm_medium=free_tool&utm_campaign=result_review&utm_content=customer-payback\";// Both URLs share the same tool identity and saved-session keys.\nfunction currentPaybackPath(){const path=typeof location===\"undefined\"?\"\":location.pathname.replace(/\\/+$/,\"\");return path===\"/tools/customer-payback-check\"?path:\"/customer-payback-check\";}const cacheKey=\"bw_payback_v3_draft_\";const fresh=(p={})=>({...EXAMPLE_PLATFORM,...p,id:typeof crypto!==\"undefined\"?crypto.randomUUID():Math.random().toString(36)});async function post(path,body){const r=await fetch(base+path,{method:\"POST\",headers:{\"content-type\":\"application/json\"},body:JSON.stringify(body)});const d=await r.json().catch(()=>({}));if(!r.ok)throw Error(d.error||\"request_failed\");return d;}const orderPrompt=`Brand Worlds — Customer Payback input checklist\nHelp me gather the following inputs for the Brand Worlds Customer Payback Calculator.\nFor the same completed reporting period, show average net product sales per order after discounts and refunds, excluding tax and customer-paid shipping. Show average items per order and the average recorded product cost per item for those orders. State how refunded items and missing product costs are handled. Show shipping, packing, fulfilment and payment fees per order only where these costs are recorded. Separate percentage payment fees from fixed fees. Do not guess missing costs or include advertising or fixed overhead. List the dates, source reports and any missing data so I can check the figures before using them in a CAC payback calculator.`;const monthlyPrompt=`Brand Worlds — Customer Payback input checklist\nHelp me gather the following inputs for the Brand Worlds Customer Payback Calculator.\nFor one group of newly acquired customers and a stated number of months after their first purchase, show total net product sales less recorded product, shipping, fulfilment, payment and applicable commission costs. Include every customer in the group, including those who never bought again. Divide this contribution by the original customer count and the months covered to find average monthly contribution per customer. Exclude advertising and fixed overhead. State the acquisition dates, observation dates, customer count, missing costs and report sources. Do not guess missing data or call this observed CAC payback.`;const sidekick=(_shortcut,_prompt)=>\"https://admin.shopify.com/sidekick\";function answer(p,r){if(p.result_state===\"not_recoverable\")return\"CAC cannot be recovered\";if(p.cac_amount===0)return\"No CAC to recover\";return r.tab===\"months\"?`${conciseNumber(p.payback_months)} months`:`${p.payback_orders_rounded_up} ${p.payback_orders_rounded_up===1?\"order\":\"orders\"}`;}function RecoveryBars({result}){const contribution=(result.tab===\"months\"?result.monthly_contribution:result.first_order_contribution)||0;const windowLabel=`${conciseNumber(result.comparison_units)} ${result.tab===\"months\"?result.comparison_units===1?\"month\":\"months\":result.comparison_units===1?\"order\":\"orders\"}`;const colours={positive:\"#c7f2d9\",warning:\"#e8c584\",negative:\"#ffd0ca\",neutral:\"#bdbdb9\"};return /*#__PURE__*/_jsxs(\"section\",{className:\"bw-recovery\",\"aria-label\":\"CAC recovery by platform\",children:[/*#__PURE__*/_jsx(\"h3\",{children:\"CAC recovery by platform\"}),/*#__PURE__*/_jsxs(\"p\",{className:\"bw-support\",children:[result.tab===\"months\"?`Estimated contribution after ${windowLabel}, using the same monthly average.`:`Contribution from ${windowLabel}, including the first order.`,\" \",\"The goal is to cover 100% of each platform’s CAC.\"]}),result.scenarios.map((p,i)=>{const progress=recoveryProgress(contribution,p.cac_amount,result.comparison_units);const pct=progress.percent;const width=pct===null?0:Math.max(0,Math.min(100,pct));const status=pct===null?\"No CAC to recover\":pct<0?\"Loss — no CAC covered\":pct>=100?\"CAC covered\":`${conciseNumber(pct)}% of CAC covered`;return /*#__PURE__*/_jsxs(\"div\",{className:\"bw-recovery-row\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-recovery-label\",children:[/*#__PURE__*/_jsx(\"span\",{children:p.platform_label}),/*#__PURE__*/_jsx(\"strong\",{children:pct===null?\"No CAC\":`${conciseNumber(pct)}%`})]}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-recovery-track\",role:\"img\",\"aria-label\":`${p.platform_label}: ${status}. Contribution ${money(progress.earned,result.currency)} versus CAC ${money(p.cac_amount,result.currency)}.`,children:/*#__PURE__*/_jsx(\"span\",{className:\"bw-recovery-fill\",style:{width:`${width}%`,background:colours[progress.tone]}})}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-recovery-caption\",children:[/*#__PURE__*/_jsxs(\"span\",{children:[\"Contribution\",\" \",money(progress.earned,result.currency)]}),/*#__PURE__*/_jsxs(\"span\",{children:[\"CAC \",money(p.cac_amount,result.currency)]})]}),/*#__PURE__*/_jsxs(\"p\",{className:\"bw-support\",style:{marginTop:4,color:progress.tone===\"warning\"?\"#e8c584\":colours[progress.tone]},children:[status,pct!==null&&pct>=0&&pct<100?` — ${money(progress.remaining,result.currency)} still to recover.`:\"\"]})]},i);}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-recovery-legend\",\"aria-label\":\"Coverage colour key\",children:[/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"i\",{style:{background:colours.negative},\"aria-hidden\":\"true\"}),\"Below 50%\"]}),/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"i\",{style:{background:colours.warning},\"aria-hidden\":\"true\"}),\"50% to below 100%\"]}),/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"i\",{style:{background:colours.positive},\"aria-hidden\":\"true\"}),\"100% or more\"]})]}),/*#__PURE__*/_jsx(\"p\",{className:\"bw-support\",style:{marginTop:10},children:\"These colours show progress toward covering CAC. They are not industry benchmarks. Bars stop at 100%; the figures still show any amount above it.\"})]});}function ReportingPeriod({shared,onChange,error}){const preset=shared.report_preset||\"Last 90 days\";const updateDate=(key,value)=>onChange({[key]:value});return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(SelectField,{label:\"Reporting period\",value:preset,onChange:value=>onChange({report_preset:value,report_period:value,...value===\"Custom dates\"?{report_start:\"\",report_end:\"\"}:reportingRange(value)}),hint:\"Use the same dates for spend and new customers.\",children:[!REPORT_PRESETS.includes(preset)&&/*#__PURE__*/_jsx(\"option\",{value:preset,children:shared.report_period||\"Saved period\"}),REPORT_PRESETS.map(p=>/*#__PURE__*/_jsx(\"option\",{value:p,children:p},p))]}),preset===\"Custom dates\"?/*#__PURE__*/_jsx(\"div\",{className:\"bw-date-range\",children:[[\"report_start\",\"Start date\"],[\"report_end\",\"End date\"]].map(([key,label])=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:`bw-${key}`,children:label}),/*#__PURE__*/_jsx(\"input\",{id:`bw-${key}`,type:\"date\",value:shared[key],onInput:e=>updateDate(key,e.currentTarget.value),onChange:e=>updateDate(key,e.target.value),\"aria-invalid\":!!error(key),\"aria-describedby\":error(key)?`bw-${key}-error`:undefined}),error(key)&&/*#__PURE__*/_jsx(\"p\",{className:\"bw-field-error\",id:`bw-${key}-error`,children:error(key)})]},key))}):shared.report_start&&shared.report_end?/*#__PURE__*/_jsxs(\"p\",{className:\"bw-support\",children:[shared.report_start,\" to \",shared.report_end]}):/*#__PURE__*/_jsx(\"p\",{className:\"bw-support\",children:\"Choose a period to set dates, or choose Custom dates.\"})]});}function Summary({result,compact=false}){const p=result.scenarios[0];return /*#__PURE__*/_jsxs(\"div\",{className:\"bw-panel\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"bw-result-topline\",children:result.tab===\"months\"?\"Payback period (months)\":\"Payback in orders\"}),/*#__PURE__*/_jsxs(\"h2\",{children:[result.is_example?\"Example results\":\"Your results\",compact&&result.scenarios.length>1?` — ${p.platform_label}`:\"\"]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-headline\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"bw-main-result\",\"data-state\":p.result_state,children:answer(p,result)}),/*#__PURE__*/_jsx(\"p\",{className:\"bw-summary-note\",children:result.tab===\"months\"?\"Estimated time to earn back the cost of one new customer.\":\"Whole orders needed to earn back the cost of one new customer, including their first order.\"})]}),/*#__PURE__*/_jsx(Metrics,{rows:[{label:`${p.platform_label} CAC`,value:money(p.cac_amount,result.currency)},{label:result.tab===\"months\"?\"Monthly contribution per customer\":\"Contribution per order\",value:money((result.tab===\"months\"?result.monthly_contribution:result.first_order_contribution)||0,result.currency)}]}),!compact&&result.scenarios.length>1&&/*#__PURE__*/_jsxs(\"p\",{className:\"bw-support\",style:{marginTop:12},children:[\"The main answer is for \",p.platform_label,\". Each platform’s full result is below.\"]}),!compact&&/*#__PURE__*/_jsx(RecoveryBars,{result:result})]});}function Results({result}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bw-results\",children:[/*#__PURE__*/_jsx(Summary,{result:result}),/*#__PURE__*/_jsxs(\"section\",{className:\"bw-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Platform breakdown\"}),result.scenarios.map((p,i)=>/*#__PURE__*/_jsxs(\"div\",{className:\"bw-platform-result\",children:[/*#__PURE__*/_jsx(\"h3\",{children:p.platform_label}),/*#__PURE__*/_jsx(\"p\",{className:`bw-status ${p.result_state===\"not_recoverable\"?\"bw-status-negative\":p.result_state===\"paid_back_first_order\"||p.cac_amount===0?\"bw-status-positive\":\"\"}`,children:p.result_state===\"not_recoverable\"?\"⚠ Entered costs leave no money to cover CAC.\":p.result_state===\"paid_back_first_order\"?\"✓ Covers CAC in one order.\":p.cac_amount===0?\"✓ No acquisition cost to recover.\":result.tab===\"months\"?\"Estimated from your monthly average.\":\"Repeat orders are needed to cover CAC.\"}),/*#__PURE__*/_jsx(Metrics,{rows:[{label:\"CAC per new customer\",value:money(p.cac_amount,result.currency)},...p.cac_source_type===\"calculated\"?[{label:\"Ad spend\",value:money(p.ad_spend||0,result.currency)},{label:\"New customers\",value:conciseNumber(p.new_customers||0)}]:[],...result.tab===\"months\"?[{label:\"Estimated payback period\",value:p.payback_months===null?\"Not recoverable\":`${conciseNumber(p.payback_months)} months`}]:[{label:\"Equivalent orders\",value:p.payback_orders_exact===null?\"Not recoverable\":conciseNumber(p.payback_orders_exact)},{label:\"Whole orders, including first\",value:p.payback_orders_rounded_up??\"Not recoverable\"},{label:\"More orders after the first\",value:p.additional_orders??\"Not recoverable\"},{label:\"Money after CAC on first order\",value:money(p.first_order_after_cac||0,result.currency),tone:(p.first_order_after_cac||0)<0?\"negative\":\"positive\"}]]})]},i))]}),result.tab===\"orders\"&&/*#__PURE__*/_jsxs(\"section\",{className:\"bw-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Where each order’s money goes\"}),/*#__PURE__*/_jsx(Metrics,{rows:[{label:\"Average order value\",value:money(result.aov||0,result.currency)},...result.cost_breakdown.map(c=>({label:c.label,value:money(c.amount,result.currency)})),{label:\"Contribution before CAC\",value:money(result.first_order_contribution||0,result.currency)},{label:\"Contribution margin\",value:`${conciseNumber(result.contribution_margin||0)}%`}]})]}),/*#__PURE__*/_jsxs(\"section\",{className:\"bw-panel bw-assumptions\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"What these results assume\"}),result.assumptions.map((a,i)=>/*#__PURE__*/_jsx(\"p\",{className:\"bw-support\",children:a},i))]})]});}function EmailChallenge({onToken,onNotice,resetKey}){const el=React.useRef(null);React.useEffect(()=>{let cancelled=false,id,interval;const render=()=>{const api=window.turnstile;if(cancelled||!api||!el.current)return false;try{id=api.render(el.current,{sitekey:\"0x4AAAAAAFJnLYTR7INrMRN1\",action:\"customer_payback_email\",callback:v=>onToken(v),\"expired-callback\":()=>onToken(\"\"),\"error-callback\":()=>{onToken(\"\");onNotice(\"The email check could not load. You can still copy your results.\");}});return true;}catch{return false;}};if(!render()){if(!document.querySelector(\"script[data-bw-turnstile]\")){const s=document.createElement(\"script\");s.src=\"https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit\";s.async=true;s.dataset.bwTurnstile=\"1\";document.head.append(s);}interval=setInterval(()=>{if(render())clearInterval(interval);},250);}return()=>{cancelled=true;clearInterval(interval);try{window.turnstile?.remove(id);}catch{}};},[resetKey]);return /*#__PURE__*/_jsx(\"div\",{ref:el});}/** @framerSupportedLayoutWidth any @framerSupportedLayoutHeight auto @framerIntrinsicWidth 1200 @framerIntrinsicHeight 2200 *//**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1240\n * @framerIntrinsicHeight 3600\n */export default function BWSCACPaybackEditorial(props){const[shared,setShared]=React.useState({...EXAMPLE_SHARED}),[rows,setRows]=React.useState([{...EXAMPLE_PLATFORM,id:\"example-meta\"}]),[edited,setEdited]=React.useState(false),[showHelp,setShowHelp]=React.useState(false),[ready,setReady]=React.useState(false),[restored,setRestored]=React.useState(false),[currencyNote,setCurrencyNote]=React.useState(\"USD is the fallback until country detection finishes. You can change it.\"),[notice,setNotice]=React.useState(\"\"),[fallback,setFallback]=React.useState(\"\"),[emailOpen,setEmailOpen]=React.useState(false),[email,setEmail]=React.useState(\"\"),[challenge,setChallenge]=React.useState(\"\"),[challengeKey,setChallengeKey]=React.useState(0),[sending,setSending]=React.useState(false),[emailNotice,setEmailNotice]=React.useState(\"\");const identity=React.useRef({token:\"\",session:\"\"}),queue=React.useRef(Promise.resolve()),started=React.useRef(false),touched=React.useRef(false),viewed=React.useRef(false),current=React.useRef(null);const checked=calculatePayback(shared,rows,!edited),result=checked.result,key=JSON.stringify([shared,rows,edited]);current.current={shared,rows,edited,key,checked};const event=(type,stage)=>{const p=identity.current.token;if(p)post(\"assessment-event-capture\",{token:p,event_id:crypto.randomUUID(),event_type:type,surface:\"tool\",tool_id:\"customer-payback\",stage,path:currentPaybackPath(),assessment_version:\"tool_v1\",flow_version:FLOW_VERSION}).catch(()=>{});};const save=(snapshot,complete)=>{const id=identity.current;const job=()=>post(\"customer-payback-v2\",{action:\"save\",p:id.token,session_id:id.session,shared:{...snapshot.shared,is_example:!snapshot.edited},scenarios:snapshot.rows.map(({id,...r})=>r),complete});const p=queue.current.catch(()=>{}).then(job);queue.current=p;return p;};React.useEffect(()=>{let cancelled=false;async function boot(){try{const params=new URLSearchParams(location.search),incoming=params.get(\"p\")||\"\";let p=\"\";if(incoming){try{const resolved=await post(\"assessment-journey-resolve\",{p:incoming});if(resolved?.journey_source===\"cold_email\")p=resolved.prospect_token||\"\";}catch{}}if(!p){const init=await post(\"assessment-journey-init\",{existing_token:incoming||null,landing_path:currentPaybackPath(),referrer:document.referrer||null,utm_source:params.get(\"utm_source\"),utm_medium:params.get(\"utm_medium\"),utm_campaign:params.get(\"utm_campaign\"),utm_content:params.get(\"utm_content\")});p=init.journey_token||\"\";}if(!p||cancelled)return;params.set(\"p\",p);history.replaceState({},\"\",location.pathname+\"?\"+params.toString());const sidKey=\"bw_payback_v2_session_\"+p;let sid=localStorage.getItem(sidKey)||crypto.randomUUID();localStorage.setItem(sidKey,sid);identity.current={token:p,session:sid};let restoredInput=null,isEdited=true;const local=localStorage.getItem(cacheKey+p);if(local){try{const d=JSON.parse(local);if((d.version===3||d.version===4)&&d.shared&&Array.isArray(d.rows)&&d.rows.length<=10){restoredInput={shared:d.shared,scenarios:d.rows};isEdited=d.edited===true;}}catch{}}if(!restoredInput){const loaded=await post(\"customer-payback-v2\",{action:\"load\",p,session_id:sid});if(loaded.found){restoredInput=loaded.session.input_snapshot;isEdited=restoredInput.shared?.is_example!==true;}else{const legacy=localStorage.getItem(\"bw_payback_session_\"+p);if(legacy){try{const old=await post(\"customer-payback-capture\",{action:\"load\",p,session_id:legacy});if(old.found&&old.shared)restoredInput={shared:old.shared,scenarios:old.scenarios};}catch{}}}}if(cancelled)return;if(restoredInput&&!touched.current){const s=normalizeShared(restoredInput.shared||restoredInput);setShared({...EXAMPLE_SHARED,...s});const oldRows=restoredInput.scenarios||[];if(oldRows.length)setRows(oldRows.slice(0,10).map(r=>fresh(Object.fromEntries(Object.entries(r).map(([k,v])=>[k,v==null?\"\":String(v)])))));setEdited(isEdited);setRestored(isEdited);setCurrencyNote(\"Currency restored with these figures. Changing it does not convert amounts.\");}else if(!touched.current){const choice=localStorage.getItem(\"bw_calculator_currency\");if(choice){setShared(s=>({...s,currency:choice}));setCurrencyNote(\"Your saved currency choice. Changing it does not convert amounts.\");}else{post(\"customer-payback-v2\",{action:\"location\"}).then(d=>{if(!cancelled&&!touched.current){setShared(s=>({...s,currency:d.currency||\"USD\"}));setCurrencyNote(d.detected?\"Suggested from your country. Changing it does not convert amounts.\":\"USD fallback: country detection was unavailable. You can change it.\");}}).catch(()=>{if(!cancelled)setCurrencyNote(\"USD fallback: country detection was unavailable. You can change it.\");});}}setReady(true);event(\"tool_viewed\",\"calculator\");}catch{if(!cancelled){setReady(true);setNotice(\"You can use the calculator. Saved results are unavailable right now.\");setCurrencyNote(\"USD fallback. You can choose your business currency.\");}}}boot();return()=>{cancelled=true;};},[]);React.useEffect(()=>{if(!ready)return;try{localStorage.setItem(cacheKey+identity.current.token,JSON.stringify({version:4,shared,rows,edited}));}catch{}if(!edited||!identity.current.token)return;const snapshot=current.current,timer=setTimeout(()=>{save(snapshot,!!snapshot.checked.result).then(()=>{if(snapshot.checked.result&&!viewed.current){viewed.current=true;event(\"tool_result_viewed\",\"results\");}}).catch(()=>setNotice(\"Your results are current here, but we could not save them. Copy them to keep a record.\"));},700);return()=>clearTimeout(timer);},[key,ready]);const touch=()=>{touched.current=true;setEdited(true);setRestored(false);setNotice(\"\");setEmailNotice(\"\");if(!started.current){started.current=true;event(\"tool_started\",\"first_input\");}};const change=(k,v)=>{touch();setShared(s=>({...s,[k]:v}));},rowChange=(i,k,v)=>{touch();setRows(rs=>rs.map((r,n)=>n===i?{...r,[k]:v}:r));};const selectTab=tab=>{touched.current=true;setShared(s=>({...s,tab}));setNotice(\"\");setEmailNotice(\"\");setFallback(\"\");};const changeShippingMode=mode=>{touch();setShared(s=>{const aov=Number(s.aov),amount=Number(s.shipping_amount),pct=Number(s.shipping_pct);if(mode===s.shipping_mode)return s;if(s[mode===\"percent\"?\"shipping_amount\":\"shipping_pct\"].trim()!==\"\"&&aov>0&&Number.isFinite(aov)&&Number.isFinite(mode===\"percent\"?amount:pct))return{...s,shipping_mode:mode,...mode===\"percent\"?{shipping_pct:String(amount/aov*100)}:{shipping_amount:String(aov*pct/100)}};return{...s,shipping_mode:mode,...mode===\"percent\"?{shipping_pct:\"\"}:{shipping_amount:\"\"}};});};const error=path=>checked.errors.find(e=>e.path===path)?.message;const field=(k,label,hint,help,unit=shared.currency,integer=false)=>/*#__PURE__*/_jsx(Field,{label:label,value:shared[k],onChange:v=>change(k,v),unit:unit,hint:hint,help:help,showAll:showHelp,error:error(k),integer:integer},k);const copy=async ai=>{if(!result)return;const text=snapshotText(result,checked.input,!!ai);let win=null;if(ai)win=window.open({ChatGPT:\"https://chatgpt.com/\",Claude:\"https://claude.ai/new\",Grok:\"https://grok.com/\"}[ai]||\"\",\"_blank\",\"noopener,noreferrer\");try{await copyText(text);setNotice(ai?`Prompt copied — paste it into your ${ai} chat.`:\"Results copied.\");setFallback(ai?text:\"\");}catch{setFallback(text);setNotice(ai?`Select and copy the prompt below, then paste it into ${ai}.`:\"Select and copy the results below.\");}event(ai?\"tool_ai_share_clicked\":\"tool_copy_clicked\",ai||\"results\");};const reset=()=>{touched.current=true;setShared({...EXAMPLE_SHARED,currency:shared.currency});setRows([fresh()]);setEdited(false);setRestored(false);setFallback(\"\");setNotice(\"Example inputs restored.\");setEmailNotice(\"\");setEmailOpen(false);};const sendEmail=async e=>{e.preventDefault();const snap=current.current;if(!snap.checked.result||!challenge||sending)return;setSending(true);setEmailNotice(\"\");try{const saved=await save(snap,true);if(current.current.key!==snap.key)throw Error(\"changed\");const d=await post(\"customer-payback-v2\",{action:\"email\",...{p:identity.current.token,session_id:identity.current.session},email,turnstile_token:challenge,revision:saved.revision});setEmailNotice(d.already_sent?\"This result was already sent to that address recently.\":\"Your results were sent. Check your inbox.\");}catch(e){setEmailNotice(e.message===\"changed\"||e.message===\"snapshot_changed\"?\"Your figures changed. Check the current result and send it again.\":e.message===\"email_limit_reached\"?\"The email limit has been reached. You can still copy your results.\":e.message===\"challenge_failed\"?\"Please complete the email check and try again.\":\"We could not send your results. You can still copy them.\");}finally{setSending(false);setChallenge(\"\");setChallengeKey(k=>k+1);}};const main=result?/*#__PURE__*/_jsx(Summary,{result:result,compact:true}):/*#__PURE__*/_jsxs(\"div\",{className:\"bw-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Check your inputs\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Fix the fields marked below to see current results.\"})]});return /*#__PURE__*/_jsxs(Shell,{className:\"bw-cac\",style:props.style,children:[/*#__PURE__*/_jsx(Hero,{title:\"CAC Payback Calculator for Ecommerce\",opening:\"How many orders does it take to earn back the cost of a new customer?\",support:/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"p\",{children:\"Use this free CAC payback calculator to compare up to 10 ad platforms. See how many orders cover CAC. You can also estimate your CAC payback period in months.\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Contribution is what a sale leaves after its costs. Those costs include products, shipping, fulfilment and payment fees. This money can pay back CAC: the cost to win a new customer. Fixed bills, such as rent, come later.\"})]})}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-tool\",children:/*#__PURE__*/_jsxs(\"div\",{role:\"tabpanel\",id:\"bw-payback-panel\",\"aria-labelledby\":`bw-tab-${shared.tab}`,children:[/*#__PURE__*/_jsx(\"div\",{className:\"bw-mobile-summary\",children:main}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-grid\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-inputs-column\",children:[/*#__PURE__*/_jsxs(\"section\",{className:\"bw-input-panel\",\"aria-label\":\"Calculator inputs\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-section-heading\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:\"01\"}),/*#__PURE__*/_jsx(\"h2\",{children:shared.tab===\"orders\"?\"Order value and costs\":\"Monthly contribution\"})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-text-button\",\"aria-pressed\":showHelp,onClick:()=>setShowHelp(v=>!v),children:showHelp?\"Hide extra help\":\"Show all help\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-tabs\",role:\"tablist\",\"aria-label\":\"Payback calculation\",children:[[\"orders\",\"Payback in orders\"],[\"months\",\"Payback period (months)\"]].map(([v,l])=>/*#__PURE__*/_jsx(\"button\",{className:\"bw-tab\",id:`bw-tab-${v}`,type:\"button\",role:\"tab\",\"aria-selected\":shared.tab===v,\"aria-controls\":\"bw-payback-panel\",tabIndex:shared.tab===v?0:-1,onClick:()=>selectTab(v),onKeyDown:e=>{if([\"ArrowLeft\",\"ArrowRight\",\"Home\",\"End\"].includes(e.key)){e.preventDefault();const next=e.key===\"Home\"?\"orders\":e.key===\"End\"?\"months\":shared.tab===\"orders\"?\"months\":\"orders\";selectTab(next);document.getElementById(`bw-tab-${next}`)?.focus();}},children:l},v))}),restored&&/*#__PURE__*/_jsx(\"p\",{className:\"bw-notice\",role:\"status\",children:\"Your saved figures have been restored.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-period-settings\",children:[/*#__PURE__*/_jsx(CurrencyPicker,{value:shared.currency,note:currencyNote,onChange:v=>{change(\"currency\",v);try{localStorage.setItem(\"bw_calculator_currency\",v);}catch{}setCurrencyNote(\"Your choice. Changing currency does not convert amounts.\");}}),/*#__PURE__*/_jsx(ReportingPeriod,{shared:shared,onChange:v=>{touch();setShared(s=>({...s,...v}));},error:error})]}),shared.tab===\"orders\"?/*#__PURE__*/_jsxs(_Fragment,{children:[field(\"aov\",\"Average order value\",\"Sales per order, after discounts and refunds.\",\"Use net product sales divided by orders for the same period. Exclude tax and customer-paid shipping. Make sure product costs use the same order and refund basis.\"),/*#__PURE__*/_jsxs(SelectField,{label:\"Enter costs using\",value:shared.cost_mode,onChange:v=>change(\"cost_mode\",v),children:[/*#__PURE__*/_jsx(\"option\",{value:\"direct\",children:\"Order costs\"}),/*#__PURE__*/_jsx(\"option\",{value:\"margin\",children:\"Contribution margin\"})]}),shared.cost_mode===\"margin\"?field(\"cm2_pct\",\"Contribution margin\",\"Share of sales left after order costs.\",\"Contribution margin is the percentage left after product, shipping, fulfilment, payment and applicable commission costs, before CAC and overhead. Gross margin usually leaves out some of these costs, so do not use it here.\",\"%\"):/*#__PURE__*/_jsxs(_Fragment,{children:[field(\"units_per_order\",\"Average items per order\",\"Items sold divided by orders.\",\"An average can be a decimal, such as 1.5 items. Use the same orders and refund basis as your order value.\",\"items\"),field(\"avg_product_cost_item\",\"Product cost per item\",\"Average cost of one item sold.\",\"Include the costs needed to get the product ready for sale, such as manufacturing and inbound freight. Use your weighted average across the items sold. Do not include the same cost again below.\"),/*#__PURE__*/_jsxs(SelectField,{label:\"Shipping cost entry\",value:shared.shipping_mode,onChange:changeShippingMode,children:[/*#__PURE__*/_jsx(\"option\",{value:\"amount\",children:\"Amount per order\"}),/*#__PURE__*/_jsx(\"option\",{value:\"percent\",children:\"Percentage of sales\"})]}),shared.shipping_mode===\"amount\"?field(\"shipping_amount\",\"Shipping and fulfilment\",\"Your cost to pack and send one order.\",\"Include postage, packing and fulfilment paid by your business, less shipping paid by the customer if it was excluded from order value. Enter the average across all orders, including free-shipping orders.\"):field(\"shipping_pct\",\"Shipping and fulfilment\",\"Share of order value used for shipping.\",\"This percentage replaces the amount per order; it is not an extra cost. The dollar equivalent is shown in the cost breakdown.\",\"%\"),field(\"processing_pct\",\"Payment fee\",\"Percentage charged on the sale.\",\"Enter your payment provider’s percentage fee. This estimate applies it to product order value. If fees are charged on tax or shipping too, include the difference in Other order costs.\",\"%\"),field(\"processing_fixed\",\"Fixed payment fee\",\"Optional flat fee per order.\",\"Some payment providers also charge a flat fee per transaction, such as 0.3. Enter it here once per order. Leave zero if it does not apply.\"),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-group bw-costs-group\",children:[/*#__PURE__*/_jsx(\"h3\",{children:\"Other costs, if they apply\"}),field(\"commission_pct\",\"Sales or affiliate commission\",\"Optional percentage of sales.\",\"Applied to the product order value after discounts and refunds. Include commissions paid on each sale. If you already included this cost in CAC, do not enter it again here.\",\"%\"),field(\"commission_fixed\",\"Fixed commission\",\"Optional amount per order.\",\"Enter only a commission paid on each order. Fixed agency retainers, salaries and other regular bills are overhead and are excluded.\"),field(\"other_order_cost\",\"Other order costs\",\"Optional costs that change with each sale.\",\"Enter other per-order costs not included above, such as return handling spread across all orders. Do not include advertising already counted in CAC or regular business bills.\")]})]}),/*#__PURE__*/_jsx(PromptHelp,{title:\"Find order value and costs in Shopify\",prompt:orderPrompt,url:sidekick(\"brand-worlds-ttm-cogs\",orderPrompt)})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(SelectField,{label:\"Enter monthly contribution\",value:shared.monthly_mode,onChange:v=>change(\"monthly_mode\",v),children:[/*#__PURE__*/_jsx(\"option\",{value:\"entered\",children:\"Average per customer\"}),/*#__PURE__*/_jsx(\"option\",{value:\"cohort\",children:\"Customer group totals\"})]}),shared.monthly_mode===\"entered\"?field(\"monthly_contribution\",\"Monthly contribution per customer\",\"Average across all newly acquired customers.\",\"Contribution is sales minus the costs of those sales, before CAC and overhead. Include people who never buy again in the average. Use a stated observation period after acquisition, not the average only among active or repeat buyers.\"):/*#__PURE__*/_jsxs(_Fragment,{children:[field(\"cohort_contribution\",\"Group’s total contribution\",\"Sales minus order costs over the period.\",\"Use one group of new customers followed for the same number of months after acquisition. Include all their purchases and applicable order costs. Exclude CAC and fixed overhead.\"),field(\"cohort_customers\",\"New customers in the group\",\"Include customers who never buy again.\",\"Use the original number of unique new paying customers. Do not shrink the count to only repeat buyers.\",\"customers\",true),field(\"cohort_months\",\"Months covered\",\"Time each customer group was followed.\",\"Use a completed observation period after acquisition, such as six months. Do not mix customers with very different follow-up times without adjusting the data.\",\"months\")]}),/*#__PURE__*/_jsx(PromptHelp,{title:\"Find monthly contribution in Shopify\",prompt:monthlyPrompt,url:sidekick(\"brand-worlds-ttm-cm2-proxy\",monthlyPrompt)})]})]}),/*#__PURE__*/_jsxs(\"section\",{className:\"bw-input-panel bw-comparison-panel\",\"aria-label\":\"Compare CAC recovery\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"bw-section-heading\",children:/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:\"02\"}),/*#__PURE__*/_jsx(\"h2\",{children:\"Compare CAC recovery\"})]})}),shared.tab===\"months\"?field(\"compare_months\",\"Months to compare\",\"Window used for the recovery bars.\",\"This is an estimated window. Monthly contribution is assumed to stay the same. It does not change the CAC payback formula.\",\"months\"):field(\"compare_orders\",\"Orders to compare\",\"Count includes the first order.\",\"Compare how much CAC these orders cover on each platform. This assumes every order leaves the same contribution. It does not predict repeat purchases.\",\"orders\",true)]}),/*#__PURE__*/_jsxs(\"section\",{className:\"bw-input-panel bw-platforms-panel\",\"aria-label\":\"Advertising platforms\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"bw-section-heading\",children:/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:\"03\"}),/*#__PURE__*/_jsx(\"h2\",{children:\"Advertising platforms\"})]})}),/*#__PURE__*/_jsx(\"p\",{className:\"bw-support\",children:\"Enter CAC, or calculate it from ad spend and new customers.\"}),rows.map((r,i)=>/*#__PURE__*/_jsxs(\"div\",{className:\"bw-platform\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-platform-head\",children:[/*#__PURE__*/_jsxs(\"h4\",{children:[\"Platform \",i+1]}),rows.length>1&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-text-button\",\"aria-label\":`Remove platform ${i+1}`,onClick:()=>{touch();setRows(v=>v.filter((_,n)=>n!==i));},children:\"Remove\"})]}),/*#__PURE__*/_jsx(SelectField,{label:\"Platform\",value:r.platform_code,onChange:v=>rowChange(i,\"platform_code\",v),children:Object.entries(PLATFORM_NAMES).map(([v,l])=>/*#__PURE__*/_jsx(\"option\",{value:v,children:l},v))}),error(`platforms.${i}.platform_code`)&&/*#__PURE__*/_jsx(\"p\",{className:\"bw-field-error\",children:error(`platforms.${i}.platform_code`)}),r.platform_code===\"other\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"bw-field\",children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:`bw-custom-${i}`,children:\"Platform name\"}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-input\",children:/*#__PURE__*/_jsx(\"input\",{id:`bw-custom-${i}`,value:r.platform_label,maxLength:80,onChange:e=>rowChange(i,\"platform_label\",e.target.value)})})]}),/*#__PURE__*/_jsxs(SelectField,{label:\"CAC entry\",value:r.cac_source_type,onChange:v=>rowChange(i,\"cac_source_type\",v),children:[/*#__PURE__*/_jsx(\"option\",{value:\"native_metric\",children:\"Known CAC\"}),/*#__PURE__*/_jsx(\"option\",{value:\"calculated\",children:\"Ad spend / new customers\"})]}),(r.cac_source_type!==\"calculated\"?[{key:\"cac_amount\",label:\"Customer acquisition cost\",hint:\"Cost to win one new paying customer.\",unit:shared.currency,help:\"Use a known new-customer CAC. Cost per purchase is only CAC when the purchases are from new customers.\"}]:[{key:\"ad_spend\",label:\"Ad spend\",hint:\"Amount spent during the selected period.\",unit:shared.currency,help:\"Include the advertising spend for this platform and these dates. Do not subtract it again from contribution.\"},{key:\"new_customers\",label:\"New customers\",hint:\"Unique first-time paying customers.\",unit:\"customers\",help:\"Use customers won by this platform during the same dates. Orders, leads and repeat purchases are not new customers.\"}]).map(f=>/*#__PURE__*/_jsx(Field,{label:f.label,value:String(r[f.key]??\"\"),onChange:v=>rowChange(i,f.key,v),unit:f.unit,hint:f.hint,help:f.help,showAll:showHelp,integer:f.key===\"new_customers\",error:error(`platforms.${i}.${f.key}`)},f.key)),/*#__PURE__*/_jsx(Disclosure,{title:`Find your ${PLATFORM_NAMES[r.platform_code]||\"platform\"} CAC`,children:PLATFORM_REPORTS[r.platform_code]?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"p\",{children:[\"Open your report, choose matching dates and look for\",\" \",PLATFORM_REPORTS[r.platform_code].metric,\".\"]}),/*#__PURE__*/_jsx(\"p\",{children:\"Use that figure as CAC only if the purchases are from unique new paying customers. Otherwise, enter ad spend and a new-customer count from your store or attribution report.\"}),r.platform_code===\"amazon\"&&/*#__PURE__*/_jsx(\"p\",{children:\"Amazon’s new-to-brand orders use a 12-month purchase lookback. They are not a count of unique first-time customers. Spend per new-to-brand order is a proxy, not exact customer CAC.\"}),/*#__PURE__*/_jsxs(\"a\",{href:PLATFORM_REPORTS[r.platform_code].url,target:\"_blank\",rel:\"noopener noreferrer\",children:[\"Open\",\" \",PLATFORM_NAMES[r.platform_code],\" \",\"reporting\"]}),/*#__PURE__*/_jsx(\"p\",{className:\"bw-support\",children:\"You may need to sign in and select your account. This link does not set dates or filter your report.\"})]}):/*#__PURE__*/_jsx(\"p\",{children:r.platform_code===\"blended\"?\"Divide spend across the included channels by unique new customers across those same channels and dates. Count each customer once; do not add platform-attributed customer counts.\":\"Use your own campaign report for spend and a matching count of unique new paying customers. Enter a clear platform name.\"})})]},r.id||i)),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"bw-button\",style:{marginTop:16},disabled:rows.length>=10,onClick:()=>{touch();const code=Object.keys(PLATFORM_NAMES).find(k=>!rows.some(r=>r.platform_code===k))||\"other\";setRows(v=>[...v,fresh({platform_code:code,cac_amount:\"\",ad_spend:\"\",new_customers:\"\"})]);},children:[\"Add platform (\",rows.length,\"/10)\"]})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-results-column\",children:[result?/*#__PURE__*/_jsx(Results,{result:result}):/*#__PURE__*/_jsxs(\"section\",{className:\"bw-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Check your inputs\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Fix the marked fields to see current results.\"}),/*#__PURE__*/_jsx(\"p\",{className:\"bw-support\",children:\"Results update as you type. Incomplete figures are not shown as a current answer.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-result-actions\",children:[/*#__PURE__*/_jsx(ActionBar,{valid:!!result,onReset:reset,onCopy:()=>copy(),getAIText:()=>result?snapshotText(result,checked.input,true):\"\",onAI:provider=>event(\"tool_ai_share_clicked\",provider)}),notice&&/*#__PURE__*/_jsx(\"p\",{className:\"bw-notice\",role:\"status\",children:notice}),fallback&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"textarea\",{readOnly:true,className:\"bw-prompt\",\"aria-label\":\"Results or AI prompt to copy\",value:fallback}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-buttons\",children:[/*#__PURE__*/_jsx(\"a\",{href:\"https://chatgpt.com/\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"ChatGPT\"}),/*#__PURE__*/_jsx(\"a\",{href:\"https://claude.ai/new\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"Claude\"}),/*#__PURE__*/_jsx(\"a\",{href:\"https://grok.com/\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"Grok\"})]})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bw-text-button\",disabled:!result||!identity.current.token,onClick:()=>setEmailOpen(v=>!v),\"aria-expanded\":emailOpen,children:\"Get your results by email\"}),emailOpen&&/*#__PURE__*/_jsxs(\"form\",{className:\"bw-email-form\",onSubmit:sendEmail,children:[/*#__PURE__*/_jsx(\"p\",{className:\"bw-support\",children:\"Email this result only. This does not sign you up for marketing.\"}),/*#__PURE__*/_jsx(\"label\",{htmlFor:\"bw-result-email\",children:\"Email address\"}),/*#__PURE__*/_jsx(\"input\",{id:\"bw-result-email\",className:\"bw-email-input\",type:\"email\",autoComplete:\"email\",value:email,required:true,maxLength:254,onChange:e=>setEmail(e.target.value)}),/*#__PURE__*/_jsx(EmailChallenge,{onToken:setChallenge,onNotice:setEmailNotice,resetKey:challengeKey}),/*#__PURE__*/_jsx(\"button\",{className:\"bw-button\",type:\"submit\",disabled:!challenge||!result||sending,children:sending?\"Sending…\":\"Email this result\"}),emailNotice&&/*#__PURE__*/_jsx(\"p\",{role:\"status\",className:\"bw-support\",children:emailNotice})]})]})]})]})]})}),/*#__PURE__*/_jsxs(\"section\",{className:\"bws-tool-difference\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"What’s different about this calculator\"}),/*#__PURE__*/_jsxs(\"ul\",{children:[/*#__PURE__*/_jsx(\"li\",{children:\"Compare several advertising platforms using the same order contribution or monthly contribution assumptions\"}),/*#__PURE__*/_jsx(\"li\",{children:\"Enter each platform’s acquisition cost directly, or calculate it from ad spend and new customers\"}),/*#__PURE__*/_jsx(\"li\",{children:\"See how many orders or months would recover that cost, plus the share recovered over the comparison period you choose\"})]})]}),result&&edited&&/*#__PURE__*/_jsx(Review,{href:reviewURL,onClick:()=>event(\"tool_cta_clicked\",\"result_review\"),secondary:/*#__PURE__*/_jsxs(\"p\",{className:\"bw-support\",children:[\"For a wider view, take the\",\" \",/*#__PURE__*/_jsx(\"a\",{href:\"/brand-health-score?p=\"+encodeURIComponent(identity.current.token),children:\"Brand Health Score\"}),\" \",\"or explore the\",\" \",/*#__PURE__*/_jsx(\"a\",{href:\"/audit?p=\"+encodeURIComponent(identity.current.token),children:\"Brand Audit\"}),\".\"]})}),/*#__PURE__*/_jsx(PaybackGuideContent,{token:identity.current.token})]});}function PaybackGuideContent({token=\"\"}){const internal=path=>token?path+\"?p=\"+encodeURIComponent(token):path;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"section\",{className:\"bw-method\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"bw-eyebrow\",children:\"HOW THIS TOOL WORKS\"}),/*#__PURE__*/_jsx(\"h2\",{children:\"How CAC payback is calculated\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-method-grid\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bw-method-group\",children:[/*#__PURE__*/_jsx(\"h3\",{children:\"Payback in orders\"}),/*#__PURE__*/_jsx(\"p\",{children:\"First, find the money left from each order after its costs. This is contribution.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-formula\",children:\"Contribution per order = order value − product costs − shipping and fulfilment − payment fees − commissions − other order costs\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Product costs are average items per order \\xd7 product cost per item. Percentage fees use the order value. Fixed fees apply once per order.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-formula\",children:\"Payback orders = CAC \\xf7 contribution per order\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Example: an order worth USD 100 has USD 50 of product costs, USD 8 of shipping and USD 3 of payment fees. It leaves USD 39. With CAC of USD 90, payback is 2.3 equivalent orders, so you need 3 whole orders, including the first.\"}),/*#__PURE__*/_jsx(\"p\",{children:\"If you enter contribution margin instead, contribution per order = order value \\xd7 margin \\xf7 100. The same costs must already be included in that margin.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-method-group\",children:[/*#__PURE__*/_jsx(\"h3\",{children:\"Payback period in months\"}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-formula\",children:\"Estimated payback months = CAC \\xf7 average monthly contribution per customer\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Example: CAC of USD 90 and monthly contribution of USD 15 per customer gives an estimated payback period of 6 months.\"}),/*#__PURE__*/_jsx(\"p\",{children:\"The average must include all customers in the new-customer group, including those who never buy again.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-formula\",children:\"Monthly contribution per customer = group’s total contribution \\xf7 original customer count \\xf7 months covered\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Example: USD 9,000 of contribution from 100 new customers over 6 months gives USD 15 per customer per month. This assumes a steady monthly pace. It is not the actual month when your customer group paid back its CAC.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-method-group\",children:[/*#__PURE__*/_jsx(\"h3\",{children:\"CAC from ad spend\"}),/*#__PURE__*/_jsx(\"div\",{className:\"bw-formula\",children:\"CAC = ad spend \\xf7 unique new paying customers\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Example: USD 9,000 in ad spend brings 100 new customers. CAC is USD 90. Use matching dates, channels and customer counts. Do not count the same customer twice in a blended total.\"}),/*#__PURE__*/_jsx(\"p\",{className:\"bw-formula\",children:\"CAC covered (%) = contribution per order or month \\xd7 orders or months to compare \\xf7 CAC \\xd7 100\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Example: one order leaves USD 39 and CAC is USD 90. That order covers 43.3% of CAC. Three similar orders leave USD 117 and cover 130%. The bar ends at 100%, while the figure shows the full amount.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"bw-method-group\",children:[/*#__PURE__*/_jsx(\"h3\",{children:\"What the result leaves out\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Contribution is money left after the costs of a sale, before acquisition costs and fixed overhead. It is not final profit.\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Regular bills, tax and interest are excluded. Do not count advertising or commissions twice. Currency selection changes the unit; it does not convert your amounts.\"}),/*#__PURE__*/_jsx(\"p\",{children:\"The orders tab assumes similar order values and costs. It cannot tell you whether a customer will return or when. The months tab is an estimate based on your monthly average.\"})]})]})]}),/*#__PURE__*/_jsx(Questions,{items:[{question:\"What is CAC payback?\",answer:/*#__PURE__*/_jsx(\"p\",{children:\"CAC payback tells you how much selling it takes to earn back the cost of winning a new customer. This calculator shows the number of orders needed or an estimated payback period in months.\"})},{question:\"Should I measure CAC payback in orders or months?\",answer:/*#__PURE__*/_jsx(\"p\",{children:\"Use orders to see how many purchases must cover your acquisition cost. Use months when you have a monthly contribution average for a group of new customers. An order count alone cannot tell you how long payback takes.\"})},{question:\"What is contribution margin?\",answer:/*#__PURE__*/_jsxs(\"p\",{children:[\"Contribution margin is the percentage of sales left after the costs that change with a sale, such as products, shipping, payment fees and commissions. That money helps cover CAC and regular business bills. Gross margin often leaves out shipping and payment fees, so it may be too high for this calculation. The\",\" \",/*#__PURE__*/_jsx(\"a\",{href:internal(\"/tools/product-profit-pricing-calculator\"),children:\"Product Profit, Margin & Pricing Calculator\"}),\" \",\"can help you check those costs.\"]})},{question:\"Can I use cost per purchase as CAC?\",answer:/*#__PURE__*/_jsx(\"p\",{children:\"Only if those purchases are from unique new paying customers. Many ad reports also count repeat orders. If that is the case, use ad spend divided by new customers for the same dates. Platform help beside each row points to the relevant report.\"})},{question:\"Why might CAC not be recoverable?\",answer:/*#__PURE__*/_jsx(\"p\",{children:\"If order costs use up all the sales money, there is no contribution left to cover a positive CAC. The same applies to a monthly contribution of zero or less. Check your costs and price before relying on more repeat orders.\"})},{question:\"Does this tell me whether my advertising is profitable?\",answer:/*#__PURE__*/_jsxs(\"p\",{children:[\"It shows what is needed to cover CAC. It leaves out regular bills, tax and interest, and does not predict repeat purchases. Use the\",\" \",/*#__PURE__*/_jsx(\"a\",{href:internal(\"/tools/acquisition-profitability-calculator\"),children:\"Acquisition Profitability Calculator\"}),\" \",\"to look more closely at your first-order advertising results.\"]})},{question:\"How does CAC payback differ from customer lifetime value?\",answer:/*#__PURE__*/_jsxs(\"p\",{children:[\"CAC payback asks when acquisition cost is covered. Customer lifetime value asks how much a customer is worth over a stated period. The\",\" \",/*#__PURE__*/_jsx(\"a\",{href:internal(\"/tools/customer-lifetime-value-calculator\"),children:\"Customer Lifetime Value Calculator\"}),\" \",\"helps you compare first and repeat purchases.\"]})},{question:\"Does the calculator include ad spend, commissions and fixed costs?\",answer:/*#__PURE__*/_jsx(\"p\",{children:\"Ad spend is included in CAC when you choose Ad spend / new customers. Applicable sales commissions can be entered as order costs. Fixed costs, such as rent and base salaries, are excluded. Do not enter the same cost in both CAC and order costs.\"})},{question:\"Do I need Shopify to use this calculator?\",answer:/*#__PURE__*/_jsx(\"p\",{children:\"No. Enter figures from your store, accounts or advertising reports. The Shopify Sidekick prompts are optional help. The fixed payment fee can stay at zero if your provider does not charge one.\"})},{question:\"Can I save or share my results?\",answer:/*#__PURE__*/_jsx(\"p\",{children:\"Use Copy for the full calculation, or Share with AI to copy a brief and open ChatGPT, Claude, Grok or Shopify Sidekick. Any AI copies the same brief without opening another site. Your chosen email result does not sign you up for marketing. Saved figures may be restored in the same browser; copied results are the safest way to keep your own record.\"})}]})]});}export function PaybackGuide(){return /*#__PURE__*/_jsx(Shell,{children:/*#__PURE__*/_jsx(PaybackGuideContent,{})});}\nexport const __FramerMetadata__ = {\"exports\":{\"PaybackResult\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DESIGN_VERSION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Review\":{\"type\":\"reactComponent\",\"name\":\"Review\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"COUNTRY_CURRENCY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Hero\":{\"type\":\"reactComponent\",\"name\":\"Hero\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"CALCULATION_VERSION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"numberInput\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CurrencyPicker\":{\"type\":\"reactComponent\",\"name\":\"CurrencyPicker\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"validDate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CURRENCY_CODES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SelectField\":{\"type\":\"reactComponent\",\"name\":\"SelectField\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"PlatformResult\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PlatformInput\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snapshotText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AI_ICON_PATHS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"copyText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaybackGuide\":{\"type\":\"reactComponent\",\"name\":\"PaybackGuide\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Shell\":{\"type\":\"reactComponent\",\"name\":\"Shell\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"FLOW_VERSION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"normalizeShared\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"BWSCACPaybackEditorial\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"3600\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"1240\",\"framerSupportedLayoutWidth\":\"any\"}},\"Field\":{\"type\":\"reactComponent\",\"name\":\"Field\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"PromptHelp\":{\"type\":\"reactComponent\",\"name\":\"PromptHelp\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Metrics\":{\"type\":\"reactComponent\",\"name\":\"Metrics\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"EXAMPLE_PLATFORM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Questions\":{\"type\":\"reactComponent\",\"name\":\"Questions\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"TOKENS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PLATFORM_NAMES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Disclosure\":{\"type\":\"reactComponent\",\"name\":\"Disclosure\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"REPORT_PRESETS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputError\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Help\":{\"type\":\"reactComponent\",\"name\":\"Help\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"EXAMPLE_SHARED\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"recoveryProgress\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CURRENCIES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculatePayback\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculatorCSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"reportingRange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PLATFORM_REPORTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ActionBar\":{\"type\":\"reactComponent\",\"name\":\"ActionBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"money\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"conciseNumber\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import*as JSXRuntime from\"react/jsx-runtime\";import{useEffect,useMemo,useRef,useState}from\"react\";import{addPropertyControls}from\"framer\";import CustomerPaybackV2 from\"https://framerusercontent.com/modules/b0uqxKeQgNM5HOyfQ9Yb/gmNBQ1jYMb7CnxqeTwJp/CustomerPaybackV2.js\";const base=\"https://nsxcwdfcmiujuqjdmfoz.supabase.co/functions/v1/\";const resolveUrl=base+\"assessment-journey-resolve\";const initUrl=base+\"assessment-journey-init\";const captureUrl=base+\"customer-payback-capture\";const plausibleEventByType={payback_viewed:\"Customer Payback Viewed\",payback_started:\"Customer Payback Started\",payback_completed:\"Customer Payback Completed\",payback_result_viewed:\"Customer Payback Result Viewed\",payback_cta_clicked:\"Customer Payback CTA Clicked\"};function sendPaybackPlausible(eventType){const eventName=plausibleEventByType[eventType];const plausible=window.plausible;if(!eventName||typeof plausible!==\"function\")return;plausible(eventName,{url:window.location.origin+window.location.pathname});}const platforms=[{code:\"meta\",label:\"Meta Ads (Facebook/Instagram)\",url:\"https://adsmanager.facebook.com/adsmanager/manage/campaigns\",metric:\"Use Cost per Purchase for the Purchase event.\"},{code:\"google\",label:\"Google Ads\",url:\"https://ads.google.com/aw/campaigns\",metric:\"Use Cost / conv. with Purchase as the conversion action.\"},{code:\"tiktok\",label:\"TikTok Ads\",url:\"https://ads.tiktok.com/i18n/perf/campaign\",metric:\"Use Cost per Complete Payment, or divide total cost by Complete Payment events.\"},{code:\"amazon\",label:\"Amazon Ads\",url:\"https://advertising.amazon.com/cm/campaigns\",metric:\"Use attributed spend divided by new-to-brand orders when that measure is available.\"},{code:\"pinterest\",label:\"Pinterest Ads\",url:\"https://ads.pinterest.com/\",metric:\"Use Cost per Checkout for the Checkout event.\"},{code:\"microsoft\",label:\"Microsoft Advertising\",url:\"https://ui.ads.microsoft.com/campaign\",metric:\"Use Cost per acquisition or Cost per conversion for the Purchase goal.\"},{code:\"snapchat\",label:\"Snapchat Ads\",url:\"https://ads.snapchat.com/\",metric:\"Use Cost per Purchase for the Pixel Purchase event.\"},{code:\"reddit\",label:\"Reddit Ads\",url:\"https://ads.reddit.com/\",metric:\"Use Cost per conversion for the Purchase conversion event.\"},{code:\"criteo\",label:\"Criteo\",url:\"https://marketing.criteo.com/\",metric:\"Use CPA or Cost per order for the purchase outcome.\"},{code:\"linkedin\",label:\"LinkedIn Ads\",url:\"https://www.linkedin.com/campaignmanager/\",metric:\"Use Cost per conversion for the Purchase conversion.\"},{code:\"other\",label:\"Other\",url:null,metric:\"Use ad spend divided by new customers acquired for the same period.\"},{code:\"blended\",label:\"Blended / Overall\",url:null,metric:\"Use total paid-media spend divided by total net-new customers across the included channels.\"}];const sidekickPrompts={aov:{shortcut:\"brand-worlds-ttm-aov\",prompt:\"Before running any queries, identify and state the store's default currency from the ShopifyQL results. Use that currency for all calculations and reporting. Then run: FROM sales SHOW gross_sales, discounts, orders SINCE -12m UNTIL today. Divide TTM net product sales (gross_sales minus discounts) by TTM total orders to give me the average order value over the trailing 12 months, excluding returns and post-order adjustments.\"},units:{shortcut:\"brand-worlds-ttm-units-per-order\",prompt:\"Run this ShopifyQL query: FROM sales SHOW quantity_ordered, orders SINCE -12m UNTIL today. Then calculate: TTM quantity_ordered \\xf7 TTM orders. Label the result average units per order — trailing 12 months. Use quantity_ordered, not net_quantity, because this metric should measure how many units were originally ordered without being reduced by returns, refunds, cancellations, or post-order adjustments. Report the total quantity ordered, total orders, resulting average, and exact date range used. Do not calculate the result if total orders are zero or negative.\"},productCost:{shortcut:\"brand-worlds-ttm-cogs\",prompt:`Before running any queries, identify and state the store's default currency. Use that currency for all calculations and reporting.\n\nRun: FROM sales SHOW cost_of_goods_sold, quantity_ordered, net_sales, net_sales_with_cost_recorded SINCE -12m UNTIL today.\n\nThen calculate and report:\n\nCost coverage: net_sales_with_cost_recorded \\xf7 net_sales \\xd7 100 — the share of net product sales that has cost data recorded. Report this first before any cost calculation.\n\nAverage product cost per item: cost_of_goods_sold \\xf7 quantity_ordered. Label this average recorded cost per item ordered — trailing 12 months. Use quantity_ordered as the denominator, not net_quantity, because this measures cost per item at the time of ordering before returns or adjustments.\n\nIf cost coverage is below 100%, flag that the average cost figure reflects only products where cost has been entered in Shopify — it is not representative of the full catalog and will understate the true average. The lower the coverage, the less reliable the result. If cost coverage is zero or cost_of_goods_sold is zero, do not calculate the average and instead direct me to populate product costs at: Admin → Products → [select product] → Pricing → Unit price.\n\nDo not calculate if quantity_ordered is zero or negative. Report the COGS total, quantity ordered, cost coverage %, resulting average cost per item, store currency, and exact date range used.`},shipping:{shortcut:\"brand-worlds-ttm-shipping-fulfilment\",prompt:\"Before running any queries, identify and state the store's default currency from the ShopifyQL results. Use that currency for all calculations and reporting. Then run: FROM sales SHOW shipping_label_costs, net_sales SINCE -12m UNTIL today. Calculate: TTM shipping_label_costs \\xf7 TTM net_sales \\xd7 100. Report: (1) the TTM shipping label cost total, (2) the TTM net product sales total, and (3) the resulting percentage labelled as shipping-label costs as a % of net product sales — not total shipping and fulfilment costs. Confirm that this figure excludes external carrier invoices, 3PL pick-and-pack fees, warehouse fulfilment fees, packaging materials, and any labels purchased outside Shopify. If the shipping_label_costs field is unavailable or returns zero, say so and explain that Shopify only records label costs for labels purchased through Shopify Shipping. Do not calculate a percentage if either value is zero or negative. If Sidekick captures most of your shipping-label costs but you pick and pack orders yourself or pay separate fulfilment or packaging costs, add 4% to Sidekick's result. If most shipping labels or carrier charges are paid outside Shopify and you cannot calculate the complete amount from your records, enter 10 instead.\"},processing:{shortcut:\"brand-worlds-ttm-payment-processing\",prompt:\"I need my trailing-twelve-month payment-processing fees as a percentage of net product sales. Step 1 — Before running any queries, identify and state the store's default currency from the ShopifyQL results. Then run: FROM sales SHOW net_sales SINCE -12m UNTIL today. Report the TTM net product sales total. Step 2 — Ask me to go to Shopify Admin → Finances → Payouts → Reconciliation Report. Set the date range to the trailing 12 months and the currency to match the store currency identified in Step 1. Find the Fees total in the Summary section. Before using it, confirm whether Fees contains only payment-processing fees or may also include third-party transaction fees, Shopify billing adjustments, FX conversion fees, or other charges. Once I provide both numbers, calculate: TTM Fees \\xf7 TTM net product sales \\xd7 100. Label the result payment-processing fees as a % of net product sales if Fees contains only processing fees, or payout reconciliation fees as a % of net product sales if the composition is mixed or unconfirmed. Do not calculate the percentage if net product sales are zero or negative. If the calculation cannot be completed, enter 3.2.\"},cm2:{shortcut:\"brand-worlds-ttm-cm2-proxy\",prompt:`I need to calculate a contribution margin 2 (CM2) proxy over the trailing 12 months — defined as gross profit minus outbound shipping label costs minus payment processing fees.\n\nBefore running any queries, identify and state the store's default currency. Use that currency for all calculations and reporting.\n\nStep 1 — Run this ShopifyQL query: FROM sales SHOW net_sales, cost_of_goods_sold, gross_profit, total_shipping_charges SINCE -12m UNTIL today. Report: (1) TTM net product sales, (2) TTM COGS, (3) TTM gross profit, (4) TTM shipping charges collected from customers, and (5) cost coverage — run FROM sales SHOW net_sales, net_sales_with_cost_recorded SINCE -12m UNTIL today and calculate net_sales_with_cost_recorded \\xf7 net_sales \\xd7 100. If cost coverage is below 100%, flag that gross profit is likely understated and the CM2 result should be treated as directional.\n\nStep 2 — Ask me to go to my Payout Reconciliation Report at: Admin → Finances → Payouts → Reconciliation Report. Set the date range to the trailing 12 months and the currency to match the store currency identified above. Find and provide: (a) the Fees total from the Summary section — confirm whether it contains only payment-processing fees or also includes other charges such as third-party transaction fees, FX conversion fees, or Shopify billing adjustments; (b) the Shipping labels total from the Charges section, if present — this is outbound label spend purchased through Shopify Shipping. If shipping labels are not listed, ask me whether I purchase labels through Shopify Shipping or an external carrier.\n\nStep 3 — Once I provide both figures, calculate the CM2 proxy waterfall:\n\nTTM Net Product Sales: [amount]\nLess: COGS: [amount]\n= Gross Profit: [amount] ([gross profit \\xf7 net sales \\xd7 100]%)\nLess: Outbound Shipping Label Costs: [amount]\nLess: Shipping Charges Collected from Customers: +[amount] (offset — customers paid this toward shipping)\n= Net Shipping Cost: [label costs minus shipping charges collected]\nLess: Payment Processing Fees: [amount]\n= CM2 Proxy: [amount] ([CM2 \\xf7 net sales \\xd7 100]%)\n\nLabel the result TTM CM2 Proxy — margin after product, shipping, and payment-processing costs. Note that this excludes 3PL pick-and-pack fees, warehouse costs, packaging materials, external carrier invoices, and any other fulfillment costs not captured in Shopify. If any input is missing or unconfirmed, exclude it from the calculation and flag it as a gap. Do not calculate CM2 if net product sales are zero or negative.`}};const emptyShared={currency:\"USD\",aov:\"\",knowsProductCost:\"\",units:\"\",productCost:\"\",shippingPct:\"\",processingPct:\"\",cm2Pct:\"\",firstName:\"\",email:\"\"};function makeId(seed=0){return typeof crypto!==\"undefined\"&&\"randomUUID\"in crypto?crypto.randomUUID():`${Date.now()}-${seed}-${Math.random().toString(36).slice(2)}`;}const newScenario=index=>({id:makeId(index),platform:index===0?\"meta\":\"\",customLabel:\"\",method:\"reported\",cac:\"\",spend:\"\",customers:\"\"});const field={width:\"100%\",minHeight:48,border:\"1px solid #171717\",borderRadius:0,background:\"#171717\",color:\"#fff\",font:\"inherit\",fontSize:16,padding:\"11px 12px\",boxSizing:\"border-box\"};const label={display:\"grid\",gap:7,fontSize:16,lineHeight:1.35};const button={minHeight:48,border:\"1px solid #171717\",borderRadius:0,background:\"#EE4B2B\",color:\"#5936E2\",padding:\"12px 18px\",font:\"inherit\",fontSize:15,fontWeight:600,cursor:\"pointer\"};function SidekickPrompt({definition}){const[copied,setCopied]=useState(false);const promptRef=useRef(null);const copyPrompt=async()=>{const fallbackCopy=()=>{const textarea=promptRef.current;if(!textarea)return false;textarea.focus();textarea.select();textarea.setSelectionRange(0,textarea.value.length);return document.execCommand(\"copy\");};try{let didCopy=false;if(navigator.clipboard?.writeText){try{await navigator.clipboard.writeText(definition.prompt);didCopy=true;}catch{didCopy=false;}}if(!didCopy)didCopy=fallbackCopy();if(!didCopy)throw new Error(\"Copy was not permitted\");setCopied(true);window.setTimeout(()=>setCopied(false),1800);}catch{setCopied(false);}};const sidekickUrl=\"https://admin.shopify.com/sidekick?sk_s=\"+encodeURIComponent(definition.shortcut)+\"&sk_p=\"+encodeURIComponent(definition.prompt);return /*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-sidekick\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-sidekick-heading\",children:[/*#__PURE__*/JSXRuntime.jsx(\"strong\",{children:\"Paste this into Shopify Sidekick:\"}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-sidekick-actions\",children:[/*#__PURE__*/JSXRuntime.jsx(\"button\",{type:\"button\",onClick:copyPrompt,className:\"bw-sidekick-copy\",\"aria-live\":\"polite\",children:copied?\"Copied\":\"Copy\"}),/*#__PURE__*/JSXRuntime.jsx(\"a\",{href:sidekickUrl,target:\"bw-shopify-sidekick\",rel:\"noopener noreferrer\",className:\"bw-sidekick-open\",children:\"Open in Sidekick\"})]})]}),/*#__PURE__*/JSXRuntime.jsx(\"textarea\",{ref:promptRef,className:\"bw-sidekick-text\",\"aria-label\":\"Shopify Sidekick prompt\",readOnly:true,value:definition.prompt})]});}function numberValue(value){const n=Number(value);return Number.isFinite(n)?n:null;}function trailingThirtyDays(){const end=new Date;const start=new Date(end);start.setUTCDate(start.getUTCDate()-29);const iso=date=>date.toISOString().slice(0,10);return{start:iso(start),end:iso(end)};}async function post(url,body){const response=await fetch(url,{method:\"POST\",headers:{\"content-type\":\"application/json\"},body:JSON.stringify(body)});const data=await response.json().catch(()=>({}));if(!response.ok)throw new Error(data?.error||\"request_failed\");return data;}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 1600\n */function CustomerPaybackCore(props){const[token,setToken]=useState(\"\");const[sessionId,setSessionId]=useState(\"\");const[shared,setShared]=useState(emptyShared);const[scenarios,setScenarios]=useState([newScenario(0)]);const[dirty,setDirty]=useState(false);const[loading,setLoading]=useState(true);const[saving,setSaving]=useState(false);const[error,setError]=useState(\"\");const[results,setResults]=useState(null);const[step,setStep]=useState(1);const[furthestStep,setFurthestStep]=useState(1);const started=useRef(false);const saveTimer=useRef(null);const resultViewed=useRef(false);const period=useMemo(()=>trailingThirtyDays(),[]);useEffect(()=>{let cancelled=false;async function initialize(){try{const params=new URLSearchParams(window.location.search);const incoming=params.get(\"p\")||\"\";let resolvedToken=\"\";if(incoming){try{const resolved=await post(resolveUrl,{p:incoming});if(resolved?.journey_source===\"cold_email\"&&resolved?.prospect_token){resolvedToken=resolved.prospect_token;}}catch{// Journey init can still preserve or replace the incoming token safely.\n}}if(!resolvedToken){const initialized=await post(initUrl,{existing_token:incoming||null,landing_path:\"/customer-payback-check\",referrer:document.referrer||null,utm_source:params.get(\"utm_source\"),utm_medium:params.get(\"utm_medium\"),utm_campaign:params.get(\"utm_campaign\"),utm_content:params.get(\"utm_content\")});resolvedToken=initialized?.journey_token||\"\";}if(!resolvedToken||cancelled)return;params.set(\"p\",resolvedToken);window.history.replaceState({},\"\",window.location.pathname+\"?\"+params.toString());const storageKey=\"bw_payback_session_\"+resolvedToken;let sid=window.localStorage.getItem(storageKey)||\"\";if(!sid){sid=makeId();window.localStorage.setItem(storageKey,sid);}const restored=await post(captureUrl,{action:\"load\",p:resolvedToken,session_id:sid});if(restored?.found&&!started.current){const saved=restored.shared||{};setShared({currency:saved.currency||\"USD\",aov:saved.aov==null?\"\":String(saved.aov),knowsProductCost:saved.cost_mode===\"direct\"?\"yes\":saved.cost_mode===\"margin\"?\"no\":\"\",units:saved.units_per_order==null?\"\":String(saved.units_per_order),productCost:saved.avg_product_cost_item==null?\"\":String(saved.avg_product_cost_item),shippingPct:saved.shipping_pct==null?\"\":String(saved.shipping_pct),processingPct:saved.processing_pct==null?\"\":String(saved.processing_pct),cm2Pct:saved.cm2_pct==null?\"\":String(saved.cm2_pct),firstName:saved.first_name||\"\",email:saved.email||\"\"});if(Array.isArray(restored.scenarios)&&restored.scenarios.length){setScenarios(restored.scenarios.map((scenario,index)=>({id:makeId(index),platform:scenario.platform_code||\"\",customLabel:scenario.platform_label||\"\",method:scenario.cac_source_type===\"calculated\"?\"calculated\":\"reported\",cac:scenario.cac_amount==null?\"\":String(scenario.cac_amount),spend:scenario.ad_spend==null?\"\":String(scenario.ad_spend),customers:scenario.new_customers==null?\"\":String(scenario.new_customers)})));}if(restored.status===\"complete\"&&Array.isArray(restored.results)){setResults(restored.results);}started.current=true;}setToken(resolvedToken);setSessionId(sid);await post(captureUrl,{action:\"event\",p:resolvedToken,session_id:sid,event_type:\"payback_viewed\",stage:restored?.found?\"resumed\":\"calculator\",scenario_count:Array.isArray(restored?.scenarios)&&restored.scenarios.length?restored.scenarios.length:1});}catch{if(!cancelled)setError(\"The calculator could not load. Refresh and try again.\");}finally{if(!cancelled)setLoading(false);}}initialize();return()=>{cancelled=true;};},[]);const emit=async(eventType,stage)=>{if(!token||!sessionId)return;sendPaybackPlausible(eventType);try{await post(captureUrl,{action:\"event\",p:token,session_id:sessionId,event_id:makeId(),event_type:eventType,stage,scenario_count:scenarios.length});}catch{}};const markChanged=()=>{setDirty(true);if(!started.current){started.current=true;emit(\"payback_started\",\"first_input\");}};const payloadScenarios=()=>scenarios.map((scenario,index)=>{const spend=numberValue(scenario.spend);const customers=numberValue(scenario.customers);const calculated=scenario.method===\"calculated\"&&spend!==null&&customers!==null&&customers>0?spend/customers:null;return{scenario_index:index+1,platform_code:scenario.platform,platform_label:scenario.platform===\"other\"?scenario.customLabel:undefined,cac_amount:calculated??numberValue(scenario.cac),cac_source_type:scenario.method===\"calculated\"?\"calculated\":scenario.platform===\"other\"||scenario.platform===\"blended\"?\"entered\":\"native_metric\",period_start:period.start,period_end:period.end,ad_spend:scenario.method===\"calculated\"?spend:null,new_customers:scenario.method===\"calculated\"?customers:null};});const payloadShared=()=>({currency:shared.currency,aov:numberValue(shared.aov),cost_mode:shared.knowsProductCost===\"yes\"?\"direct\":\"margin\",units_per_order:numberValue(shared.units),avg_product_cost_item:numberValue(shared.productCost),shipping_pct:numberValue(shared.shippingPct),processing_pct:numberValue(shared.processingPct),cm2_pct:numberValue(shared.cm2Pct),first_name:shared.firstName,email:shared.email});useEffect(()=>{if(!dirty||!token||!sessionId||results)return;if(saveTimer.current)clearTimeout(saveTimer.current);saveTimer.current=setTimeout(async()=>{try{await post(captureUrl,{action:\"save\",status:\"partial\",p:token,session_id:sessionId,furthest_step:furthestStep,shared:payloadShared(),scenarios:payloadScenarios()});setDirty(false);}catch{}},1400);return()=>{if(saveTimer.current)clearTimeout(saveTimer.current);};},[dirty,token,sessionId,shared,scenarios,results]);const updateShared=(key,value)=>{setShared(current=>({...current,[key]:value}));markChanged();};const updateScenario=(index,key,value)=>{setScenarios(current=>current.map((scenario,i)=>i===index?{...scenario,[key]:value}:scenario));markChanged();};const validate=()=>{if(!token||!sessionId)return\"The calculator is still loading.\";if(!shared.aov||!shared.knowsProductCost)return\"Enter your order value and choose how to enter costs.\";if(shared.knowsProductCost===\"yes\"&&(!shared.units||!shared.productCost||!shared.shippingPct||!shared.processingPct))return\"Complete the product, shipping, and processing-cost fields.\";if(shared.knowsProductCost===\"no\"&&!shared.cm2Pct)return\"Enter your margin after product, shipping, fulfilment, and payment-processing costs.\";if(!shared.firstName.trim()||!/^\\S+@\\S+\\.\\S+$/.test(shared.email))return\"Enter your first name and a valid email address.\";for(const scenario of scenarios){if(!scenario.platform)return\"Choose a platform for every block.\";if(scenario.platform===\"other\"&&!scenario.customLabel.trim())return\"Name the platform in the Other block.\";if(scenario.method===\"reported\"&&!scenario.cac)return\"Enter CAC for every platform.\";if(scenario.method===\"calculated\"&&(!scenario.spend||!scenario.customers||Number(scenario.customers)<=0))return\"Enter spend and new customers for every calculated CAC.\";}return\"\";};const validateStep=currentStep=>{if(currentStep===1){for(const scenario of scenarios){if(!scenario.platform)return\"Choose a platform for every block.\";if(scenario.platform===\"other\"&&!scenario.customLabel.trim())return\"Name the platform in the Other block.\";if(scenario.method===\"reported\"&&!scenario.cac)return\"Enter CAC for every platform.\";if(scenario.method===\"calculated\"&&(!scenario.spend||!scenario.customers||Number(scenario.customers)<=0))return\"Enter spend and new customers for every calculated CAC.\";}}if(currentStep===2&&!shared.aov)return\"Enter your average order value.\";if(currentStep===3){if(!shared.knowsProductCost)return\"Choose whether you know your average product cost.\";if(shared.knowsProductCost===\"yes\"&&(!shared.units||!shared.productCost))return\"Enter your average units per order and average product cost.\";if(shared.knowsProductCost===\"no\"&&!shared.cm2Pct)return\"Enter your margin after product, shipping, fulfilment, and payment-processing costs.\";}if(currentStep===4&&shared.knowsProductCost===\"yes\"&&(!shared.shippingPct||!shared.processingPct))return\"Enter shipping, fulfilment, and payment-processing costs.\";if(currentStep===5&&(!shared.firstName.trim()||!/^\\\\S+@\\\\S+\\\\.\\\\S+$/.test(shared.email)))return\"Enter your first name and a valid email address.\";return\"\";};const goToStep=nextStep=>{setError(\"\");setStep(nextStep);setFurthestStep(current=>Math.max(current,nextStep));window.setTimeout(()=>document.getElementById(\"payback-step\")?.scrollIntoView({behavior:\"smooth\",block:\"start\"}),20);};const goNext=()=>{const issue=validateStep(step);if(issue){setError(issue);return;}if(step===3&&shared.knowsProductCost===\"no\")goToStep(5);else goToStep(Math.min(5,step+1));};const goBack=()=>{if(step===5&&shared.knowsProductCost===\"no\")goToStep(3);else goToStep(Math.max(1,step-1));};const calculate=async()=>{const issue=validate();if(issue){setError(issue);return;}setError(\"\");setSaving(true);try{const saved=await post(captureUrl,{action:\"save\",status:\"complete\",p:token,session_id:sessionId,furthest_step:5,shared:payloadShared(),scenarios:payloadScenarios()});setResults(saved.results||[]);setDirty(false);window.setTimeout(()=>document.getElementById(\"payback-results\")?.scrollIntoView({behavior:\"smooth\",block:\"start\"}),50);}catch(e){setError(e?.message===\"incomplete_economics\"?\"Enter your order value and all the costs for your chosen method.\":\"Your result could not be saved. Please check the fields and try again.\");}finally{setSaving(false);}};useEffect(()=>{if(results&&!resultViewed.current){resultViewed.current=true;emit(\"payback_result_viewed\",\"results\");}},[results]);const continueToScore=async()=>{await emit(\"payback_cta_clicked\",\"brand_health_score\");window.location.href=\"/brand-health-score?p=\"+encodeURIComponent(token);};return /*#__PURE__*/JSXRuntime.jsxs(\"main\",{className:\"bw-payback\",style:{...props.style,width:\"100%\",maxWidth:\"100%\",marginLeft:0,background:\"#fff\",color:\"#171717\",fontFamily:\"Suisse Intl, Arial, sans-serif\",boxSizing:\"border-box\"},children:[/*#__PURE__*/JSXRuntime.jsx(\"style\",{children:`\n                body { display: block !important; }\n                .framer-16pmvft-container { width: 100% !important; max-width: none !important; }\n                #main > div > .ssr-variant:first-child { display: none !important; }\n                .bw-payback { container-type: inline-size; }\n                .bw-payback * { box-sizing: border-box; }\n                .bw-wrap { width: min(100%, 1180px); margin: 0 auto; padding: 56px 28px 72px; display:grid; grid-template-columns:1fr; align-items:start; }\n                .bw-wrap > header { grid-column:1 / -1; }\n                .bw-payback-aside { display:none; border:1px solid #171717; padding:22px; gap:16px; }\n                .bw-payback-aside h2 { margin:0; font-size:28px; line-height:1.05; font-weight:400; }\n                .bw-payback-aside p { margin:0; color:#666; font-size:16px; line-height:1.5; }\n                .bw-payback-path { display:grid; gap:10px; }\n                .bw-payback-path div { border-top:1px solid #d6d3ce; padding-top:10px; font-size:14px; line-height:1.4; }\n                .bw-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }\n                .bw-card { border: 1px solid #171717; padding: 22px; display: grid; gap: 18px; }\n                .bw-help { background: #f4f2ee; padding: 14px; font-size: 14px; line-height: 1.5; }\n                .bw-link { color: #171717; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }\n                .bw-choice { display: flex; gap: 18px; flex-wrap: wrap; }\n                .bw-choice label { display: flex; align-items: center; gap: 7px; font-size: 14px; }\n                .bw-results { border-top: 6px solid #171717; margin-top: 36px; padding-top: 28px; }\n                .bw-sidekick { border: 1px solid #171717; background: #f4f2ee; min-width: 0; }\n                .bw-sidekick-heading { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 14px; border-bottom: 1px solid #171717; font-size: 13px; }\n                .bw-sidekick-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }\n                .bw-sidekick-copy, .bw-sidekick-open { min-height: 36px; border: 1px solid #171717; border-radius: 0; padding: 8px 11px; font: inherit; font-size: 13px; font-weight: 600; line-height: 1.2; cursor: pointer; text-decoration: none; }\n                .bw-sidekick-copy { background: #fff; color: #171717; }\n                .bw-sidekick-open { display: inline-flex; align-items: center; background: #171717; color: #fff; }\n                .bw-sidekick-text { display: block; width: 100%; min-height: 132px; max-height: 180px; overflow: auto; resize: vertical; padding: 14px; border: 0; border-radius: 0; background: #fff; color: #171717; font: inherit; font-size: 13px; line-height: 1.5; white-space: pre-wrap; }\n                .bw-metric { display: grid; gap: 10px; min-width: 0; align-content: start; }\n                .bw-step-header { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 20px; }\n                .bw-step-actions { display: flex; gap: 10px; margin-top: 28px; }\n                .bw-currency { width: min(100%, 180px); }\n                @container (max-width: 640px) {\n                    .bw-wrap { padding: 34px 16px 56px; grid-template-columns:1fr; }\n                    .bw-wrap > header { grid-column:1; }\n                    .bw-grid { grid-template-columns: 1fr; }\n                    .bw-card { padding: 18px; }\n                    .bw-sidekick-heading { align-items: flex-start; flex-direction: column; }\n                    .bw-sidekick-actions { width: 100%; }\n                    .bw-sidekick-copy, .bw-sidekick-open { flex: 1; justify-content: center; text-align: center; }\n                }\n                @media (max-width: 767px) { .bw-payback-aside { display:grid; position:static; margin-top:32px; } }\n            `}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-wrap\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"header\",{style:{display:\"grid\",gap:12,marginBottom:32},children:[/*#__PURE__*/JSXRuntime.jsx(\"p\",{style:{margin:0,color:\"#666\",fontSize:16,fontWeight:500,lineHeight:1.2,letterSpacing:\".08em\",textTransform:\"uppercase\"},children:\"FREE TOOL\"}),/*#__PURE__*/JSXRuntime.jsx(\"h1\",{style:{margin:0,fontSize:\"48px\",lineHeight:.98,letterSpacing:\"-0.04em\",fontWeight:400,color:\"#171816\"},children:\"CAC Payback Calculator for Ecommerce\"}),/*#__PURE__*/JSXRuntime.jsx(\"p\",{style:{margin:0,maxWidth:720,fontSize:17,lineHeight:1.55},children:\"See how many orders a customer needs to place to cover what you spent to win them. CAC means customer acquisition cost: the cost of getting one new customer. Compare up to five advertising platforms.\"})]}),!results&&/*#__PURE__*/JSXRuntime.jsxs(\"div\",{id:\"payback-step\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-step-header\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"span\",{style:{fontSize:13,fontWeight:600},children:[\"Step \",step,\" of 5\"]}),/*#__PURE__*/JSXRuntime.jsx(\"span\",{style:{fontSize:13,color:\"#666\"},children:\"Your progress is saved automatically.\"})]}),step===1&&/*#__PURE__*/JSXRuntime.jsxs(\"section\",{style:{display:\"grid\",gap:18},children:[/*#__PURE__*/JSXRuntime.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"baseline\",gap:16},children:[/*#__PURE__*/JSXRuntime.jsx(\"h2\",{style:{margin:0,fontSize:26},children:\"Advertising platforms\"}),/*#__PURE__*/JSXRuntime.jsxs(\"span\",{style:{fontSize:13},children:[scenarios.length,\" of 5\"]})]}),scenarios.map((scenario,index)=>{const platform=platforms.find(item=>item.code===scenario.platform);const calculated=scenario.method===\"calculated\"&&Number(scenario.customers)>0?Number(scenario.spend)/Number(scenario.customers):null;return /*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-card\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",gap:16},children:[/*#__PURE__*/JSXRuntime.jsxs(\"strong\",{children:[\"Platform \",index+1]}),index>0&&/*#__PURE__*/JSXRuntime.jsx(\"button\",{type:\"button\",onClick:()=>{setScenarios(current=>current.filter((_,i)=>i!==index));markChanged();},style:{border:0,background:\"transparent\",textDecoration:\"underline\",cursor:\"pointer\"},children:\"Remove\"})]}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Advertising platform\",/*#__PURE__*/JSXRuntime.jsxs(\"select\",{value:scenario.platform,onChange:e=>updateScenario(index,\"platform\",e.target.value),style:field,children:[/*#__PURE__*/JSXRuntime.jsx(\"option\",{value:\"\",children:\"Choose a platform\"}),platforms.map(item=>/*#__PURE__*/JSXRuntime.jsx(\"option\",{value:item.code,children:item.label},item.code))]})]}),scenario.platform===\"other\"&&/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Platform name\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{value:scenario.customLabel,onChange:e=>updateScenario(index,\"customLabel\",e.target.value),style:field})]}),platform&&/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-help\",children:[platform.url&&/*#__PURE__*/JSXRuntime.jsxs(JSXRuntime.Fragment,{children:[/*#__PURE__*/JSXRuntime.jsxs(\"a\",{className:\"bw-link\",href:platform.url,target:\"_blank\",rel:\"noopener noreferrer\",children:[\"Open\",\" \",platform.label,\" \",\"reporting ↗\"]}),/*#__PURE__*/JSXRuntime.jsx(\"br\",{})]}),platform.metric,\" Only use the platform metric as CAC when the counted conversion is a new-customer purchase. Otherwise, calculate CAC from spend and new customers for the same period.\"]}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-choice\",role:\"radiogroup\",\"aria-label\":`CAC source for platform ${index+1}`,children:[/*#__PURE__*/JSXRuntime.jsxs(\"label\",{children:[/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"radio\",checked:scenario.method===\"reported\",onChange:()=>updateScenario(index,\"method\",\"reported\")}),\" \",\"Enter reported CAC\"]}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{children:[/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"radio\",checked:scenario.method===\"calculated\",onChange:()=>updateScenario(index,\"method\",\"calculated\")}),\" \",\"Calculate from spend\"]})]}),scenario.method===\"reported\"?/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Customer acquisition cost — last 30 days\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"number\",min:\"0\",step:\"0.01\",value:scenario.cac,onChange:e=>updateScenario(index,\"cac\",e.target.value),style:field,placeholder:\"e.g. 90\"})]}):/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-grid\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Ad spend — last 30 days\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"number\",min:\"0\",step:\"0.01\",value:scenario.spend,onChange:e=>updateScenario(index,\"spend\",e.target.value),style:field})]}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"New customers acquired — last 30 days\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"number\",min:\"1\",step:\"1\",value:scenario.customers,onChange:e=>updateScenario(index,\"customers\",e.target.value),style:field})]}),calculated!==null&&Number.isFinite(calculated)&&/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-help\",style:{gridColumn:\"1 / -1\"},children:[\"Calculated CAC:\",\" \",shared.currency,\" \",calculated.toFixed(2)]})]})]},scenario.id);}),scenarios.length<5&&/*#__PURE__*/JSXRuntime.jsx(\"button\",{type:\"button\",onClick:()=>{setScenarios(current=>[...current,newScenario(current.length)]);markChanged();},style:{...button,justifySelf:\"start\",background:\"#fff\",color:\"#171717\"},children:\"+ Add another platform\"})]}),step===2&&/*#__PURE__*/JSXRuntime.jsxs(\"section\",{style:{display:\"grid\",gap:20},children:[/*#__PURE__*/JSXRuntime.jsx(\"h2\",{style:{margin:0,fontSize:26},children:\"Order value\"}),/*#__PURE__*/JSXRuntime.jsx(\"div\",{className:\"bw-currency\",children:/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Currency\",/*#__PURE__*/JSXRuntime.jsx(\"select\",{value:shared.currency,onChange:e=>updateShared(\"currency\",e.target.value),style:field,children:[\"USD\",\"CAD\",\"GBP\",\"EUR\",\"AUD\",\"NZD\",\"CHF\"].map(code=>/*#__PURE__*/JSXRuntime.jsx(\"option\",{children:code},code))})]})}),/*#__PURE__*/JSXRuntime.jsx(\"div\",{style:{maxWidth:700},children:/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-metric\",children:[/*#__PURE__*/JSXRuntime.jsx(SidekickPrompt,{definition:sidekickPrompts.aov}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Average order value — past 12 months\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"number\",min:\"0\",step:\"0.01\",value:shared.aov,onChange:e=>updateShared(\"aov\",e.target.value),style:field,placeholder:\"e.g. 100\"})]})]})})]}),step===3&&/*#__PURE__*/JSXRuntime.jsxs(\"section\",{style:{display:\"grid\",gap:20},children:[/*#__PURE__*/JSXRuntime.jsx(\"h2\",{style:{margin:0,fontSize:26},children:\"Product costs\"}),/*#__PURE__*/JSXRuntime.jsxs(\"fieldset\",{style:{border:0,padding:0,margin:0,display:\"grid\",gap:10},children:[/*#__PURE__*/JSXRuntime.jsx(\"legend\",{style:{fontSize:14,marginBottom:8},children:\"Do you know your average product cost per item?\"}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-choice\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"label\",{children:[/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"radio\",name:\"product-cost\",checked:shared.knowsProductCost===\"yes\",onChange:()=>updateShared(\"knowsProductCost\",\"yes\")}),\" \",\"Yes\"]}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{children:[/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"radio\",name:\"product-cost\",checked:shared.knowsProductCost===\"no\",onChange:()=>updateShared(\"knowsProductCost\",\"no\")}),\" \",\"No — use overall margin\"]})]})]}),shared.knowsProductCost===\"yes\"&&/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-grid\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-metric\",children:[/*#__PURE__*/JSXRuntime.jsx(SidekickPrompt,{definition:sidekickPrompts.units}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Average items per order\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"number\",min:\"0\",step:\"0.01\",value:shared.units,onChange:e=>updateShared(\"units\",e.target.value),style:field,placeholder:\"e.g. 1.8\"})]})]}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-metric\",children:[/*#__PURE__*/JSXRuntime.jsx(SidekickPrompt,{definition:sidekickPrompts.productCost}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Average product cost per item\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"number\",min:\"0\",step:\"0.01\",value:shared.productCost,onChange:e=>updateShared(\"productCost\",e.target.value),style:field,placeholder:\"e.g. 35\"})]})]})]}),shared.knowsProductCost===\"no\"&&/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-metric\",children:[/*#__PURE__*/JSXRuntime.jsx(SidekickPrompt,{definition:sidekickPrompts.cm2}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Contribution margin — % left after product, shipping, fulfilment and payment costs\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"number\",min:\"-100\",max:\"100\",step:\"0.1\",value:shared.cm2Pct,onChange:e=>updateShared(\"cm2Pct\",e.target.value),style:field,placeholder:\"e.g. 48\"})]})]})]}),step===4&&shared.knowsProductCost===\"yes\"&&/*#__PURE__*/JSXRuntime.jsxs(\"section\",{style:{display:\"grid\",gap:20},children:[/*#__PURE__*/JSXRuntime.jsx(\"h2\",{style:{margin:0,fontSize:26},children:\"Shipping and payment costs\"}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-grid\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-metric\",children:[/*#__PURE__*/JSXRuntime.jsx(SidekickPrompt,{definition:sidekickPrompts.shipping}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Packing and shipping costs — % of sales after discounts and refunds\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"number\",min:\"0\",max:\"100\",step:\"0.1\",value:shared.shippingPct,onChange:e=>updateShared(\"shippingPct\",e.target.value),style:field,placeholder:\"e.g. 10\"})]})]}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-metric\",children:[/*#__PURE__*/JSXRuntime.jsx(SidekickPrompt,{definition:sidekickPrompts.processing}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Payment fees — % of sales after discounts and refunds\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"number\",min:\"0\",max:\"100\",step:\"0.1\",value:shared.processingPct,onChange:e=>updateShared(\"processingPct\",e.target.value),style:field,placeholder:\"e.g. 3.2\"})]})]})]})]}),step===5&&/*#__PURE__*/JSXRuntime.jsxs(JSXRuntime.Fragment,{children:[/*#__PURE__*/JSXRuntime.jsxs(\"section\",{className:\"bw-grid\",children:[/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"First name\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{value:shared.firstName,onChange:e=>updateShared(\"firstName\",e.target.value),style:field})]}),/*#__PURE__*/JSXRuntime.jsxs(\"label\",{style:label,children:[\"Email\",/*#__PURE__*/JSXRuntime.jsx(\"input\",{type:\"email\",value:shared.email,onChange:e=>updateShared(\"email\",e.target.value),style:field})]})]}),/*#__PURE__*/JSXRuntime.jsx(\"button\",{type:\"button\",disabled:saving||!token,onClick:calculate,style:{...button,marginTop:24,opacity:saving||!token?.55:1},children:saving?\"Calculating…\":\"Calculate CAC payback\"})]}),error&&/*#__PURE__*/JSXRuntime.jsx(\"div\",{role:\"alert\",style:{marginTop:20,border:\"1px solid #b42318\",color:\"#b42318\",padding:14},children:error}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-step-actions\",children:[step>1&&/*#__PURE__*/JSXRuntime.jsx(\"button\",{type:\"button\",onClick:goBack,style:{...button,background:\"#fff\",color:\"#171717\"},children:\"Back\"}),step<5&&/*#__PURE__*/JSXRuntime.jsx(\"button\",{type:\"button\",onClick:goNext,style:button,children:\"Continue\"})]})]}),results&&/*#__PURE__*/JSXRuntime.jsxs(\"section\",{id:\"payback-results\",className:\"bw-results\",children:[/*#__PURE__*/JSXRuntime.jsx(\"h2\",{style:{margin:\"0 0 20px\",fontSize:30},children:\"CAC payback by platform\"}),/*#__PURE__*/JSXRuntime.jsx(\"div\",{style:{display:\"grid\",gap:12},children:results.map(result=>/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-card\",children:[/*#__PURE__*/JSXRuntime.jsx(\"strong\",{children:result.platform_label}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{children:[\"CAC: \",shared.currency,\" \",Number(result.cac_amount).toFixed(2)]}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{children:[\"Money left from the first order before CAC:\",\" \",shared.currency,\" \",Number(result.first_order_contribution).toFixed(2)]}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{style:{fontSize:20,fontWeight:600},children:[result.result_state===\"paid_back_first_order\"&&\"The acquisition cost is recovered on the first order.\",result.result_state===\"multiple_orders\"&&`${result.payback_orders_rounded_up} orders are needed to recover the acquisition cost.`,result.result_state===\"not_recoverable\"&&\"These order costs leave no money to cover CAC.\"]}),result.payback_orders_exact!==null&&/*#__PURE__*/JSXRuntime.jsxs(\"small\",{children:[\"Before rounding:\",\" \",Number(result.payback_orders_exact).toFixed(2),\" \",\"orders.\"]})]},result.scenario_index))}),/*#__PURE__*/JSXRuntime.jsx(\"button\",{type:\"button\",onClick:continueToScore,style:{...button,marginTop:24},children:\"Continue with the full Brand Health Assessment →\"})]}),!results&&/*#__PURE__*/JSXRuntime.jsxs(\"aside\",{className:\"bw-payback-aside\",children:[/*#__PURE__*/JSXRuntime.jsx(\"h2\",{children:\"Your CAC payback results\"}),/*#__PURE__*/JSXRuntime.jsx(\"p\",{children:\"See how CAC and the money left from each order affect the number of orders needed to cover acquisition costs.\"}),/*#__PURE__*/JSXRuntime.jsxs(\"div\",{className:\"bw-payback-path\",children:[/*#__PURE__*/JSXRuntime.jsx(\"div\",{children:\"1. Enter CAC for each advertising platform.\"}),/*#__PURE__*/JSXRuntime.jsx(\"div\",{children:\"2. Add order value and the costs for each order.\"}),/*#__PURE__*/JSXRuntime.jsx(\"div\",{children:\"3. Compare the orders needed to recover acquisition cost.\"})]})]})]})]});}export default function CustomerPaybackCheck(props){// The live v4 component restores both current and legacy saved sessions.\nreturn /*#__PURE__*/_jsx(CustomerPaybackV2,{...props});}CustomerPaybackCheck.displayName=\"CAC Payback Calculator\";addPropertyControls(CustomerPaybackCheck,{})// Framer rebuild marker\n;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CustomerPaybackCheck\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}